更新時(shí)間:2019-02-13 10:38 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽10052次
在實(shí)際生產(chǎn)中,數(shù)據(jù)的重要性不言而喻;
如果我們的數(shù)據(jù)庫(kù)只有一臺(tái)服務(wù)器,那么很容易產(chǎn)生單點(diǎn)故障的問(wèn)題,比如這臺(tái)服務(wù)器訪問(wèn)壓力過(guò)大而沒(méi)有響應(yīng)或者奔潰,那么服務(wù)就不可用了,再比如這臺(tái)服務(wù)器的硬盤壞了,那么整個(gè)數(shù)據(jù)庫(kù)的數(shù)據(jù)就全部丟失了,這是重大的安全事故;
為了避免服務(wù)的不可用以及保障數(shù)據(jù)的安全可靠性,我們至少需要部署兩臺(tái)或兩臺(tái)以上服務(wù)器來(lái)存儲(chǔ)數(shù)據(jù)庫(kù)數(shù)據(jù),也就是我們需要將數(shù)據(jù)復(fù)制多份部署在多臺(tái)不同的服務(wù)器上,即使有一臺(tái)服務(wù)器出現(xiàn)故障了,其他服務(wù)器依然可以繼續(xù)提供服務(wù);
MySQL提供了主從復(fù)制功能以提高服務(wù)的可用性與數(shù)據(jù)的安全可靠性;
主從復(fù)制是指服務(wù)器分為主服務(wù)器和從服務(wù)器,主服務(wù)器負(fù)責(zé)讀和寫,從服務(wù)器只負(fù)責(zé)讀,主從復(fù)制也叫 master/slave,master是主,slave是從;
主從復(fù)制可以實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)備份和讀寫分離;
主從復(fù)制架構(gòu)
MySQL的主從復(fù)制將經(jīng)過(guò)如下步驟:
1、當(dāng) master 主服務(wù)器上的數(shù)據(jù)發(fā)生改變時(shí),則將其改變寫入二進(jìn)制事件日志文件中;
2、salve 從服務(wù)器會(huì)在一定時(shí)間間隔內(nèi)對(duì) master 主服務(wù)器上的二進(jìn)制日志進(jìn)行探測(cè),探測(cè)其是否發(fā)生過(guò)改變,如果探測(cè)到 master 主服務(wù)器的二進(jìn)制事件日志發(fā)生了改變,則開(kāi)始一個(gè) I/O Thread 請(qǐng)求 master 二進(jìn)制事件日志;
3、同時(shí) master 主服務(wù)器為每個(gè) I/O Thread 啟動(dòng)一個(gè)dump Thread,用于向其發(fā)送二進(jìn)制事件日志;
4、slave 從服務(wù)器將接收到的二進(jìn)制事件日志保存至自己本地的中繼日志文件中;
5、salve 從服務(wù)器將啟動(dòng) SQL Thread 從中繼日志中讀取二進(jìn)制日志,在本地重放,使得其數(shù)據(jù)和主服務(wù)器保持一致;
6、最后 I/O Thread 和 SQL Thread 將進(jìn)入睡眠狀態(tài),等待下一次被喚醒;
MySQL主從復(fù)制流程圖
相關(guān)閱讀
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
有基礎(chǔ) 直達(dá)就業(yè)
業(yè)余時(shí)間 高薪轉(zhuǎn)行
工作1~3年,加薪神器
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問(wèn)老師會(huì)電話與您溝通安排學(xué)習(xí)
初級(jí) 202925
初級(jí) 203221
初級(jí) 202629
初級(jí) 203743