sqsqlserver有发布订阅可以用,或者最简单用触发器或者定时作业去轮询
2个表在不同服务器上 可以吗
@l25321937: 都可以,发布订阅 教程 http://kb.cnblogs.com/page/103975/
触发器或者定时作业的话,需要跨服务器访问表,创建连接服务器,也不难。
参考 http://www.cnblogs.com/haocool/archive/2013/03/02/2940098.html
@hahanonym:十分感谢 这样可以吗 A表sqlserver B表mysql
@l25321937: 可以,自己去测试
触发器是最简单的.
这个要根据不同情况具体分析,有几种方案参考:
数据库A和数据库B是建立在两台独立的数据库服务器上,那么采用dblink方式是一种可行的方式,存在两个数据同步过程:
一、数据库A正常运行的时候需要将数据同步到备用库即数据库B;
二、数据库A不正常的时候启用数据库B,在数据库A恢复正常之前的数据更新都发生在数据库B,那么需要将数据库B的数据同步给数据库A。
第一种方式:前提是数据库A和数据库B本地网是24小时互通的同时对数据同步实时性有比较高的要求,那么可以建立DBLINK,在两个库都建触发器,不管当前在哪个库发生数据更新的时候实时同步数据到目标数据库;
第二种方式:如果数据同步的实时性要求不高,则可以通过定制存储过程的方式(给两个库的数据表加时间戳或者更新标志,)定时同步数据;
第三种方式:通过给两个数据库的数据表加更新标志字段,以第一种方式为主以满足实时性的要求,以第二种方式为辅弥补可能存在的触发器执行更新未成功的情况。
以上的方案都是从数据层面所做的处理,对于数据实时同步还是会存在一定的风险,那么双机热备应该说是最好的选择了。
还有利用SQLServer的同步复制技术,可以实现
---------------
以下转一些文章
http://database.51cto.com/art/201011/232870.htm
大伙儿都说完了,我也没啥好说的了。
用触发器+链接服务器,这样最省事。
触发器最简单,但是不同的服务器,你能否访问,有没有权限,如果有权限其实就跟本机或局域网一样,程序判断,如果数据有变化就更新(同步)
两个服务器上的数据库是什么关系,如果数据表数据什么的都是一样的,可以直接做主从,让数据库自己同步;
另外还有一种方法是通过程序做一个定时任务实现,新增一个表,用于记录每批次同步的最大id(mid1),下次同步的时候,取大于mid1的数据去同步,并记录本批次的最大id(mid2),如此循环,
Service Broker
我们遇到相类似的问题,以一起讨论下,QQ350107791
最简单的办法,用数据库同步软件DBSync,它支持sqlserver与mysql之间的同步,支持异地同步,延迟为秒级。使用时,先指定双方各自是哪个表、字段如何对应、多久同步一次等,就会定时自动同步,非常简单。