復(fù)制方式 | 特點 | 優(yōu)點 | 缺點 |
---|---|---|---|
row | 基于行的格式復(fù)制,記錄需要修改的每行的數(shù)據(jù)信息。 如果一個SQL修改了2w行的數(shù)據(jù),那么就會記錄2w行的日志格式 | 保證了數(shù)據(jù)的強(qiáng)一致性,且由于記錄的是執(zhí)行后的結(jié)果,在從庫上執(zhí)行還原也會比較快 | 日志記錄數(shù)量很多,主從之間的傳輸需要更多的時間。 |
statement | 基于段的日志格式復(fù)制,也就是記錄下更改的SQL記錄,而不是更改的行的記錄。 | 日志記錄量最小。 | 對于一些輸出結(jié)果不確定的函數(shù),在從庫上執(zhí)行一遍很可能會出現(xiàn)問題,如uuid,從庫根據(jù)日志還原主庫數(shù)據(jù)的時候需要執(zhí)行一遍SQL,時間相對較慢。 |
mixed | 混合上面兩種日志格式記錄記錄日志,至于什么時候使用哪種日志方式由MySQL本身決定。 | 可以平衡上面兩種日志格式的優(yōu)缺點。 |
mysql5.7以前默認(rèn)使用statement格式。
設(shè)置方式,可以在配置文件設(shè)置(首選):
binlog_format=ROW
或臨時設(shè)置全局變量(當(dāng)前mysql連接有效):
查看日志格式 mysql > show variables like 'binlog_format'; 設(shè)置日志格式 mysql > set binlog_format='row';
由于兩個主從服務(wù)器一般都會放在同一個機(jī)房里面,兩者之間同步的速度會會比較快,為保證強(qiáng)一致性,應(yīng)該首選行的日志格式記錄(row),保證傳輸素速度可以選擇混合方式(mixed)。
而行的日志格式有下面三種記錄方式:
記錄方式 | 特點 |
---|---|
minimal | 只記錄被修改列的數(shù)據(jù) |
full | 記錄被修改的行的全部列的數(shù)據(jù) |
noblob | 特點同上,只是如果沒有修改blob和text類型的列的情況下,不會記錄這些列的數(shù)據(jù)(也就是大數(shù)據(jù)列) |
mysql默認(rèn)是full,最好修改成minimal。
binlog_row_image=minimal
由于主庫和從庫之間不在同一個主機(jī)上,數(shù)據(jù)同步之間不可以避免地具有延遲,解決的方法有添加緩存,業(yè)務(wù)層的跳轉(zhuǎn)等待,如果非得從數(shù)據(jù)庫層面去減緩延遲問題,可以從復(fù)制時候的三大步驟(主庫產(chǎn)生日志,主從傳輸日志,從庫還原日志內(nèi)容)入手:
1.主庫寫入到日志的速度
控制主庫的事務(wù)大小,分割大事務(wù)為多個小事務(wù)。
如插入20w的數(shù)據(jù),改成插入多次5000行(可以利用分頁的思路)
2.二進(jìn)制日志在主從之間傳輸時間
主從之間盡量在同一個機(jī)房或地域。
日志格式改用MIXED,且設(shè)置行的日志格式未minimal,原理詳見上面的日志格式介紹。
3.減少從庫還原日志的時間
在MySQL5.7版本后可以利用邏輯時鐘方式分配SQL多線程。
設(shè)置邏輯時鐘:slave_parallel_type=‘logical_clock';
設(shè)置復(fù)制線程個數(shù):slave_parallel_workers=4;
重啟MySQL最好切換未MySQL用戶再進(jìn)行操作,不然文件啟動后會有權(quán)限問題。搭建好MySQL的環(huán)境后就設(shè)置好配置里的log-bin選項,這樣以后如果數(shù)據(jù)庫需要從庫的復(fù)制,就不需要重啟數(shù)據(jù)庫,打斷業(yè)務(wù)的進(jìn)行。需要打開主庫的防火墻的對應(yīng)的mysql端口。由于從庫同步主庫的方式,監(jiān)聽主庫發(fā)送的信息,而不是輪詢,因此如果出現(xiàn)通信出現(xiàn)了故障,重新連接后如果主庫沒有進(jìn)行數(shù)據(jù)更改的操作,從庫不會同步數(shù)據(jù),因此可以通過插入空事務(wù)的方式同步數(shù)據(jù)。
以上就是小編本次整理的全部內(nèi)容,感謝你對腳本之家的支持。
標(biāo)簽:浙江 安徽 安康 山南 那曲 濮陽 四川 平頂山
巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《分析MySQL復(fù)制以及調(diào)優(yōu)原理和方法》,本文關(guān)鍵詞 分析,MySQL,復(fù)制,以及,調(diào)優(yōu),;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。