不同数据库之间表数据的实时同步-发布与订阅

www.syncnavigator.cn

SyncNavigator 做数据同步时所支持的数据库类型:

支持sqlserver 2000-2014所有版本,全兼容,和MYsql 4.x 、MYsql 5.x 、MYsql 6.x版本。

来源数据库和目标数据库可以版本不同,比如:来源数据库是sqlserver 2012  目标数据库是mysql 5.5 ,都是可以的, SyncNavigator 支持跨数据库版本,无缝传输数据。

只需要能连接上数据库, SyncNavigator 可以安装在第三方电脑上,来源数据库和目标数据库电脑上可以不用安装程序。

设置好数据库连接地址,点击测试连接,能脸上来源数据库和目标数据库, SyncNavigator 就能进行高效数据传输服务

最近要将不同服务器上数据库的表数据同步汇总,所以就涉及到了数据同步的问题,以前没有接触过,在网上找了找方法,

 大抵的方法有三种:

1,在数据库中编写触发器

2,写一个同步程序去完成同步

3,使用数据库的发布和订阅功能

以上前两种方法暂且不提,今天说说第三种方法:使用数据库的发布和订阅功能实现同一服务器下的不同数据库的表数据同步和不同服务器下的不同数据库的表数据同步前提是源数据表结构和目标数据表结构必须相同。

先来说说【发布】和【订阅】的操作步骤,在文章的后面,会将这个过程中可能会遇到的所有问题做一个汇总,然后给出解决方法。

目录

1发布

2订阅

3发布和订阅过程中的可能遇到问题及解决方案

1发布
1,首先使用本机名称连接到数据库,不能使用IP地址连接数据库,至于为什么,在文后说明找到【。复制,展开复制选项,可以看到两个节点】:【本地发布】,【本地订阅】

 

 

2,鼠标右键点击【本地发布】,【选择新建发布】

 

3,【弹出新建发布向导】对话框,【选择下一步】 

 

4,选择要发布的数据库,点击然后【下一步】

 5,选择发布类型,这里数据库有四种发布类型,每种发布类型下面都有类型说明,这里在选择选择【快照发布】,点击然后【下一步】

 

如图6所示,选择要发布的表对象,在左侧的选择区域选择要发布的表信息,然后点击【下一步】

 7,进入筛选表的设置界面,这里的筛选是指发布的表数据中的某一个或者全部字段只能为固定的值,从而达到当所有的订阅服务器接收数据时,接收到的该字段的值为发布时设定的值。如果不需要,直接点击【下一步】

 8,进入快照代理界面,将界面上的两项内容选中

 9,如果需要修改数据同步的时间和频率,则点击【更改】

 10,设置数据同步的的的频率段段,每天执行的的的频率段段状语从句:执行的开始时间结束状语从句:时间,设置完成点击【确定】,返回到上一界面,然后点击【下一步】

 11,设置代理快照,点击【安全设置】,进入设置界面

 12,选择【在SQL Server代理服务账户下运行】和【使用以下SQL Server登录名】,登录名和密码是为了使订阅的服务器登录到发布服务器。设置完成点击【确定】,返回到上一个界面,然后点击【下一步】

 13,该页面选择默认设置,直接点击【下一步】

 14,为本次发布创建一个名称,然后点击【完成】

 15,以上步骤全部做完之后,等待发布的创建完成,当提示成功时,表示本次发布创建成功

 16,返回到数据库的连接初始界面,的左侧处节点选择【复制】 - 》【本地发布】,可以在改节点下看到刚才创建好的发布

 至此,发布的相关操作已经做完,一个完整的发布已经成功发布。接下来要做的就是在需要同步数据的服务器上订阅该发布。

2订阅
在需要同步数据的服务器上添加订阅,订阅刚才我们添加的发布,这样可以实现数据库表数据之间的同步和迁移。

1,同样的是使用本机名称连接数据库,然后选择【复制】,展开该节点,选择【本地订阅】,鼠标右键点击该项,选择【新建订阅】

2,进入新建订阅向导界面,初始界面同新建发布界面,选择【下一步】

 3,进入为订阅选择发布的界面,如果是一个服务器不同数据库之间的表数据同步,则在发布服务器中选择本地服务器;如果是不同服务器之间不同数据库的表的数据同步,则在发布服务器中选择远程服务器。

 4,如果是不同服务器之间的数据同步,选择【发布服务器】的下拉框,选择第一项【查找SQL Server发布服务器】,会弹出【连接到服务器】的对话框,点击【服务器名称】一栏的下拉框,选择【浏览更多】,在打开的界面【选择网络服务器】,找到发布的服务器。

 

 

 5,找到该服务器之后,选择用实例名登录数据库,选择用SQL Server身份验证,登录名和密码则为源服务器创建发布时选择的登录名和密码

 6,选择连接,自动返回到选择发布服务器的界面,在数据库和发布区域,会将连接到的服务器的所有发布的数据库显示出来,例如这个的textdb就是刚才创建的发布数据库,然后展开该项,可以看到我们刚才创建的发布为111的名称,选中该发布,点击然后【下一步】

 如图7所示,选择然后【在配给物服务器***运行上所有代理】,【点击下一步】

 如图8所示,选择订阅服务器,选中当前需要订阅的服务器,然后点击后面的【订阅数据库】,选择下拉框,然后选择目标数据库,之后完成【选择下一步】

 

9,进入分发代理安全性设置界面,选择与订阅服务器的连接的选择按钮,进入设置界面 

 10,按照图中所示进行设置,SQL Server登录名和密码即为当前数据库的登录名和密码,设置完成点击【确定】,返回到上一界面,然后点击【下一步】

 11,同步计划的设置,点击代理计划框,出现下拉框,选择需要的方式,完成设置点击之后【下一步】

 12,初始化的设置,点击初始化时间设置框,出现下拉框,选择需要的初始化时间,完成设置点击【下一步】

 13,其他选项全部默认,点击直接【下一步】

 

14,点击完成,等待订阅的成功提示 

 至此,目标服务器端的订阅也成功配置。

以上发布和订阅同时完成之后,只要保证服务器之间的连接畅通,则数据会实时的实现同步。

以上只是一对一的服务器之间的数据同步,一个服务器同时订阅多个发布会有冲突,比如服务器1的甲数据库有一个表一,服务器2的乙数据库有一个表B,需要将数据库阿中表一的数据和数据库乙中表b的数据汇总同步到服务器3的数据库的ç表中,A,b,C三个表的结构需要完全相同,在的服务器3单独订阅服务器1时,数据可以顺利同步,当同时订阅服务器1和服务器2的时候,在同步服务器1的数据时没有问题,在同步服务器2的时候,会自动覆盖掉服务器1的数据。

3 发布和订阅过程中的可能遇到问题及解决方案
在发布和订阅的创建过程中,往往会因为电脑的设置原因,而出现各种各样的问题,在这里整理一下最常见到的问题,并提供一些解决方案

1

问题:新建发布或者订阅,提示“无法连接到服务器,需要有实际的服务名才能连接到服务器”,

解决方案:该问题是因为使用了IP地址登录服务器导致的,需要使用实际的服务名登录服务器,具体的名称查看方法:【右键我的电脑】 - “【属性】即可查看到计算机名,使用该名称连接服务器即可

 


--------------------- 
作者:Rand_Muse 
来源:CSDN 
原文:https://blog.csdn.net/rand_muse/article/details/81326879 
版权声明:本文为博主原创文章,转载请附上博文链接!

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值