首页 > 解决方案 > 使用“pg_basebackup”实用程序进行备份时收到错误

问题描述

我们正在使用以下命令来备份数据库。

$PGHOME/bin/pg_basebackup -p 5433 -U postgres -P -v -x --format=tar --gzip --compress=1 --pgdata=- -D /opt/rao    

​在进行备份时,我们收到以下错误。​</p>

​transaction log start point: 285/8F000080
pg_basebackup: could not get transaction log end position from server: FATAL:  requested WAL segment 00000001000002850000008F has already been removed​

请指导我为什么以及如何处理此错误。您是否希望我更改pg_basebackup命令中的任何选项让我知道。

请澄清--pgdata=--D我上面的 pg_basebackup 命令的含义。

标签: postgresqlpostgresql-9.2

解决方案


-D directory
--pgdata=directory

这指定了要将输出写入的目录。当备份处于 tar 模式并且目录指定为 -(破折号)时,tar 文件将被写入标准输出。此参数是必需的。

FATAL:  requested WAL segment 00000001000002850000008F has already been removed

意味着主服务器没有保留足够的历史来使备用服务器恢复最新状态。

您可以使用pg_basebackup创建一个新的从站:

pg_basebackup -h masterhost -U postgres -D path --progress --verbose -c fast

拥有 WAL 存档时,您可以尝试 restore_command。pg_basebackup 在一个空目录中创建一个全新的从属。


推荐阅读