使用索引转储 Postgres 9.3 数据

Dump Postgres 9.3 data with indexes

使用时

pg_dump --section post-data 

我得到一个转储,其中包含索引的定义,但不包含索引数据。由于我正在处理的数据库非常庞大和复杂,重新创建索引需要很多时间。

有没有办法将索引数据放入我的转储中,以便我可以恢复实际工作的数据库?

无法在逻辑转储中包含索引数据 (pg_dump)。

无法从 pg_dump 操作的 SQL 级别提取索引数据,也无法将其写回。索引指的是 table 的物理结构(按页面和偏移量排列的元组 ID),其方式不会在转储和重新加载过程中保留。

如果要复制整个数据库、索引和所有内容,可以使用 pg_basebackup 进行低级磁盘复制。与 pg_dump 不同,你不能将它恢复到不同的 PostgreSQL 版本,你不能只转储一个数据库,等等;全有或全无。