归档库通过使用共享库加载“是”的方式动态加载了 archive_library 的库基本名称,使用该库作为共享库的基础名称。正常的库搜索路径用于查找库。为提供必需的归档模块回调并指示库实际上是归档模块,其需要提供一个名为 _PG_archive_module_init
的函数。函数结果必须是指向 ArchiveModuleCallbacks
类型的一个结构的指针,该结构包含核心代码需要知道的一切,才能使用归档模块。返回值需要是服务器生命周期,这通常通过将其定义为全局作用域中的 static const
变量来实现。
typedef struct ArchiveModuleCallbacks { ArchiveStartupCB startup_cb; ArchiveCheckConfiguredCB check_configured_cb; ArchiveFileCB archive_file_cb; ArchiveShutdownCB shutdown_cb; } ArchiveModuleCallbacks; typedef const ArchiveModuleCallbacks *(*ArchiveModuleInit) (void);
仅需要 archive_file_cb
回调。其他是可选的。