Replication

Mysql從現有從屬複製到新從屬

  • January 19, 2020

我希望你們的專家可以幫助我,我有這個拓撲:

Live DB(Master) —-> Backup Server (Master and slave) —-> Test DB

Backup serverLive DB的 slave ,Test DBBackup server的 slave

從 Live 到備份伺服器的複制按預期工作,從備份到測試的複制是我有點困惑的地方,如果我在備份上創建一個測試數據庫,我可以看到它複製到測試數據庫,但如果我這樣做在 Live DB 上,它不會過濾到 Test DB(但會過濾到 Backup)。

我注意到的另一件事是 Backup 上的 binlog 大小非常小,只有 150 字節,而 Live 上接近 100M,(binlog 大小在 live 和 backup 上設置相同)

也許這是設計使然?也許不可能將奴隸連結在一起?

我測試數據庫的目標是(一旦工作)從我們的託管數據中心複製到我們的內部辦公室,然後使用內部從站在這裡更新我們的開發/質量保證/培訓數據庫(減少頻寬使用)。

以下是備份伺服器上的相關設置:( /etc/mysql/my.cnf)

log_bin                 = /srv/mysql-binlogs/mysql-bin.log
expire_logs_days        = 7
max_binlog_size         = 100M
binlog_cache_size       = 16M
binlog-format           = MIXED

眼鏡:

  • mysql 5.5
  • Debian Squeeze

謝謝,您的建議將不勝感激

我錯過了一個非常重要的選項:

log_slave_updates

現在二進制日誌正在增長!

ref: MySQL Slave Relay Logging 但不記錄二進制日誌

http://dev.mysql.com/doc/refman/5.5/en/replication-options-binary-log.html#sysvar_log_slave_updates

所以你在備份伺服器上創建數據庫並在 TestDB 上複製,但是如果你在實時伺服器上創建它不會在備份伺服器上複製。

在上述情況下,請檢查 my.cnf 文件下備份伺服器上的****replicate-do-dbreplicate-ignore-db變數。

引用自:https://dba.stackexchange.com/questions/57681