pg_receivewal

用于归档 WAL 文件更改的核心实用程序,这些更改在写入时进行

pg_receivewal 是一个用于归档 WAL 文件更改(包括 .partial WAL 文件)在写入时的 核心实用程序

pg_receivewalPostgreSQL 9.2 中引入(作为 pg_receivexlog)。

用法

虽然它可以作为独立的实用程序运行,但 pg_receivewal 通常用作更全面的备份和归档解决方案的一部分,例如 Barman,它使用 pg_receivewal(通常与复制槽一起使用)来最大化从 PostgreSQL 接收的 WAL 数量,从而最大程度地减少潜在的数据丢失。

注意事项

WAL 文件将从 pg_receivewal 启动的时间点开始归档,即使源服务器上存在更早的 WAL 文件。

如果在指定的存档目录中存在 WAL 文件,pg_receivewal 将假设这些文件来自先前的调用,并在新的 WAL 可用之前等待,然后恢复归档。但是,由于无法确定 WAL 是否源自同一服务器,因此如果目录包含来自其他来源的 WAL,则可能导致有效损坏的一组存档 WAL 文件。

更改历史记录

源代码

pg_receivewal 作为 pg_basebackup 的一部分构建,因为它实际上是添加到 pg_basebackup 以支持在备份期间流式传输 WAL 文件的功能的前端接口。

pg_receivewal 二进制文件的主要源文件是 src/bin/pg_basebackup/pg_receivewal.c;大部分实际功能包含在 src/bin/pg_basebackup/receivelog.c 中。

示例

pg_receivewal 的非常基本的调用

pg_receivewal -d 'host=node1 dbname=postgres user=repuser' -D /data/wal

请注意,该进程不会自行后台运行或守护进程化。

这将导致存档的 WAL 文件存储在指定的目录中,例如

$ ls -1 /data/wal
000000010000000000000003
000000010000000000000004
000000010000000000000005
000000010000000000000006
000000010000000000000007
000000010000000000000008
000000010000000000000009.partial

如果上述进程终止(例如,使用 Ctrl-C),它可能会输出如下消息

pg_receivewal: not renaming "000000010000000000000009.partial", segment is not complete

类别

核心实用程序复制存储

另请参见

pg_recvlogical

反馈

提交有关“pg_receivewal”的任何评论、建议或更正 此处