触发器实现跨服务器

原文:http://blog.sina.com.cn/s/blog_59c41d0d0100esja.html

最进在做项目时遇到了一个比较棘手的问题,有两个数据库分别部署在不同的服务器上,系统要求两个服务器实现数据同步操作即热备份,于是就不能不用到SQL触发器这一武器了,当初也考虑了几种解决方案:比如程序中同时操作两个库或写一个外挂程序执行数据库定时任务,但这些方案需要频繁的连接数据库,特别是有张实时数据的表,每天都会产生海量的数据,程序中频繁定时的查询操作势必严重影响系统运行效率,都没有触发器批处理语句来的更直接些,所以最终决定使用触发器实现。

对触发器操作我们一般在同一库中表用的表频繁,不同的跨数据库操作就比较少,现在要实现跨服务器执行触发器操作,简直不感想象,仔细研究了一下,原来触发器跨服务器是可以的。

首先:在SQL中执行以下存储过程语句:
exec sp_addlinkedserver 'RemoteServer ', ' ', 'SQLOLEDB ', '192.168.18.23' ---创建服务器连接
exec sp_addlinkedsrvlogin 'RemoteServer ', 'false ',null, 'sa', '123456789' --创建登陆
sp_dropserver 'RemoteServer ','droplogins'--删除服务器连接和登陆
说明:执行系统存储过程 sp_addlinkedserver添加远程服务器,参数RemoteServer 是为远程服务器取的引用名,可随便写;'192.168.18.23' 为你要操作的远程服务器地址,执行系统存储过程 sp_addlinkedsrvlogin 添加远程服务器登录身份验证,调用sp_dropserver可移除远程服务器注册信息。参数'RemoteServer 和'droplogins'也可只写一个。

其次:做好上一步准备之后还需要将服务中远程分布式服务启动,以实现SQL跨服务器操作,这是微软在实现远程服务器所必需的。右键点击“我的电脑”--“管理”--“服务和应用程序”--“服务”---启动“Distributed Transaction Coordinator”服务,启动分布式服务后还要打开远程服务器以及本地服务器135端口,因为远程分布式服务需要该端口通讯。
1:打开“控制面板”--“管理工具”--“组件服务”
2:在“计算机”下右击“我的电脑”--“属性”--选择“MSDTC”选项卡
3:点击“安全性配置”按钮,
4:网络DTC访问勾选上,允许远程客户端,允许远程管理,允许入站,
允许出站,不要求身份验证勾选上。
注意:以上步骤需要两台服务器都要配置。

到此位置配置准备工作就可以完成了,下面就可以写一个触发器去执行操作远程服务器上的表了。这样本地服务器上的每一个数据操作增删改都会及时同步到远程服务器数据库中。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这个PDF文件是我花钱买来的,现在为了挣积分,拿出来与大家分享!! 本书深入浅出地介绍了目前世界上最受欢迎的数据库管理系统之一——SQL Server。全书共分三个部分:第一部分阐释了数据库的基本概念,讲解了数据库建模语言;第二部分展示了从概念建模到在SQL Server 2008上真正实现数据库的过程;第三部分深入探讨了SQL Server若干方面的技术细节,如数据保护、索引、并发访问等。通过将理论融入数据库实践,清晰地讲解了关系型数据库的设计原则,完整地展示了如何进行良好的关系型数据库设计,深入揭示了SQL Server 2008的技术细节。   本书浓缩了作者作为SQL Server数据库架构师多年来丰富的实践经验,适合各类数据库开发和管理人员学习参考 目录 第1章 数据库概念简介  1.1 数据库设计阶段   1.1.1 概念阶段   1.1.2 逻辑阶段   1.1.3 实现阶段   1.1.4 物理阶段  1.2 关系数据结构   1.2.1 数据库和模式   1.2.2 表、行和列   1.2.3 信息原则   1.2.4 域   1.2.5 元数据   1.2.6 键   1.2.7 未显式赋值的项(NULL)  1.3 实体之间的关系   1.3.1 二元关系   1.3.2 非二元关系  1.4 数据访问语言(SQL)  1.5 理解依赖性   1.5.1 函数依赖性   1.5.2 判定  1.6 总结 第2章 数据建模语言  2.1 数据建模介绍  2.2 实体  2.3 属性   2.3.1 主键   2.3.2 替代键   2.3.3 外键   2.3.4 域   2.3.5 命名  2.4 关系   2.4.1 识别性关系   2.4.2 非识别性关系   2.4.3 角色名字   2.4.4 关系基数   2.4.5 动词短语(关系名字)  2.5 描述信息  2.6 其他建模方法   2.6.1 信息工程   2.6.2 Chen ERD   2.6.3 Visio   2.6.4 Management Studio数据库关系图  2.7 最佳实践  2.8 总结 第3章 概念阶段数据建模  3.1 理解需求  3.2 文档化过程  3.3 需求收集   3.3.1 客户访谈   3.3.2 要回答的问题   3.3.3 现存的系统和原型   3.3.4 其他类型的文档  3.4 识别对象和过程   3.4.1 识别实体   3.4.2 实体间关系   3.4.3 识别属性和域  3.5 识别业务规则和业务过程   3.5.1 识别业务规则   3.5.2 识别基础业务过程  3.6 完成概念模型   3.6.1 识别明显的、额外的数据需求   3.6.2 和客户一起评审   3.6.3 重复以上步骤直到客户同意你的模型  3.7 最佳实践  3.8 总结 第4章 规范化过程  4.1 为什么要规范化   4.1.1 消灭重复数据   4.1.2 避免编写不必要的代码   4.1.3 给表瘦身   4.1.4 最大化聚集索引的使用   4.1.5 降低每张表中索引的数量  4.2 规范化应该走多远  4.3 规范化过程  4.4 实体和属性的形式:第一范式   4.4.1 所有属性必须是原子的   4.4.2 实体的所有实例必须包含相同数量的值   4.4.3 实体中出现的所有实体类型都必须不同   4.4.4 第一范式所避免的不规则编程   4.4.5 当前设计不符合第一范式的线索  4.5 属性间的关系   4.5.1 第二范式   4.5.2 第三范式   4.5.3 Boyce-Codd范式  4.6 实体中的多值依赖   4.6.1 第四范式   4.6.2 第五范式  4.7 非规范化  4.8 最佳实践  4.9 总结  4.10 额外的例子  4.11 本书迄今为止所讲述的故事 第5章 实现基础的表结构  5.1 评审逻辑设计  5.2 变换设计   5.2.1 选择名字   5.2.2 处理子类型   5.2.3 决定树的实现方式   5.2.4 选择键的实现方式   5.2.5 决定域的实现方式   5.2.6 设置模式   5.2.7 评审“最终的”实现模型  5.3 实现设计   5.3.1 创建基本表结构   5.3.2 添加唯一性约束   5.3.3 构建默认约束   5.3.4 添加关系(外键)   5.3.5 处理排序规则和排序   5.3.6 计算列   5.3.7 实现用户定义的数据类型   5.3.8 文档化你的数据库   5.3.9 处理依赖信息  5.4 最佳实践  5.5 总结 第6章 保护数据的完整性  6.1 最佳实

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值