我公司在全国各地有30家分公司,后台数据库采用 oracle 9i,NET 系统开发。
计划将所有分公司的服务器存放于北京总部。由于我们各分公司做单据需要实时用到后台数据,所以担心如果由于总部的网络或分公司的网络出现故障时无法进行正常的业务。
综上所述,求教高手,在不考虑资金投入的问题,我们的网络结构要如何搭建?是否可以采用上海同时搭建一个数据中心,如果北京的数据中心的网络出现问题,可让所有分公司转连接到上海中心,但如果这样做,数据的同步应如何实现?

解决方案 »

  1.   

    看网络状况和访问量了。
    可以考虑rac+dg
      

  2.   

    --1.考虑租用专用光钎通道;
    --2.总部和分部间建立一张联系表:
      create table relation_all(
             dept_id,     --公司编码
              dept_name,   --公司名称
              data_id,     --单据号码
              date_date    --单据传送时间
              data_return  --反馈信息
    );
    此表信息可以考虑采用Trigger来实现。
    --3.无论分公司每天有无单据均需要在relation_all中生成记录(可以做个存贮过程,在晚上如20点执行,如有国外业务,考虑在23:30左右执行);
    --4.用.net显示和统计各分公司信息,及时掌握动态情况以采取措施。同时向各分公司发送总部收集你公司的信息,以便分公司确认。
      

  3.   

    如果不考虑投资,可以考虑从电信或网通拉光纤,实现北京上海的高带宽数据通讯,有了这个前提,可以考虑dataguard。
    使用dg可以实现基于归档日志的数据同步。不过只能是失效转移模式,即其中一个数据中心只能处于被同步模式,不能处理事务。
    使用dg还有个问题,就是online redolog不能同步,也就是说当备用数据中心启用时,有部分数据没有同步。
      

  4.   

    DG是一种容灾设计,应对的是火灾,地震等灾难性事故。
    如果你只是考虑网络中断的问题,建议增加网络设备的冗余度, 这样一来网络问题基本很快都可以恢复。
    本身DG切换就需要一定时间,不管是SERVER,还是客户端.
    除非你们是类似金融机构,无法完全停机的。
      

  5.   

    这个问题不错,我也一直想搞清楚这个问题。1) 租用光纤之类的,把公司组成一个虚拟局域网。
       这个方便了,相当地我们无需从开发上考虑异构的问题2) 各省市分公司用一个数据库,然后将各分公司的数据库在一定时间内都同步到总部
       a.这种方式需要设计表时做一些考虑。比如某个表字段是自增长的,需要为每个分公司分配一个id段
       b.考虑:一些公共信息表,如员工表,会不会需要从总部同步到分公司。
       c.这种架构,dblink + 物化视图, 不知道能不能实现。 有人在实际的项目中做过吗?3) 考虑数据双向同步的问题
       比如说公司在台湾有个数据库A,在北京也有个数据库B,台湾的用户在A库上操作, 北京的用户在B库上操作。
       现在要同步2个库,即将A的数据同步到B,同时又要将B的数据同步到A。
       这个我认为是挺麻烦了,不知道有谁做过这个?