受支持版本: 当前版本 (18) / 17 / 16 / 15
开发版本: devel

49.2. 归档模块回调函数 #

归档回调定义了模块的实际归档行为。服务器会根据需要调用它们来处理每一个 WAL 文件。

49.2.1. 检查回调 #

check_configured_cb回调用于判断模块是否已完成配置并准备好接收 WAL 文件(例如,它的配置参数是否已经设置为有效值)。如果没有定义check_configured_cb,服务器始终假定该模块已经配置完毕。

typedef bool (*ArchiveCheckConfiguredCB) (void);

如果返回true,服务器就会通过调用archive_file_cb回调继续归档该文件。如果返回false,则不会继续归档,归档器会向服务器日志输出如下消息:

WARNING:  archive_mode enabled, yet archiving is not configured

在后一种情况下,服务器会周期性地调用此函数,只有当它返回true时,归档才会继续。

49.2.2. 归档回调 #

archive_file_cb回调用于归档单个 WAL 文件。

typedef bool (*ArchiveFileCB) (const char *file, const char *path);

如果返回true,服务器就会按该文件已成功归档来继续处理,这可能包括回收或移除原始 WAL 文件。如果返回false,服务器将保留原始 WAL 文件,并在稍后重试归档。file只包含待归档 WAL 文件的文件名,而path包含该 WAL 文件的完整路径(包括文件名)。

49.2.3. 关闭回调 #

当归档器进程退出(例如发生错误之后),或者archive_library的值发生变化时,会调用shutdown_cb回调。如果没有定义shutdown_cb,在这些情况下就不会采取特殊操作。

typedef void (*ArchiveShutdownCB) (void);

提交更正

如果您发现文档中有不正确的内容、与您使用特定功能的经验不符或需要进一步说明,请使用此表单来报告文档问题。