簡體   English   中英

PostgreSQL 邏輯復制 - 創建訂閱掛起

[英]PostgreSQL logical replication - create subscription hangs

我正在嘗試使用 Debian 9 和 PG 11.1 在 2 個雲實例之間設置邏輯復制。 master 上的命令CREATE PUBLICATION成功,但是當我在預期的邏輯副本上啟動命令CREATE SUBSCRIPTION時,該命令無限期掛起。

在 master 上,我可以看到復制槽已創建並且處於活動狀態,我可以看到一個新的 walsender 進程已創建並“等待”,在 master 上的日志中,我看到這些行:

2019-01-14 14:20:39.924 UTC [8349] repl_user@db LOG:  logical decoding found initial starting point at 7B0/6C777D10
2019-01-14 14:20:39.924 UTC [8349] repl_user@db DETAIL:  Waiting for transactions (approximately 2) older than 827339177 to end.

但僅此而已。 命令CREATE SUBSCRIPTION永遠不會結束。

Master 是一個有大量插入的數據庫,比如每分鍾 100 次,但它們總是被提交。 所以不應該有任何長時間未提交的事務。

我試圖用谷歌搜索這個問題,但沒有找到任何東西。 我錯過了什么?

由於數據庫“在雲中”,您不知道它們的真實位置。

奇怪的是它們實際上在同一個數據庫集群中,這可以解釋您看到的死鎖: CREATE SUBSCRIPTION等待,直到包含復制源數據庫的集群上的所有並發事務都完成后才能創建其復制槽,但由於兩個數據庫在同一個集群中,它等待自己完成,這顯然不會發生。

解決方案是在源數據庫中顯式創建一個邏輯復制槽,並在創建訂閱時使用該現有槽。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM