Mysql-Replication

沒有缺少主數據的從屬的Mysql轉儲

  • October 4, 2012

我對mysql的整個複製過程相當陌生,所以這可能是一個容易回答的問題。我有主人和奴隸。我需要設置另一個從站,所以很明顯我需要從目前的從站進行轉儲,因為我不能讓主站離線一秒鐘。我如何確保在轉儲目前從數據庫期間不會錯過任何在此期間新創建的主數據?

謝謝大家。

我有一個有趣的方法,但你必須停止複制才能做到

對於 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

STEP10) 在 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;

STEP11) 在 S2 上,START SLAVE;

STEP12) 在 S2 上,SHOW SLAVE STATUS\G(如果是,恭喜!!!Slave_IO_RunningSlave_SQL_Running

STEP13) 在 S2 上,SHOW SLAVE STATUS\G一遍又一遍,直到Seconds_Behind_Master= 0;

實際上,早在 2012 年 2 月 6 日,我就在 DBA StackExchange 中編寫了一個腳本來自動執行此操作

試試看 !!!

引用自:https://serverfault.com/questions/434856