拼吾爱程序人生

首页 » 数据库编程 » SQL Server » 异地、异构数据库高效率同步解决方案(新)
cobra - 2008-9-6 8:37:00
以前写过一篇关于异构数据库数据同步的方案:《异地SQL Server与Oracle数据同步解决方案》,但后来发现这种方案有很大的局限性,只适合局域网和小数据量的同步。如果考虑到互联网传输和数据同步的实时性问题,那个方案显然是不适合甚至是没有价值的。

本文基于对旧方案的改进,实现了定时、定量异地、异构数据库的数据同步,这里先提出方案步骤,细节都比较容易理解,故源码就没必要放出了,不过欢迎有同样需求的朋友一起来探讨。

下面是实施步骤,该方案实现的是SQL Server向Oracle数据同步:

一、建立到目标服务器的链接通路(方法可以参照《异地SQL Server与Oracle数据同步解决方案》);

二、源机(SQL Server)创建存储过程作业定时发送第四步生成的SQL;

三、目标机创建存储过程作业接收第四步生成的SQL并定时执行;

四、这是本方案的核心:将传统的数据网络传输改成SQL网络传输,即同步的操作全部组合成SQL语句批量向目标机的临时表插入完成数据的间接写入,然后在目标机上执行SQL完成数据库操作达到数据同步的目的(有一点是此方案实现的基础:对数据库的四种基本操作中,插入是效率最高的,而修改和删除由于受查询条件所限,效率低下,尤其体现在互联网传输中);

总结起来就这么简单,实际操作中还有许多细节要注意,比如两地机器的作业时间需要经过测试来设置到最优,达到效率最大化等等,如有不详可以与我联系,希望对您有所帮助:)



(文/cobra  出处/拼吾爱程序人生)

 您可能对 [SQL Server] 的这些文章也感兴趣:

SQL Server2000安装手册(用于Windows版CAMS
SQL Server 7.0 入门(三)
SQL Server数据库内存会不断增加的问题分析
微软推预览版SQL Server 2005
SQL SERVER实用经验技巧集 [一]
如何使用 SQL Server 数据库查询累计值
SQL Server 用户定义的函数
Sql Server 2005 实现Oracle 10g 的hash表分区功能
选择MySQL还是SQL Server
利用索引提高SQL Server数据处理的效率
licaiks - 2008-9-11 17:47:00
和我以前想的一样!只不过我当时打算是用winform来实现,因为我们只需要对一张表进行操作,所以我打算建一张临时表,同时加一个字段:操作类型,用触发器将用户的操作的数据记录下来,同时确认用户是插入,更新还是删除,然后在客户端生成sql语句,同时发送到服务器端,然后由服务器段来执行这些sql语句!:default6:
cobra - 2008-9-11 20:58:00
你小子想的还真多:default1:
zhangzxy161723 - 2008-10-10 9:04:00
小弟第一次接触,能不能给点详细的介绍,步骤。急!!!:default7:
zhangzxy161723 - 2008-10-10 9:05:00
我的邮箱是[email]zhangxiangyang.bupt@gmail.com[/email]
cobra - 2008-10-10 9:07:00
步骤就按照上面说的来啊,你有什么不清楚的具体说一下
zhangzxy161723 - 2008-10-13 10:02:00
这个方案步骤我看得不是很懂,对于它学要的细节操作不太清楚,不知道它和:《异地SQL Server与Oracle数据同步解决方案》里面的具体实施步骤是怎么对应的?还有第二第三步的存储过程作业对应什么?怎么创建?第四步的数据网络传输改成SQL网络传输是怎么改的?

能贴出来具体实施过程(像上一篇)就很好了。

小弟是新手,所以还请大虾多多赐教。:default5:
cobra - 2008-10-13 10:07:00
这个方案是针对互联网应用的,旧方案只适合局域网数据同步。
我抽空把存储过程和作业创建步骤帖上来:)
licaiks - 2008-10-13 13:07:00
还等以后!
现在就贴出来撒:default4:
zhangzxy161723 - 2008-10-15 14:46:00
急!等待中!!!......................................
cobra - 2008-10-15 21:15:00
晕,昨晚换了服务器,资料在旧服务器上,我去找回来,,,
cobra - 2008-10-16 12:26:00
下面是执行SQL和PROCEDURE,希望你能看懂,因为部分涉及具体表字段,所以不是很好解释清楚,你根据注释理解吧:
SQLSERVER服务器,这里有传送机和生产机,传送机用于和目标ORACEL服务器数据传输,生产机是生产数据库所在机:
传送机(IP假设144):
proc:

Code


生产机(IP假设为200)
proc:

Code


trig(组合SQL):
customerinfo表:

Code


1
查看完整版本: 异地、异构数据库高效率同步解决方案(新)
Modify by pin5i DZNT_ExpandPackage 2.1.3258 2007-2008 pin5i.com
  Total Unique Visitors: