mysql如何只同步不同机上,不完全相同DB的其中一张表

时间:2021-06-07 21:42:54
由于数据太多,我用了两台服务器,用于存放相同DB的不同表。但其中一张表是两个DB共用,数据非常少,为了查询方便,只得两边都放一张,这里就存在一个同步的问题

共用表我只更新其中一台服务器,另一台服务器进行同步即可。考虑过用master、slave来做,在master端开DB的binlog,slave端只同步共用表。但由于master端的binlog过大,所以此方案不可行

我现在只能定时用mysqldump来搞一下,保证两边同步,但非常不实时,还会造成前端出问题

不知道兄弟们有没有其它更好的办法

7 个解决方案

#1


引用
但其中一张表是两个DB共用,数据非常少


你可以做一个每5分钟的定时,把A机上的表sqldump 出来,然后导入到B机上。5分钟不行的话,就再减少时间间隔。

#2


定时删除master上的binlog不行吗

binlog已久的数据都是没什么大用处的

#3


关键是,binlog很大,一个小时1G还多,会影响DB的性能

#4


试下master-slave中的  replicate-do-table选项

#5


引用 4 楼 vinsonshen 的回复:
试下master-slave中的replicate-do-table选项
mysql如何只同步不同机上,不完全相同DB的其中一张表

#6


mysql 的binlog不能随便删,删了让你好看啊。

#7


删除 关闭BIN_LOG 然后重新开启

#1


引用
但其中一张表是两个DB共用,数据非常少


你可以做一个每5分钟的定时,把A机上的表sqldump 出来,然后导入到B机上。5分钟不行的话,就再减少时间间隔。

#2


定时删除master上的binlog不行吗

binlog已久的数据都是没什么大用处的

#3


关键是,binlog很大,一个小时1G还多,会影响DB的性能

#4


试下master-slave中的  replicate-do-table选项

#5


引用 4 楼 vinsonshen 的回复:
试下master-slave中的replicate-do-table选项
mysql如何只同步不同机上,不完全相同DB的其中一张表

#6


mysql 的binlog不能随便删,删了让你好看啊。

#7


删除 关闭BIN_LOG 然后重新开启