没有丢失主数据的从站的Mysql转储

我对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中写下以下两个值

  • Master_Host(MHOST)
  • Master_Port(MPORT)
  • Relay_Master_Log_File(RMLF)
  • Exec_Master_Log_Pos(EMLP)

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_RunningSlave_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引入附加的从站到现有的复制环境