繁体   English   中英

Postgres pg_dump 目录属性丢失错误

[英]Postgres pg_dump catalog attribute missing error

我一直在尝试使用在其他一些资源中找到的以下命令将远程数据库备份到本地系统:

ssh user@host “pg_dump -U username -h localhost -d dbname -C —-column-inserts” \ mybackup.sql

结果是:

pg_dump:错误:查询失败:错误:目录缺少 2 个用于 relid 18141 的属性

我实际上对数据库没有太多经验,我搜索了错误,但老实说,它们对我来说都没有多大意义。 任何人都可以帮助我解决这个问题吗?

您有目录损坏:关系 18141 的pg_class条目的 relnatts 值比pg_attributerelnatts等于attrelid的行数多两个。正如错误消息所说:缺少两个属性(= 列)。

调查你的良心,你做了什么来破坏目录。 您是否使用了不良硬件并发生了崩溃? 您是否手动操作目录表?

您应该恢复上次的良好备份。

但是,如果您想尝试从该数据库中挽救数据:如果您非常幸运,您正在处理一个损坏的索引。 那可以重建

REINDEX INDEX pg_catalog.pg_attribute_relid_attnum_index;

如果可行,转储整个表并将其还原到新创建的 PostgreSQL 集群,以消除所有损坏。 如果这还不够,请聘请可以尝试从沉船中抢救一些数据的专家。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM