我们有一个将数据存储在postgres
数据库中的系统.在某些情况下,
数据库的大小已增长到几GB.
升级此系统时,将备份所述数据库中的数据,最后将其还原到数据库中.由于存在大量数据,索引在恢复期间需要很长时间才能完成(约30分钟),从而延迟升级过程.
有没有一种方法可以将数据复制和索引分成两个步骤,首先复制数据以完成升级,然后进行索引,这可以在以后的后台完成?
谢谢!
使用pg_dump和pg_restore没有内置的
方法.但是pg_restore的-j选项有很大帮助.
同时有CREATE INDEX.但是pg_restore不使用它.
如果能够恢复除FK约束不依赖的二级索引之外的所有内容,那将是非常好的.然后使用CREATE INDEX CONCURRENTLY将它们恢复为单独的阶段.但目前还没有这样的支持,你必须自己写.
但是,您可以过滤pg_restore使用的目录,因此您可以执行一些hacky脚本来完成所需的工作.