4

假设我pg_dump在进行大规模破坏性迁移之前对我的 Postgres 9.3 DB 进行了快速备份转储,我发现我想撤消它。与此同时,没有对 DB 执行任何写入操作。

假设我运行pg_restore -c -d mydb < foo.dump将转储加载回数据库。archive_mode假设我已将 WAL-E 设置为每 16mb 的 WAL 存档一次,我是否需要在执行还原之前关闭?当我将转储写回数据库时,归档 xlog 对我来说不是很有用,因为在转储之前我已经有完全有效的基本备份和 WAL 段归档。当我恢复转储时,执行 xlog 传送也会产生严重后果,随着转储的大小,情况会变得更糟。

您最终会在还原之前禁用存档吗?你有没有做其他事情来加快速度?在这篇文章中有一个关于恢复性能的讨论,但它根本不包括存档,除非我错过了一些东西。

4

1 回答 1

8

你不能真的像那样打开和关闭 WAL 归档。WAL 重放需要连续性。

如果你关闭了 WAL 归档,然后进行了更改,然后重新打开,关闭再打开后生成的新 WAL 将毫无用处。它们无法应用于数据库,您必须先进行新的基本备份,然后才能恢复 WAL 重播/PITR。

如果您在恢复期间关闭 xlog 传送,您将需要清除旧的基础备份和 WAL 存档,然后在恢复 WAL 传送之前创建一个新的基础备份。

于 2014-06-03T04:59:43.473 回答