MySQL主從同步設定的重要參數log_slave_updates

來源:互聯網
上載者:User

MySQL主從同步設定的重要參數log_slave_updates

說明:最近部署了MySQL的叢集環境,詳細如下M01和M02為主主複製,M01和R01為主從複製;在測試的過程中發現了以下問題:

1、M01和M02的主主複製是沒有問題的(從M01寫入資料能同步到M02,從M02寫入資料能夠同步到M01);

2、主從同步的時候,當從M01寫入的時候,資料可以寫入到R01;

3、當從M02寫入的時候,資料就不能寫入到R01;

問題的原因:log_slave_updates參數的狀態為NO

MySQL的官網說明如下:

Normally, a slave does not log to its own binary log any updates that are received from a master server. This option tells the slave to log the updates performed by its SQL thread to its own binary log. For this option to have any effect, the slave must also be started with the --log-bin option to enable binary logging. Prior to MySQL 5.5, the server would not start when using the --log-slave-updates option without also starting the server with the --log-bin option, and would fail with an error; in MySQL 5.5, only a warning is generated. (Bug #44663) --log-slave-updates is used when you want to chain replication servers. For example, you might want to set up replication servers using this arrangement:

A -> B -> C

Here, A serves as the master for the slave B, and B serves as the master for the slave C. For this to work, B must be both a master and a slave. You must start both A and B with --log-bin to enable binary logging, and B with the --log-slave-updates option so that updates received from A are logged by B to its binary log.

a) M01同步從M02同步資料過來的時候,log_slave_updates參數用來控制M01是否把所有的操作寫入到binary log,預設的情況下mysql是關閉的;

b) R01資料的更新需要通過讀取到M01的binary log才能進行更新,這個時候M01是沒有寫binary log的,所以當資料從M02寫入的時候,R01也就沒有更新了。。

問題的解決方案:

log_slave_updates:預設值為OFF;

Dynamic Variable:NO

處理方法:修改/etc/my.cnf,增加一行log_slave_updates=1,重啟資料庫後就可以了;

總結:設定完該參數後,資料庫的架構就可以設定成M01和M02為主主同步,R01通過M01進行主從同步;

應用的寫操作中M02上面進行,讀操作中R01上面進行(如果讀操作很多的話,可以在M01上面架設多台唯讀資料庫),當M02發生故障後,系統的寫操作自動遷移到M01上面。這種架構基本可以保證大部分公司的應用需求;

 

--------------------------------------分割線 --------------------------------------

Ubuntu 14.04下安裝MySQL

《MySQL權威指南(原書第2版)》清晰中文掃描版 PDF

Ubuntu下Nginx做負載實現高效能WEB伺服器5---MySQL主主同步

生產環境MySQL主主同步主鍵衝突處理

MySQL主從失敗 錯誤Got fatal error 1236

MySQL主從複製,單台伺服器上實施

--------------------------------------分割線 --------------------------------------

本文永久更新連結地址:

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.