【发布时间】:2011-09-30 12:45:18
【问题描述】:
我有一个 Postgres 9.0 数据库,我经常对其进行数据转储。
这个数据库有很多索引,每次我恢复一个转储时,postgres 都会启动后台任务vacuum clean(对吗?)。该任务消耗大量处理时间和内存来重新创建已恢复转储的索引。
我的问题是:
- 有没有办法转储数据库数据和该数据库的索引?
- 如果有办法,是否值得付出努力(我的意思是用索引转储数据会比真空吸尘器更好)?
- Oracle 有一些“数据泵”命令可以更快地进行 imp 和 exp。 postgres 有类似的吗?
提前致谢, 安德烈
【问题讨论】:
-
使用 pg_dump 时,无法保存索引数据——导入后必须重建索引。但是,您可以简单地 tar 整个 postgres 数据目录,而不是执行 pg_dump。
-
谢谢弗兰克,我会试试看,也许这对我来说是最好的选择。我唯一担心的是不同的次要 postgres 版本和操作系统之间的差异。
-
@FrankFarmer,将对整个数据目录进行 tar 处理,并将其移动到新的服务器上,这会“正常工作”吗?如果旧服务器在旧 CentOS 和 PG 8.x 上,而新数据库在新硬件堆栈上并使用 PG 9.6?
标签: postgresql indexing vacuum