У меня проблема с тем, что база данных template1
имеет поврежденный индекс pg_class_oid_index
, а команда psql
жалуется и просит ее переиндексировать. Тем не менее, я не могу подключиться к нему, потому что его нужно переиндексировать! Как обойти это?
$ psql -X template1
psql: FATAL: index "pg_class_oid_index" contains unexpected zero page at block 3
HINT: Please REINDEX it.
$ reindexdb --all
reindexdb: reindexing database "gitlabhq_production"
reindexdb: reindexing database "postgres"
reindexdb: reindexing database "template1"
reindexdb: could not connect to database dbname=template1: FATAL: index "pg_class_oid_index" contains unexpected zero page at block 3
HINT: Please REINDEX it.
$ psql -X postgres
psql (9.6.11)
Type "help" for help.
postgres=# reindex index template1.pg_class_oid_index;
ERROR: schema "template1" does not exist
postgres=# \c template1;
FATAL: index "pg_class_oid_index" contains unexpected zero page at block 3
HINT: Please REINDEX it.
Previous connection kept
postgres=#
$ export PGOPTIONS="-P"
$ psql template1
psql: FATAL: index "pg_class_oid_index" contains unexpected zero page at block 3
HINT: Please REINDEX it.
$ postgres --single -D data/ template1
FATAL: index "pg_class_oid_index" contains unexpected zero page at block 3
HINT: Please REINDEX it.
$ postgres --single -P -D data/
FATAL: database "gitlab-psql" does not exist
$ postgres --single -P -D data template1
PostgreSQL stand-alone backend 9.6.11
backend> reindex index pg_class_oid_index;
ERROR: index "pg_class_oid_index" contains unexpected zero page at block 3
HINT: Please REINDEX it.
STATEMENT: reindex index pg_class_oid_index;
backend>
Я не могу использовать команду reindexdb
и не могу подключиться к ней напрямую, однопользовательский режим не помог, а переменная окружения PGOPTIONS
не помогло как предложено на https://grokbase.com/t/postgresql/pgsql-general/07bhn4xnnc/hint-please-reindex-it не помогло. Пожалуйста, порекомендуйте. Спасибо.