PostgreSQL邏輯復(fù)制數(shù)據(jù)不一致導(dǎo)致主庫(kù)wallog無(wú)限增大怎么辦

本篇文章為大家展示了PostgreSQL邏輯復(fù)制數(shù)據(jù)不一致導(dǎo)致主庫(kù)wal log無(wú)限增大怎么辦,內(nèi)容簡(jiǎn)明扼要并且容易理解,絕對(duì)能使你眼前一亮,通過(guò)這篇文章的詳細(xì)介紹希望你能有所收獲。

新洲ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書(shū)未來(lái)市場(chǎng)廣闊!成為創(chuàng)新互聯(lián)的ssl證書(shū)銷售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:028-86922220(備注:SSL證書(shū)合作)期待與您的合作!

PostgreSQL的邏輯復(fù)制對(duì)比物理復(fù)制的好處總結(jié)有以下幾點(diǎn)

1 靈活: 邏輯復(fù)制對(duì)比物理復(fù)制來(lái)說(shuō),可以單表進(jìn)行數(shù)據(jù)的復(fù)制,物理復(fù)制則是不可以的,并且大部分時(shí)間對(duì)于ETL的功能需求來(lái)說(shuō),物理復(fù)制太重了,需要的磁盤,網(wǎng)絡(luò),等資源都相對(duì)于邏輯復(fù)制消耗的要大的多. 

2 方便:邏輯復(fù)制相對(duì)于物理復(fù)制,設(shè)置會(huì)更簡(jiǎn)單,可以隨時(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)行升級(jí)的情況下,PG的logical replication 是可以作為一種數(shù)據(jù)遷移的方案,在不同的版本中進(jìn)行數(shù)據(jù)的同步使用的.

PostgreSQL邏輯復(fù)制數(shù)據(jù)不一致導(dǎo)致主庫(kù)wal log無(wú)限增大怎么辦

邏輯復(fù)制還是使用物理復(fù)制架構(gòu)實(shí)現(xiàn),從上圖可見(jiàn), 在復(fù)制槽的基礎(chǔ)上添加了pgoutput plugin 將原有的wal 日志轉(zhuǎn)換后發(fā)送, subscription 在接受這些信息,將信息填充到目的地. 為了避免數(shù)據(jù)被重復(fù)的在subscription 上重復(fù)操作,通過(guò)客戶端記錄接受的LSN號(hào)碼,避免重復(fù)接受同樣的數(shù)據(jù),并操作.

另外需要提示的是,很多不能進(jìn)行vacuum的案例中,部分都有復(fù)制槽的出現(xiàn),可能這個(gè)復(fù)制槽一主多用,同時(shí)有數(shù)據(jù)接收端,其中如果有數(shù)據(jù)接收端無(wú)法接受數(shù)據(jù),則與相關(guān)的需要保留的tuples 就不會(huì)被清理,造成 vacuum 無(wú)法回收.

下面我們有一個(gè)復(fù)制槽

PostgreSQL邏輯復(fù)制數(shù)據(jù)不一致導(dǎo)致主庫(kù)wal log無(wú)限增大怎么辦

然后我們?nèi)藶榈闹圃煲粋€(gè)沖突. 在數(shù)據(jù)復(fù)制的從庫(kù),將數(shù)據(jù)表的人為添加了一條數(shù)據(jù).

PostgreSQL邏輯復(fù)制數(shù)據(jù)不一致導(dǎo)致主庫(kù)wal log無(wú)限增大怎么辦

在subscription 端查看subscription 的信息

PostgreSQL邏輯復(fù)制數(shù)據(jù)不一致導(dǎo)致主庫(kù)wal log無(wú)限增大怎么辦

然后我們?cè)趐ublication 端也插入數(shù)據(jù)

PostgreSQL邏輯復(fù)制數(shù)據(jù)不一致導(dǎo)致主庫(kù)wal log無(wú)限增大怎么辦

直接進(jìn)入到subscription 中查看錯(cuò)誤日志

PostgreSQL邏輯復(fù)制數(shù)據(jù)不一致導(dǎo)致主庫(kù)wal log無(wú)限增大怎么辦

