首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >修复损坏的表

修复损坏的表
EN

Stack Overflow用户
提问于 2018-09-13 07:28:27
回答 1查看 404关注 0票数 0

当我试图升级Sentry时,我数据库中的一个表被损坏了。在阅读了有关vacuum和reindex的内容后,我能够将问题追踪到一个表中。

从任何其他表执行select *都很好,但这个表似乎有问题。有没有办法修复这个表,或者,在最坏的情况下,以某种方式转储所有其他表?

pg_dump -T corrupt_table > bkp.sql不工作:

代码语言:javascript
复制
bash-4.4# pg_dump -U XXXXXX -T sentry_identityprovider sentry > bkp.sql
pg_dump: [archiver (db)] query failed: ERROR:  cache lookup failed for attribute 1 of relation 45941
pg_dump: [archiver (db)] query was: SELECT tableoid, oid, conname, confrelid, pg_catalog.pg_get_constraintdef(oid) AS condef FROM pg_catalog.pg_constraint WHERE conrelid = '45954'::pg_catalog.oid AND contype = 'f'

请避免像“好吧,去备份”这样的评论。我这么问是因为我没有备份。

另外,请避免像“好吧,如果你没有备份,狗屎就会发生”这样的评论。我之所以问这个问题,是因为在执行备份时出现了错误,并且没有创建任何备份。

此外,请避免与备份相关的任何其他无助的评论。真的。你这样帮不了我。

EN

回答 1

Stack Overflow用户

发布于 2018-09-13 09:57:21

在某些阶段,我已经能够转储和恢复单个表,如下所示。请注意,在pg_dump的帮助中,您应该能够执行完全转储并排除损坏的表,但从未尝试过。不确定为什么您的表失败了,转储一个好的表可能会给出答案。希望它能为你工作。

代码语言:javascript
复制
pg_dump -t good_table old_DB -U youruser -f good_table_BUP.sql  

psql -f good_table_BUP.sql  new_DB

 -t, --table=TABLE            dump the named table(s) only
 -T, --exclude-table=TABLE    do NOT dump the named table(s)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52304743

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档