ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

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

2021-06-07 13:56:28  阅读:115  来源: 互联网

标签:订阅 同步 数据库 点击 实时 发布 服务器


下载网站:www.SyncNavigator.CN  客服QQ1793040
----------------------------------------------------------


关于HKROnline SyncNavigator 注册机价格的问题

 

HKROnline SyncNavigator 8.4.1 非破解版 注册机 授权激活教程

 

最近一直在研究数据库同步的问题,在网上查了很多资料,也请教了很多人,找到了一种通过快照复制的方法。研究了一番后发现之前就是用的这个方法,效果不是很好,果断放弃。经过了一番寻觅和他人指点,最后从一位热心网友那里得知一款很好用的软件—— SyncNavigator。

好东西就要拿出来跟大家分享,所以今天向大家介绍一下这款软件,及其一些使用方法。下面先看看它有什么强大的功能吧!

SyncNavigator的基本功能:

自动同步数据/定时同步数据
无论是实时同步/24小时不间断同步,还是根据计划任务(每小时/每日/每周/等)定时自动同步都能完全胜任。

完整支持 Microsoft SQL Server
完整支持 Microsoft SQL Server 2000 2005 2008 数据库类型。并能在不同数据库版本之间相互同步数据。

支持 MySQL 4.1 以上版本
支持 MySQL 4.1 5.0 5.1 5.4 5.5。并能在不同数据库版本之间相互同步数据。

无人值守和故障自动恢复
当数据库故障或网络故障以后,无需人工干预(或操作)自动恢复同步并确保数据完全准确,可靠。

同构数据库同步/异构数据库同步
SQL Server to SQL Server, MySQL to MySQL, SQL Server to MySQL 等都能轻松实现。

断点续传和增量同步
当同步完成(或中断)后,再次同步时能继续上一次的位置增量同步,避免每次都需要从头开始的问题。

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

大抵的方法有三种:

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地址登录服务器导致的,需要使用实际的服务名登录服务器,具体的名称查看方法:【右键我的电脑】 – “【属性】即可查看到计算机名,使用该名称连接服务器即可

2

问题:新建发布或者订阅,提示“SQL Server复制需要有实际的服务器名称才能连接到服务器,不支持通过别名,ip地址或其他任何备用名称进行连接。请指定实际的服务器名称”xxxx“”

解决方案:该问题是由于更改计算机名称导致的。如果遇到此问题,则复制下面的SQL语句到数据库中执行

select @@servername
select serverproperty(‘servername’)
执行以上两句代码,结果如上图所示,如果两个结果的名称不一致,则需要修改,修改代码如下:

if serverproperty(‘servername’) <> @@servername
begin
declare @server sysname
set @server = @@servername
exec sp_dropserver @server = @server
set @server = cast(serverproperty(‘servername’) as sysname)
exec sp_addserver @server = @server , @local = ‘LOCAL’
End
执行以上代码,执行成功以后,需要重新启动SQL Server(MSSQLSERVER)服务,然后重启之后再使用一下代码查询。

select @@servername
select serverproperty(‘servername’)
结果显示查询结果一致,则该问题解决。

3

问题:在创建发布的最后一步,提示一个警告,显示“SQL Server无法启动快照代理”

解决方案:该问题是由于SQL服务器的一个服务没有启动导致的打开SQL服务器的配置管理器,查看SQL服务器的代理服务是否启动,如果没有启动,则启动该程序即可

暂时遇到的这几种问题,以后遇到的在做补充。

标签:订阅,同步,数据库,点击,实时,发布,服务器
来源: https://blog.51cto.com/u_14989677/2875575

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有