CSDN博客

img Happyboy_zjy

SQLServer数据复制心得

发表于2004/7/16 14:17:00  2707人阅读

分类: Technology

经过几天的研究,对数据复制方面作了些测试,现总结如下:

成功进行数据的复制工作,有些条件是必不可少的:
1>SQL Server Agent必须启动,MSDTC必须启动。
2>所有要复制的表必须有主键。
3>如果表中有text或image数据类型,必须使用with log选项,不能使用with no_log选项。
另外max text repl size选项控制可以复制的文本和图像数据的最大规模,超过这个限制的操作将失败。(这个不知如何理解?)
4>在要进行复制的计算机上,应该至少是隐含共享,即共享名是C$或D$…。
5>为SQL Server代理使用的Windows NT帐号不能是一个本地的系统帐号,因为本地的系统帐号不允许网络存取。
6>如果参与复制的服务器在另外的计算机域中,必须在这些域之间建立信任关系。

复制的三种方法:
1,快照复制。

2,事务复制。通过在发布端发布数据,订阅端立即更新返回到发布端。这种方法对于没有Iamge,text,ntext等类型是能成功,或许对我们的项目更为合理些,但是在办公自动化的收发文管理中都涉及到这种数据类型。
用这种方法复制的时候出现的错误为:

当发布端,新增一条记录后,过一定时间后则会复制到订阅端,
而如果在订阅端新增一条记录,则会出现这样一个错误信息:
[Microsoft][ODBC SQL Server Driver][SQL Server]Updatable Subscriptions:The
text/ntext/image values inserted at Subscriber will be NULL.
保存不进去,复制(立即更新)也就不成功。不知道该如何解决这一问题?

  操作步骤:在发布端:新建->发布->显示高级选项->选择一个数据库->事务发布->选即时更新->在选定项目中选取要复制的表,此表要符合以上的一些条件。在按照向导完成操作。如果有需要可以在发布属性中选取行,即写WHERE语句筛选要复制下去的行。
            在订阅端:新建->请求订阅->显示高级选项->选择一个机器名->登录的帐号->此后需要修改一下复制的周期。再根据向导完成订阅设置.

3,出现了事务复制不能解决的问题后,现想出另外一种复制方法:合并复制。

   初步设想是在总部数据库服务器上做发布端,在成员公司的数据库服务器上做订阅端,根据筛选行来复制不同的数据到不同的成员公司.
   合并复制特点:
      1。如果在发布端跟订阅端都有一条主键相同的记录,那么它将以发布端的记录复制下去,覆盖掉订阅端的同主键数据。
      2。在合并过程中进行数据同步(所有服务器的数据更新进行汇集)

操作步骤:在发布端:新建->发布->显示高级选项->选择一个数据库所在的机器名->合并发布->在选定项目中选取要复制的表,此表要符合以上的一些条件。在按照向导完成操作。如果有需要可以在发布属性中选取行,即写WHERE语句筛选要复制下去的行。
          在订阅端:新建->请求订阅->显示高级选项->选择一个机器名->登录的帐号->此后需要修改一下复制的周期。再根据向导完成订阅设置.

以上仅是一点个人理解,有错误之处在所难免。

0 0

相关博文

我的热门文章

img
取 消
img