现在的位置: 首页 > 综合 > 正文

实现SQL Server数据同步更新-均为SQL Server服务器

2018年04月09日 ⁄ 综合 ⁄ 共 2680字 ⁄ 字号 评论关闭

实现SQL Server数据同步更新-均为SQL Server服务器

Windows Xp环境下,实现两台SQL Server数据同时更新,详细步骤:

1、           DB Server 环境 

SQL Server安装版本为SQL Server 2000 SP4
 Windows XP OS

2、           运行Services.msc,查看DTC(Distributed Transaction Coordinator)服务

A)           启动DTC服务

B)           属性->登录选项卡->确保登录名为(NT AUTHORITY/ NetworkService

1.      如登录身份为 <本地系统>

2.      运行CMD->NET STOP MSDTC->MSDTC uninstall(删除MSDTC

3.      Regedit->查找并删除 HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/MSDTC

4.      运行CMD->MSDTC Uninstall(安装MSDTC

5.      运行CMD->NET START MSDTC

6.      CHECK MSDTC登录身份为 NetworkService 帐户

3  运行Dcomcnfg.exe 打开组件服务(控制面板->管理工具->组件服务)

      展开组件服务->计算机->我的电脑->属性->MSDTC->事务配置(安全性配置)

安全配置 对话框中, 单击以 选中网络 DTC 访问 复选框

要允许分布式事务在此计算机上运行从远程计算机, 请单击以选中 允许入站 复选框

要允许分布式事务在远程计算机上运行从此计算机, 请单击以选中 允许出站 复选框

事务管理器通信 , 下单击以选择 不要求进行验证 选项

安全配置 对话框中, 单击 确定

       确定即可

4、           运行Firewall.cpl(运行防火墙)

选中 例外 选项卡->添加程序->浏览找到MSDTC.exe文件(默认路径:Drive/windows/system32->程序和服务列表中选中MSDTC->添加端口

->端口号文本框中输入:135->选择TCP选项->名称对话框输入 异常名称->确定

当然关闭防火墙也可

5、           运行regedit->HKEY_LOCAL_MACHINE/SOFTWARE/MICROSOFT/MSSQLSERVER/PROVIDERS/SQLOLEDB->除了’AllowInProcess’键值为1,其余均为0

利用Linked Server实现Trigger同步更新

1 建立Linked Server

         AEnterprise Management

              Local SQL Server->安全性->链接服务器->右键(新建链接服务器)

 

         B)T-SQL

EXEC sp_addlinkedserver 'test','','SQLOLEDB','test',null,'driver={sql server};server=ipaddress;uid=sa,pwd=;'  建立Linked Server

@server = 'server'                             -------常用
@srvproduct = 'product_name'                -------
常用
@provider = 'provider_name'                  -------
常用
@datasrc = 'data_source'                     -------
常用
@location = 'location'
@provstr =  'provider_string'
@catalog = 'catalog'

exec sp_serveroption N'test', N'rpc out', N'true'                                                                 配置Linked Server 选项

@server Linked server
@optname
RPC”或“RPC OUT
@optvalue True
False

exec sp_serveroption N'test', N'rpc', N'true'

exec sp_addlinkedsrvlogin 'test','False',null,'sa',''                                                                添加Login

@rmtsrvname Linked server
@useself True
False
@locallogin
本地LOGIN
@rmtuser
远程用户
@rmtpassword
远程用户口令

3、           Trigger编写

A)建立好Linked Server,在查询分析器中Test

Select * from [Linked Server Name]. [DB Name]. dbo. [Table Name]

Insert into [Linked Server Name]. [DB Name]. dbo. [Table Name] Values(‘’,’’,’’,’’,……)

B) Local Table 上建立Trigger

CREATE TRIGGER TR_insert ON [dbo].[Local_Table]

FOR INSERT

AS

begin

set xact_abort on

             insert into [Linked Server Name]. [DB Name]. dbo. [Table Name]

                       select * from inserted

end

 

利用OpenRowSet()函数实现Trigger同步更新

直接编辑Trigger(保证MSDTC可用)

CREATE TRIGGER TR_insert ON [dbo].[Local_Table]

FOR INSERT

AS

begin

set xact_abort on

              insert into openrowset('MSDASQL','DRIVER={SQL Server};SERVER=IP Address ;UID=sa;PWD=sa Password', Northwind.dbo.test)

                       select * from inserted

end

 

抱歉!评论已关闭.