在pg_restore期间禁用WAL归档?

时间:2014-06-03 04:30:30

标签: postgresql database-restore postgresql-9.3 archiving wal

假设我在进行大规模破坏性迁移之前通过pg_dump快速备份了Postgres 9.3数据库,我发现我想撤消它。在此期间没有对DB执行任何写入操作。

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

在恢复之前,您最终会禁用存档吗?你还做其他什么来加快速度吗?在post中讨论了恢复性能,但它根本不涉及归档,除非我遗漏了一些内容。

1 个答案:

答案 0 :(得分:6)

你无法真正打开和关闭WAL存档。 WAL重放需要连续性。

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

如果在恢复期间关闭xlog发货,则需要清除旧的基本备份和WAL存档,然后在恢复WAL运输之前创建新的基本备份。