加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

sqlserver2005多服务器数据同步

发布时间:2020-12-12 15:20:27 所属栏目:MsSql教程 来源:网络整理
导读:? 一 . 两个数据结构相同,均有数据的数据库可以实行同步,最后数据将是以发布数据库的数据统一 ? 二 . 利用一台机器即做发布又做订阅的关键 如有 A,B,C 三台机器, A 做发布, B 订阅 A ,且 B 把订阅回来的内容发布给 C, 即 C 订阅 B 的 关键做法如下: 1.

?

.两个数据结构相同,均有数据的数据库可以实行同步,最后数据将是以发布数据库的数据统一

?

.利用一台机器即做发布又做订阅的关键

如有A,B,C三台机器,A做发布,B订阅A,且B把订阅回来的内容发布给C,C订阅B

关键做法如下:

1.A先做发布,导出脚本

2.删除A发布,修改A脚本,把@pub_identity_range(发布服务器标识范围)的值修改为100000(初始为10000)把@identity_range(订阅服务器标识范围)的值改为20000(初始为1000,要改到比B做发布时的@pub_identity_range的值大),把sa的密码赋值,即把@publisher_password赋值

3.执行脚本,生成发布

4.启动快照代理(右键生成出来的发布,点击“查看快照代理状态”,启动)

5.BA的订阅,生成数据库

6.把生成的数据库做发布,同样要导出脚本,点到最后出现提示关于@pub_identity_range的错误

7.删除B发布,修改B脚本,把@pub_identity_range的值修改为5000(初始为10000,或者改道比A做发布时的@identity_range小),把sa的密码赋值,即把@publisher_password赋值

8.执行脚本,生成发布,同上4启动快照代理

9.CB的订阅

10.三者同步完成

?

总结:

由于本人不清楚图型界面怎么修改@pub_identity_range值,所以用了比较笨的方法把脚本导出再修改。

??? 步骤红色部分可以不做,因为已经在步骤2改过@pub_identity_range

修改@pub_identity_range的值的意义其实是让3者在同步时再各自插入自己数据时避免发生冲突的现象,让3者遵循一个协议,每个数据库发生插入操作时系统生成属于各自范围的标识ID,如A中的表x,由A插入生成的ID范围是0-1000B中表x,由B插入生成的ID范围则是1001-2000C中的表x,由C插入生成的ID范围则是3001-4000.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读