9.3 9.4 9.5 9.6 10 11 12 13 14 Current(15)
阿里云PostgreSQL 问题报告 纠错本页面

51.2. 存档模块回调函数

51.2.1. 检查回调
51.2.2. 存档回调
51.2.3. 关闭回调

存档回调函数定义模块的实际存档行为。 服务器将根据需要调用它们来处理每个单独的WAL文件。

51.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时,归档才会继续。

51.2.2. 存档回调

archive_file_cb回调函数被调用,用于归档单个WAL文件。

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

如果返回true,服务器将继续进行,就好像文件已成功归档,这可能包括回收或删除原始WAL文件。如果返回false,服务器将保留原始WAL文件,并稍后重试归档。 file将仅包含要归档的WAL文件的文件名,而path包含WAL文件的完整路径(包括文件名)。

51.2.3. 关闭回调

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

typedef void (*ArchiveShutdownCB) (void);