MySQL 5.7.9的多源複製
什麼是多源複製?
首先,我們需要清楚 multi-master 與multi-source 複製不是一樣的. Multi-Master 複製通常是環形複製,你可以在任意主機上將資料複製給其他主機。
Multi-source 是不同的. MySQL在這個新版本中修復了一個複製限制 , 這限制是一個從站只能有一個主站. 這是一個在我們設計複製環境中的限制因素,也有一些極客使它正常工作了。但是現在有一個官方的解決辦法了。所以。簡單的說, Multi-Source 意味著一個從站能有一個以上主站. 現在, 像下圖一樣的複製環境是可能的:
這將幫助我們建立一些複製的層次結構,這在過去是不可能的。 舉個例子,你可以 將一個從站放在你的辦公室裡。在辦公室裡從所有主站中複製資料傳播到世界各地。
它是怎麼工作的呢?
現在我們有了通訊渠道的概念,每一個通訊渠道都是一個從伺服器從主伺服器獲得2進位制日誌的連結。這意味著每個通訊渠道都得有一個IO_THREAD .我們需要執行不同的 “CHANGE MASTER” 命令, 對於每一個主伺服器。我們需要用到 “FOR CHANNEL”這個引數來提供通訊連結的名字。CHANGE MASTER MASTER_HOST='something', MASTER_USER=... FOR CHANNEL="name_of_channel";
很容易. 有一個單一的先決條件。從伺服器需要在mysql5.6上配置安全功能,這意味著資訊通常包含在主伺服器上。資訊或日誌應該在一個表中,讓我們開始配置吧
來個例子!
首先,我們在從伺服器上實現事故安全功能。
master_info_repository=TABLE;
relay_log_info_repository=TABLE;
讓後重啟從伺服器。我們可以開始建立通訊渠道,用 “master1″ 和 “master2″這兩個名字:
slave > change master to master_host="127.0.0.1", master_port=12047, master_user="msandbox",master_password="msandbox" for channel="master1";
slave > change master to master_host="127.0.0.1", master_port=12048, master_user="msandbox",master_password="msandbox" for channel="master2";
按照所設定的通訊名字啟動從伺服器。
slave > start slave for channel="master1";
slave > start slave for channel="master2";
slave > SHOW SLAVE STATUS FOR CHANNEL "master1"\G
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 127.0.0.1
Master_User: msandbox
Master_Port: 12047
Connect_Retry: 60
Master_Log_File: mysql-bin.000002
Read_Master_Log_Pos: 232
Relay_Log_File: squeeze-relay-bin-master1.000003
Relay_Log_Pos: 395
Relay_Master_Log_File: mysql-bin.000002
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
[...]
我們也可以檢查正在執行的 IO_THREAD 和 SQL_THREADS :
slave > SHOW PROCESSLIST;
+----+-------------+-----------------------------------------------------------------------------+
| Id | User | State |
+----+-------------+-----------------------------------------------------------------------------+
| 2 | system user | Waiting for master to send event |
| 3 | system user | Slave has read all relay log; waiting for the slave I/O thread to update it |
| 4 | system user | Waiting for master to send event |
| 5 | system user | Slave has read all relay log; waiting for the slave I/O thread to update it |
+----+-------------+-----------------------------------------------------------------------------+
結論
這個新的multi-source功能使在過去需要一些複雜操作建立的複製環境變得簡單了。當然,你應用程式可以考慮這個新的特性設計和開發,使用 multi-master, multi-source都需要特別注意,不要把你的資料都弄亂了。在每一個新的版本中,mysql的複製功能給我們更多的配置,效能和設計的可能性。所有這些新功能都可以結合起來。在你新(老)的功能中增加複製功能,你的複製環境會更加出色。舉個例子:你可以配置 GTID 可以用 multi-threaded slave per schema或 .
轉自:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28939273/viewspace-1845477/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- MySQL 5.7.9多源複製報錯修復MySql
- MySQL 多源複製MySql
- mysql 5.7多源複製MySql
- 【Mysql】Mysql5.7的多源複製搭建MySql
- MySQL 5.7搭建多源複製MySql
- mysql 5.7 多主一從的多源複製搭建MySql
- MySQL 5.7 多主一從(多源複製)同步配置MySql
- mysql多源複製跳過錯誤處理方法MySql
- MySQL併發複製系列二:多執行緒複製MySql執行緒
- Mysql分散式部署 - 多級複製MySql分散式
- MySQL的主從複製與MySQL的主主複製MySql
- MySQL高可用之組複製技術(3):配置多主模型的組複製MySql模型
- MySQL中的複製MySql
- MySQL複製MySql
- MySQL 複製MySql
- mysql主從複製(一):一主多從MySql
- mysql複製--主從複製配置MySql
- MySQL的非同步複製和半同步複製MySql非同步
- MySQL入門--MySQL複製技術之一主多從MySql
- MySQL的主從複製、半同步複製、主主複製詳解MySql
- MySQL入門--MySQL複製技術之主從複製MySql
- MySQL入門--MySQL複製技術之主主複製MySql
- MySQL 8 複製(三)——延遲複製與部分複製MySql
- MySQL 8 複製(一)——非同步複製MySql非同步
- MySQL 8 複製(二)——半同步複製MySql
- MySQL主從複製_複製過濾MySql
- MySQL的主從複製MySql
- MySQL的半同步複製MySql
- 聊聊MySQL主從複製的幾種複製方式MySql
- MySQL 組複製MySql
- MySQL表複製MySql
- MySQL複製FAQMySql
- MySQL叢集之 主從複製 主主複製 一主多從 多主一叢 實現方式MySql
- MySQL主從複製、半同步複製和主主複製MySql
- MySQL 複製全解析 Part 11 使用xtrabackup建立MySQL複製MySql
- MySQL 8 複製(四)——GTID與複製MySql
- MySQL 8 複製(五)——配置GTID複製MySql
- MySQL主從複製之GTID複製MySql