Postgresql12 recovery.conf 併入postgresql.conf以及主備切換函數介紹

  1. 從 12版本開始,不再有recovery.conf文件,recovery.conf配置的內容全部併入到postgesql.conf中。
  2. 新增了兩個文件recovery.signal和standby.signal,分別代表處於recovery模式還是standby模式,如果兩個文件都配置了,優先爲standby模式,配置語法很簡單,直接新建touch recovery.signal或者touch standby.signal即可
  3. trigger_file參數更名爲promote_trigger_file
  4. standby_mode參數不再支持

使用歸檔恢復和recovery target相關參數見如下:
https://www.postgresql.org/docs/devel/runtime-config-wal.html#RUNTIME-CONFIG-WAL-ARCHIVE-RECOVERY

另外pg_basebackup使用-R參數可以直接生成standby.signal文件,postgresql.auto.conf文件會自動加入流複製primary_conninfo參數的信息。

pg_basebackup -R -D $PGDATA -Fp -Xs -v -P -h xxxxx -p xxxx -U repuser
參數解釋如下:爲流複製寫入相關配置
-R, --write-recovery-conf
                         write configuration for replication

主備切換也有少許不同:

  1. 主庫故障,無法訪問,或者模擬故障,關閉主庫
  2. 激活備庫,這裏有三種方法,1) pg_ctl promote 命令方式; 2) 創建配置的promote_trigger_file觸發器文件方式; 3) pg_promote()函數方式。
  3. 如果原來的主庫需要起來做爲新的備庫,需要手工創建standby.signal,然後啓動。

使用pg_promote()函數進行主備切換示例:


1.pg_ctl stop -m fast --關閉原主庫模擬故障
2.postgres=# SELECT pg_promote(true,60);  --在備庫使用函數進行主備切換,默認爲true,等待60秒
 pg_promote
------------
 t
(1 row)
3.touch standby.signal  --在原來的主庫新建標誌文件
4.pg_ctl start  --啓動原故障的主庫作爲新的備庫

切換物理備節點。將wait設置爲true(默認值)時,該函數將等待升級完成或等待wait_seconds秒,如果切換成功則返回true,否則返回false。如果將wait設置爲false,則該函數將立即發送SIGUSR1給postmaster以觸發升級並返回true。默認情況下,此功能僅限超級用戶使用,但可以授予其他用戶執行該函數權限。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章