當(dāng)單臺(tái)MySQL服務(wù)器無(wú)法滿足當(dāng)前網(wǎng)站流量時(shí)的優(yōu)化方案。需要搭建mysql集群技術(shù)。
公司主營(yíng)業(yè)務(wù):成都做網(wǎng)站、成都網(wǎng)站制作、移動(dòng)網(wǎng)站開(kāi)發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競(jìng)爭(zhēng)能力。創(chuàng)新互聯(lián)是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開(kāi)放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對(duì)我們的高要求,感謝他們從不同領(lǐng)域給我們帶來(lái)的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會(huì)用頭腦與智慧不斷的給客戶帶來(lái)驚喜。創(chuàng)新互聯(lián)推出杏花嶺免費(fèi)做網(wǎng)站回饋大家。
一、功能:
當(dāng)向主服務(wù)器插入|修改|刪除數(shù)據(jù)時(shí),數(shù)據(jù)會(huì)自動(dòng)同步到從服務(wù)器。
注意:主從復(fù)制是單向的,只能主 -> 從
分為兩種類型:發(fā)射型(一主多從):一般使用在:備份、讀寫分離。
環(huán)形(多主多從):一般使用:當(dāng)主服務(wù)器壓力大時(shí)、跨地區(qū)的網(wǎng)站實(shí)現(xiàn)數(shù)據(jù)同步
在環(huán)形結(jié)構(gòu)中,如果同時(shí)向三臺(tái)服務(wù)器的同一表插入記錄會(huì)出現(xiàn)“ID沖突的問(wèn)題”。
解決辦法:讓三臺(tái)服務(wù)器生成不同的ID;
第一臺(tái):1,4,7...
第二臺(tái):2,5,8..
第三臺(tái):3,6,9...
這個(gè)可以MYSQL的配置文件中設(shè)置:
二、主從的原理(利用了bin日志)
Mysql中有一種日志叫做bin日志(二進(jìn)制日志)。這個(gè)日志會(huì)記錄下所有修改了數(shù)據(jù)庫(kù)的SQL語(yǔ)句(insert,update,delete,ALTER TABLE,grant等等)。主從復(fù)制的原理其實(shí)就是把主服務(wù)器上的BIN日志復(fù)制到從服務(wù)器上執(zhí)行一遍,這樣從服務(wù)器上的數(shù)據(jù)就和主服務(wù)器上的數(shù)據(jù)相同了。
擴(kuò)展:mysql中的日志:
查詢?nèi)罩惧e(cuò)誤日志 Bin日志
慢日志:你可以設(shè)置一個(gè)時(shí)間閥值,如0.5秒,那么將來(lái)所以執(zhí)行時(shí)間超過(guò)這個(gè)值的SQL語(yǔ)句就會(huì)被記錄下來(lái)。這樣我們就可以把慢的SQL語(yǔ)句記錄下來(lái),專門進(jìn)行優(yōu)化。
用途:可以快速定位到網(wǎng)站中比較拖網(wǎng)站的SQL,然后可以優(yōu)化:建索引,緩存這個(gè)SQL的結(jié)果。
三、實(shí)際的配置
把windows系統(tǒng)的MYSQL做為主服務(wù)器,LINUX下的做為從服務(wù)器。
主服務(wù)器:
1. 開(kāi)啟bin日志
修改mysql的配置文件:my.ini添加:
為服務(wù)器指定一個(gè)server-id(主從服務(wù)器的ID值不能重復(fù))
如果是環(huán)形的服務(wù)器需要添加以下項(xiàng):
log-slave-updates = on // 如果是環(huán)形多服務(wù)器,要設(shè)置這一項(xiàng),
在主服務(wù)器上為從服務(wù)器創(chuàng)建一個(gè)用來(lái)同步數(shù)據(jù)的賬號(hào)
登錄MYSQL
執(zhí)行一個(gè)SQL:
創(chuàng)建了一個(gè)只有REPLICATION SLAVE權(quán)限的賬號(hào):用戶名:slave密碼:1234
在主服務(wù)器執(zhí)行SQL查看主服務(wù)器當(dāng)前bin日志的狀態(tài)
注意:每次修改數(shù)據(jù)時(shí)這兩個(gè)值都會(huì)改變,所以在查看了這兩個(gè)值之后,不要操作主服務(wù)器、直接到從服務(wù)器配置完成之后,否則這個(gè)值對(duì)應(yīng)不上會(huì)同步失敗。
從服務(wù)器(linux):
開(kāi)啟bin日志
修改配置文件/etc/my.cnf
設(shè)置一個(gè)server-id:
3. 如果是環(huán)形的服務(wù)器需要添加以下項(xiàng):
log-slave-updates = on // 如果是環(huán)形多服務(wù)器,要設(shè)置這一項(xiàng),
4.在從服務(wù)器上執(zhí)行SQL語(yǔ)句配置主服務(wù)器的地址:
登錄MYSQL:
設(shè)置從服務(wù)器并啟動(dòng)復(fù)制功能
5.執(zhí)行SQL查詢從服務(wù)器的狀態(tài)是否配置成功:
如果是兩個(gè)YES那么代碼成功!完成!
說(shuō)明:在配置成功之前,主服務(wù)器上的數(shù)據(jù)不會(huì)自動(dòng)到從服務(wù)器上來(lái)。所以需要在配置之前先把主服務(wù)器上的所有數(shù)據(jù)先手動(dòng)的導(dǎo)到從服務(wù)器上來(lái),然后配置完主從之后,數(shù)據(jù)以后就同步了。
應(yīng)用場(chǎng)合:
從服務(wù)器做為數(shù)據(jù)的備份服務(wù)器。當(dāng)服務(wù)器壓力比較大時(shí)可以使用主從服務(wù)器實(shí)現(xiàn)讀、寫分離來(lái)分流減輕服務(wù)器的壓力??绲赜蚓W(wǎng)站的優(yōu)化
制作一個(gè)留言板的功能,考慮到不同地域優(yōu)化的架構(gòu)思路?
以上就是關(guān)于MYSQL主從復(fù)制的全部原理知識(shí)點(diǎn),感謝大家的學(xué)習(xí)和對(duì)創(chuàng)新互聯(lián)的支持。