[英]PostgreSQL restoration throwing error : replication slot does not exist
環境: Postgresql 13.x
(碼頭化)
我試圖測試 PostgreSQL 個節點的 DR 設置。 pg_basebackup 和 wal_files 存檔是從備用模式中獲取的。
通過復制pg_basebackup
並配置postgresql.conf
以使用指向 walfiles 存檔的restore_command
在新節點上完成恢復。
#----------------------- RECOVERY CONFIGS -----------------------
restore_command = 'cp /db-restore/mydb/walfiles/%f "%p"'
recovery_target_timeline = 'latest'
recovery_target_action = promote
select
查詢返回正確的結果。2022-04-19 10:19:53 UTC [291] rep_usr@[unknown] ERROR: replication slot "slot_name" does not exist
2022-04-19 10:19:58 UTC [296] rep_usr@[unknown] ERROR: replication slot "slot_name" does not exist
由於我已經從備用節點進行了備份,因此此恢復是否將新節點作為備用節點並尋找它在上一代中使用的replication_slot
?
如何將新節點設為主節點(刪除 replication_slot 信息)
如果備份是從待機狀態進行的,恢復的正確步驟是什么?
我有 1 個主節點和 2 個備用節點。 並計划從備用數據庫中進行備份。 那么在備節點上使用archive_mode
和archive_command
時,是否需要做一些具體的改動呢? 當前命令:
archive_mode = always
archive_level = logical
archive_command = 'test ! -f /db-archives/walfiles/%f && cp %p /db-archives/walfiles/%f'"
有人可以幫忙嗎? 任何指針?
我敢肯定,db-backup 將包含有關 replication_slot 和 connection_info 的信息,因為pg_basebackup
本身是整個數據庫的克隆。 要恢復配置,我在包含上述參數的main
目錄中手動刪除postgresql.auto.conf
。
replication_slot
的任何其他引用,我該如何刪除呢?這些錯誤消息似乎不是由恢復引發的,而是由作為數據庫用戶rep_usr
連接的其他一些工具引發的。
如果您的應用程序需要,請創建復制槽!
我刪除了所有配置並從新開始。
main/postgresql.auto.conf
。pg_basebackup
時, main/postgresql.auto.conf
存在於備用節點中。 包含用於備用節點中的 pg_basebackup 的配置。 (插槽名稱和連接信息)。 當我將備份從備用恢復到主時,我不需要那個postgresql.auto.conf
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.