17.1.1.8?Setting Up Replication with Existing Data设置复制使用存在的数据

17.1.1.8?Setting Up Replication with Existing Data设置复制使用存在的数据

当设置复制使用存在的数据,你需要确定如何最好的从master 得到数据到slave 在开始复制服务前:

基本的过程对于设置复制使用存在的数据如下:

1. 在MySQL master 运行时,创建一个用户被slave使用 当连接到Master 在复制期间

2.如果你没有配置server-id和启动binary logging 在master server上,你需要关闭它来配置这些选项



如果你需要关闭你的master server,这是一个很好的机会,来创建数据库的快照。

你可以得到master status在关闭master前,

更新配置和创建一个快照。


3.如果你的服务器已经配置正确,得到 它的状态 然后使用mysqldump 来创建快照 


4. 更新slave的配置

5. 下一步依赖如何创建master的快照数据


如果你使用mysqldump

a. 启动slave,使用e --skip-slave-start option 这样复制不会开始


b.导入dump文件


6.配置slave 的配置坐标从master, 这个告诉slave binary log 文件和位置 在文件里 ,复制的起点。


此外,配置slave 的认证机制和master的host name 。


7.启动SLAVE


在你执行这个过程中,slave 应该连接到master和捕获任何更新,在快照应用后的任何更新

如果你忘记设置server-id选项对于master,slaves不能连接到它

如果你忘记设置server-id 选项在slave上,你会得到下面的slave的错误日志:

Warning: You should set server-id to a non-0 value if master_host
is set; we will force server id to 2, but this MySQL server will
not act as a slave.


你也可以找到错误信息在slave的错误日志 如果不能复制由于任何其他原因


slaves使用信息存在在它的master info 库中来跟踪 master的binlog 已经处理的多少。



信息库可以是文件或者表, 通过设置--master-info-repository


当一个slave 运行 --master-info-repository=FILE,  你可以找到它的目录2个文件,

named master.info and relay-log.info.

如果 -master-info-repository=TABLE instead, 这些信息会保存到表master_slave_info 在mysql的数据库



在任何一种情况下, 不要删除或者编辑文件或者表 除非你准确知道你正在做什么和完全理解影响。


即使在这种情况下, 最好使用CHANGE MASTER TO 语句来改变复制参数。

slave可以使用 指定的值在语句里来更新状态文件。



注意:

posted @ 2016-07-21 14:21  czcb  阅读(135)  评论(0编辑  收藏  举报