Posted on 2011-06-29 10:01
云自无心水自闲 阅读(689)
评论(0) 编辑 收藏 所属分类:
MySQL
mysql数据复制的一个非常有用的选项。
大部分情况下,我使用两个mysql数据库双向复制。 结构大致如下: A <==> B
但是,现在有了新需要,要求在另一个机器上复制出生产环境的所有数据,但是这些数据的复制是单向,也就是说数据只会从生产环境复制到新的服务器上,而所有新数据库的数据变化不会复制到生产环境中。
新的结构大致如下: A <==> B --> C (新的服务器)
设置数据单向复制的步骤其实非常简单,只要在新的服务器(也就是slave端)指定master的
1,在服务器端B,先stop slave;
2, show master status, 记录文件名和position
3,backup the whole database
4,start slave
5, 在slave端,restore database
6, change master ....
到目前为止,看上去一切都进展顺利,但是马上我就发现slave端只有服务器B的数据。因为服务器B没有把从服务器A中复制过来的数据记录到日志中。
所以,slave C就无法得到此部分数据。
后来,经过网上搜索发现有一个选项 -log_slave_update,可以让服务器B记录此部分数据。
实践中,在服务器B中加入此选项后,机器C中就能够获得所有的数据。