PostgreSQL PITR 还原

Cra*_*ein 9 postgresql backup recovery

我有一个在 CentOS 5.8 32 位操作系统上运行的 PostgreSQL 9.1 服务器,并且我启用了 WAL 归档。在这台服务器上,有三个数据库:databaseA、databaseB和databaseC。有人在下午 12 点在 databaseB 上删除了一个表,我想将 databaseB 恢复到该表被删除的时间之前。现在时间是下午 3 点。

如何在不丢失其他两个数据库中三个小时的数据的情况下将 databaseB 恢复到下午 12 点?

配置文件

wal_level = archive             
archive_mode = on               
archive_command = 'test ! -f /opt/pgsql/logs/%f && cp %p /opt/pgsql/logs/%f'
max_wal_senders = 100
Run Code Online (Sandbox Code Playgroud)

恢复配置文件

restore_command = 'cp /opt/pgsql/logs/%f %p'
recovery_target_time = '2012-06-29 11:59:59 CEST'
Run Code Online (Sandbox Code Playgroud)

我在上午 9 点运行了我的基本备份

pg_basebackup -h 127.0.0.1 -D /opt/pgsql/backup
Run Code Online (Sandbox Code Playgroud)

PostgreSQL 服务在下午 3 点关闭。

kgr*_*ttn 6

我会做一个时间点恢复到不同的位置,恢复到所需的时间,然后 pg_dump 问题数据库。我会在正常位置删除一个数据库,再次创建它,然后加载 pg_dump 输出。

在开始这样的操作之前,请确保制作并保存集群数据目录树的文件系统级副本。