MySQL 數(shù)據(jù)庫支持的主從復(fù)制方式如下:
異步復(fù)制(Asynchronous replication)
MySQL 默認(rèn)的復(fù)制即是異步的,主庫在執(zhí)行完客戶端提交的事務(wù)后會(huì)立即將結(jié)果返回給客戶端,并不關(guān)心從庫是否已經(jīng)接受并處理。這樣就會(huì)有一個(gè)問題,主庫如果宕機(jī),會(huì)導(dǎo)致數(shù)據(jù)丟失。
全同步復(fù)制(Fully synchronous replication)
指當(dāng)主庫執(zhí)行完一個(gè)事務(wù),所有的從庫都執(zhí)行了該事務(wù)才返回給客戶端。因?yàn)樾枰却袕膸靾?zhí)行完該事物才能返回,所以全同步復(fù)制的性能必然會(huì)收到嚴(yán)重的影響。
半同步復(fù)制(Semisynchronous replication)
介于異步復(fù)制和全同步之間,主庫在執(zhí)行完客戶端提交的事務(wù)后不是立刻返回給客戶端,而是等待至少一個(gè)從庫收到并寫到 relay log 中才返回給客戶端。相對(duì)于異步復(fù)制,半同步復(fù)制提高了數(shù)據(jù)的安全性。
主從復(fù)制的優(yōu)勢(shì) - 讀寫分離
通過讀寫分離操作,可以實(shí)現(xiàn)服務(wù)器負(fù)載均衡,提升數(shù)據(jù)庫的并發(fā)訪問能力
主從復(fù)制的優(yōu)勢(shì) - 異地備份
主從復(fù)制的優(yōu)勢(shì) - 故障容災(zāi)
當(dāng)主數(shù)據(jù)庫出現(xiàn)問題時(shí),數(shù)據(jù)庫管理員可以立即讓從數(shù)據(jù)庫代替主數(shù)據(jù)庫,快速恢復(fù)系統(tǒng)服務(wù)
數(shù)據(jù)冗余
主從復(fù)制實(shí)現(xiàn)了數(shù)據(jù)的熱備份(一種數(shù)據(jù)的冗余方式)
故障恢復(fù)
當(dāng)節(jié)點(diǎn)出現(xiàn)問題,可以由從節(jié)點(diǎn)提供服務(wù),實(shí)現(xiàn)快速的故障恢復(fù)(一種服務(wù)的冗余方式)
負(fù)載均衡
在主從復(fù)制的基礎(chǔ)上,配合讀寫分離,可以由主節(jié)點(diǎn)提供寫功能,由從節(jié)點(diǎn)提供讀功能,分擔(dān)服務(wù)器負(fù)載,尤其是在寫少讀多的場(chǎng)景下,通過多個(gè)從節(jié)點(diǎn)分擔(dān)讀負(fù)載,可以大大提高 Redis 服務(wù)器的并發(fā)量和處理性能
高可用基
主從復(fù)制還是哨兵和集群能夠?qū)嵤┑幕A(chǔ)(因此說主從復(fù)制是 Redis 高可用的基石)
路由算法
聯(lián)系客服