MySQL主從復(fù)制原理以及需要注意的地方
寫在前面
最近在寫Mycat專題,由于不少小伙伴最近要出去面試,問(wèn)我能不能簡(jiǎn)單寫下MySQL的主從復(fù)制原理和注意事項(xiàng),因?yàn)樵谥暗拿嬖囍斜粏?wèn)到了這些問(wèn)題。我:可以啊,安排上了!!
主從復(fù)制原理
(1) Master 將數(shù)據(jù)改變記錄到二進(jìn)制日志(binary log)中,也就是配置文件 log-bin 指定的文件, 這些記錄叫做二進(jìn)制日志事件(binary log events);
(2) Slave 通過(guò) I/O 線程讀取 Master 中的 binary log events 并寫入到它的中繼日志(relay log);
(3) Slave 重做中繼日志中的事件,把中繼日志中的事件信息一條一條的在本地執(zhí)行一次,完 成數(shù)據(jù)在本地的存儲(chǔ),從而實(shí)現(xiàn)將改變反映到它自己的數(shù)據(jù)(數(shù)據(jù)重放)。

注意事項(xiàng)
(1)主從服務(wù)器操作系統(tǒng)版本和位數(shù)一致;
(2) Master 和 Slave 數(shù)據(jù)庫(kù)的版本要一致;
(3) Master 和 Slave 數(shù)據(jù)庫(kù)中的數(shù)據(jù)要一致;
(4) Master 開(kāi)啟二進(jìn)制日志,Master 和 Slave 的 server_id 在局域網(wǎng)內(nèi)必須唯一;
配置主從復(fù)制步驟
Master數(shù)據(jù)庫(kù)
(1) 安裝數(shù)據(jù)庫(kù);
(2) 修改數(shù)據(jù)庫(kù)配置文件,指明 server_id,開(kāi)啟二進(jìn)制日志(log-bin);
(3) 啟動(dòng)數(shù)據(jù)庫(kù),查看當(dāng)前是哪個(gè)日志,position 號(hào)是多少;
(4) 登錄數(shù)據(jù)庫(kù),授權(quán)數(shù)據(jù)復(fù)制用戶(IP 地址為從機(jī) IP 地址,如果是雙向主從,這里的 還需要授權(quán)本機(jī)的 IP 地址,此時(shí)自己的 IP 地址就是從 IP 地址);
(5) 備份數(shù)據(jù)庫(kù)(記得加鎖和解鎖);
(6) 傳送備份數(shù)據(jù)到 Slave 上;
(7) 啟動(dòng)數(shù)據(jù)庫(kù);
以上步驟,為單向主從搭建成功,想搭建雙向主從需要的步驟:
(1) 登錄數(shù)據(jù)庫(kù),指定 Master 的地址、用戶、密碼等信息(此步僅雙向主從時(shí)需要);
(2) 開(kāi)啟同步,查看狀態(tài);
Slave 上的配置
(1) 安裝數(shù)據(jù)庫(kù);
(2) 修改數(shù)據(jù)庫(kù)配置文件,指明 server_id(如果是搭建雙向主從的話,也要開(kāi)啟二進(jìn)制 日志 log-bin);
(3) 啟動(dòng)數(shù)據(jù)庫(kù),還原備份;
(4) 查看當(dāng)前是哪個(gè)日志,position 號(hào)是多少(單向主從此步不需要,雙向主從需要);
(5) 指定 Master 的地址、用戶、密碼等信息;
(6) 開(kāi)啟同步,查看狀態(tài)。
好了,今天就到這兒吧,后續(xù)我們實(shí)戰(zhàn)以各種方式實(shí)現(xiàn)MySQL主從復(fù)制,我是冰河,我們下期見(jiàn)??!
以上就是MySQL主從復(fù)制原理以及需要注意的地方的詳細(xì)內(nèi)容,更多關(guān)于MySQL 主從復(fù)制的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
mysql中GROUP_CONCAT的使用方法實(shí)例分析
這篇文章主要介紹了mysql中GROUP_CONCAT的使用方法,結(jié)合實(shí)例形式分析了MySQL中GROUP_CONCAT合并查詢結(jié)果的相關(guān)操作技巧,需要的朋友可以參考下2020-02-02
MySQL數(shù)據(jù)庫(kù)備份與恢復(fù)全攻略
在現(xiàn)代應(yīng)用中,數(shù)據(jù)庫(kù)是核心組件之一,無(wú)論是個(gè)人項(xiàng)目還是企業(yè)級(jí)應(yīng)用,數(shù)據(jù)的安全性和完整性都至關(guān)重要,為了防止數(shù)據(jù)丟失、損壞或意外刪除,定期備份數(shù)據(jù)庫(kù)是必不可少的,本文將詳細(xì)介紹 MySQL 數(shù)據(jù)庫(kù)的備份與恢復(fù)方法,需要的朋友可以參考下2024-10-10
MySQL數(shù)據(jù)類型之淺談字符串(string)
這篇文章主要介紹了MySQL數(shù)據(jù)類型之字符串(string)的使用,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-10-10
監(jiān)控MySQL主從狀態(tài)的shell腳本
這篇文章主要分享了監(jiān)控MySQL主從狀態(tài)的shell腳本,幫助大家更好的監(jiān)控mysql數(shù)據(jù)庫(kù),保持穩(wěn)定性,感興趣的朋友可以了解下2020-12-12
分享很少見(jiàn)很有用的SQL功能CORRESPONDING
使用SQL實(shí)現(xiàn)小計(jì),合計(jì)以及排序
Mysql 日期時(shí)間 DATE_FORMAT(date,format)

