Всем привет. Столкнулся с проблемой, после сбоя электроэнергии перестала работать СУБД. В pg_log пишет следующее:
неожиданный pageaddr 42/1BFEE000 в файле журнала 67, сегмент 30, смещение 16703488
неверная запись первичной контрольной точки
не удалось считать правильную запись контрольной точки
ОТМЕТКА: стартовый процесс (PID 1850) был завершён по сигналу 6: Aborted
ОТМЕТКА: прерывание запуска из-за ошибки в стартовом процессе
В pgstartup.log следующее:
runuser: невозможно установить группы: Операция не позволяется
К сожалению, я очень мало знаю про эту СУБД (она мне досталась "в наследство" ), и нюансы ее работы. Поэтому прошу помощи здесь.
Полазив по инету и этому форуму я пробовал:
- вырезать файлы из xlog, оставив только самые первые. Не помогло, вернул на место.
- сделать дамп. Как я понял, его можно сделать только при включенной СУБД?
- еще думал, что что-то с правами пользователя (из-за сообщения в стартап.лог), но подтверждения или решения не нашел.
Пока склоняюсь к идеи скопировать файлы базы и развернуть их на новом сервере. Прочитал здесь в мануале об этом, но ответа на вопрос "так можно?" или "как это правильно сделать?" там не увидел, скорее наоборот.
Подскажите, эту базу можно как-то спасти или всё плохо?
> сделать дамп. Как я понял,
> сделать дамп. Как я понял, его можно сделать только при включенной СУБД?
Дамп у вас УЖЕ ДОЛЖЕН БЫТЬ. Все беды от того, что люди не делают резервные копии! Сейчас бы восстановились с резервной копии и не было бы проблем!
Попробуйте стартануть с пропуском последних логов, может быть запустится.
Если нет, то обращайтесь в список рассылки разработчиков PostgreSQL - тут только они (если смогут) помогут.
Перед тем как запускаться, советую сделать полную файловую копию всех данных в том виде, в котором они находятся прямо сейчас.
Не отрицаю, с бэкапом проблем
Не отрицаю, с бэкапом проблем бы не было.
Не получилось выполнить предложенный вами вариант. Под рутом он не дает запускать, и, как я понял, надо выполнять команду под пользователем postgres, но пароль от него мне не известен.
Для того, чтобы стать
Для того, чтобы стать пользователем postgres, выполните от root:
su - postgres
Большое спасибо! Сброс
Большое спасибо! Сброс журнала транзакций помог запустить сервис. Пойду бэкап сделаю