下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、用触发器实现两个数据库之间相同表的同步 2008-06-13 14:20近日单位建立OA服务器,要实现两台服务器间数据库表的同步。一开始想采用订阅发布的模式,结果没有成功,连鸣大哥让我想一下怎么解决,结果我从网上找了用触发器实现的方法,觉得这种方法更适合我们的工作要求。OA服务器更新较少,如果采用定时备份的方法会浪费服务器的效率,用触发器就可以在数据库发生变化的时候及时更新两台服务器的数据。触发器的语法如下: Trigger on an INSERT, UPDATE, or DELETE statement to a table or view (DML Trigger) CREATE TRI
2、GGER schema_name . trigger_name ON table | view WITH <dml_trigger_option> ,.n FOR | AFTER | INSTEAD OF INSERT , UPDATE , DELETE WITH APPEND NOT FOR REPLICATION AS sql_statement ; .n | EXTERNAL NAME <method specifier ; > <dml_trigger_option> := ENCRYPTION EXECUTE AS Clause 对两个服务器之间的
3、表进行同步,首先要建立链接服务器。在 server1 上创建连接服务器,以便在 server1 中操作 server2,实现同步 exec sp_addlinkedserver 'server2','','SQLOLEDB','server2的数据库实例名或ip' exec sp_addlinkedsrvlogin 'server2','false',null,'用户名','密码' gotrigger的代码如下:假设远程服务器的表是oa_userset ANSI_NU
4、LLS ON set QUOTED_IDENTIFIER ON go CREATE TRIGGER Trigger_Add_user ON dbo.oa_user AFTER INSERT AS BEGIN SET NOCOUNT ON; set xact_abort on select * from inserted END按照网上的攻略所说,建立了上述的触发器,就可以当oa_user表进行插入操作的时候,本地服务器中的表也会有这条记录。但是在实际实施中,系统报了如下的错误。服务器: 消息 7391,级别 16,状态 1,行 1 该操作未能执行,因为 OLE DB 提供程序 'SQL
5、OLEDB' 无法启动分布式事务。 OLE/DB provider returned message: 新事务不能登记到指定的事务处理器中。在网上找了找关于7391的错误还有dtc无法启动的错误描述,发现造成这种情况的的原因很多。总结解决方法如下:一、确保 MSDTC 服务帐户 登录为 " 是 NetworkService 帐户。在运行对话框中,输入services.msc然后确定。在服务窗口,找到 DistributedTransactionCoordinator服务中检查登陆名为NetworkService 。 错误的情况是:登陆名为本地系统帐户,解决方式如下: 开始 ,
6、 依次 运行 。 在 运行 对话框中, 键入 cmd然后单击 确定 。 在命令提示符处, 键入 Net stop msdtc 要停止 MSDTC 服务。在命令提示符处, 键入 Msdtc uninstall 要删除 MSDTC。 在命令提示符处, 键入 regedit 要打开注册表编辑器。 在注册表编辑器, 找到以下项:HKEY_LOCAL_MACHINESOFTWAREMicrosoftMSDTC注册表项。删除该项。 退出注册表编辑器。 在命令提示符处, 键入 Msdtc install 要安装 MSDTC。 在命令提示符处, 键入 Net start msdtc 要启动 MSDTC 服务。
7、二、启用msdc以允许网络事务。点击开始-管理工具-组件-组件服务-计算机-我的电脑。右键-属性。找到msdtc选项。全部选中,验证的地方选择不需验证.最后确定生效。三、防火墙设定。dtc的端口是135,如果你打开了防火墙,就把135端口设为例外。四、更改hosts文件(此处注意没有扩展名)通常在c:windowssystem32driversetc里面。文件参考如下 = # Copyright (c) 1993-1999 Microsoft Corp. # # This is a sample HOSTS file used by Microsoft TCP/IP for Windows.
8、# This file contains the mappings of IP addresses to host names. Each # entry should be kept on an individual line. The IP address should # be placed in the first column followed by the corresponding host name. # The IP address and the host name should be separated by at least one # space. # # Additionally, comments (such as these) may be inserted on individual # lines or following the machine name denoted by a '#' symbol. # # For example: # 关键就是最后几行:前面写IP,后面写该电脑的名称。上面4中情况,我在实施中遇到了 第2种和第4种,由于本人小懒了下,把防火墙关闭了,没有测试第3种情况。网上关于hosts文件的说明很少,大多数说明都是关于前3种情况的,看了很多文章,才看见hosts这种情况,貌似是分布式回掉的时候要看本
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 深度解析(2026)GBT 33581-2017石油天然气工业 钻井液 固控设备评价
- (正式版)DB12∕T 875-2019 《城市配送体系建设指南 》
- 第4章 跨境电商支付
- 医疗数据安全治理:区块链技术框架
- 5 g k h【从基到通】一年级上册语文统编版
- 医疗数据安全挑战:区块链应对策略
- 医疗数据安全应急演练的法律法规适配性
- 医疗数据安全合规管理中的国际标准对接实践
- 胚胎分割课件
- 【9物(HY)第三次月考】亳州市蒙城县2025-2026学年九年级上学期第三次质量监测物理试卷
- 2025年海洋平台维护五年优化报告
- 辽宁省沈阳市皇姑区2024-2025学年七年级上学期期末道德与法治试卷
- 辽宁省盘锦市兴隆台区2024-2025学年九年级上学期期末数学试题
- 2026年动物检疫检验员考试试题题库及答案
- 中国淋巴瘤治疗指南(2025年版)
- 2026年企业所得税汇算清缴流程与申报技巧手册
- 2025年云南省人民检察院聘用制书记员招聘(22人)考试笔试模拟试题及答案解析
- 疗伤旅馆商业计划书
- 桥下空间施工方案
- 临床肿瘤诊疗核心技巧
- 地铁员工年终工作总结集合10篇
评论
0/150
提交评论