basic_archive

一个 WAL 归档模块示例

basic_archive 是一个提供 WAL 归档模块示例的 contrib 模块

basic_archivePostgreSQL 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 错误。请参见下面的示例。

变更历史

示例

如果已配置,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_commandarchive_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.

分类

备份Contrib 模块

参见

basebackup_to_shell

反馈

提交任何关于 "basic_archive" 的评论、建议或更正 此处