欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

SQL不同服务器数据库之间数据操作(当在一个服务器的某张表中有数据更新时,将更新值通过触发器插入到另一个服务器的指定表中)

程序员文章站 2022-03-21 09:01:47
...

第一步:在建立触发器的服务器上创建链接服务器

创建链接服务器有两种方法:1.通过SQL语言建立,2.通过数据库管理工具建立,下面分别进行详细介绍:
1.通过SQL语言建立
通过SQL语言建立链接服务器方法
2.通过数据库管理工具建立(这里以SQL SERVER 2012英文版为例进行介绍)
打开数据库管理工具,点击Server Objects->Linked Servers,选中Linked Servers右键选择New Linked Server弹出如下图1-2所示的New Linked Server对话框,在Linked Server后填入连接服务名,Server Type选择Other data source,Data source 后面填入要连接数据库的IP地址;点击Security选项卡进入如图1-3所示页面,在该页面中按图中选择进行操作,在Remote Login和With passWord后分别填入登录名和密码即可。此时在Linker Server下就会出现你所建立的链接服务的名字,选中链接服务名右键点击Test connetion会弹出连接成功对话框如下图1-4所示,至此链接服务器建立完毕。
SQL不同服务器数据库之间数据操作(当在一个服务器的某张表中有数据更新时,将更新值通过触发器插入到另一个服务器的指定表中)

                         图1-1

SQL不同服务器数据库之间数据操作(当在一个服务器的某张表中有数据更新时,将更新值通过触发器插入到另一个服务器的指定表中)
图1-2

SQL不同服务器数据库之间数据操作(当在一个服务器的某张表中有数据更新时,将更新值通过触发器插入到另一个服务器的指定表中)
图1-3
SQL不同服务器数据库之间数据操作(当在一个服务器的某张表中有数据更新时,将更新值通过触发器插入到另一个服务器的指定表中) 图1-4

第二步:根据自己需要建立触发器

建立触发器的方法这里不再叙述,请网上自行查找资料。

第三步:将分布式事务用于服务器到服务器的通信打开

打开双方服务器,再打开SSMS,右击数据库服务器属性,在连接选项卡勾选”需要将分布式事务用于服务器到服务器的通信.”如下图3-1所示, 重启双方数据库服务
SQL不同服务器数据库之间数据操作(当在一个服务器的某张表中有数据更新时,将更新值通过触发器插入到另一个服务器的指定表中)图3-1

第四步:对本地机器与目标机器的MSDTC(Distributed Transaction Coordinator)服务进行设置并开启服务

1.设置MSDTC
打开“管理工具――组件服务”,依次打开“组件服务――计算机 – 我的电脑 — distributed transaction coordinator –本地DTC上右键属性安全选项卡上设置:选中“网络DTC访问”。在客户端管理中选中“允许远程客户端”“允许远程管理”,在事务管理通讯中选“允许入站”“允许出站”“不要求进行验证”,保证DTC登陆账户为:NT Authority\NetworkService。
SQL不同服务器数据库之间数据操作(当在一个服务器的某张表中有数据更新时,将更新值通过触发器插入到另一个服务器的指定表中)图4-1
2.开启MSDTC服务
注意:启动类型一定要设置为自动,不然每次服务器关机重启后该服务不会自动重启。
SQL不同服务器数据库之间数据操作(当在一个服务器的某张表中有数据更新时,将更新值通过触发器插入到另一个服务器的指定表中)

第五步:检查两台主机能否相互ping通Hostname

检查两台机器能够相互ping通Hostname。注意是机器名,而不是IP。若不可以,进行如下设置:在目录“C\windows\system32\drivers\etc”下的hosts文件,写上IP和HostName的对应信息,如 “10.25.11.185 GSMAJK”。另外,你也可以使用DTCping工具来测试是否可以在两台机器之间使用MSDTC。

第六步: 打开双方135端口

MSDTC服务依赖于RPC(Remote Procedure Call (RPC))服务,RPC使用135端口,保证RPC服务启动,如果服务器有防火墙,保证135端口不被防火墙挡住。 使用“telnet IP 135 ”命令测试对方端口是否对外开放。也可用端口扫描软件(比如Advanced Port Scanner)扫描端口以判断端口是否开放。(注意win7默认telnet功能没打开,请先打开telnet功能才能进行测试)

第七步:允许msdtc服务通过防火墙

通过点击【允许运行另一程序】按钮添加,位置为C:/windows/system32/msdtc.exe。或者直接关闭防火墙也可以。
SQL不同服务器数据库之间数据操作(当在一个服务器的某张表中有数据更新时,将更新值通过触发器插入到另一个服务器的指定表中)