我在MacOSX10.7.2上运行了PostgreSQL服务器。有时是随机查询,特别是
CREATE OR REPLACE TEMPORARY VIEW <Name> AS SELECT * FROM <Table>;代码PGRES_FATAL_ERROR = 7和消息失败
ERROR: invalid page header in block 4169 of relation "pg_type"在2-5尝试之后,查询就完成了,没有任何错误。
我认为这一问题是由于系统驱动器上的空闲空间较低所造成的,因为应用程序在mac上运行良好,在mac上没有数据库错误,系统驱动器上有大量空闲空间。
如何指定导致查询失败的错误?
更新:添加了一个日志
sh-3.2# cat postgres_LOG.1324986905
LOG: database system was shut down at 2011-12-27 15:54:32 MSK
LOG: checkpoint record is at 1/EEE1161C
LOG: redo record is at 1/EEE1161C; undo record is at 0/0; shutdown TRUE
LOG: next transaction ID: 1814900; next OID: 808694
LOG: next MultiXactId: 1; next MultiXactOffset: 0
LOG: database system is ready
LOG: transaction ID wrap limit is 1073763426, limited by database "my_db"
LOG: connection received: host=::1 port=49159
LOG: connection authorized: user=my_db database=my_db
LOG: connection received: host=::1 port=49161
LOG: connection authorized: user=my_db database=my_db
LOG: connection received: host=::1 port=49162
LOG: connection authorized: user=my_db database=my_db
LOG: connection received: host=::1 port=49263
LOG: connection authorized: user=my_db database=my_db
LOG: connection received: host=::1 port=49264
LOG: connection authorized: user=my_db database=my_db
ERROR: invalid page header in block 4169 of relation "pg_type"
LOG: connection received: host=::1 port=49266
LOG: connection authorized: user=my_db database=my_db
ERROR: invalid page header in block 4169 of relation "pg_type"
LOG: connection received: host=::1 port=49273
LOG: connection authorized: user=my_db database=my_db
LOG: connection received: host=::1 port=49274
LOG: connection authorized: user=my_db database=my_db
LOG: connection received: host=::1 port=49276
LOG: connection authorized: user=my_db database=my_db
LOG: connection received: host=::1 port=49277
LOG: connection authorized: user=my_db database=my_db
LOG: connection received: host=::1 port=49362
LOG: connection authorized: user=my_db database=my_db
LOG: connection received: host=::1 port=49363
LOG: connection authorized: user=my_db database=my_db
LOG: connection received: host=::1 port=50293
LOG: connection authorized: user=my_db database=my_db
sh-3.2# 发布于 2011-12-27 21:58:09
听起来很像磁盘/文件系统损坏。我建议您尽快在数据库上执行转储/重新加载循环--如果可能的话,还可以进行文件系统和磁盘硬件检查。
不应该与空闲磁盘空间相关--这会给您带来不同的错误。
发布于 2011-12-27 12:55:27
更有可能的是,一些系统表被损坏。至少是pg_type。而且,由于pg_type通常很小(十几个页面/块),但是您的数量(4169)相当大,因此还可能存在其他问题,比如很少进行清空。
https://stackoverflow.com/questions/8644784
复制相似问题