系统是构架 win2003+sql2000 主服务器A  负载B ,负载要求2小时内数据一致性
有两个重大问题想问一下大家经验。1、同步是用事务还是合并,因为A作为主服务器仍在日常使用,不要影响它。只是最近已不堪重负需要做一个负载,所以需要同步一个B服务器出来。同步一般需要的频率时间多少较适合,先说一下两服务不在一个机房ping=30-40之间。
2、同步需要数据存储空间增加大小。我以前开过全日志模式,发现日志存储空间增长的太快了,日志太大了,后来修改为简单模式了。如果同步是否需要变更为全日志模式,我需要预计一下空间问题。

解决方案 »

  1.   

    快照复制将数据以特定时刻的瞬时状态分发,而不监视对数据的更新。 发生同步时,将生成完整的快照并将其发送到订阅服务器。
       事务复制通常从发布数据库对象和数据的快照开始。 创建了初始快照后,接着在发布服务器上所做的数据更改和架构修改通常在修改发生时(几乎实时)便传递给订阅服务器。 数据更改将按照其在发布服务器上发生的顺序和事务边界应用于订阅服务器,因此,在发布内部可以保证事务的一致性。
    合并复制通常也是从发布数据库对象和数据的快照开始, 并且用触发器跟踪在发布服务器和订阅服务器上所做的后续数据更改和架构修改。 订阅服务器在连接到网络时将与发布服务器进行同步,并交换自上次同步以来发布服务器和订阅服务器之间发生更改的所有行。
    数据访问 锁存 站点
    位置)  频率 网络 机器 拥有者 其他 复制类型
    只读报表 短 多 高 快/稳定 1服务器/站点 1 OLTP站点 每个站点只需要地区性数据 事务复制;
    按地区过滤
    只读报表 长 多 低 快/稳定 1服务器/站点 1 OLTP站点 每个站点只需要地区性数据 快照复制;
    按地区过滤
    多读少写 短 <10 中 快/稳定 1服务器/站点 1 OLTP站点 一个表地区性更新所有表地区更新 事务复制
    更新子集
    多读少写 中 <10 中 慢/不稳定 1服务器/站点 全部更新 一个表地区性更新所有表地区更新 合并复制
    ......
    插入(新订单) 短 多 高 快/稳定 1服务器/站点 报名站点 每个站点只需要地区性数据 事务复制;以上考虑因素,目前需求可以快照复制或合并复制为优先选择。
      

  2.   

    你的数据库大吗?快照复制是每次同步整个数据库?这个是你想要的吗?另外你的网络也不是太好,肯定会有压力。同步是单项的话可以考虑用日志复制。另外SQL Server还提供了DR的方法是用Log Shipping,就是将日志自动还原到另外一台机器。但是这台机器只能读或者处于还原状态无法访问。 根据你的需要选择合适的架构。 
      

  3.   

    前两天写了一个远程的logshipping,其大致思路是这样的不知道对你有没有用。
    1. 备份的时候带日期(方便后续截取),最后一步call "d:\jiami.bat",这个备份文件要通过外网传输(必须加密 BAT)
    2. JOB 的第二部rysnc 传输,为什么用rysnc,因为rysnc有断点续传能力。(外网不稳定啊)
    3. 在备机上解密,建一张还原的log表,把传过来的文件 dir 截取时间排序对比还原LOG表还原。(还原的时候要设置一下单用户,然后设置回来,就是一步踢开所有用户还原数据库的动作)脚本,加密解密批处理,log表,还原的procedure,控制表我有 如果你需要我可以发给你。有思路的话还是自己写一下。这样还可以多个同名的数据库向一台机器上做logshipping