[英]mysql master-slave-master-slave replication
我有兩個物理服務器。 我使用命令將一些數據庫從server1復制到server2:
server1$ mysqldump -u root -q -p --delete-master-logs --flush-logs --extended-insert --master-data=1 --single-transaction --databases db1 db2 db3 db4>to_server2.sql
然后像往常一樣導入它們
server2$ mysql -u root -p <to_server2.sql
server2上的my.cnf包括:
server-id = 2
log_bin
binlog_format = mixed
replicate_do_db = db1,db2
transaction-isolation=READ-COMMITTED
server1上的my.cnf包括:
server-id = 1
log_bin
binlog_format = mixed
replicate_do_db = db3,db4
transaction-isolation=READ-COMMITTED
然后我在兩台服務器上發出更改主機以指向彼此; SHOW SLAVE STATUS已在server2上包含Read_Master_Log_Pos,但無論如何在此操作期間未進行任何數據更改。
然后在兩個服務器上啟動slave。 從服務器1和服務器2上的顯示從站狀態都很好。
問題:無論何時在任何server1或server2上更改數據,數據都會出現在服務器的binlog中,而其他服務器的mysqld-relay-bin日志文件中卻沒有出現在從屬數據庫中。 Read_Master_Log_Pos更改,但不更改從屬數據庫中的數據。 知道為什么嗎?
答案是:確實是因為在數據庫名中的plicate_do_db中出現了逗號。 解決的辦法是在my.cnf中為每個要復制的數據庫創建replicate_do_db語句
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.