首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法以“postgres”用户身份登录“postgres”数据库

无法以“postgres”用户身份登录“postgres”数据库
EN

Stack Overflow用户
提问于 2015-04-21 14:14:14
回答 1查看 1.6K关注 0票数 2

我无法以“postgres”用户的身份登录到“postgres”数据库。操作系统:RehlServerRelease6.3 Postgresql版本: 8.4有一个数据库'jiradb‘,用作JIRA 6.0.8的后端。

当我发出命令

根~#psql postgres postgres

用户postgres密码:*

psql:致命:无法打开与OID 2696的关系

如何修复此错误并登录到“postgres”数据库。如果你需要更多的细节,请问我。我是postgres DB的新手。

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-04-22 00:31:16

您的postgres数据库已损坏。oid 2696是一个系统保留的and,所以它是一个系统表,它们的oids在数据库和版本之间都是稳定的。在我的9.4上查一下,它是:

代码语言:javascript
复制
regress=> select relname from pg_class where oid = 2696;
             relname              
----------------------------------
 pg_statistic_relid_att_inh_index
(1 row)

regress=> \d pg_statistic_relid_att_inh_index
Index "pg_catalog.pg_statistic_relid_att_inh_index"
   Column   |   Type   | Definition 
------------+----------+------------
 starelid   | oid      | starelid
 staattnum  | smallint | staattnum
 stainherit | boolean  | stainherit
unique, btree, for table "pg_catalog.pg_statistic"

因此,系统表pg_statistic_relid_att_inh_index上的索引pg_catalog.pg_statistic的数据目录中缺少一个文件。

这种情况不应该发生。您的数据中至少有有限的数据损坏。

您的第一个操作应该是停止数据库,并为每个PostgreSQL wiki -腐败生成整个数据目录的完整文件系统级副本。

那就检查一下可能的原因。最近的磁盘问题?意外/突然关闭之后是fsck,可能是在具有非崩溃安全文件系统的系统上,不安全的安装选项(例如ext4 3/ext4 4 data=writeback),不安全的配置(如ext4 34 on -LVM on -md),以及旧内核上设置障碍的系统,也要确保您处于最新的8.4点版本。

只在您将数据目录的完整文件系统级副本复制到安全只读存储之后,启动数据库备份(但不启动使用它的应用程序),并查看是否可以连接到jiradb,例如psql jiradb。如果可以的话,pg_dump会立即执行 of of和任何具有值数据的其他数据库。

不要继续使用损坏的数据目录。现在是做转储和重新加载的好时机--做一个pg_dumpall --globals-only,每个数据库的一个pg_dump -Fc,然后将datadir移到一边,重新initdb,然后从干净的安装开始。您甚至可能希望同时升级到一个不太古老的PostgreSQL。

请注意,通常可以就地修复这样的问题。在这种情况下,如果损坏的数据库不是不重要且通常为空的postgres数据库,则可以在禁用系统索引的单用户模式下启动PostgreSQL,然后将受损的索引设置为REINDEX

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

https://stackoverflow.com/questions/29774766

复制
相关文章

相似问题

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