
我剩下4个进程.其中之一是刷新物化视图,另外3个是要应用于物化视图用作数据源的3个表的索引.索引根据pg_stat_activity“等待”,大概是因为物化视图的REFRESH仍在访问源表.
当索引到位时,视图的刷新只需要几分钟.因为在REFRESH期间索引不到位,所以我在17小时内关闭了REFRESH进程,这使得pg_restore失败.
我怎么能够
>强制项目的顺序,以便首先创建索引
>关闭物化视图的刷新,稍后手动执行
>以自定义格式处理转储文件,说出“无数据”
>拦截REFRESH MATERIAliZED VIEW语句并将其丢入垃圾桶
还是完成任务的其他解决方案?
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)会让我在我需要的地方
现在通过在它之间插入一个小的shell脚本来实现
物化视图到列表的末尾,但后来我也会有
管理我自己的依赖关系我重新排序的项目(MatVIEws的
MatVIEws).
这严重限制了我对物化意见的实用性.
对于版本9.3.x,我可能不需要MatVIEw依赖关系
1深
编辑:
要停止恢复数据的实现,我开始这样做:
pg_dump mydatabase -Fd backup_dirpg_restore -l -Fd backup_dir | sed '/MATERIAliZED VIEW DATA/d' > ordered.lstpg_restore -L ordered.lst -Fd backup_dir mydatabase
这将从还原中删除REFRESH MATERIAliZED VIEW语句.感谢DavID G Johnston的提示.
总结以上是内存溢出为你收集整理的postgresql – 如何在pg_restore期间防止物化视图刷新?全部内容,希望文章能够帮你解决postgresql – 如何在pg_restore期间防止物化视图刷新?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)