postgresql – 错误:无法读取关系1663/16384/16564的块4707:成
发布时间:2020-12-13 16:31:31 所属栏目:百科 来源:网络整理
导读:我在Glassfishserver上使用psql 8.1.18.我有这样的查询: select ip,round((select sum(t1.size) from table t1)) from table where date '2011.07.29' and date '2011.07.30' and ip = '255.255.255.255' group by ip; 当我运行此查询时,我收到此错误: ERR
我在Glassfishserver上使用psql 8.1.18.我有这样的查询:
select ip,round((select sum(t1.size) from table t1)) from table where date > '2011.07.29' and date < '2011.07.30' and ip = '255.255.255.255' group by ip; 当我运行此查询时,我收到此错误: ERROR: could not read block 4707 of relation 1663/16384/16564: Success 但是这个查询工作正常: select ip,round(sum(size)/175) from table where date > '2011.07.29' and l_date < '2011.07.30' and ip = '255.255.255.255' group by ip; 我认为这可能是一个数据库错误,我需要从备份恢复表,也许.但首先我需要了解这些损坏的数据存在的位置.有谁知道如何找到1663/16384/16564关系?还是4707块? 编辑: select relname,relfilenode from pg_class where relname in ('1663','16384','16564'); 但它返回: relname | relfilenode ---------+------------- (0 rows)
它看起来像是一个不好的块或索引.
要查找坏数据,可以查询pg_class视图; 选择oid,来自pg_class的relname,其中oid = 1663或oid = 16564; 看看结果是什么! 如果结果是索引,只需重新创建损坏的索引; 如果结果是一个表,则表示该表的某些数据已损坏, 有关参数“zero_damaged_pa??ges”的更多信息 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |