LINUX.ORG.RU
ФорумAdmin

Как восстановить сервер PostgreSQL после сбоя кластера?

 ,


1

2

Здравствуйте! Помогите пожалуйста с решением проблемы.

Имеется сервер postgresql 9.6.6 на astra linux 1.6 se, который благополучно заруинили во время тестовых работ. Спросить, что именно привело к поломке или посмотреть логи - нет возможности по ряду причин.

Сервер (кластер) отказывается запускаться, в логах ошибка, что не существует роли postgres. Пробовал запустить: sudo -u postgres /usr/lib/postgresql/9.6/bin/postgres –single -D /etc/postgresql/9.6/main ПРЕДУПРЕЖДЕНИЕ: в этой системе баз данных не создано ни одной роли ПОДСКАЗКА: Вы должны немедленно выполнить CREATE USER «postgres» CREATEUSER;. СБОЙ: база данных «postgres» не существует

Я пробовал:

  1. на другой рабочий сервер подкидывать папку main целиком - ошибки те же;
  2. на другой рабочий сервер подкидывать папку base - как и ожидалось, сервер просто не видит этих баз;
  3. на другой рабочий сервер вместе с base, подкидывать ещё global - сервер не стартует, ошибка записи контрольной точки;
  4. на другом рабочем сервере в postgres создаю новую базу данных, смотрю её oid, останавливаю postgres, закидываю в папку base/%oid новой базы% файлы необходимой мне бд из папки main/base/%oid старой базы%. Сервер стартует без ошибок, но подключится к бд не даёт - «СБОЙ: cache lookup failed for relation 1247: внутренняя ошибка или отсутствуют необходимые мандатные атрибуты». Мандатные метки везде 0,0, попробовал поставить на папку флаг ccnr, но ошибка не уходит. Подскажите решение.

Восстановить интересно более всего саму структуру схем и таблиц, функции и триггеры. Сами данные собственно говоря не очень то нужны.

Перемещено hobbit из general