PostgreSQL 为创建用于持续归档的自定义模块提供基础结构(请参见 第 25.3 节)。尽管通过 shell 命令(即 archive_command)进行归档要简单得多,但自定义归档模块通常会相当健壮且性能更高。
配置了自定义 archive_library 时,PostgreSQL 会向模块提交已完成的 WAL 文件,并且服务器将避免回收或删除这些 WAL 文件,直到模块指示已成功归档这些文件。最终取决于模块决定如何处理每个 WAL 文件,但 第 25.3.1 节 中列出了许多建议。
归档模块至少必须包含一个初始化函数(请参见 第 49.1 节)和所需的回调(请参见 第 49.2 节)。但是,还允许归档模块完成更多其他操作(例如,声明 GUC 和注册后台工作进程)。
contrib/basic_archive
模块包含一个工作示例,演示了一些有用的技术。