最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
當(dāng)前位置: 首頁 - 科技 - 知識(shí)百科 - 正文

MySQLReplication線程簡析_MySQL

來源:懂視網(wǎng) 責(zé)編:小采 時(shí)間:2020-11-09 18:17:34
文檔

MySQLReplication線程簡析_MySQL

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

2.Dual Master 復(fù)制架構(gòu)(Master - Master)

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

4.Dual Master 與級(jí)聯(lián)復(fù)制結(jié)合架構(gòu)(Master - Master - Slaves)

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

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

MySQLReplication線程簡析_MySQL

MySQLReplication線程簡析_MySQL:bitsCN.com Replication 線程Mysql 的Replication 是一個(gè)異步的復(fù)制過程,從一個(gè)Mysql instace(我們稱之為Master)復(fù)制到另一個(gè)Mysql instance(我們稱之Slave)。在Master 與Slave 之間的實(shí)現(xiàn)整個(gè)復(fù)制過程主要由三個(gè)線程來完成,其中兩個(gè)線程(S
推薦度:
標(biāo)簽: mysql 線程
  • 熱門焦點(diǎn)

最新推薦

猜你喜歡

熱門推薦

專題
Top