Помогите!!!!

Ai3
Дата: 22.01.2004 17:50:01
[postgres@xxx]$ LOG: database system was interrupted while in recovery at 2004-01-22 17:47:40 MSK
HINT: This probably means that some data is corrupted and you will have to use the last backup for recovery.
LOG: checkpoint record is at 2/9070CE4
LOG: redo record is at 2/9003658; undo record is at 0/0; shutdown FALSE
LOG: next transaction ID: 4868291; next OID: 1857542
LOG: database system was not properly shut down; automatic recovery in progress
LOG: redo starts at 2/9003658
PANIC: could not access status of transaction 4981026
DETAIL: could not read from file "/usr/local/pgsql/data/pg_clog/0004" at offset 196608: Success
LOG: startup process (PID 28278) was terminated by signal 6
LOG: aborting startup due to startup process failure



Можно ли поправить без бекапа? Его просто нет :(
Ai3
Дата: 22.01.2004 19:33:54
Запустил базу, начал делать vacum выползла другая проблема:

ERROR: duplicate key violates unique constraint "pg_statistic_relid_att_index"
vacuumdb: vacuuming of database "x86_test" failed: ERROR: duplicate key violates unique constraint "pg_statistic_relid_att_index"


Что значит, и как подправить после сбоя?
Sad Spirit
Дата: 23.01.2004 12:27:17
Значит, что полетел индекс по системной таблице. Лечится командой REINDEX, в доке описано как.
Ai3
Дата: 27.01.2004 13:36:58
В логах:
ERROR: could not create unique index
DETAIL: Table contains duplicated values.

при попыткес сделать REINDEX db FORCE
Ai3
Дата: 27.01.2004 19:53:59
Как мне узнать в какой таблице дупликат?
Shweik
Дата: 27.01.2004 20:07:00
Например посмотреть текст запроса который создавал индекс.
Там обычно написано ;). Ну а если без шуток - напиши в /usr/local/pgsql/data/postgresql.conf
log_statement =true
и получишь в логе текст запросов.
Ai3
Дата: 28.01.2004 12:33:56
Ничего там нет (в логах) :(((

Те же самые две строчки
Ai3
Дата: 28.01.2004 12:46:07
Нашел глюченную табличку, но не могу ее никак удалить....
ERROR: catalog is missing 1 attribute(s) for relid 1847490

Как от нее избавиться? Захотелось все сдампить, заного инициализировать базы, а потом на новое место восстановить. Так pg_dump тоже валится на этом :(

Таблиц много, есть ли какой-нибудь ключик чтоб можно было бы исключить одну и всех? Нашел обратное, дампить те которые сам указываю в списке.

Спасибо.
Shweik
Дата: 28.01.2004 16:57:22
Ai3

Ничего там нет (в логах) :(((

Те же самые две строчки

Хмм а ты после рихтовки конфига рестартовал постмастер?
Нет ключа для исключения таблиц из дампа нет.
-t, --table=ТАБЛИЦА выгрузить только указанную таблицу
Ну напиши скрипт на шелле - получающий список таблиц и запускающий для
тех что надо pg_dump.
Я не понимаю зачем тебе удалять глюкавую таблицу - удали из нее
дубликаты(опять таки если она здоровая нужно скриптиком ее перебрать)
Ai3
Дата: 28.01.2004 17:16:21
Рестарт делал, я имел в виду то, что в какой таблице дуп не показало.... Сообщение об ошибке и все, хотя запросы начали писаться.

Что касается таблицы которая не хочет удаляться, то посмотрел записи - нет явных дубликатов в ней!!!


Я бы сделал дамп, но он сыпится на указанной табе, а общее количесвто таблиц ~ 600, а перечислять вручную - просто не могу )))