我对mysql的整个复制过程相当陌生,所以这可能是一个容易回答的问题。 我有一个主人和奴隶。 我需要build立另一个奴隶,所以显然我需要从当前的奴隶转储,因为我不能让主人离线一秒钟。 我怎么能确定,在我正在做转储的当前从数据库的时间,我不会错过任何新的主数据是在那个时间创build的?
谢谢大家。
我有一个有趣的方法,但你将不得不停止复制
对于DB服务器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
步骤10)在S2上,使用STEP05的值在mysql客户端运行这个命令
CHANGE MASTER TO master_host='MHOST', master_port=MPORT, master_user='repluser', master_password='replpass', master_log_file='RMLF', master_log_pos=EMLP;
步骤11)在S2上, START SLAVE;
STEP12)在S2上SHOW SLAVE STATUS\G (如果Slave_IO_Running和Slave_SQL_Running都是,恭喜!
步骤13)在S2上,反复SHOW SLAVE STATUS\G直到Seconds_Behind_Master = 0;
实际上,我在2012年2月6日编写了一个脚本,在DBA StackExchange中自动执行此操作 。
试一试 !!!
拍摄快照前禁用从属服务器上的复制 。 提示 – 先停止IO线程,然后让SQL线程在停止之前完成,然后生成快照。
使用以下指南向您的现有环境介绍附加的从站:
MySQL :: MySQL 5.0参考手册:: 16.1.1.9引入附加的从站到现有的复制环境