下面跟著筆者一起來了解下簡單認(rèn)識MySQL主從同步原理,相信大家看完肯定會受益匪淺,文字在精不在多,希望簡單認(rèn)識mysql主從同步原理這篇短內(nèi)容是你想要的。
讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價值的長期合作伙伴,公司提供的服務(wù)項(xiàng)目有:域名申請、網(wǎng)絡(luò)空間、營銷軟件、網(wǎng)站建設(shè)、南溪網(wǎng)站維護(hù)、網(wǎng)站推廣。
mysql主從復(fù)制介紹
當(dāng)前的生產(chǎn)工作中,大多數(shù)應(yīng)用的mysql主從同步都是異步的復(fù)制方式,即不是嚴(yán)格實(shí)時的數(shù)據(jù)同步。
實(shí)時和異步:
同步復(fù)制: 指的是客戶端連接到MySQL主云服務(wù)器寫入一段數(shù)據(jù), MySQL主云服務(wù)器同步給MySQL從云服務(wù)器需要等待從云服務(wù)器發(fā)出同步完成的響應(yīng)才返回客戶端OK, 這其中等待同步的過程是阻塞的, 如果有N臺從云服務(wù)器, 效率極低
異步復(fù)制: 指的是客戶端連接到MySQL主云服務(wù)器寫入一段數(shù)據(jù), MySQL主云服務(wù)器將寫入的數(shù)據(jù)發(fā)送給MySQL從云服務(wù)器, 然后直接返回客戶端OK, 可能從云服務(wù)器的數(shù)據(jù)會和主服務(wù)不一致
半同步復(fù)制:指的是客戶端連接到MySQL主云服務(wù)器寫入一段數(shù)據(jù), MySQL主云服務(wù)器只將數(shù)據(jù)同步復(fù)制給其中一臺從云服務(wù)器, 半同步復(fù)制給其他的從云服務(wù)器, 來達(dá)到其中一臺從云服務(wù)器完全同步的效果
主從復(fù)制原理:
從庫需要兩個線程完成,一個叫做I/O線程,一個叫做sql線程
主庫需要一個線程叫做I/O線程
主庫必須要開啟binlog日志才能完成主從同步,當(dāng)用戶請求到主的庫里面,會將增刪改的東西記錄到binlog日志里面,主從復(fù)制是從庫去找主庫的,建立時,我們在從庫上使用change master指定master的ip,端口,二進(jìn)制文件名稱,pos,master的密碼等信息。并在從庫上開啟start slave就會開啟同步。
開啟同步后,先是從向主發(fā)起請求。然后主庫進(jìn)行驗(yàn)證從庫是否正常,驗(yàn)證之后,主庫就會給從庫按照信息發(fā)送日志,從庫上存放日志的地方叫做中繼日志(relay log),其實(shí)從庫里面還有一個master info信息,這個里面記錄的是change master的信息,每一次取日志回來都會對從庫的master info信息進(jìn)行更新,接下來從庫根據(jù)master info的binlog信息去主庫在取跟新的binlog信息,
放到中繼日志里面,我們?nèi)绾芜M(jìn)行更新?
當(dāng)主將binlog發(fā)送過來放到中繼日志里面的時候,sql線程就會語句經(jīng)過轉(zhuǎn)換寫到從庫里面。
注意
1.開啟binlog日志
2.change master(在從庫上)
3.在從庫開啟start slave之前。這兩個庫的數(shù)據(jù)必須是一樣的,所以講主庫的數(shù)據(jù)進(jìn)行備份使用master-data=1,會記錄位置的。然后從庫會指定從主庫備份里面找備份點(diǎn)。
4.要在開關(guān)之前建立專門用于主從同步的賬號
5.從庫打開開關(guān)的過程,其實(shí)就是打來從庫兩個線程的過程
6.start slave
主庫返回的除了binlog日志內(nèi)容外,還有本次返回日志內(nèi)容后在Master云服務(wù)器端的新的binlog文件名稱以及在binlog中的下一個指定更新的位置。這個位置會保存在從庫的master info里面。
>flush tables with read lock;在主庫上執(zhí)行加上讀鎖
然后另開一個窗口,連接到主mysql
>show master status; 查看主庫的binlog以及pos值。
下來是備份主庫數(shù)據(jù),將備份數(shù)據(jù)在從庫上執(zhí)行。目的就是讓從庫和主庫的數(shù)據(jù)一樣。
從庫將主庫的備份數(shù)據(jù)導(dǎo)入完了以后要將鎖打來:
>unlocks tables;
然后在從庫上執(zhí)行change master語句。這些信息會記錄在從庫的master.info的信息中;(如果你備份的時候指定master-data=1)
最后一步開啟start slave;
查看是否成功使用show slave status; 查看兩個進(jìn)程是否為yes。
從庫里面的relay-log.info:記錄sql線程從中繼里面讀取到的日志。
看完簡單認(rèn)識mysql主從同步原理這篇文章后,很多讀者朋友肯定會想要了解更多的相關(guān)內(nèi)容,如需獲取更多的行業(yè)信息,可以關(guān)注我們的行業(yè)資訊欄目。
名稱欄目:簡單認(rèn)識mysql主從同步原理
本文鏈接:http://vcdvsql.cn/article16/gjjodg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站設(shè)計、網(wǎng)站維護(hù)、網(wǎng)站導(dǎo)航、手機(jī)網(wǎng)站建設(shè)、營銷型網(wǎng)站建設(shè)、網(wǎng)站設(shè)計公司
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)