1,用发布与订阅方案做SQL2000的热备方便吗?备份肯定没问题,用事务复制推的机制,很容易把主服务器的数据退送到备服务器。但若主服务器出问题了呢?备服务器如何确定数据已经还原到了主服务器触发事故之前的状态?SQL2000当订阅服务器时,我们必须要将其外键去除,不然会失败;另外,系统会自动将备服务器的DEFAULT值去除掉;另外,对于自增列,选择使用NOT FOR REPLICATION比较好,这样复制插入数据时忽略自增;另外,建立复制时会将备服务器的主键改成同名的索引,因此最好先把备服务器的主键去除。由此,备服务器切换成主服务器时必须要做的工作有:去除强制订阅,备服务器增加主键,备服务器增加外键,备服务器增加默认值,备服务器自增列种子RESEED。此方案是不是过于麻烦?2,使用LogShipping实现定时数据备份+发布与订阅,主服务器备份后,将备份日志传送给热备数据库,此时采集代理同时将数据发布到分发服务器,让分发服务器将数据发送到订阅服务器,从而确保备份服务器和订阅服务器的数据一致。主服务器出问题时,主备数据库角色互换,此时对订阅服务器来说,备份服务器就是原来的主服务器。SQL联机丛书说主备数据库切换需要经过三个步骤:日志传送支持角色转变,而角色转变需要下列基本步骤: 
1)创建数据转换服务 (DTS) 包,将当前的主服务器复制到当前的辅助服务器。2)创建作业,从当前的主服务器备份 syslogins,并将文件复制到当前的辅助服务器的某个目录下,然后执行该 DTS 包。3)执行角色更改,使当前的辅助服务器成为当前的主服务器。 首先我无法确认他说的第一步我执行成功了没有,因为我用了2个虚拟机,用户都一样的。但是我在做主备数据库角色切换的时候,它需要主服务器独占,这点很难保证,应用系统会疯狂的自动连接的,除非将数据库设置成单用户模式。第二种备份方案我没有试通过。不知道高手们用过这种方法没有?或者你们通常是如何实现的?用第三方软件的就不用说了。

解决方案 »

  1.   

    其实这两种方案都可以.
    一个比较重要的就是两台服务器之间的网络情况一定要好,再者主服务器压力不能过大.log shipping 可以15分钟备一次日志,或是更少的时间.这样将风险降到最低.发布订阅有一些限制,用来做灾备的话,个人认为不如log shipping.还有就是镜像,不过好像在sql 2005才支持,镜像比以上两种更适用于作灾备.
      

  2.   

    SQL2005镜像这个我知道。我们系统现在用的是SQL2000,有些客户不想升级到SQL2005,我们也没办法,只能出个SQL2000的备份方案了。我新人:)谁提供点 logshipping+发布订阅的详细方案阿。
      

  3.   

    SQL2000集群更麻烦。我们不打算做到那步。
      

  4.   

    SQL2000集群也不能真正的灾备.log shipping 比较简单,网上查一下,很多教程.
    三步:
    主服务器备日志、辅助服务器copy过日志文件来、然后从辅助服务器还原.
      

  5.   

    log shipping要将数据弄过去很简单啊。要将用户弄过去主备角色切换呢?SQL联机丛书说支持的,有人做到过吗?
      

  6.   

    支持
    http://www.ku5ai.cn
    是个不错的论坛!
    大家可以去那探讨问题,一定能找到解决的办法。
    有很多高手哦!!
      

  7.   

    支持 
    http://www.ku5ai.cn
    是个不错的论坛! 
    大家可以去那探讨问题,一定能找到解决的办法。 
    有很多高手哦!!