recovery_target_action
一个配置参数,用于确定在达到恢复目标时要执行的操作。
recovery_target_action 是一个 配置参数,用于确定在 恢复目标 达到时要执行的操作。
recovery_target_action 在 PostgreSQL 9.5 中添加。
用法
如果设置了以下任一恢复目标:
recovery_targetrecovery_target_lsnrecovery_target_namerecovery_target_timerecovery_target_xid
则将执行 recovery_target_action 中指定的动作;可以是以下之一:
pause(默认值)promoteshutdown
默认值
recovery_target_action 的默认值为:pause。
按 PostgreSQL 版本详细信息
recovery_target_action (PostgreSQL 19)
| 设置 | pause |
| 单位 | |
| 类别 | 预写日志 / 恢复目标 |
| 简短描述 | 设置达到恢复目标时要执行的操作。 |
| 扩展描述 | |
| 上下文 | postmaster |
| 变量类型 | enum |
| 来源 | 默认 |
| 最小值 | |
| 最大值 | |
| 枚举值 | pause, promote, shutdown |
| 启动值 | pause |
| 重置值 | pause |
| 源文件 | |
| 源行 | |
| 需要重启 | false |
recovery_target_action (PostgreSQL 18)
| 设置 | pause |
| 单位 | |
| 类别 | 预写日志 / 恢复目标 |
| 简短描述 | 设置达到恢复目标时要执行的操作。 |
| 扩展描述 | |
| 上下文 | postmaster |
| 变量类型 | enum |
| 来源 | 默认 |
| 最小值 | |
| 最大值 | |
| 枚举值 | pause, promote, shutdown |
| 启动值 | pause |
| 重置值 | pause |
| 源文件 | |
| 源行 | |
| 需要重启 | false |
recovery_target_action (PostgreSQL 17)
| 设置 | pause |
| 单位 | |
| 类别 | 预写日志 / 恢复目标 |
| 简短描述 | 设置达到恢复目标时要执行的操作。 |
| 扩展描述 | |
| 上下文 | postmaster |
| 变量类型 | enum |
| 来源 | 默认 |
| 最小值 | |
| 最大值 | |
| 枚举值 | pause, promote, shutdown |
| 启动值 | pause |
| 重置值 | pause |
| 源文件 | |
| 源行 | |
| 需要重启 | false |
recovery_target_action (PostgreSQL 16)
| 设置 | pause |
| 单位 | |
| 类别 | 预写日志 / 恢复目标 |
| 简短描述 | 设置达到恢复目标时要执行的操作。 |
| 扩展描述 | |
| 上下文 | postmaster |
| 变量类型 | enum |
| 来源 | 默认 |
| 最小值 | |
| 最大值 | |
| 枚举值 | pause, promote, shutdown |
| 启动值 | pause |
| 重置值 | pause |
| 源文件 | |
| 源行 | |
| 需要重启 | false |
recovery_target_action (PostgreSQL 15)
| 设置 | pause |
| 单位 | |
| 类别 | 预写日志 / 恢复目标 |
| 简短描述 | 设置达到恢复目标时要执行的操作。 |
| 扩展描述 | |
| 上下文 | postmaster |
| 变量类型 | enum |
| 来源 | 默认 |
| 最小值 | |
| 最大值 | |
| 枚举值 | pause, promote, shutdown |
| 启动值 | pause |
| 重置值 | pause |
| 源文件 | |
| 源行 | |
| 需要重启 | false |
recovery_target_action (PostgreSQL 14)
| 设置 | pause |
| 单位 | |
| 类别 | 预写日志 / 恢复目标 |
| 简短描述 | 设置达到恢复目标时要执行的操作。 |
| 扩展描述 | |
| 上下文 | postmaster |
| 变量类型 | enum |
| 来源 | 默认 |
| 最小值 | |
| 最大值 | |
| 枚举值 | pause, promote, shutdown |
| 启动值 | pause |
| 重置值 | pause |
| 源文件 | |
| 源行 | |
| 需要重启 | false |
recovery_target_action (PostgreSQL 13)
| 设置 | pause |
| 单位 | |
| 类别 | 预写日志 / 恢复目标 |
| 简短描述 | 设置达到恢复目标时要执行的操作。 |
| 扩展描述 | |
| 上下文 | postmaster |
| 变量类型 | enum |
| 来源 | 默认 |
| 最小值 | |
| 最大值 | |
| 枚举值 | pause, promote, shutdown |
| 启动值 | pause |
| 重置值 | pause |
| 源文件 | |
| 源行 | |
| 需要重启 | false |
recovery_target_action (PostgreSQL 12)
| 设置 | pause |
| 单位 | |
| 类别 | 预写日志 / 恢复目标 |
| 简短描述 | 设置达到恢复目标时要执行的操作。 |
| 扩展描述 | |
| 上下文 | postmaster |
| 变量类型 | enum |
| 来源 | 默认 |
| 最小值 | |
| 最大值 | |
| 枚举值 | pause, promote, shutdown |
| 启动值 | pause |
| 重置值 | pause |
| 源文件 | |
| 源行 | |
| 需要重启 | false |
变更历史
- PostgreSQL 12
- PostgreSQL 9.5
- 作为
recovery.conf参数添加(初始提交 aedccb1f)
- 作为
注意:最初添加时名为 action_at_recovery_target,在提交 b8e33a85 中重命名为 recovery_target_action。
示例
设置了恢复目标并将 recovery_target_action 设置为 pause 时的日志输出示例
[2020-12-23 11:12:56 CET] LOG: 00000: consistent recovery state reached at 0/2000100 [2020-12-23 11:12:56 CET] LOG: 00000: recovery stopping after reaching consistency [2020-12-23 11:12:56 CET] LOG: 00000: pausing at the end of recovery [2020-12-23 11:12:56 CET] HINT: Execute pg_wal_replay_resume() to promote. [2020-12-23 11:12:56 CET] LOG: 00000: database system is ready to accept read only connections
参考资料
- PostgreSQL 文档: recovery_target_action
- PostgreSQL 11 文档: recovery_target_action
有用链接
- Postgres 9.5 功能亮点 - 恢复结束时的备用服务器操作 - Michael Paquier 的 2014 年 12 月博客文章
