Postgresql

執行 barman recover 命令後 Postgres 伺服器保持只讀模式

  • September 22, 2020

全部,

我正在嘗試使用酒保使用恢復命令執行 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 將恢復的實例正確配置為備用實例

祝你好運。

如果你喜歡這個答案,請投票。懷俄明

引用自:https://dba.stackexchange.com/questions/267490