URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID8
Нить номер: 3145
[ Назад ]

Исходное сообщение
"ERROR:  could not open relation 1663/17242/40429"

Отправлено Андрей Слободяник , 11-Мрт-05 17:33 
Здравствуйте!
Есть PostgreSQL 8.0.1 на Crux Linux 1.3 (kernel 2.4.26).
Это первый опыт с постгре, до этого был MS SQL 2K. Уперлись в такую проблему. После аварийного завершения (перезагрузки), любые действия с tbl_test возвращают:
ERROR:  could not open relation 1663/17242/40429: No such file or directory
Как это вылечить?

Остальные таблицы вроде работают нормально, но что есть ещё другая пробема.
Даже если удалить эту таблицу, то pg_dump (и виндовый из PgAdmin III, и линуксовый) вылетают (segmentation fault) при попытке сделать дамп любой другой таблицы из этой БД).

Как проверить/исправить структуру БД?

Перестарт PgSQL, pg_resetxlog, vacuum, analyze, reindex пробовал. При наличии сбойной tbl_test выдают вышеуказанный ERROR, при её отсутсвии - всё равно не работает pg_dump.

БД пока тестовая, но решения "удалить и создать заново не подходит" не подходит, ибо такая ситуация может повториться на продакшене.

Подскажите, плиз, как искать и исправлять подобные сбои.


Содержание

Сообщения в этом обсуждении
"ERROR:  could not open relation 1663/17242/40429"
Отправлено XuMuK , 13-Мрт-05 12:37 
довольно странно это все, и здесь виноват уже не постгрес, а сама файлуха.. я так понимаю просто потерялся именно файл таблицы

"ERROR:  could not open relation 1663/17242/40429"
Отправлено Андрей Слободяник , 14-Мрт-05 11:26 
Посмотрел OID-ы. 17424 - это моя БД, 40429 - глючная таблица. Как узнать, что такое 1663 - такого OID-а не нашёл.

Очень волнует такой вопрос. Если эту таблицу удалить, всё как бы работает, но pg_dump вылетает. Есть средства узнать, всё ли в порядке в БД?



"ERROR:  could not open relation 1663/17242/40429"
Отправлено XuMuK , 14-Мрт-05 11:58 
>Посмотрел OID-ы. 17424 - это моя БД, 40429 - глючная таблица. Как
>узнать, что такое 1663 - такого OID-а не нашёл.
>
>Очень волнует такой вопрос. Если эту таблицу удалить, всё как бы работает,
>но pg_dump вылетает. Есть средства узнать, всё ли в порядке в
>БД?

http://www.postgresql.org/docs/8.0/interactive/sql-reindex.html
попробуй, может поможет


"ERROR:  could not open relation 1663/17242/40429"
Отправлено Андрей Слободяник , 14-Мрт-05 14:43 
>http://www.postgresql.org/docs/8.0/interactive/sql-reindex.html
>попробуй, может поможет

reindex, analyze, vacuum, pg_resetxlog я пробовал. Ситуация не меняется. Т.е., если глючную таблицу удалить, любые операции с остальными таблицами проходят нормально. Но, pg_dump-ом ни всю БД, ни любую отдельную таблицу сделать нельзя. Это и пугает - получается, что-то испорчено в структуре БД и я только косвенно догадываюсь об этом из-за segfault-a pg_dump-а.