赞
踩
在MySql已经主从同步的后,由于有新的需求再增加1个历史数据库,要改原来的1个变成现在的2个数据库。在官网并没有找到类似的场景(官方同步多个数据是从一开始就设置,不是后续增加的),只能结合以往的经验自己做实操。
注意:一定要备份所有相关数据库。
stop slave
mysqldump -u root -p xxxdb > xxxdb0426.sql
传送到次库的服务器
按正常的流程是在从库导入历史数据,后面配置好主库启动同步。但在这里不操作先导入库。看后面流程。
只要修改/etc/my.cnf 配置项目,增加要同步的历史数据库,配置文件有两种写法,如下图:
binlog-do-db = 原来数据库名,新数据库名称
binlog-do-db =数据库1名称
binlog-do-db =数据库2名称
重启数据库
service restart mysql
如下图:
在主库上查看配置效果:
SHOW MASTER STATUS;
mysql生启后配置文件生效,已有两个数据库,如下图:
定位一下上图的mysql-bin.000085文件,看了文件非常小 ,会不会和其它日记文件不同?
我们看一下mysql-bin.000085文件的内容:
mysqlbinlog mysql-bin.000085
从内容上看,和别的数据文件完全不同
首先行 PSEUDO_SLAVE_MODE
参数为 1 模拟从库的行为,通常在从库模拟或测试复制流程时使用。
说明mysql-bin.000085这个和其它的数据文件是不同的,正常情况应该是个数据日记文件,会有相关sql日记,如果是这样子,我们可再回到第2步的操作:从库导入后开始同步即可。现在和想像中的不一样,那先不要导入从库,直接同步操作试试。
start slave
最后查看数据,第1个数据库和第2个数据库数据表正常同步。
如查同步后,发现少了部分数据(少的是历史数据),只需执行导入最新数据库备份后再同步。
MySql相关文章:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。