Mysql
MariaDB/MySQL 備份複製
我目前有兩個帶有雙向複製的數據庫實例。每個都複製其他數據庫。所以兩者都是主人和奴隸。因此,這些數據庫中的任何一個更改都會自動複製到另一個。這工作正常。
但現在我需要一個只讀備份解決方案,它也將擁有一個完整的數據庫。當我只複製原始數據庫的第一個實例時,我的新備份剛剛在此實例上完成更改,第二個實例的所有更改都失去了。
所以可能唯一的方法是多源(多主)複製。這可以通過(MaridDB 語法)
CHANGE MASTER "A" TO MASTER_HOST = '192.168.8.2', MASTER_USER = 'replicator', MASTER_PASSWORD = '...', master_use_gtid = slave_pos; CHANGE MASTER "B" TO MASTER_HOST = '192.168.8.3', MASTER_USER = 'replicator', MASTER_PASSWORD = '...', master_use_gtid = slave_pos;
我需要設置多個 gtid_slave_pos
SET GLOBAL gtid_slave_pos = "1-1-19124092,2-2-7060816";
這是一個有問題的部分。
我正在使用此語法將整個數據庫初始複製到第三台伺服器
sudo mysqldump --gtid --single-transaction --master-data dbName | pv | gzip > db-dump-fixed.sql.gz
它會自動放在那裡
SET GLOBAL gtid_slave_pos='2-2-7027154';
**但是我怎樣才能獲得
gtid_slave_pos
第二個數據庫實例的電流呢?**它必須與執行時的狀態完全相同sudo mysqldump
。如果我手動完成,我可能會錯過第二個數據庫中的一些事務。
我建議你在你
log_slave_updates
的兩個主人上啟用。然後他們會將複製的更改添加到自己的二進制日誌中,因此兩個實例的二進制日誌都將包含所有更改。那麼你就不需要多主複製了。請參閱https://mariadb.com/kb/en/replication-and-binary-log-system-variables/#log_slave_updates