【发布时间】:2014-08-16 06:45:29
【问题描述】:
我使用“自定义”格式 (-Fc) 的 pg_dump 创建了数据库转储。这种格式允许使用“jobs”选项(-j8)调用 pg_restore。作业选项启动 8 个进程,并在 10 分钟内恢复我数据库中的绝大多数关系。
我剩下 4 个进程。其中之一是物化视图的刷新,另外 3 个是要应用于物化视图用作数据源的 3 个表的索引。根据pg_stat_activity,索引处于“等待”状态,大概是因为物化视图的REFRESH仍在访问源表。
索引到位后,视图的刷新只需几分钟。因为REFRESH期间索引没有到位,所以我在17小时关闭了REFRESH进程,导致pg_restore失败。
我该怎么做
- 强制项目的顺序,以便首先创建索引
- 关闭物化视图的刷新,稍后手动进行
- 以自定义格式操作转储文件以显示“没有数据”
- 截取
REFRESH MATERIALIZED VIEW语句并扔进垃圾桶
或者任何其他可以完成工作的解决方案?
【问题讨论】:
-
请尽快在 pgsql-hackers 邮件列表中报告此问题。链接到这个问题,也描述问题。如果方便的话,通过archives.postgresql.org 链接到您的帖子会很棒。
-
好的,做到了。感谢您的建议。
标签: postgresql materialized-views postgresql-9.3