PostgreSQL提供了为连续归档创建自定义模块的基础设施(参见Section 25.3)。 虽然通过shell命令进行归档(即archive_command)更简单, 但自定义归档模块通常会更加健壮和高效。
当配置了自定义archive_library时,PostgreSQL将完成的WAL文件提交给模块, 服务器将避免回收或删除这些WAL文件,直到模块指示文件已成功归档为止。最终由模块决定如何处理每个WAL文件, 但在Section 25.3.1中列出了许多建议。
存档模块必须至少包括一个初始化函数(参见Section 49.1)和所需的回调函数(参见Section 49.2)。 但是,存档模块也被允许做更多的事情(例如,声明GUC和注册后台工作者)。
contrib/basic_archive
模块包含一个可工作的示例,演示了一些有用的技术。