首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PostgreSQL在系统驱动器上具有低空闲空间的魔力

PostgreSQL在系统驱动器上具有低空闲空间的魔力
EN

Stack Overflow用户
提问于 2011-12-27 12:45:01
回答 2查看 250关注 0票数 1

我在MacOSX10.7.2上运行了PostgreSQL服务器。有时是随机查询,特别是

代码语言:javascript
复制
CREATE OR REPLACE TEMPORARY VIEW <Name> AS SELECT * FROM <Table>;

代码PGRES_FATAL_ERROR = 7和消息失败

代码语言:javascript
复制
ERROR:  invalid page header in block 4169 of relation "pg_type"

在2-5尝试之后,查询就完成了,没有任何错误。

我认为这一问题是由于系统驱动器上的空闲空间较低所造成的,因为应用程序在mac上运行良好,在mac上没有数据库错误,系统驱动器上有大量空闲空间。

如何指定导致查询失败的错误?

更新:添加了一个日志

代码语言:javascript
复制
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# 
EN

回答 2

Stack Overflow用户

发布于 2011-12-27 21:58:09

听起来很像磁盘/文件系统损坏。我建议您尽快在数据库上执行转储/重新加载循环--如果可能的话,还可以进行文件系统和磁盘硬件检查。

不应该与空闲磁盘空间相关--这会给您带来不同的错误。

票数 1
EN

Stack Overflow用户

发布于 2011-12-27 12:55:27

更有可能的是,一些系统表被损坏。至少是pg_type。而且,由于pg_type通常很小(十几个页面/块),但是您的数量(4169)相当大,因此还可能存在其他问题,比如很少进行清空。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8644784

复制
相关文章

相似问题

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