我们正在使用以下命令来备份数据库。
$PGHOME/bin/pg_basebackup -p 5433 -U postgres -P -v -x --format=tar --gzip --compress=1 --pgdata=- -D /opt/rao
进行备份时,我们收到以下错误消息。
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
命令中的任何选项,让我知道。
请在我上面的pg_basebackup命令中说明--pgdata=--D
的含义。
答案 0 :(得分:2)
-D directory
--pgdata=directory
这指定要将输出写入的目录。 当备份处于tar模式并且目录指定为-(破折号)时,tar文件将被写入stdout。此参数是必需的。
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在一个空目录中创建一个全新的slave。