MySQL5.5半同步功能的安裝步驟
在保證數(shù)據(jù)庫性能的前提下,怎么保證數(shù)據(jù)的一致性呢?
在MySQL 5.5版本中即支持異步復制又支持半同步復制。
1、當slave 連接master的時候,它會指出它是否支持半同步復制。
2、當master啟用 semisynchronous replication.并且至少有一臺slave也啟用了該功能,master端的事務會被阻塞,并且等到該事務會等待其中任何一個slave接受到該事務,或者超過等待時間才會提交。
3、slave端回復給master的信息依據(jù)是slave事務已經(jīng)寫入到relay-log并且已經(jīng)刷寫到了磁盤。
4、如果master端等待超時的話,沒有任何slave給出該事務已經(jīng)寫入relay-log的信息,那么他會自動轉(zhuǎn)到異步復制,當其中一個支持異步復制的slave追趕上了master,那么master會進入到半同步復制狀態(tài)。
5、半同步復制必須是兩端都支持。
當master的線程處于被阻塞(等待slave端返回的消息時),并不會給該會話session返回任何消息。當阻塞結束的時候,master會返回給該session消息。
如果一個事務中包含對非事務表的修改,在發(fā)生rollback的情況下,master也是會這些信息寫入到binlog上面,并且也會發(fā)生阻塞,等待slave端寫入。
半同步復制需要在數(shù)據(jù)一致性和性能上作出權衡。
5.5半同步功能的安裝步驟
1、這個首先需要5.5支持動態(tài)加載模塊:查看變量: have_dynamic_loading是否是yes;
2、基本的復制架構已經(jīng)搭建
3、master端和slave端的模塊是隨著版本發(fā)布的,在master端執(zhí)行:
INSTALL PLUGIN rpl_semi_sync_master SONAME 'semisync_master.so';
在slave端執(zhí)行:
INSTALL PLUGIN rpl_semi_sync_slave SONAME 'semisync_slave.so';
如果在安裝的時候出現(xiàn)如下錯誤,請下載缺失的組件:http://dev.mysql.com/downloads/os-linux.html.
ERROR 1126 (HY000): Can't open shared library
'/usr/local/mysql/lib/plugin/semisync_master.so' (errno: 22 libimf.so: cannot open
shared object file: No such file or directory)
安裝完成后,還需要設置變量才能正常啟動:
SET GLOBAL rpl_semi_sync_master_enabled =1;
SET GLOBAL rpl_semi_sync_master_timeout =N 設置好超時時間,默認是10s (有點長啦)
在slave 端執(zhí)行:
SET GLOBAL rpl_semi_sync_slave_enabled =1
(以上信息都可以寫到my.cnf文件中)
這個時候復制還是屬于異步復制,只有重啟slave或者 重啟 slave I/O線程,才能真正使用半同步復制功能。
stop slave io_thread;start slave io_thread;
監(jiān)控半同步復制狀態(tài);
幾個重要的變量是:
rpl_semi_sync_master_clients 支持和已經(jīng)注冊半同步復制的已連接的slave數(shù)量。
rpl_semi_sync_master_status Master的半同步復制狀態(tài),1是活動狀態(tài),0表示非活動,要么是沒有啟用該功能,要么以切換至異步復制狀態(tài)
rpl_semi_sync_slave_status Slave 上的半同步復制狀態(tài),1,表示已經(jīng)啟用而且I/O線程正在運行,0表示非活動狀態(tài)。
關鍵詞:MySQL
閱讀本文后您有什么感想? 已有 人給出評價!
- 0
- 0
- 0
- 0
- 0
- 0