basic_archive
是一个提供 WAL 归档模块示例的 contrib 模块。
basic_archive
在 PostgreSQL 15 中添加。
用法
basic_archive
将已完成的 WAL 段文件复制到指定的目录。这可以通过自定义的 archive_command 设置来实现,但 basic_archive
旨在作为开发更复杂的归档模块的模板。
配置
以下 配置参数 必须设置为启用 basic_archive
archive_mode = 'on' archive_library = 'basic_archive' basic_archive.archive_directory = '/path/to/archive/directory'
请注意,如果正在使用 archive_library
,则不能设置 archive_command
。在这种情况下,当 PostgreSQL 尝试加载指定的归档库时,将记录 FATAL
错误。请参见下面的示例。
变更历史
- PostgreSQL 15
- 添加 (提交 5ef1eefd)
示例
如果已配置,basic_archive
的基本用法示例
postgres=# SELECT * FROM pg_ls_dir(current_setting('basic_archive.archive_directory')); pg_ls_dir ----------- (0 rows) postgres=# SELECT pg_switch_wal(); pg_switch_wal --------------- 0/14FFEB8 (1 row) postgres=# SELECT * FROM pg_ls_dir(current_setting('basic_archive.archive_directory')); pg_ls_dir -------------------------- 000000010000000000000001 (1 row)
如果同时设置了 archive_command
和 archive_library
,则日志文件中将显示如下错误
[2023-03-07 17:21:38 UTC] FATAL: 22023: both archive_command and archive_library set [2023-03-07 17:21:38 UTC] DETAIL: Only one of archive_command, archive_library may be set.
如果 basic_archive.archive_directory
中指定的目录不存在或无法写入,则会记录类似以下的错误
[2023-03-07 17:40:44 UTC] WARNING: 22023: invalid value for parameter "basic_archive.archive_directory": "/directory/does/not/exist" [2023-03-07 17:40:44 UTC] DETAIL: Specified archive directory does not exist.
参考
- PostgreSQL 文档: basic_archive
分类
参见
basebackup_to_shell