我对 mysql 的整个复制过程相当陌生,所以这可能是一个容易回答的问题。我有一个主人和一个奴隶。我需要设置另一个从站,所以显然我需要从当前从站进行转储,因为我不能让主站离线一秒钟。我如何确定在转储当前从属数据库期间我不会遗漏任何在此期间新创建的主数据?
谢谢大家。
我对 mysql 的整个复制过程相当陌生,所以这可能是一个容易回答的问题。我有一个主人和一个奴隶。我需要设置另一个从站,所以显然我需要从当前从站进行转储,因为我不能让主站离线一秒钟。我如何确定在转储当前从属数据库期间我不会遗漏任何在此期间新创建的主数据?
谢谢大家。
我有一个有趣的方法,但你必须停止复制才能做
对于数据库服务器 M1、S1 和 S2
STEP01) 在 S2 上,安装与 S1 相同版本的 MySQL
STEP02) 在 S2 上,确保 /etc/my.cnf 中的 server_id 与 S1 中的 server_id 不同
STEP03) 在S1,
STOP SLAVE;
STEP04) 在S1,
SHOW SLAVE STATUS\G
STEP05) 记下STEP 04中的以下两个值
STEP06) 在 S1 上,mysqldump ... --all-databases > /root/MySQLDataForSlave.sql
STEP07) 在S1,
START SLAVE;
STEP08) 在S1,
scp /root/MySQLDataForSlave.sql S2:/root/.
STEP09) 在S2,
mysql ... < /root/MySQLDataForSlave.sql
STEP10) 在 S2 上,使用 STEP05 中的值在 mysql 客户端中运行此命令
STEP11) 在 S2 上,
START SLAVE;
STEP12) 在 S2 上,
SHOW SLAVE STATUS\G
(如果是,恭喜!!!Slave_IO_Running
)Slave_SQL_Running
STEP13) 在S2
SHOW SLAVE STATUS\G
上,周而复始直到Seconds_Behind_Master
=0;实际上,我早在 2012 年 2 月 6 日就在 DBA StackExchange 中编写了一个脚本来自动执行此操作。
试试看 !!!
在拍摄快照之前禁用从属服务器上的复制。提示 - 首先停止 IO 线程并让 SQL 线程完成,然后再停止它然后生成快照。
使用以下指南为您现有的环境引入额外的奴隶:
MySQL :: MySQL 5.0 参考手册 :: 16.1.1.9 向现有复制环境引入额外的从属