MySQL數(shù)據(jù)庫自身提供的主從復(fù)制功能可以方便的實(shí)現(xiàn)數(shù)據(jù)的多處自動(dòng)備份,實(shí)現(xiàn)數(shù)據(jù)庫的拓展。多個(gè)數(shù)據(jù)備份不僅可以加強(qiáng)數(shù)據(jù)的安全性,通過實(shí)現(xiàn)讀寫分離還能進(jìn)一步提升數(shù)據(jù)庫的負(fù)載性能。
下圖就描述了一個(gè)多個(gè)數(shù)據(jù)庫間主從復(fù)制與讀寫分離的模型(來源網(wǎng)絡(luò)):
在一主多從的數(shù)據(jù)庫體系中,多個(gè)從服務(wù)器采用異步的方式更新主數(shù)據(jù)庫的變化,業(yè)務(wù)服務(wù)器在執(zhí)行寫或者相關(guān)修改數(shù)據(jù)庫的操作是在主服務(wù)器上進(jìn)行的,讀操作則是在各從服務(wù)器上進(jìn)行。如果配置了多個(gè)從服務(wù)器或者多個(gè)主服務(wù)器又涉及到相應(yīng)的負(fù)載均衡問題,關(guān)于負(fù)載均衡具體的技術(shù)細(xì)節(jié)還沒有研究過,今天就先簡單的實(shí)現(xiàn)一主一從的主從復(fù)制功能。
Mysql主從復(fù)制的實(shí)現(xiàn)原理圖大致如下(來源網(wǎng)絡(luò)):
MySQL之間數(shù)據(jù)復(fù)制的基礎(chǔ)是二進(jìn)制日志文件(binary log file)。一臺(tái)MySQL數(shù)據(jù)庫一旦啟用二進(jìn)制日志后,其作為master,它的數(shù)據(jù)庫中所有操作都會(huì)以“事件”的方式記錄在二進(jìn)制日志中,其他數(shù)據(jù)庫作為slave通過一個(gè)I/O線程與主服務(wù)器保持通信,并監(jiān)控master的二進(jìn)制日志文件的變化,如果發(fā)現(xiàn)master二進(jìn)制日志文件發(fā)生變化,則會(huì)把變化復(fù)制到自己的中繼日志中,然后slave的一個(gè)SQL線程會(huì)把相關(guān)的“事件”執(zhí)行到自己的數(shù)據(jù)庫中,以此實(shí)現(xiàn)從數(shù)據(jù)庫和主數(shù)據(jù)庫的一致性,也就實(shí)現(xiàn)了主從復(fù)制。
實(shí)現(xiàn)MySQL主從復(fù)制需要進(jìn)行的配置:
主服務(wù)器:
開啟二進(jìn)制日志
配置唯一的server-id
獲得master二進(jìn)制日志文件名及位置
創(chuàng)建一個(gè)用于slave和master通信的用戶賬號(hào)
從服務(wù)器:
配置唯一的server-id
使用master分配的用戶賬號(hào)讀取master二進(jìn)制日志
啟用slave服務(wù)
具體實(shí)現(xiàn)過程如下:
一、準(zhǔn)備工作:
1.主從數(shù)據(jù)庫版本最好一致
2.主從數(shù)據(jù)庫內(nèi)數(shù)據(jù)保持一致
主數(shù)據(jù)庫:182.92.172.80 /linux
從數(shù)據(jù)庫:123.57.44.85 /linux
二、主數(shù)據(jù)庫master修改:
1.修改mysql配置
延伸閱讀
- ssh框架 2016-09-30
- 阿里移動(dòng)安全 [無線安全]玩轉(zhuǎn)無線電——不安全的藍(lán)牙鎖 2017-07-26
- 消息隊(duì)列NetMQ 原理分析4-Socket、Session、Option和Pipe 2024-03-26
- Selective Search for Object Recognition 論文筆記【圖片目標(biāo)分割】 2017-07-26
- 詞向量-LRWE模型-更好地識(shí)別反義詞同義詞 2017-07-26
- 從棧不平衡問題 理解 calling convention 2017-07-26
- php imagemagick 處理 圖片剪切、壓縮、合并、插入文本、背景色透明 2017-07-26
- Swift實(shí)現(xiàn)JSON轉(zhuǎn)Model - HandyJSON使用講解 2017-07-26
- 阿里移動(dòng)安全 Android端惡意鎖屏勒索應(yīng)用分析 2017-07-26
- 集合結(jié)合數(shù)據(jù)結(jié)構(gòu)來看看(二) 2017-07-26