关于MySQL Master-Slave-Slave设置的快速问题:
我目前正在设置Master-Slave,我想添加另一个奴隶。是否有可能克隆运行从属服务器的服务器,然后使用来自从属服务器的映像启动一个新服务器,并将其从中断的地方继续运行?因此,无论binlog在复制时是什么,它都会一直运行直到它赶上主机?
理想情况下 - 我正在尝试启动另一个连接到主服务器的从服务器,而无需关闭主服务器进行备份。任何建议或指导都会很棒。谢谢!
答案 0 :(得分:4)
是的,您可以关闭从属实例,并将其所有数据复制到另一个从属(包括日志)
不要忘记在第二个奴隶上编辑my.cnf
(您应该更改server-id
)
然后启动两个从属服务器
答案 1 :(得分:2)
是的,这是可能的。最好的方法可能是暂时暂停从属服务器上的复制,确定主二进制日志位置信息,然后在复制仍处于暂停状态时从副本服务器进行转储(并且副本服务器上没有其他数据正在更改)。转储完成后,您可以重新启动副本。
在新服务器上,只需安装转储,设置binlog坐标并启动复制。但要谨慎一点。确保清除主服务器上的二进制日志的设置允许保留二进制日志足够长的时间,以便您执行此设置过程并在清除bin日志之前捕获新的从服务器。
答案 2 :(得分:0)
这是一个关于如何为主服务器设置多个复制从属的好教程: http://arcib.dowling.edu/cgi-bin/info2html?%28mysql%29replication-howto
它没有解释您的方案,但提供了重要提示:您必须为第二个奴隶分配唯一的服务器ID。
关于你的问题:如果你的主人二进制日志保持足够长的时间,你不应该遇到麻烦。只需关闭奴隶片刻,克隆它并记下:奴隶的MASTER_LOG_FILE和MASTER_LOG_POS;然后重新启动原始从站并正确设置第二个从站:这意味着使用给定的MASTER_LOG_POS和* _FILE以及my.cnf中唯一的server-id;
然后启动你的第二个奴隶。使用“START SLAVE”开始复制,然后查看“SHOW SLAVE STATUS;”
此致 斯蒂芬
PS:不能保证这可以工作,但我确定它应该这样做。答案 3 :(得分:0)
您可以使用现有的mysql slave创建一个新的,只需执行以下步骤,
show slave status;
并记下这些值Master_Log_File: master-bin.000002
&
Read_Master_Log_Pos: 1307
mysqldump
并在新的mysql从服务器上恢复它,您可以从现有的mysql从服务器复制my.cnf
文件,只需更改server-id
。change master to
命令,提供mysql主服务器的详细信息,以及从现有mysql slave获取的日志文件名和日志位置。start slave;
。show slave status
。你有一个新的mysql奴隶服务器!!
祝你好运!