亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

PostgreSQL邏輯復制數據不一致導致主庫wal log無限增大怎么辦

發布時間:2022-01-04 09:54:37 來源:億速云 閱讀:154 作者:柒染 欄目:大數據

本篇文章為大家展示了PostgreSQL邏輯復制數據不一致導致主庫wal log無限增大怎么辦,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

PostgreSQL的邏輯復制對比物理復制的好處總結有以下幾點

1 靈活: 邏輯復制對比物理復制來說,可以單表進行數據的復制,物理復制則是不可以的,并且大部分時間對于ETL的功能需求來說,物理復制太重了,需要的磁盤,網絡,等資源都相對于邏輯復制消耗的要大的多. 

2 方便:邏輯復制相對于物理復制,設置會更簡單,可以隨時終止或者創建,數據進行同步等等.

3 定制化:邏輯復制可以設置復制的操作,例如只需要進行insert 的復制,或者 update, delete 等操作的復制,可以做到, 數據不和primary端一致,而達到某些目的.

4 數據遷移,PG如果版本不同進行升級的情況下,PG的logical replication 是可以作為一種數據遷移的方案,在不同的版本中進行數據的同步使用的.

PostgreSQL邏輯復制數據不一致導致主庫wal log無限增大怎么辦

邏輯復制還是使用物理復制架構實現,從上圖可見, 在復制槽的基礎上添加了pgoutput plugin 將原有的wal 日志轉換后發送, subscription 在接受這些信息,將信息填充到目的地. 為了避免數據被重復的在subscription 上重復操作,通過客戶端記錄接受的LSN號碼,避免重復接受同樣的數據,并操作.

另外需要提示的是,很多不能進行vacuum的案例中,部分都有復制槽的出現,可能這個復制槽一主多用,同時有數據接收端,其中如果有數據接收端無法接受數據,則與相關的需要保留的tuples 就不會被清理,造成 vacuum 無法回收.

下面我們有一個復制槽

PostgreSQL邏輯復制數據不一致導致主庫wal log無限增大怎么辦

然后我們人為的制造一個沖突. 在數據復制的從庫,將數據表的人為添加了一條數據.

PostgreSQL邏輯復制數據不一致導致主庫wal log無限增大怎么辦

在subscription 端查看subscription 的信息

PostgreSQL邏輯復制數據不一致導致主庫wal log無限增大怎么辦

然后我們在publication 端也插入數據

PostgreSQL邏輯復制數據不一致導致主庫wal log無限增大怎么辦

直接進入到subscription 中查看錯誤日志

PostgreSQL邏輯復制數據不一致導致主庫wal log無限增大怎么辦

系統一直在報錯的狀態中, 由于主庫和從庫之間的數據操作沖突,導致從主庫到從庫的數據無法被操作. 那到底是怎么影響了WAL log

我們繼續往下看

在主庫我們將2000條數據刪除1900條

PostgreSQL邏輯復制數據不一致導致主庫wal log無限增大怎么辦

在subscription 中我們查看當前的數據,結果一定是和主庫已經脫離,不會在繼續進行任何操作,主要的原因也是 邏輯復制是有順序的,如果任何一個操作被卡主,則后續的操作都不會被完成.

PostgreSQL邏輯復制數據不一致導致主庫wal log無限增大怎么辦

那么后續主庫的 latest checkpoint location 的進度將停止,無論你做任何的操作,或者使用checkpoint 命令 也不會影響

PostgreSQL邏輯復制數據不一致導致主庫wal log無限增大怎么辦

這里如果PG_WAL 無法進行checkpoint 則表明PG的WAL LOG 無法歸檔,隨著主庫的操作越來越多,則WA了的文件也會越來越大,無法進行清理.

下面我們在從庫中將自行添加的記錄刪除后,在看主庫的checkpoint location 

已經變化了. 

PostgreSQL邏輯復制數據不一致導致主庫wal log無限增大怎么辦

當然如何監控replication logical 復制是否中斷的問題

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邏輯復制數據不一致導致主庫wal log無限增大怎么辦

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

邏輯復制停止會造成主庫的wal 無法截斷的問題,所以如果PG 已經使用了邏輯復制,則必須對邏輯復制進行監控,否則在繁忙的業務系統中,邏輯復制的停止,會讓你的主庫的wal 空間出現問題,最終導致主庫磁盤空間耗盡的問題.

上述內容就是PostgreSQL邏輯復制數據不一致導致主庫wal log無限增大怎么辦,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

临泽县| 安乡县| 万荣县| 崇义县| 汕头市| 沐川县| 仙游县| 漾濞| 永州市| 响水县| 呼图壁县| 绍兴市| 南江县| 迁安市| 临邑县| 麟游县| 新民市| 珠海市| 江津市| 江城| 手游| 甘南县| 哈尔滨市| 盐城市| 建宁县| 蛟河市| 青阳县| 洪洞县| 棋牌| 八宿县| 安仁县| 黄山市| 教育| 工布江达县| 广汉市| 高青县| 宣化县| 自贡市| 长葛市| 山丹县| 静海县|