pg数据库异常及处理办法原创
金蝶云社区-Accier
Accier
0人赞赏了该文章 1567次浏览 未经作者许可,禁止转载编辑于2023年09月04日 15:18:16

案例一

问题描述:ERROR: could not read block 0 in file "base/2310725/2944204": read only 0 of 8192 bytes


问题分析:数据库文件损坏导致数据库无法正常登录查询


解决方案:重新初始化整个数据库索引。命令如下【reindexdb -p 5433 --system dbname】

                命令执行成功之后即可正常访问数据库操作,接下来针对对应的错误提示处理即可。



案例二

问题描述:failed: ERROR:  catalog is missing 2 attribute(s) for relid 4777469


问题分析:数据库缺失对象,导致无法查询,dump操作。


解决方案:

               1、select oid,* from pg_class where oid = 4777469;

                  select * from pg_attribute where attrelid = 4777469;

               2、根据sql查询哪个对象有问题。

               3、处理对应对象。(本次问题中问题操作为临时表,业务意义不大,直接进行了元数据删除即可恢复数据库访问查询:delete from pg_class where relname ='表名')。

  

案例三

问题描述:missing chunk number 0 for toast value 4777899 in pg_toast_2619


问题分析:对应数据表的某一条记录损坏有问题,删除对应记录即可。


解决方案:

               1、select oid,* from pg_class where oid = 2619; 

               2、根据sql查询对应数据表。

               3、依据分页定位有问题的数据记录,delete from table where fid=具体id;

               4、删除记录即可恢复对数据表的操作。


案例四

问题描述ERROR: index "xx" contains unexpected zero page at block 5018


问题分析:索引异常。


解决方案:

              1、reindex index xx; 

              2、根据sql重建索引即可。 


赞 0