连接到 Postgres 数据库并重新索引系统表错误

连接到 Postgres 数据库并重新索引系统表错误

我有一个 Postgres 数据库崩溃了(以及磁盘),并且出现了一些数据错误(根据数据库磁盘故障后,现在“索引的缓存查找失败”)。

最初的问题似乎是系统表,正如该问题的答案所暗示的那样。但是,甚至无法尝试重新索引数据库。

尝试postgres -P -D datadir dbname会产生相同的错误FATAL: cache lookup failed for index 2662- 这难道不是 -P 标志应该解决的问题吗?

如果无法忽略系统表,如何连接数据库来重新索引数据库?还是有其他原因?

答案1

在这种情况下,如果 -P 标志仍然会导致错误,则数据库几乎肯定无法(合理)恢复。

这:

postgres -O -P -D /data/dir -c log_error_verbosity=verbose dbname

产生更多信息。在本例中,这意味着损坏超出了 pg_class 表的范围。

更多信息pgsql 管理列表

相关内容