admin管理员组

文章数量:1666737

  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/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。默认情况下,此功能仅限超级用户使用,但可以授予其他用户执行该函数权限。

本文标签: 函数recoverypostgresqlconf