27.1. 存档恢复设置

重要的是,只有成功执行命令,命令才返回零退出状态。 要求命令提供 Files 中不存在的文件名;要求时,它必须返回非零。例子:

restore_command = 'cp /mnt/server/archivedir/%f "%p"'
restore_command = 'copy "C:\\server\\archivedir\\%f" "%p"'  # Windows

exception 是,如果命令被 signal 终止(SIGTERM 除外,SIGTERM 用作数据库服务器关闭的一部分)或 Shell 程序出错(例如未找到命令),则恢复将中止,服务器将终止无法启动。

archive_cleanup_command = 'pg_archivecleanup /mnt/server/archivedir %r'

但是请注意,如果多个备用服务器正在从同一个存档目录中还原,则需要确保在所有服务器不再需要它们之前,不要删除 WAL 文件。 archive_cleanup_command通常用于热备份配置中(请参见Section 26.2)。写入%%以在命令中嵌入实际的%字符。

如果命令返回非零退出状态,那么将写入警告日志消息。一个 exception 是,如果命令被 signal 终止或 Shell 程序出错(例如找不到命令),则会引发致命错误。

如果该命令返回非零退出状态,那么将写入警告日志消息,并且无论如何数据库将 continue 启动。exception 是,如果命令被 signal 终止或 Shell 程序出错(例如未找到命令),则数据库将无法 continue 启动。

上一章 首页 下一章