Назад | Перейти на главную страницу

Подключиться к базе данных Postgres и переиндексировать ее с ошибками системной таблицы

У меня есть база данных Postgres, в которой произошел сбой (как и на диске), и произошли некоторые ошибки данных (согласно После сбоя диска БД теперь «ошибка поиска индекса в кэше»).

Исходная проблема, похоже, связана с системными таблицами, как подсказывает ответ на этот вопрос. Однако даже попытаться переиндексировать базу данных не удалось.

Пытаюсь postgres -P -D datadir dbname дает ту же ошибку, FATAL: cache lookup failed for index 2662 - разве это не то, что должен обойти флаг -P?

Как вы подключаетесь к базе данных, чтобы переиндексировать базу данных, если вы не можете игнорировать системные таблицы? Или что-то еще происходит?

В этом случае, когда флаг -P все еще приводит к ошибкам, база данных почти наверняка не подлежит (разумному) восстановлению.

Это:

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

дает дополнительную информацию. В данном случае это означало повреждение за пределами таблицы pg_class.

Подробнее о список pgsql-admin.