Postgresql
執行 barman recover 命令後 Postgres 伺服器保持只讀模式
全部,
我正在嘗試使用酒保使用恢復命令執行 PITR 還原。問題是一旦酒保恢復完成,伺服器仍處於只讀狀態。完成 PITR 後,是否有一種方法可以讓目標伺服器自行作為讀寫伺服器出現?根據酒保文件,我希望 –target-action ‘promote’ 可能會起作用,但這並沒有幫助。
我在 postgres 版本 10.12 上使用 barman 2.10。
以下是我用來執行 PITR 的命令:
barman@abc-barman01:~ $ barman recover --target-time '05/13/2020 14:00:00' --target-action 'promote' --remote-ssh-command "ssh postgres@abc-pg03" abc-pg01 20200512T203002 /var/lib/pgsql/10/data Starting remote restore for server abc-pg01 using backup 20200512T203002 Destination directory: /var/lib/pgsql/10/data Remote command: ssh postgres@abc-pg03 Doing PITR. Recovery target time: '2020-05-13 14:00:00-04:00' Using safe horizon time for smart rsync copy: 2020-04-04 09:27:29.180929-04:00 Copying the base backup. Copying required WAL segments. Generating recovery configuration Identify dangerous settings in destination directory. IMPORTANT These settings have been modified to prevent data losses postgresql.conf line 219: archive_command = false WARNING You are required to review the following options as potentially dangerous postgresql.conf line 83: ssl_cert_file = 'server.crt' postgresql.conf line 84: ssl_key_file = 'server.key' Recovery completed (start time: 2020-05-19 15:38:23.157146, elapsed time: 24 minutes, 21 seconds) Your PostgreSQL server has been successfully prepared for recovery! You have mail in /var/spool/mail/barman
目前,一旦恢復完成,我會手動執行 pg_wal_replay_resume() 以使伺服器進入讀寫模式。如果有人可以對此進行調查,我將不勝感激。
從 barman 2.4 開始,有兩個選項用於恢復後行為。它們是 –target-action 選項,接受以下值:
- shutdown:一旦達到恢復目標,PostgreSQL 就會關閉
- pause:一旦達到恢復目標,PostgreSQL就會以暫停狀態啟動,允許使用者檢查實例
- 提升:一旦達到恢復目標,PostgreSQL 將退出恢復並提升為主
Barman 2.4 還為恢復命令添加了**–standby-mode 選項**,如果指定,該選項會通過創建standby.signal 將恢復的實例正確配置為備用實例
祝你好運。
如果你喜歡這個答案,請投票。懷俄明