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

Исходное сообщение
"проблема с postgresql - статус транзакции не доступен"

Отправлено pjatachok , 14-Окт-08 16:42 
здравствуйте!

на сервере стоит СУБД postgresql-7.4 (OS Debian4)
при попытке выполнить запросы

------------------------------------------------------------------
select * from table;  (на остальных таблицах вроде все работает)
select count(*) from table;
VACUUM FULL analyze;
------------------------------------------------------------------

возникает ошибка
ERROR:  статус транзакции 3939827743 не доступен
DETAIL:  не получилось открыть файл "/var/spool/db/pg_clog/0EAD": No such file or directory
попытка сделать дамп таблицы:

---------------------------------------------------------
$ pg_dump table DB > table_dump.txt

pg_dump: ERROR:  статус транзакции 3939827743 не доступен
DETAIL:  не получилось открыть файл "/var/spool/db/pg_clog/0EAD": No such file or directory
pg_dump: SQL command to dump the contents of table "table" failed: PQendcopy() failed.
pg_dump: Error message from server: ERROR:  статус транзакции 3939827743 не доступен
DETAIL:  не получилось открыть файл "/var/spool/db/pg_clog/0EAD": No such file or directory
pg_dump: The command was: COPY public.table (f1, f2, f3, f4, f5, f6, f7) TO stdout;
-----------------------------------------------------------------


что посоветуете сделать? таблицу нужно бы сохранить

PS:
в /var/log/kern.log
пишется ошибка
[script] segfault at 49424473 eip 77b4969a esp 7f8b1e58 error 4, где script - некий скрипт, работающий с базой (запускается по крону). подозреваю что этот сегфолт связан с проблемами БД, потому как если отключить

в /var/log/kern.log пишутся логи:

[script] segfault at 77ec66cc eip 77ec66cc esp 7fb245ac error 15

ЧТО ДЕЛАТЬ?! на другой машине все ок - скрипты работают нормально
желательно базу восстановить, не потеряв данные


Содержание

Сообщения в этом обсуждении
"проблема с postgresql - статус транзакции не доступен"
Отправлено pjatachok , 14-Окт-08 17:10 

забыл сказать - если создать файл /var/spool/db/pg_clog/0EAD и забить его нулями командой
dd db=262144 count=1 if=/dev/zero of=/var/spool/db/pg_clog/0EAD

то часто в psql после запроса

d7=# select * from table;

вылетает ошибка

WARNING: закрытие подсоединения по причине упада другого серверного процесса
DETAIL: The postmaster has commanded this server process to roll back the current transaction and exit, because another server process exited abnormally and possibly corrupted shared memory.
HINT: In a moment you should be able to reconnect to the database and repeat your command.
server closed the connection unexpectedly
This probably means the server terminated abnormally
before or while processing the request.
The connection to the server was lost. Attempting reset: Failed.

и сервер базы похоже перестартует

так что создание файла не помогает