當(dāng)單臺MYSQL服務(wù)器無法滿足當(dāng)前網(wǎng)站流量時(shí)的優(yōu)化方案。需要搭建mysql集群技術(shù)。
一、功能:
當(dāng)向主服務(wù)器插入|修改|刪除數(shù)據(jù)時(shí),數(shù)據(jù)會自動同步到從服務(wù)器。
注意:主從復(fù)制是單向的,只能主 -> 從
分為兩種類型:發(fā)射型(一主多從):一般使用在:備份、讀寫分離。
環(huán)形(多主多從):一般使用:當(dāng)主服務(wù)器壓力大時(shí)、跨地區(qū)的網(wǎng)站實(shí)現(xiàn)數(shù)據(jù)同步
在環(huán)形結(jié)構(gòu)中,如果同時(shí)向三臺服務(wù)器的同一表插入記錄會出現(xiàn)“ID沖突的問題”。
解決辦法:讓三臺服務(wù)器生成不同的ID;
第一臺:1,4,7...
第二臺:2,5,8..
第三臺:3,6,9...
這個(gè)可以MYSQL的配置文件中設(shè)置:
二、主從的原理(利用了bin日志)
Mysql中有一種日志叫做bin日志(二進(jìn)制日志)。這個(gè)日志會記錄下所有修改了數(shù)據(jù)庫的SQL語句(insert,update,delete,ALTER TABLE,grant等等)。主從復(fù)制的原理其實(shí)就是把主服務(wù)器上的BIN日志復(fù)制到從服務(wù)器上執(zhí)行一遍,這樣從服務(wù)器上的數(shù)據(jù)就和主服務(wù)器上的數(shù)據(jù)相同了。
擴(kuò)展:mysql中的日志:
查詢?nèi)罩惧e誤日志 Bin日志
慢日志:你可以設(shè)置一個(gè)時(shí)間閥值,如0.5秒,那么將來所以執(zhí)行時(shí)間超過這個(gè)值的SQL語句就會被記錄下來。這樣我們就可以把慢的SQL語句記錄下來,專門進(jìn)行優(yōu)化。
用途:可以快速定位到網(wǎng)站中比較拖網(wǎng)站的SQL,然后可以優(yōu)化:建索引,緩存這個(gè)SQL的結(jié)果。
三、實(shí)際的配置
把windows系統(tǒng)的MYSQL做為主服務(wù)器,LINUX下的做為從服務(wù)器。
主服務(wù)器:
1. 開啟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è)用來同步數(shù)據(jù)的賬號
登錄MYSQL
執(zhí)行一個(gè)SQL:
創(chuàng)建了一個(gè)只有REPLICATION SLAVE權(quán)限的賬號:用戶名:slave密碼:1234
在主服務(wù)器執(zhí)行SQL查看主服務(wù)器當(dāng)前bin日志的狀態(tài)
注意:每次修改數(shù)據(jù)時(shí)這兩個(gè)值都會改變,所以在查看了這兩個(gè)值之后,不要操作主服務(wù)器、直接到從服務(wù)器配置完成之后,否則這個(gè)值對應(yīng)不上會同步失敗。
從服務(wù)器(linux):
開啟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語句配置主服務(wù)器的地址:
登錄MYSQL:
設(shè)置從服務(wù)器并啟動復(fù)制功能
5.執(zhí)行SQL查詢從服務(wù)器的狀態(tài)是否配置成功:
如果是兩個(gè)YES那么代碼成功!完成!
說明:在配置成功之前,主服務(wù)器上的數(shù)據(jù)不會自動到從服務(wù)器上來。所以需要在配置之前先把主服務(wù)器上的所有數(shù)據(jù)先手動的導(dǎo)到從服務(wù)器上來,然后配置完主從之后,數(shù)據(jù)以后就同步了。
應(yīng)用場合:
從服務(wù)器做為數(shù)據(jù)的備份服務(wù)器。當(dāng)服務(wù)器壓力比較大時(shí)可以使用主從服務(wù)器實(shí)現(xiàn)讀、寫分離來分流減輕服務(wù)器的壓力。跨地域網(wǎng)站的優(yōu)化
制作一個(gè)留言板的功能,考慮到不同地域優(yōu)化的架構(gòu)思路?
以上就是關(guān)于MYSQL主從復(fù)制的全部原理知識點(diǎn),感謝大家的學(xué)習(xí)和對腳本之家的支持。
您可能感興趣的文章:- MySQL主從復(fù)制延遲原因以及解決方案
- mysql主從復(fù)制配置過程
- 全面解讀MySQL主從復(fù)制,從原理到安裝配置
- MySQL 主從復(fù)制原理與實(shí)踐詳解
- MySQL主從復(fù)制與讀寫分離原理及用法詳解
- Mysql主從復(fù)制作用和工作原理詳解
- MYSQL 完全備份、主從復(fù)制、級聯(lián)復(fù)制、半同步小結(jié)
- 深入理解MySQL主從復(fù)制線程狀態(tài)轉(zhuǎn)變
- mysql 主從復(fù)制如何跳過報(bào)錯