首页 新闻 会员 周边 捐助

数据库同步问题

0
悬赏园豆:5 [待解决问题]

目前数据库中有一个A表,

A表有主键(自增) 等几个字段,

有数据会实时的添加进A表,

想检测到A表增加的数据  增加到另外一个数据库中的B表(字段一样),

让这2个表(A表与B表)数据同步,最好延迟时间少一点,

备注:2个表在不同服务器上  A表sqlserver B表mysql

l25321937的主页 l25321937 | 初学一级 | 园豆:27
提问于:2017-08-16 10:00
< >
分享
所有回答(9)
0

sqsqlserver有发布订阅可以用,或者最简单用触发器或者定时作业去轮询

hahanonym | 园豆:1460 (小虾三级) | 2017-08-16 10:08

2个表在不同服务器上 可以吗

支持(0) 反对(0) l25321937 | 园豆:27 (初学一级) | 2017-08-16 10:11

@l25321937: 都可以,发布订阅 教程 http://kb.cnblogs.com/page/103975/

触发器或者定时作业的话,需要跨服务器访问表,创建连接服务器,也不难。

参考 http://www.cnblogs.com/haocool/archive/2013/03/02/2940098.html

支持(0) 反对(0) hahanonym | 园豆:1460 (小虾三级) | 2017-08-16 10:16

@hahanonym:十分感谢  这样可以吗  A表sqlserver B表mysql 

支持(0) 反对(0) l25321937 | 园豆:27 (初学一级) | 2017-08-16 16:32

@l25321937: 可以,自己去测试

支持(0) 反对(0) hahanonym | 园豆:1460 (小虾三级) | 2017-08-16 18:13
0

触发器是最简单的.

吴瑞祥 | 园豆:29449 (高人七级) | 2017-08-16 10:10
0

这个要根据不同情况具体分析,有几种方案参考:

  1. 数据库A和数据库B是建立在两台独立的数据库服务器上,那么采用dblink方式是一种可行的方式,存在两个数据同步过程:

    一、数据库A正常运行的时候需要将数据同步到备用库即数据库B;

    二、数据库A不正常的时候启用数据库B,在数据库A恢复正常之前的数据更新都发生在数据库B,那么需要将数据库B的数据同步给数据库A。

  2. 第一种方式:前提是数据库A和数据库B本地网是24小时互通的同时对数据同步实时性有比较高的要求,那么可以建立DBLINK,在两个库都建触发器,不管当前在哪个库发生数据更新的时候实时同步数据到目标数据库;

  3. 第二种方式:如果数据同步的实时性要求不高,则可以通过定制存储过程的方式(给两个库的数据表加时间戳或者更新标志,)定时同步数据;

  4. 第三种方式:通过给两个数据库的数据表加更新标志字段,以第一种方式为主以满足实时性的要求,以第二种方式为辅弥补可能存在的触发器执行更新未成功的情况。

  5. 以上的方案都是从数据层面所做的处理,对于数据实时同步还是会存在一定的风险,那么双机热备应该说是最好的选择了。

金琥 | 园豆:2605 (老鸟四级) | 2017-08-16 10:21

还有利用SQLServer的同步复制技术,可以实现

---------------

以下转一些文章
http://database.51cto.com/art/201011/232870.htm

支持(0) 反对(0) 金琥 | 园豆:2605 (老鸟四级) | 2017-08-16 10:21
0

大伙儿都说完了,我也没啥好说的了。

用触发器+链接服务器,这样最省事。

西漠以西 | 园豆:1675 (小虾三级) | 2017-08-16 10:43
0

触发器最简单,但是不同的服务器,你能否访问,有没有权限,如果有权限其实就跟本机或局域网一样,程序判断,如果数据有变化就更新(同步)

男人要爽 | 园豆:6 (初学一级) | 2017-08-16 11:43
0

两个服务器上的数据库是什么关系,如果数据表数据什么的都是一样的,可以直接做主从,让数据库自己同步;

另外还有一种方法是通过程序做一个定时任务实现,新增一个表,用于记录每批次同步的最大id(mid1),下次同步的时候,取大于mid1的数据去同步,并记录本批次的最大id(mid2),如此循环,

苍枫露雨 | 园豆:1027 (小虾三级) | 2017-08-16 14:25
0

Service Broker

空明流光 | 园豆:111 (初学一级) | 2017-08-16 16:02
0

我们遇到相类似的问题,以一起讨论下,QQ350107791

chengeng | 园豆:294 (菜鸟二级) | 2017-08-17 09:07
0

最简单的办法,用数据库同步软件DBSync,它支持sqlserver与mysql之间的同步,支持异地同步,延迟为秒级。使用时,先指定双方各自是哪个表、字段如何对应、多久同步一次等,就会定时自动同步,非常简单。

bhguo | 园豆:208 (菜鸟二级) | 2024-04-20 21:22
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册