關(guān)于數(shù)據(jù)庫系統(tǒng)的 Republication Lags
Republication Lags ( 復(fù)制延遲)是指在主從數(shù)據(jù)庫復(fù)制環(huán)境中,從庫數(shù)據(jù)同步落后于主庫的時間間隔。

如果復(fù)制延遲比較嚴(yán)重,會對系統(tǒng)有不好的影響,如:
1. 數(shù)據(jù)不一致
從庫的數(shù)據(jù)狀態(tài)會落后主庫,查詢從庫如果讀取到過期數(shù)據(jù),會造成數(shù)據(jù)不一致的情況。
2. 高可用性降低
如果主庫宕機,需要故障轉(zhuǎn)移到從庫提供服務(wù),但此時從庫的數(shù)據(jù)狀態(tài)不是最新的,可能會有比較長的服務(wù)中斷時間。
3. 主從切換困難
主從之間數(shù)據(jù)差距大,進行切換需要的時間更長,可能需要重新建立復(fù)制,同步期間整個系統(tǒng)無法對外服務(wù)。
4. 增加主庫壓力
主庫需要保持較長時間的binary log以供從庫追趕及重建復(fù)制關(guān)系,增加了存儲以及備份的負載。
5. 影響其他服務(wù)
其他依賴于從庫提供實時數(shù)據(jù)的服務(wù)會受到影響,例如報表、數(shù)據(jù)分析等會基于過期的數(shù)據(jù)展現(xiàn),減少準(zhǔn)確性。
所以,嚴(yán)重的復(fù)制延遲最終會降低系統(tǒng)的高可用性,增加故障轉(zhuǎn)移復(fù)雜度,也會對主庫及其他相關(guān)服務(wù)造成額外的負面影響。因此,要把復(fù)制延遲控制在較小的范圍。
主要成因:
1、網(wǎng)絡(luò)延遲:
主庫與從庫之間的網(wǎng)絡(luò)如果存在延遲或中斷,會直接導(dǎo)致復(fù)制數(shù)據(jù)的傳輸速度下降,從而加大復(fù)制延遲。

2、服務(wù)器性能:
如果從庫的服務(wù)器性能比主庫差很多,那么處理并應(yīng)用主庫傳來的binary log的速度會很慢,也會延長復(fù)制時間。



3、事務(wù)過大:
主庫上如果有大量的大事務(wù)執(zhí)行,會占用大量IO并加重從庫的負載,從而造成從庫遲遲不能追上主庫。
4、批量操作:
如批量insert或load data這類批量操作也會增加復(fù)制延遲。
應(yīng)對方法包括:
- 升級網(wǎng)絡(luò)鏈路,減少網(wǎng)絡(luò)延遲。
- 使用性能較好的服務(wù)器作為從庫,并適當(dāng)增加從庫數(shù)量分?jǐn)傌撦d。
- 控制大事務(wù)的執(zhí)行頻率和次數(shù),拆分大事務(wù)為小事務(wù)執(zhí)行。
- 減少批量操作,不要一次性執(zhí)行過多的批量操作語句。
- 適當(dāng)緩存策略,一部分?jǐn)?shù)據(jù)更新而不立即復(fù)制。
- 輔助使用中間層緩存系統(tǒng),減輕主從復(fù)制的壓力。
通過上述策略,可以有效地控制和減小主從復(fù)制的延遲。





















