postgresql – 如何在pg_restore期间防止物化视图刷新?
我已经使用pg_dump以“自定义”格式(-Fc)创建了数据库的转储.此格式允许使用“作业”选项(-j8)调用pg_restore.作业选项启动8个进程,并在10分钟内恢复我的数据库中的绝大多数关系.
我剩下4个进程.其中之一是刷新物化视图,另外3个是要应用于物化视图用作数据源的3个表的索引.索引根据pg_stat_activity“等待”,大概是因为物化视图的REFRESH仍在访问源表. 当索引到位时,视图的刷新只需要几分钟.因为在REFRESH期间索引不到位,所以我在17小时内关闭了REFRESH进程,这使得pg_restore失败. 我怎么能够 >强制项目的顺序,以便首先创建索引 还是完成任务的其他解决方案?
David G Johnston posted an answer for me on the pgsql-hackers mailing list.
“有/你可以尝试’-l(el)& -L’选项来pg_restore吗? http://www.postgresql.org/docs/9.3/static/app-pgrestore.html (使用示例朝向页面的底部) 基本上重新排序命令序列,使物质化运行迟到 应该教会pg_dump / pg_restore来处理这个更好,这是主要的 我认为这个(pg_restore -l | pg_restore -L)会让我在我需要的地方 编辑: pg_dump mydatabase -Fd backup_dir pg_restore -l -Fd backup_dir | sed '/MATERIALIZED VIEW DATA/d' > ordered.lst pg_restore -L ordered.lst -Fd backup_dir mydatabase 这将从还原中删除REFRESH MATERIALIZED VIEW语句.感谢David G Johnston的提示. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |