假设我在进行大规模破坏性迁移之前通过pg_dump
快速备份了Postgres 9.3数据库,我发现我想撤消它。在此期间没有对DB执行任何写入操作。
假设我运行pg_restore -c -d mydb < foo.dump
将转储加载回db。假设我将WAL-E设置为每16mb的WAL存档,在执行恢复之前是否需要关闭archive_mode
?当我将转储写回数据库时,归档xlog对我来说是非常有用的,因为我已经在转储之前已经存档了完全有效的基本备份和WAL段。当我恢复转储时,执行xlog传输会产生严重后果,转储的大小会变得更糟。
在恢复之前,您最终会禁用存档吗?你还做其他什么来加快速度吗?在post中讨论了恢复性能,但它根本不涉及归档,除非我遗漏了一些内容。
答案 0 :(得分:6)
你无法真正打开和关闭WAL存档。 WAL重放需要连续性。
如果你关闭了WAL归档,然后进行了更改,然后再将其重新打开,关闭它后再生成的新WAL将无用。它们无法应用于数据库,您必须先进行新的基本备份才能恢复WAL重放/ PITR。
如果在恢复期间关闭xlog发货,则需要清除旧的基本备份和WAL存档,然后在恢复WAL运输之前创建新的基本备份。