下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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淮安泳池设备安装工程公司商用别墅泳池一站式施工
- 4-氨基吲哚及其衍生物合成路径与机理的深度剖析
- 3D芯片BIST设计方法:原理、挑战与创新实践
- 300MW机组过热汽温系统:建模解析与先进控制算法探究
- 22nm及其以下技术代接触孔模块工艺集成:挑战、突破与展望
- 2010年上海世博会人事管理制度:改革创新与时代意义
- 输血知识培训试题及答案
- 消毒隔离知识培训考试试题及答案
- 重点业务合规审查管控办法
- 幼儿园保安考试试题及答案
- 全球及中国医药喷雾泵市场竞争风险及供需前景预测研究报告
- 四川省水电投资经营集团有限公司所属电力公司2026年员工公开招聘(221人)考试备考试题及答案详解
- 动画运动规律
- 上海八年级上册数学-二次根式的乘法和除法 同步练习
- 胸痹常用中医护理技术详解
- 消防阀门更换施工方案(3篇)
- 《方法系统论》教材
- 湖南钢铁集团秋招面试题及答案
- 2021建筑隔震设计标准
- 《再生工业盐 氯化钠(征求意见稿)》
评论
0/150
提交评论