MySQL的半同步複製

來源:互聯網
上載者:User

標籤:半同步複製

1>半同步複製的出現:

預設情況下,複製是非同步,就是用戶端提交事務給主庫,主庫將事務寫入到儲存引擎和binlog中後會立即返回給用戶端告訴其事務執行成功。如果此時該事務還未來得及複製到從庫上,如果主庫在此時發生崩潰或者伺服器宕機,會導致主從切換,此時用戶端訪問新選舉的主庫時,就會看不到剛提交的資料。

2>半同步複製的原理:

mysql5.5開始通過外掛程式的方式支援半同步複製,主庫執行完用戶端提交的事務後不會立即返回給用戶端,而是等待至少一個從庫接收到該事務後才返回給用戶端。

半同步複製是全同步和非同步同步的一個折中方案。與非同步複製相比,半同步複製提高資料的安全性---可以保證至少兩個地方存在該事務,同時也增加了一定的延遲(至少是一個tcp/ip往返的時間),最好在低延遲的網路中使用,比如區域網路。

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/73/1A/wKiom1X04pWSFXQaAAEPJfLLJ6A295.jpg" title="1.png" alt="wKiom1X04pWSFXQaAAEPJfLLJ6A295.jpg" />

3>半同步複製的安裝配置

須滿足以下條件:

         MySQL5.5或者以上版本

         has_dynamic_loading系統變數設定為YES

         複製已經配置並且在運行。

半同步複製是以外掛程式形式實現的。所以講semisync_master*檔案複製到主庫的plugins檔案夾中,講semisync_slave*檔案複製到所有從庫的plugins檔案夾中。


接下來分別在主庫和從庫上執行INSTALL PLUGIN命令載入外掛程式。

mysql> INSTALL PLUGIN rpl_semi_sync_master SONAME "semisync_master.so";

從庫上執行

mysql> INSTALL PLUGIN rpl_semi_sync_slave SONAME "semisync_slave.so";

查看外掛程式的安裝情況:

mysql>SHOW PLUGINS;


主從都開啟半同步外掛程式:

   主庫上開啟半同步外掛程式:

   mysql>SET GLOBAL rpl_semi_sync_master_enabled = 1;

   mysql>SET GLOBAL rpl_semi_sync_master_timeout = N;//單位是毫秒

   在從庫上開啟半同步外掛程式:

   mysql>SET GLOBAL rpl_semi_sync_slave_enabled = 1;

rpl_semi_sync_master_timeout表示主庫等待從庫相應的超市時間,如果在時間內沒有收到從庫相應,複製切換到非同步模式。


停止slave IO 線程,然後重新開啟該線程。以使slave IO 線程從新串連到主庫,並以半同步方式在主庫註冊。


在從庫上執行以下命令重啟slave IO線程:

mysql>STOP SLAVE IO_THREAD;

mysql>START SLAVE IO_THREAD;


注意點:

 在mysql啟動前將全域變數寫入到設定檔中。以避免忘記設定使半同步不生效。

 主庫設定檔

 [mysqld]

 rpl_semi_sync_master_enabled = 1

 rpl_semi_sync_master_timeout=10000 #10秒

 從庫設定檔

 [mysqld]

 rpl_semi_sync_slave_enabled = 1



 

MySQL的半同步複製

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

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.