promote_trigger_file

指定一个文件,用于触发备机提升为主机的系统参数。
此条目涉及一个已弃用的PostgreSQL功能,在未来的版本中可能会停止支持。

promote_trigger_file 是一个配置参数,用于指定文件的路径,如果该文件存在,则会导致备机提升为主机。

promote_trigger_filePostgreSQL 12中添加,取代了recovery.conf参数trigger_file,并在PostgreSQL 16中移除。

默认值

promote_trigger_file 的默认值为:''(空字符串)。

用法

如果设置了promote_trigger_file,并在指定位置放置了匹配的文件,则备机将自行提升为主机。

该文件可以为空。它必须可由运行PostgreSQL的系统用户读取,否则PostgreSQL实例将拒绝启动,或者在运行时终止。

在主节点上,即使指定位置不可访问,promote_trigger_file 也会被忽略。文件的存在不会有任何影响。

PostgreSQL 9.0中,当引入流式复制时,promote_trigger_file 是将正在运行的备机提升为主机的唯一方法。通常,pg_ctl promote(从PostgreSQL 9.1开始可用)和pg_promote()函数(从PostgreSQL 12开始可用)提供了更便捷的方法来实现此目的。

按PostgreSQL版本分列详情

promote_trigger_file (PostgreSQL 15)

设置
单位  
类别 复制/备机服务器
简短描述 指定一个文件名,其存在将结束备机的恢复。
额外描述  
上下文 sighup
变量类型 字符串
来源 默认值
最小值  
最大值  
枚举值  
启动值
重置值
源文件  
源代码行号  
挂起的重启 false

文档: promote_trigger_file

promote_trigger_file (PostgreSQL 14)

设置
单位  
类别 复制/备机服务器
简短描述 指定一个文件名,其存在将结束备机的恢复。
额外描述  
上下文 sighup
变量类型 字符串
来源 默认值
最小值  
最大值  
枚举值  
启动值
重置值
源文件  
源代码行号  
挂起的重启 false

文档: promote_trigger_file

promote_trigger_file (PostgreSQL 13)

设置
单位  
类别 复制/备机服务器
简短描述 指定一个文件名,其存在将结束备机的恢复。
额外描述  
上下文 sighup
变量类型 字符串
来源 默认值
最小值  
最大值  
枚举值  
启动值
重置值
源文件  
源代码行号  
挂起的重启 false

文档: promote_trigger_file

promote_trigger_file (PostgreSQL 12)

设置
单位  
类别 复制/备机服务器
简短描述 指定一个文件名,其存在将结束备机的恢复。
额外描述  
上下文 sighup
变量类型 字符串
来源 默认值
最小值  
最大值  
枚举值  
启动值
重置值
源文件  
源代码行号  
挂起的重启 false

文档: promote_trigger_file

变更历史

示例

如果promote_trigger_file 设置为"/tmp/standby.trg" 并且找到了相应的文件,PostgreSQL日志将包含如下条目

[2022-11-27 09:47:41 UTC]    LOG:  00000: promote trigger file found: /tmp/standby.trg
[2022-11-27 09:47:41 UTC]    FATAL:  57P01: terminating walreceiver process due to administrator command
[2022-11-27 09:47:41 UTC]    LOG:  00000: invalid record length at 0/3000208: wanted 24, got 0
[2022-11-27 09:47:41 UTC]    LOG:  00000: redo done at 0/30001D0 system usage: CPU: user: 0.00 s, system: 0.00 s, elapsed: 83.20 s
[2022-11-27 09:47:41 UTC]    LOG:  00000: selected new timeline ID: 2
[2022-11-27 09:47:41 UTC]    LOG:  00000: archive recovery complete
[2022-11-27 09:47:41 UTC]    LOG:  00000: checkpoint starting: force
[2022-11-27 09:47:41 UTC]    LOG:  00000: database system is ready to accept connections

尝试将promote_trigger_file 设置为PostgreSQL无法访问的位置

[2022-11-27 09:51:18 UTC]    LOG:  00000: received SIGHUP, reloading configuration files
[2022-11-27 09:51:18 UTC]    LOG:  00000: parameter "promote_trigger_file" changed to "/root/standby.trg"
[2022-11-27 09:51:18 UTC]    FATAL:  42501: could not stat promote trigger file "/root/standby.trg": Permission denied
[2022-11-27 09:51:18 UTC]    LOG:  00000: startup process (PID 2210329) exited with exit code 1
[2022-11-27 09:51:18 UTC]    LOG:  00000: terminating any other active server processes
[2022-11-27 09:51:18 UTC]    LOG:  00000: shutting down due to startup process failure
[2022-11-27 09:51:18 UTC]    LOG:  00000: database system is shut down

类别

已弃用GUC配置项复制

另请参阅

pg_ctlpg_promote()

反馈

提交任何关于"promote_trigger_file" 的评论、建议或更正 此处