当我在postgres 8中进行备份时,它只备份模式和数据,但不备份索引。我怎么能这样做?
答案 0 :(得分:3)
听起来你正在使用pg_dump实用程序进行备份。这样可以节省从头开始重新创建数据库所需的信息。您无需将索引中的信息转储为可以使用的信息。您有架构,架构包含索引定义。如果加载此备份,索引将从数据重建,与第一次创建索引的方式相同:在添加新行时构建。
如果要对磁盘上的数据库块进行物理备份(包括索引),则需要执行PITR backup。这是一个更复杂的过程,但最终的备份将立即可用。 pg_dump样式的备份可能需要相当长的时间才能恢复。
答案 1 :(得分:1)
如果我理解正确,您需要转储索引以及原始表数据。
pg_dump将在转储结束时输出CREATE INDEX语句,这将在新数据库中重新创建索引。
您可以按照Greg Smith的建议进行PITR备份,或者停止数据库并复制二进制文件。