本篇文章為大家展示了PostgreSQL邏輯復(fù)制數(shù)據(jù)不一致導(dǎo)致主庫wal log無限增大怎么辦,內(nèi)容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細(xì)介紹希望你能有所收獲。
新洲ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場景,ssl證書未來市場廣闊!成為創(chuàng)新互聯(lián)的ssl證書銷售渠道,可以享受市場價格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:028-86922220(備注:SSL證書合作)期待與您的合作!
PostgreSQL的邏輯復(fù)制對比物理復(fù)制的好處總結(jié)有以下幾點
1 靈活: 邏輯復(fù)制對比物理復(fù)制來說,可以單表進(jìn)行數(shù)據(jù)的復(fù)制,物理復(fù)制則是不可以的,并且大部分時間對于ETL的功能需求來說,物理復(fù)制太重了,需要的磁盤,網(wǎng)絡(luò),等資源都相對于邏輯復(fù)制消耗的要大的多.
2 方便:邏輯復(fù)制相對于物理復(fù)制,設(shè)置會更簡單,可以隨時終止或者創(chuàng)建,數(shù)據(jù)進(jìn)行同步等等.
3 定制化:邏輯復(fù)制可以設(shè)置復(fù)制的操作,例如只需要進(jìn)行insert 的復(fù)制,或者 update, delete 等操作的復(fù)制,可以做到, 數(shù)據(jù)不和primary端一致,而達(dá)到某些目的.
4 數(shù)據(jù)遷移,PG如果版本不同進(jìn)行升級的情況下,PG的logical replication 是可以作為一種數(shù)據(jù)遷移的方案,在不同的版本中進(jìn)行數(shù)據(jù)的同步使用的.
邏輯復(fù)制還是使用物理復(fù)制架構(gòu)實現(xiàn),從上圖可見, 在復(fù)制槽的基礎(chǔ)上添加了pgoutput plugin 將原有的wal 日志轉(zhuǎn)換后發(fā)送, subscription 在接受這些信息,將信息填充到目的地. 為了避免數(shù)據(jù)被重復(fù)的在subscription 上重復(fù)操作,通過客戶端記錄接受的LSN號碼,避免重復(fù)接受同樣的數(shù)據(jù),并操作.
另外需要提示的是,很多不能進(jìn)行vacuum的案例中,部分都有復(fù)制槽的出現(xiàn),可能這個復(fù)制槽一主多用,同時有數(shù)據(jù)接收端,其中如果有數(shù)據(jù)接收端無法接受數(shù)據(jù),則與相關(guān)的需要保留的tuples 就不會被清理,造成 vacuum 無法回收.
下面我們有一個復(fù)制槽
然后我們?nèi)藶榈闹圃煲粋€沖突. 在數(shù)據(jù)復(fù)制的從庫,將數(shù)據(jù)表的人為添加了一條數(shù)據(jù).
在subscription 端查看subscription 的信息
然后我們在publication 端也插入數(shù)據(jù)
直接進(jìn)入到subscription 中查看錯誤日志
系統(tǒng)一直在報錯的狀態(tài)中, 由于主庫和從庫之間的數(shù)據(jù)操作沖突,導(dǎo)致從主庫到從庫的數(shù)據(jù)無法被操作. 那到底是怎么影響了WAL log
我們繼續(xù)往下看
在主庫我們將2000條數(shù)據(jù)刪除1900條
在subscription 中我們查看當(dāng)前的數(shù)據(jù),結(jié)果一定是和主庫已經(jīng)脫離,不會在繼續(xù)進(jìn)行任何操作,主要的原因也是 邏輯復(fù)制是有順序的,如果任何一個操作被卡主,則后續(xù)的操作都不會被完成.
那么后續(xù)主庫的 latest checkpoint location 的進(jìn)度將停止,無論你做任何的操作,或者使用checkpoint 命令 也不會影響
這里如果PG_WAL 無法進(jìn)行checkpoint 則表明PG的WAL LOG 無法歸檔,隨著主庫的操作越來越多,則WA了的文件也會越來越大,無法進(jìn)行清理.
下面我們在從庫中將自行添加的記錄刪除后,在看主庫的checkpoint location
已經(jīng)變化了.
當(dāng)然如何監(jiān)控replication logical 復(fù)制是否中斷的問題
select pid, client_addr, state, sync_state,
pg_wal_lsn_diff(sent_lsn, write_lsn) as write_lag,
pg_wal_lsn_diff(sent_lsn, flush_lsn) as flush_lag,
pg_wal_lsn_diff(sent_lsn, replay_lsn) as replay_lag
from pg_stat_replication;
如果你當(dāng)前有一個replication 的情況下, 查詢主庫,如果復(fù)制正常,則會查出你與subscription之間的情況, 如果數(shù)據(jù)不一致,造成復(fù)制停止的情況,則再次查詢就不會有數(shù)據(jù)顯示了. 所以這也是一個判斷邏輯復(fù)制是否正常的一個方式方法.
邏輯復(fù)制停止會造成主庫的wal 無法截斷的問題,所以如果PG 已經(jīng)使用了邏輯復(fù)制,則必須對邏輯復(fù)制進(jìn)行監(jiān)控,否則在繁忙的業(yè)務(wù)系統(tǒng)中,邏輯復(fù)制的停止,會讓你的主庫的wal 空間出現(xiàn)問題,最終導(dǎo)致主庫磁盤空間耗盡的問題.
上述內(nèi)容就是PostgreSQL邏輯復(fù)制數(shù)據(jù)不一致導(dǎo)致主庫wal log無限增大怎么辦,你們學(xué)到知識或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識儲備,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
分享標(biāo)題:PostgreSQL邏輯復(fù)制數(shù)據(jù)不一致導(dǎo)致主庫wallog無限增大怎么辦
轉(zhuǎn)載注明:http://jinyejixie.com/article6/ipgoog.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供電子商務(wù)、網(wǎng)站內(nèi)鏈、手機(jī)網(wǎng)站建設(shè)、網(wǎng)站制作、定制開發(fā)、商城網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)