2011-01-20 95 views
1

我有兩臺物理服務器。 我使用命令複製某些數據庫從服務器1到server2:mysql master-slave-master-slave replication

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通常

server2$ mysql -u root -p <to_server2.sql 

my.cnf中包括:

server-id    = 2 
log_bin 
binlog_format   = mixed 
replicate_do_db   = db1,db2 
transaction-isolation=READ-COMMITTED 

的my.cnf上server1包括:

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。 SHOW SLAVE STATUS在server1和server2上看起來不錯。

問題: 當數據在任何服務器1或服務器2的數據改變將出現在服務器的二進制日誌和其他服務器的mysqld-繼電器斌日誌外商投資企業而不是出現在從數據庫中。 Read_Master_Log_Pos更改但不包含從數據庫中的數據。 任何想法爲什麼?

+2

您可能想在serverfault.com上詢問此問題,因爲複製與編程相比更像是一個系統管理員問題。 – 2011-01-20 22:39:34

回答

1

答案是:這實際上是因爲replicate_do_db在數據庫名稱之間的昏迷。解決方法是在my.cnf中爲每個要複製的數據庫創建replicate_do_db語句