如何备份Postgres 8中的所有内容,包括索引?

时间:2011-07-25 22:16:30

标签: postgresql backup

当我在postgres 8中进行备份时,它只备份模式和数据,但不备份索引。我怎么能这样做?

2 个答案:

答案 0 :(得分:3)

听起来你正在使用pg_dump实用程序进行备份。这样可以节省从头开始重新创建数据库所需的信息。您无需将索引中的信息转储为可以使用的信息。您有架构,架构包含索引定义。如果加载此备份,索引将从数据重建,与第一次创建索引的方式相同:在添加新行时构建。

如果要对磁盘上的数据库块进行物理备份(包括索引),则需要执行PITR backup。这是一个更复杂的过程,但最终的备份将立即可用。 pg_dump样式的备份可能需要相当长的时间才能恢复。

答案 1 :(得分:1)

如果我理解正确,您需要转储索引以及原始表数据。

pg_dump将在转储结束时输出CREATE INDEX语句,这将在新数据库中重新创建索引。

您可以按照Greg Smith的建议进行PITR备份,或者停止数据库并复制二进制文件。