MySQL Replication的複製執行緒介紹
MySQL Replication由以下執行緒組成:
(1).binlog Dump執行緒
Binlog Dump執行緒執行在主伺服器上,可以透過語句show processlist來檢視該執行緒是否執行,它負責將主伺服器上二進位制日誌檔案中的內容傳送給從伺服器的I/O執行緒。Binlog Dump執行緒同時還會給每個將要傳輸的事件加鎖,一旦事件傳輸完畢鎖就會立即釋放。
(2).I/O執行緒
當從伺服器端執行start slave語句後,便會執行一個I/O執行緒。它將會與主伺服器建立一個連線,同時會向主伺服器發出更新請求,要求將主伺服器上的二進位制日誌檔案中更新過的事件傳送給此程式。之後,I/O執行緒會將傳遞過來的更新複製到本地Relay Log的日誌中,透過
語句show slave status來檢視I/O執行緒的狀態,Slave_IO_Running為此執行緒的狀態引數。
(3).SQL執行緒
SQL執行緒負責讀取Relay Log日誌中的更新事件,並將這些事件挨個執行,使從伺服器上的資料庫得到更新,同樣SQL執行緒也要一個狀態引數Slave_SQL_Running,並與I/O執行緒提供的狀態引數一起,作為判斷複製程式執行的重要引數。
備註:
主伺服器端的Binlog檔案是實現複製功能的首要檔案,需要注意的是,在啟動資料庫之前,需要先啟用二進位制日誌功能,需要將配置檔案my.cnf中的引數log-bin前的註釋去掉,並設定名字,例如:
[mysqld]
log_bin=mysql-bin
從伺服器端的Relay Log檔案,在執行start slave命令後產生。Relay Log和Binlog具有相同的格式,兩個日誌檔案都可以透過mysqlbinlog工具來檢視,不同之處在於SQL執行緒會自動刪除Relay Log檔案中已經被執行過的事件。
(1).binlog Dump執行緒
Binlog Dump執行緒執行在主伺服器上,可以透過語句show processlist來檢視該執行緒是否執行,它負責將主伺服器上二進位制日誌檔案中的內容傳送給從伺服器的I/O執行緒。Binlog Dump執行緒同時還會給每個將要傳輸的事件加鎖,一旦事件傳輸完畢鎖就會立即釋放。
(2).I/O執行緒
當從伺服器端執行start slave語句後,便會執行一個I/O執行緒。它將會與主伺服器建立一個連線,同時會向主伺服器發出更新請求,要求將主伺服器上的二進位制日誌檔案中更新過的事件傳送給此程式。之後,I/O執行緒會將傳遞過來的更新複製到本地Relay Log的日誌中,透過
語句show slave status來檢視I/O執行緒的狀態,Slave_IO_Running為此執行緒的狀態引數。
(3).SQL執行緒
SQL執行緒負責讀取Relay Log日誌中的更新事件,並將這些事件挨個執行,使從伺服器上的資料庫得到更新,同樣SQL執行緒也要一個狀態引數Slave_SQL_Running,並與I/O執行緒提供的狀態引數一起,作為判斷複製程式執行的重要引數。
備註:
主伺服器端的Binlog檔案是實現複製功能的首要檔案,需要注意的是,在啟動資料庫之前,需要先啟用二進位制日誌功能,需要將配置檔案my.cnf中的引數log-bin前的註釋去掉,並設定名字,例如:
[mysqld]
log_bin=mysql-bin
從伺服器端的Relay Log檔案,在執行start slave命令後產生。Relay Log和Binlog具有相同的格式,兩個日誌檔案都可以透過mysqlbinlog工具來檢視,不同之處在於SQL執行緒會自動刪除Relay Log檔案中已經被執行過的事件。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29734436/viewspace-2139632/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- MySQL 主從複製之多執行緒複製MySql執行緒
- Mysql複製執行緒狀態MySql執行緒
- MySQL併發複製系列二:多執行緒複製MySql執行緒
- MYSQL並行複製(parallel replication部署篇)MySql並行Parallel
- MySQL group replication介紹MySql
- 理解 MySQL(3):複製(Replication)MySql
- mysql replication /mysql 主從複製原理MySql
- MySQL 複製介紹及搭建MySql
- MySQL多執行緒同步MySQL-Transfer介紹TZMySql執行緒
- mysql replication複製錯誤(zt)MySql
- 執行緒池介紹執行緒
- IOS執行緒介紹iOS執行緒
- 多執行緒系列(十七) -執行緒組介紹執行緒
- iOS 多執行緒介紹iOS執行緒
- MySQL主執行緒、從I/O執行緒和從SQL執行緒的State列常見狀態介紹MySql執行緒
- MySQL入門--複製技術介紹MySql
- MySQL主主複製(雙主複製)配置過程介紹MySql
- MySQL GTID複製的優缺點介紹MySql
- MySQL 5.7組複製(group replication)的要求和限制MySql
- MySQL 5.7.17 組複製(group replication)的要求和限制MySql
- MySQL 主從複製的執行流程MySql
- 執行緒併發執行緒安全介紹及java.util.concurrent包下類介紹執行緒Java
- MySQL主從複製配置心跳功能介紹MySql
- 簡單的多執行緒複製檔案執行緒
- MySQL主從複製的詳細過程介紹MySql
- Android執行緒池使用介紹Android執行緒
- 執行緒介紹及建立方式執行緒
- Java 執行緒池詳細介紹Java執行緒
- MySQL組複製(MGR)全解析 Part 2 常用複製技術介紹MySql
- 執行緒本地ThreadLocal的介紹與使用!執行緒thread
- Java多執行緒之synchronized的小介紹Java執行緒synchronized
- 資料庫複製(一)–複製介紹資料庫
- Redis 主從複製(Replication)Redis
- Java多執行緒傻瓜入門介紹Java執行緒
- python關於執行緒的一點介紹Python執行緒
- 執行緒池的介紹及簡單實現執行緒
- Mysql 5.7 基於組複製(MySQL Group Replication) - 運維小結MySql運維
- 複製管理工具介紹——高階複製