MariaDB社区
标题:
不同地域服务器MySQL数据库之间更新数据同步方案讨论
[打印本页]
作者:
kider
时间:
2012-5-16 11:21
标题:
不同地域服务器MySQL数据库之间更新数据同步方案讨论
出处:mysqlpub.com
一个朋友的问题。
环境:
A(windows 2008 core r2+mysql 5.6) 主要服务器,会有更新数据。
B(windows 2008 core r2+mysql 5.6) 分发服务器,把A中的更新数据同步过来,再分发给其他服务器。
现在的问题是如何把A中的更新(包含DB数据和磁盘文件),同步到B中来。
需求:
1、同步增量数据,可以是网络也可以是离线方式
2、保证数据一致性
3、有数据库数据+实际文件,也就是数据库中的数据库可能还会对应服务上的一些文件,要一起同步。
4、主要是更新几个表,做增量更新,现在的问题是怎么样可以计算时间,把想要时间内的导出,导入时在原有的基础上增加?
5、只增量相关的几个表,是要在一个系统的数据库中把近期发布的信息导出,更新到另一个数据库中,有两种方式,一种是只导和文章标题 、内容等信息相关的表,如果有其它的需要,可以选择同时导出其它的表,就是导出时可以选择。
作者:
kider
时间:
2012-5-16 11:25
我的建议是:
方案一
如果A与B之间有网络互通,哪怕就是每天或每周的限时互通,那么就可以用MySQL同步机制(MySQL Replication )实现,方便快捷,有数据库来保证数据的一致性。 把B配置成A的slave机器,联机一次就同步一次,自动同步,或手动start slave。
如果A、B之间不能有网络的互通,且在异地,只能用中间介质传递,那么大体思路是:主要分清楚那些是增加(如多表多数据)即可,记录下,导入到B中。
方案二
具体可用mysqldump加where参数,导出更新的数据 + 关联的文件,如.
mysqldump --where=name Dump only selected records. Quotes are mandatory.
方案三
如果就分不出来数据表中的数据那些是更新的,那么就用触发器,在数据库中建立几个触发器,把需要同步的表数据触发到一个新表中,每次都只导出这个触发后的表,然后导入B,导入时也可以选择性导入。
如
DELIMITER $
DROP TRIGGER /*!50032 IF EXISTS */ `ha`.`tr_ttt`$
CREATE
/*!50017 DEFINER = 'root'@'%' */
TRIGGER `tr_ttt` BEFORE INSERT ON `content`
FOR EACH ROW BEGIN
IF ( new.a IS NOT NULL ) THEN
INSERT INTO b(a) VALUES(new.a);
END IF;
END;
$
复制代码
当然如果表多更新多,整个机制是需要脚本配合...
方案四
如果还考虑表结构变化和数据变化,或什么都不想考虑,A和B就几乎是完全一样,那么就用binlog同步。
把A库中的binlog复制下来,直接拿到B中导入即可。
具体,
A上,flush logs;会产生一个新的binlog文件(记录从此刻开始以后的更新),你就可以放心的把从这个新文件之前的binlog拷贝下来,到上次的记录点(要分清楚,不然会有重复导入)。
B上,导入 mysql -uxxx -pxxx DB < binlog(A上拷贝出来的) (至于MySQL的binlog在那里长什么样查查资料即可)
好处:从目前应用场景来看,比较符合,而且这样做出错率少,操作简单,适应性强(包括一切A上的变更)。
作者:
s7765991
时间:
2012-6-20 22:56
1. 想要实现的功能 比如一台服务器上面有A和B两个数据库 每个数据库下面有两种类型的表
比如:
a_jia_xxx
a_yi_xxx
比如A经常更新。。。B同步A (即B的数据从A中来)
但是B只需要同步A库下面的jia前缀的表(yi的不要)。。。
请教大家如何实现这个功能。。
2.能不能实现直接镜像。。。。 比如B站点的jia表其实自己是没有的。。直接用A站点的jia表。这个可以省下一倍的数据空间。。。。。。。。
3.如果A跟B不在一个服务器。。这两种功能又要如何实现??
希望能通过phpmyadmin实现这些功能。。。。菜鸟不懂命令。。只能图形管理工具。。。
作者:
kider
时间:
2012-6-21 10:51
你可以参考一下 楼上例子 ...
作者:
气质装饰情
时间:
2016-1-19 15:57
兰州尖锐湿疣医院
http://jiankang.hynews.net/nzym/lz/
合肥尖锐湿疣医院
http://jiankang.hynews.net/nzym/hf/
海口尖锐湿疣医院
http://jiankang.hynews.net/nzym/hk/
尖锐湿疣能治愈吗
http://dxb.cz001.com.cn/jrsy/
尖锐湿疣的治疗方法
http://dxb.cz001.com.cn/jrsy/ff/
尖锐湿疣的症状
http://dxb.cz001.com.cn/jrsy/zz/
尖锐湿疣是如何引起的
http://dxb.cz001.com.cn/jrsy/by/
尖锐湿疣属于性病吗
http://dxb.cz001.com.cn/jrsy/sxbm/
尖锐湿疣的传播方式
http://dxb.cz001.com.cn/jrsy/cbfs/
尖锐湿疣潜伏期
http://dxb.cz001.com.cn/jrsy/qfq/
欢迎光临 MariaDB社区 (http://123.56.88.72/)
Powered by Discuz! X3.2