Mysql
MySQL 5.7 中的 Log_Slave_Updates 在 Linux 中的複制是否失敗?
我在 RHEL 中為 2 個節點設置了 Master Master 複製設置。一台伺服器充當 Master 以及另一台伺服器(也是 Master 和 Slave)的從屬伺服器讓我們說 A 伺服器和 B 伺服器
我在 B 伺服器上啟用了 log_slave_updates,以便從主伺服器(伺服器 A)接收的所有語句都應該記錄到伺服器 B 的二進制日誌中。
我期待 Replication 會失敗,因為:
1. Created a Table on Server A. 2. It get replicated to Server B.
現在來自從 B 的二進制日誌將轉到伺服器 A,這應該會破壞複製,說“表已存在”。但它沒有
這裡的邏輯是什麼?
編輯部分:
- 兩台伺服器上的伺服器ID不同
方面#1
請確保 ServerA 和 ServerB 已啟用log_slave_updates。
方面#2
此設置不會中斷複製,因為每次在二進制日誌中記錄事務時,事務的 server_id 也會被寫入。
假設 ServerA 的 server_id=10 和 ServerB 的 server_id=20
所以,當你在 ServerA 上執行它時
INSERT INTO mytable (col) VALUES (1);
該事務將包括 server_id 10。當 ServerB 查看其中繼日誌並看到 server_id 10 時,它將與自己的 server_id (20) 進行比較。由於沒有匹配,執行就OK了。
ServerB 在其二進制日誌中記錄該事務。ServerA 將從其中繼日誌中選擇該事務。當 ServerA 查看其中繼日誌並看到 server_id 10 時,它將與自己的 server_id (10) 進行比較。由於存在匹配,因此它拒絕執行。
我之前在過去的答案中討論過這個
Mar 27, 2012
: MySQL 中的主-主複製Oct 15, 2012
:在主伺服器上更改 server_id 會中斷複製嗎?