Dea*_*gor 6 postgresql postgresql-9.4
我正在运行 postgres 9.4 DB 的 pg_dump,如果其他进程在表上具有独占锁,它偶尔会遇到错误。有没有办法让 pg_dump 忽略该表并继续处理数据库的其余部分,而不是仅仅停下来?
小智 3
pg_dump 缺少此功能,正确的解决方案是通过添加类似 的标志来增强它--ignore-errors
,注释忽略了备份某些表总比不备份好这一点。在您只想恢复某些表的情况下,这会很有帮助。
您可以使用几个选项来实现解决方法:
使用下面的参数将超时减少到 10 秒,记录该表并从新的 pg_dump 命令动态地排除该表。
--lock-wait-timeout=timeout
--exclude-table=table
如果您有备用数据库,请使用它来进行备份,这样发生此问题的可能性就会较小。
如果问题是由于某些未记录的阶段表引起的,您可以使用下面的参数来忽略它们(我还没有对此进行测试,所以不能 100% 确定)
--no-unlogged-table-data
编写一个包装器脚本并备份每个架构或表,这样,如果发生故障,您将错过一个架构或表,您必须确保实现类似的包装器以进行恢复,因为手动执行此操作会出现问题,而且这也会在数据库级别不一致。
归档时间: |
|
查看次数: |
21438 次 |
最近记录: |