存档回调函数定义模块的实际存档行为。 服务器将根据需要调用它们来处理每个单独的WAL文件。
回调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
时,归档才会继续。
archive_file_cb
回调函数被调用,用于归档单个WAL文件。
typedef bool (*ArchiveFileCB) (const char *file, const char *path);
如果返回true
,服务器将继续进行,就好像文件已成功归档,这可能包括回收或删除原始WAL文件。如果返回false
,服务器将保留原始WAL文件,并稍后重试归档。
file
将仅包含要归档的WAL文件的文件名,而path
包含WAL文件的完整路径(包括文件名)。
当归档器进程退出(例如,发生错误后)或者archive_library的值发生变化时,会调用shutdown_cb
回调函数。如果没有定义shutdown_cb
,在这些情况下不会采取任何特殊操作。
typedef void (*ArchiveShutdownCB) (void);