系統(tǒng)一直在報(bào)錯(cuò)的狀態(tài)中, 由于主庫(kù)和從庫(kù)之間的數(shù)據(jù)操作沖突,導(dǎo)致從主庫(kù)到從庫(kù)的數(shù)據(jù)無(wú)法被操作. 那到底是怎么影響了WAL log

我們繼續(xù)往下看

在主庫(kù)我們將2000條數(shù)據(jù)刪除1900條

PostgreSQL邏輯復(fù)制數(shù)據(jù)不一致導(dǎo)致主庫(kù)wal log無(wú)限增大怎么辦

在subscription 中我們查看當(dāng)前的數(shù)據(jù),結(jié)果一定是和主庫(kù)已經(jīng)脫離,不會(huì)在繼續(xù)進(jìn)行任何操作,主要的原因也是 邏輯復(fù)制是有順序的,如果任何一個(gè)操作被卡主,則后續(xù)的操作都不會(huì)被完成.

PostgreSQL邏輯復(fù)制數(shù)據(jù)不一致導(dǎo)致主庫(kù)wal log無(wú)限增大怎么辦

那么后續(xù)主庫(kù)的 latest checkpoint location 的進(jìn)度將停止,無(wú)論你做任何的操作,或者使用checkpoint 命令 也不會(huì)影響

PostgreSQL邏輯復(fù)制數(shù)據(jù)不一致導(dǎo)致主庫(kù)wal log無(wú)限增大怎么辦

這里如果PG_WAL 無(wú)法進(jìn)行checkpoint 則表明PG的WAL LOG 無(wú)法歸檔,隨著主庫(kù)的操作越來(lái)越多,則WA了的文件也會(huì)越來(lái)越大,無(wú)法進(jìn)行清理.

下面我們?cè)趶膸?kù)中將自行添加的記錄刪除后,在看主庫(kù)的checkpoint location 

已經(jīng)變化了. 

PostgreSQL邏輯復(fù)制數(shù)據(jù)不一致導(dǎo)致主庫(kù)wal log無(wú)限增大怎么辦

當(dāng)然如何監(jiān)控replication logical 復(fù)制是否中斷的問(wèn)題

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;

PostgreSQL邏輯復(fù)制數(shù)據(jù)不一致導(dǎo)致主庫(kù)wal log無(wú)限增大怎么辦

如果你當(dāng)前有一個(gè)replication 的情況下, 查詢主庫(kù),如果復(fù)制正常,則會(huì)查出你與subscription之間的情況, 如果數(shù)據(jù)不一致,造成復(fù)制停止的情況,則再次查詢就不會(huì)有數(shù)據(jù)顯示了.  所以這也是一個(gè)判斷邏輯復(fù)制是否正常的一個(gè)方式方法.

邏輯復(fù)制停止會(huì)造成主庫(kù)的wal 無(wú)法截?cái)嗟膯?wèn)題,所以如果PG 已經(jīng)使用了邏輯復(fù)制,則必須對(duì)邏輯復(fù)制進(jìn)行監(jiān)控,否則在繁忙的業(yè)務(wù)系統(tǒng)中,邏輯復(fù)制的停止,會(huì)讓你的主庫(kù)的wal 空間出現(xiàn)問(wèn)題,最終導(dǎo)致主庫(kù)磁盤空間耗盡的問(wèn)題.

上述內(nèi)容就是PostgreSQL邏輯復(fù)制數(shù)據(jù)不一致導(dǎo)致主庫(kù)wal log無(wú)限增大怎么辦,你們學(xué)到知識(shí)或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識(shí)儲(chǔ)備,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

分享標(biāo)題:PostgreSQL邏輯復(fù)制數(shù)據(jù)不一致導(dǎo)致主庫(kù)wallog無(wú)限增大怎么辦
轉(zhuǎn)載注明:http://muchs.cn/article6/ipgoog.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供電子商務(wù)、網(wǎng)站內(nèi)鏈、手機(jī)網(wǎng)站建設(shè)、網(wǎng)站制作、定制開(kāi)發(fā)商城網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

綿陽(yáng)服務(wù)器托管