mysql 异步 同步 不支持,Mysql 异步/同步/半同步复制
Mysql復(fù)制
異步
邏輯
MySQL 默認(rèn)的復(fù)制就是異步的,主庫(kù)再執(zhí)行完客戶(hù)端提交的事務(wù)后會(huì)立即將結(jié)果返回給客戶(hù)端,并不關(guān)系從庫(kù)是否已經(jīng)接收和處理。
技術(shù)實(shí)現(xiàn)
MySQL主庫(kù)將Binlog事件寫(xiě)入到Binlog文件中,此時(shí)主庫(kù)只通知一下Dump線程發(fā)送這些新的Binlog,然后主庫(kù)繼續(xù)處理提交操作,不會(huì)保證這些Binlog傳到任何一個(gè)從庫(kù)節(jié)點(diǎn)上。
缺點(diǎn)
因?yàn)楫惒綇?fù)制,主節(jié)點(diǎn)不關(guān)從節(jié)點(diǎn)是否收到Binlog,如果主crash掉了,此時(shí)主節(jié)點(diǎn)上已提交的事務(wù)可能并沒(méi)有傳到從庫(kù)上,如果此時(shí),強(qiáng)行將從節(jié)點(diǎn)提升為主節(jié)點(diǎn),可能導(dǎo)致新的主節(jié)點(diǎn)上數(shù)據(jù)不完整。
全同步
邏輯
全同步是指當(dāng)主庫(kù)接收到客戶(hù)端的一個(gè)事務(wù)請(qǐng)求,所有的從庫(kù)都執(zhí)行了該事務(wù)才返回給客戶(hù)端。
技術(shù)實(shí)現(xiàn)
當(dāng)主庫(kù)收到客戶(hù)端提交的事務(wù)后,所有的從庫(kù)必須收到并且執(zhí)行事務(wù),然后主庫(kù)才會(huì)執(zhí)行后續(xù)操作。
缺點(diǎn)
因?yàn)橐却袕膸?kù)執(zhí)行完事務(wù),主庫(kù)才將結(jié)果返回給客戶(hù)端,所以全同步復(fù)制的性能必然受到嚴(yán)重影響,即完成一個(gè)事務(wù)的時(shí)間被拉長(zhǎng),性能降低。
半同步
邏輯
半同步復(fù)制是介于全同步復(fù)制和全異步復(fù)制之間的一種,主庫(kù)只需要等待至少一個(gè)從庫(kù)節(jié)點(diǎn)收到并Flush Binlog到Relay log文件即可,主庫(kù)不需要等待所有從庫(kù)給主庫(kù)反饋。(注意只要收到一個(gè)從庫(kù)的反饋即可)
技術(shù)實(shí)現(xiàn)
介于異步復(fù)制和全同步復(fù)制之間,主庫(kù)再執(zhí)行完客戶(hù)端提交的食物后不是立刻返回給客戶(hù)端,而是等待至少一個(gè)從庫(kù)接收到并寫(xiě)到relay log中才返回給客戶(hù)端。
缺點(diǎn)
相對(duì)于異步復(fù)制,半同步復(fù)制提交了數(shù)據(jù)的安全性,同時(shí)它也造成了一定程序的延遲,這個(gè)延遲至少是一個(gè)TCP/IP往返時(shí)間,因此,半同步復(fù)制雖好在低延時(shí)的網(wǎng)絡(luò)中使用。
XMind - Trial Version
總結(jié)
以上是生活随笔為你收集整理的mysql 异步 同步 不支持,Mysql 异步/同步/半同步复制的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Strus2中关于ValueStack详
- 下一篇: 数据库设计思考