簡(jiǎn)單認(rèn)識(shí)mysql主從同步原理

下面跟著筆者一起來(lái)了解下簡(jiǎn)單認(rèn)識(shí)MySQL主從同步原理,相信大家看完肯定會(huì)受益匪淺,文字在精不在多,希望簡(jiǎn)單認(rèn)識(shí)mysql主從同步原理這篇短內(nèi)容是你想要的。

讓客戶(hù)滿(mǎn)意是我們工作的目標(biāo),不斷超越客戶(hù)的期望值來(lái)自于我們對(duì)這個(gè)行業(yè)的熱愛(ài)。我們立志把好的技術(shù)通過(guò)有效、簡(jiǎn)單的方式提供給客戶(hù),將通過(guò)不懈努力成為客戶(hù)在信息化領(lǐng)域值得信任、有價(jià)值的長(zhǎng)期合作伙伴,公司提供的服務(wù)項(xiàng)目有:域名申請(qǐng)、網(wǎng)絡(luò)空間、營(yíng)銷(xiāo)軟件、網(wǎng)站建設(shè)、南溪網(wǎng)站維護(hù)、網(wǎng)站推廣。

mysql主從復(fù)制介紹

    當(dāng)前的生產(chǎn)工作中,大多數(shù)應(yīng)用的mysql主從同步都是異步的復(fù)制方式,即不是嚴(yán)格實(shí)時(shí)的數(shù)據(jù)同步。

    實(shí)時(shí)和異步:

 

   同步復(fù)制: 指的是客戶(hù)端連接到MySQL主云服務(wù)器寫(xiě)入一段數(shù)據(jù), MySQL主云服務(wù)器同步給MySQL從云服務(wù)器需要等待從云服務(wù)器發(fā)出同步完成的響應(yīng)才返回客戶(hù)端OK, 這其中等待同步的過(guò)程是阻塞的, 如果有N臺(tái)從云服務(wù)器, 效率極低 

   異步復(fù)制: 指的是客戶(hù)端連接到MySQL主云服務(wù)器寫(xiě)入一段數(shù)據(jù), MySQL主云服務(wù)器將寫(xiě)入的數(shù)據(jù)發(fā)送給MySQL從云服務(wù)器, 然后直接返回客戶(hù)端OK, 可能從云服務(wù)器的數(shù)據(jù)會(huì)和主服務(wù)不一致 

   半同步復(fù)制:指的是客戶(hù)端連接到MySQL主云服務(wù)器寫(xiě)入一段數(shù)據(jù), MySQL主云服務(wù)器只將數(shù)據(jù)同步復(fù)制給其中一臺(tái)從云服務(wù)器, 半同步復(fù)制給其他的從云服務(wù)器, 來(lái)達(dá)到其中一臺(tái)從云服務(wù)器完全同步的效果

主從復(fù)制原理:

簡(jiǎn)單認(rèn)識(shí)mysql主從同步原理

從庫(kù)需要兩個(gè)線(xiàn)程完成,一個(gè)叫做I/O線(xiàn)程,一個(gè)叫做sql線(xiàn)程

主庫(kù)需要一個(gè)線(xiàn)程叫做I/O線(xiàn)程

主庫(kù)必須要開(kāi)啟binlog日志才能完成主從同步,當(dāng)用戶(hù)請(qǐng)求到主的庫(kù)里面,會(huì)將增刪改的東西記錄到binlog日志里面,主從復(fù)制是從庫(kù)去找主庫(kù)的,建立時(shí),我們?cè)趶膸?kù)上使用change master指定master的ip,端口,二進(jìn)制文件名稱(chēng),pos,master的密碼等信息。并在從庫(kù)上開(kāi)啟start  slave就會(huì)開(kāi)啟同步。

開(kāi)啟同步后,先是從向主發(fā)起請(qǐng)求。然后主庫(kù)進(jìn)行驗(yàn)證從庫(kù)是否正常,驗(yàn)證之后,主庫(kù)就會(huì)給從庫(kù)按照信息發(fā)送日志,從庫(kù)上存放日志的地方叫做中繼日志(relay log),其實(shí)從庫(kù)里面還有一個(gè)master info信息,這個(gè)里面記錄的是change master的信息,每一次取日志回來(lái)都會(huì)對(duì)從庫(kù)的master  info信息進(jìn)行更新,接下來(lái)從庫(kù)根據(jù)master  info的binlog信息去主庫(kù)在取跟新的binlog信息,

放到中繼日志里面,我們?nèi)绾芜M(jìn)行更新?

當(dāng)主將binlog發(fā)送過(guò)來(lái)放到中繼日志里面的時(shí)候,sql線(xiàn)程就會(huì)語(yǔ)句經(jīng)過(guò)轉(zhuǎn)換寫(xiě)到從庫(kù)里面。

注意

1.開(kāi)啟binlog日志

2.change master(在從庫(kù)上)

3.在從庫(kù)開(kāi)啟start slave之前。這兩個(gè)庫(kù)的數(shù)據(jù)必須是一樣的,所以講主庫(kù)的數(shù)據(jù)進(jìn)行備份使用master-data=1,會(huì)記錄位置的。然后從庫(kù)會(huì)指定從主庫(kù)備份里面找備份點(diǎn)。

4.要在開(kāi)關(guān)之前建立專(zhuān)門(mén)用于主從同步的賬號(hào)

5.從庫(kù)打開(kāi)開(kāi)關(guān)的過(guò)程,其實(shí)就是打來(lái)從庫(kù)兩個(gè)線(xiàn)程的過(guò)程

6.start slave

主庫(kù)返回的除了binlog日志內(nèi)容外,還有本次返回日志內(nèi)容后在Master云服務(wù)器端的新的binlog文件名稱(chēng)以及在binlog中的下一個(gè)指定更新的位置。這個(gè)位置會(huì)保存在從庫(kù)的master info里面。

>flush tables  with read  lock;在主庫(kù)上執(zhí)行加上讀鎖

然后另開(kāi)一個(gè)窗口,連接到主mysql

>show master  status;  查看主庫(kù)的binlog以及pos值。

下來(lái)是備份主庫(kù)數(shù)據(jù),將備份數(shù)據(jù)在從庫(kù)上執(zhí)行。目的就是讓從庫(kù)和主庫(kù)的數(shù)據(jù)一樣。

從庫(kù)將主庫(kù)的備份數(shù)據(jù)導(dǎo)入完了以后要將鎖打來(lái):

>unlocks  tables;

然后在從庫(kù)上執(zhí)行change  master語(yǔ)句。這些信息會(huì)記錄在從庫(kù)的master.info的信息中;(如果你備份的時(shí)候指定master-data=1)

最后一步開(kāi)啟start  slave;

查看是否成功使用show slave  status; 查看兩個(gè)進(jìn)程是否為yes。

從庫(kù)里面的relay-log.info:記錄sql線(xiàn)程從中繼里面讀取到的日志。

看完簡(jiǎn)單認(rèn)識(shí)mysql主從同步原理這篇文章后,很多讀者朋友肯定會(huì)想要了解更多的相關(guān)內(nèi)容,如需獲取更多的行業(yè)信息,可以關(guān)注我們的行業(yè)資訊欄目。

名稱(chēng)欄目:簡(jiǎn)單認(rèn)識(shí)mysql主從同步原理
本文鏈接:http://www.muchs.cn/article16/gjjodg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站設(shè)計(jì)網(wǎng)站維護(hù)、網(wǎng)站導(dǎo)航、手機(jī)網(wǎng)站建設(shè)、營(yíng)銷(xiāo)型網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

商城網(wǎng)站建設(shè)