使用 pg_basebackup 备份整个 Postgres 数据库服务器

Let*_*t4U 3 postgresql backup

我使用以下命令支持 Postgres DB 9.1:

pg_basebackup -h 127.0.0.1 -U replicationuser -D /storage/test_backup -Ft -z -P
Run Code Online (Sandbox Code Playgroud)

在 postgresql.conf 我有这个设置:

wal_level = hot_standby              
Run Code Online (Sandbox Code Playgroud)

但是,在pg_basebackup运行结束时,我收到此警告:

注意:未启用 WAL 归档;您必须确保通过其他方式复制所有必需的 WAL 段以完成备份

我只关心从启动时开始的数据备份pg_basebackup(我可以承受夜间的一些停机时间,所以我关闭了使用这个 PG 实例作为后端数据库的应用服务器,然后开始备份)。我不需要也不需要“连续备份”。

问题:从启动pg_basebackup命令开始,我真的必须复制 WAL 才能进行完整备份吗?或者该警告是专门为实现“连续存档”功能而设计的吗?

Cra*_*ger 10

问题:从启动 pg_basebackup 命令开始,我真的必须复制 WAL 才能进行完整备份吗?

是的你是。

数据库需要当前的 WAL 才能从基础备份启动。

您可以pg_basebackup -X stream在 9.3 及更高版本上使用来复制所有必需的 WAL 以及初始 basebackup。