久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

如何理解MySQL Replication線程

163次閱讀
沒有評論

共計 2139 個字符,預計需要花費 6 分鐘才能閱讀完成。

這篇文章將為大家詳細講解有關如何理解 MySQL Replication 線程,文章內容質量較高,因此丸趣 TV 小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。

Replication 線程
Mysql 的 Replication 是一個異步的復制過程,從一個 Mysql instace(我們稱之為 Master)復制到另一個 Mysql instance(我們稱之 Slave)。在 Master 與 Slave 之間的實現整個復制過程主要由三個線程來完成,其中兩個線程(Sql 線程和 IO 線程)在 Slave 端,另外一個線程(IO 線程)在 Master 端。
 
要實現 MySQL 的 Replication,首先必須打開 Master 端的 Binary Log(mysqlbin.xxxxxx)功能,否則無法實現。因為整個復制過程實際上就是 Slave 從 Master 端獲取該日志然后再在自己身上完全順序的執行日志中所記錄的各種操作
MySQL 復制的基本過程如下:
1. Slave 上面的 IO 線程連接上 Master,并請求從指定日志文件的指定位置(或者從最開始的日志)之后的日志內容;
 
2. Master 接收到來自 Slave 的 IO 線程的請求后,通過負責復制的 IO 線程根據請求信息讀取指定日志指定位置之后的日志信息,返回給 Slave 端的 IO 線程。返回信息中除了日志所包含的信息之外,還包括本次返回的信息在 Master 端的 Binary Log 文件的名稱以及在 Binary Log 中的位置;
 
3. Slave 的 IO 線程接收到信息后,將接收到的日志內容依次寫入到 Slave 端的 Relay Log 文件(mysql-relay-bin.xxxxxx) 的最末端,并將讀取到的 Master 端的 binlog 的文件名和位置記錄到 master-info 文件中,以便在下一次讀取的時候能夠清楚的高速 Master“我需要從某個 bin-log 的哪個位置開始往后的日志內容,請發給我”
 
4. Slave 的 SQL 線程檢測到 Relay Log 中新增加了內容后,會馬上解析該 Log 文件中的內容成為在 Master 端真實執行時候的那些可執行的 Query 語句,并在自身執行這些 Query。這樣,實際上就是在 Master 端和 Slave 端執行了同樣的 Query,所以兩端的數據是完全一樣的。
 
復制實現級別
Row Level
Statement Level
1. 常規復制架構(Master – Slaves)
  www.2cto.com  

 
2.Dual Master 復制架構(Master – Master)

 
可能有些讀者朋友會有一個擔心,這樣搭建復制環境之后,難道不會造成兩臺 MySQL 之間的循環復制么?實際上 MySQL 自己早就想到了這一點,所以在 MySQL 的 Binary Log 中記錄了當前 MySQL 的 server-id,而且這個參數也是我們搭建 MySQL Replication 的時候必須明確指定,而且 Master 和 Slave 的 server-id 參數值比需要不一致才能使 MySQLReplication 搭建成功。一旦有了 server-id 的值之后,MySQL 就很容易判斷某個變更是從哪一個 MySQL Server 最初產生的,所以就很容易避免出現循環復制的情況。而且,如果我們不打開記錄 Slave 的 Binary Log 的選項(–log-slave-update)的時候,MySQL 根本就不會記錄復制過程中的變更到 Binary Log 中,就更不用擔心可能會出現循環復制的情形了。
3. 級聯復制架構(Master – Slaves – Slaves …)

 
4.Dual Master 與級聯復制結合架構(Master – Master – Slaves)

 
MySQL Replication 環境的搭建實現比較簡單,總的來說其實就是四步,
 
第一步是做好 Master 端的準備工作。
1.MySQL 記錄 Binary Log 的選項打開;
2.GRANT REPLICATION SLAVE ON *.* TO repl @ 192.168.0.2;
 
第二步是取得 Master 端數據的“快照”備份。
測試 dump example 下的 group_message 表:
dump –master-data -usky -p example group_message group_message.sql
  www.2cto.com  
第三步則是在 Slave 端恢復 Master 的備份“快照”。
 
第四步就是在 Slave 端設置 Master 相關配置,然后啟動復制
CHANGE MASTER TO 命令總共需要設置 5 項內容,分別為:
MASTER_HOST:Master 的主機名(或者 IP 地址);
MASTER_USER:Slave 連接 Master 的用戶名,實際上就是之前所創建的 repl 用戶;
MASTER_PASSWORD:Slave 連接 Master 的用戶的密碼;
MASTER_LOG_FILE:開始復制的日志文件名稱;
MASTER_LOG_POS:開始復制的日志文件的位置,也就是在之前介紹備份集過程中一致提到的 Log Position。

關于如何理解 MySQL Replication 線程就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-07-28發表,共計2139字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 临潭县| 许昌县| 郓城县| 祥云县| 嘉祥县| 得荣县| 天等县| 长治市| 金平| 平昌县| 商水县| 上蔡县| 平陆县| 五华县| 鸡西市| 南江县| 静海县| 兴隆县| 湘潭县| 察雅县| 瑞安市| 南召县| 安西县| 张家口市| 潮州市| 平南县| 伊宁县| 灵寿县| 天祝| 青海省| 铜梁县| 金沙县| 江达县| 綦江县| 夏邑县| 香港| 宁南县| 枝江市| 任丘市| 昭平县| 太仓市|