mysql主從複製匯總

來源:互聯網
上載者:User

標籤:master   mysql   二進位   

binlog日誌

二進位日誌格式

基於語句 statement

基於行 rows

混合方式 mixed


二進位日誌事件

基於位置postion基於時間datetime-timestamp


複製過程有一個很重要的限制——複製在slave上是序列化的也就是說master上的並行更新操作不能在slave上並行操作。所以slave上資料一般要慢於master上資料。即master與slave之間的資料在一定時間內會不同步。


同步、非同步、半同步複製

同步

同步複製可以定義為資料在同一時刻被提交到一台或多台機器通常這是通過眾所周知的“兩階段交易認可”做到的。

非同步

主庫在執行完一些事務後是不會管備庫的進度的。如果備庫不幸落後而更不幸的是主庫此時又出現Crash例如宕機這時備庫中的資料就是不完整的。簡而言之在主庫發生故障的時候我們無法使用備庫來繼續提供資料一致的服務了。

半同步

當Master上開啟半同步複製的功能時至少應該有一個Slave開啟其功能。

此時一個線程在Master上提交事務將受到阻塞直到得知一個已開啟半同步複製功能的Slave已收到此事務的所有事件或等待逾時。


mysql半同步複製

show global variables like ‘have_dynamic_loading‘;

INSTALL PLUGIN rpl_semi_sync_master SONAME ‘semisync_master.so‘;

INSTALL PLUGIN rpl_semi_sync_slave SONAME ‘semisync_slave.so‘;

show global variables like ‘plugin_dir‘;

select * from information_schema.plugins; or show plugins;


SET GLOBAL rpl_semi_sync_master_enabled = 1;

SET GLOBAL rpl_semi_sync_master_timeout = 60;

SET GLOBAL rpl_semi_sync_slave_enabled = 1;

start slave;

show slave status;


多源複製

STOP SLAVE;

SET GLOBAL master_info_repository = ‘TABLE‘;

SET GLOBAL relay_log_info_repository = ‘TABLE‘;

slave > change master to master_host="127.0.0.1", master_port=20121, 

master_user="multi",master_password="multi" FOR CHANNEL ‘master1‘;

slave > change master to master_host="127.0.0.1", master_port=20122, 

master_user="multi",master_password="multi" FOR CHANNEL ‘master2‘;

slave > change master to master_host="127.0.0.1", master_port=20123, 

master_user="multi",master_password="multi" FOR CHANNEL ‘master3‘;

start slave for channel ‘master1‘;

start slave for channel ‘master2‘;

show slave status for channel ‘master1‘;

show slave status for channel ‘master2‘;


GTID

GTID即全域事務ID(global transaction identifier )

GTID = source_id:transaction_id

eg:3E11FA47-71CA-11E1-9E33-C80AA9429562:50 

每一個 GTID 代表一個資料庫事務


開啟GTID

set global enforce_gtid_consistency=on;

set global log_slave_updates=on;

set global gtid_mode=OFF_PERMISSIVE;

set global gtid_mode=ON_PERMISSIVE;

set global gtid_mode=on;


使用GTID建立主從

mysql> change master to master_host=‘1.1.1.1‘,master_port =3306,master_user=‘gtid‘,master_password=‘gtid‘,master_auto_position=1;


mysql並行複製

本文出自 “allen的個人部落格” 部落格,請務必保留此出處http://allen2288.blog.51cto.com/1184612/1767068

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.