我无法使用PostgreSQL网站第23.3.3条提到的PITR步骤将数据库恢复到以前的时间。使用联机备份(http://www.postgresql.org/docs/8.1/static/backup-online.html#RECOVERY-TARGET-XID)进行恢复
以下是我遵循的步骤:
pg_xlog文件夹内容Recovery.conf改为recovery.done通过删除表并尝试将数据库还原到更早的状态,我已经检查了多次。我遗漏了什么吗?
发布于 2014-02-06 05:03:44
首先,永远不要删除pg_xlog**中的任何内容。*您将损坏您的数据库。现在,说说你对这一切的误解:
通过删除表并尝试将数据库还原到更早的状态,我已经检查了多次。我遗漏了什么吗?
皮特不是那样工作的。它不会将正在运行的数据库恢复到旧的时间点。
它的工作方式是先设置它,然后再恢复:
pg_start_backup()和rsync,但是使用pg_basebackup()是最简单和最安全的。有关创建基本备份的详细信息,请参阅文档。您必须在设置WAL归档之后执行此操作,因此,从基片备份开始,存档包含所有WAL。当您需要创建数据库状态的历史副本以从某个对象恢复时,您可以:
recovery.conf文件设置副本,该文件指定一个适当的restore_command来获取WAL和您想要重放的recovery_target_time。设置primary_conninfo是没有意义的,因为您不会将其用作热备份或热备份流副本。pg_dump提取一个或多个数据库,使用COPY提取表的内容,等等。如果您希望完全恢复数据库,您可以删除该数据集,用该副本替换它,并按照上面的步骤将该副本重播到某个时间点。
你不能做的是把一个现有的数据库回滚到过去的某个时候。WAL回放只会及时进行。因此,您必须恢复一个旧的基础备份,然后允许它在您想要的时间点上重播WAL。
https://dba.stackexchange.com/questions/58326
复制相似问题