восстановить базу данных postgres из папки после аппаратного сбоя - PullRequest
0 голосов
/ 17 октября 2018

У меня есть postgres 10 DB, работающая на Ubunto 18.04.Резервная копия дампа слишком старая для использования.После аппаратного сбоя мне удалось сохранить все каталоги и файлы со старого диска, но диск не может быть использован.Установил новый postgres 10 на другой компьютер под управлением 18.04.Попытался скопировать файлы в новую среду postgres - получил тонны фатальных сообщений об ошибках.Что я делаю неправильно?Спасибо

1 Ответ

0 голосов
/ 18 октября 2018

Спасибо за ответ.Я нашел решение, и я более чем рад поделиться им:

В случае, если у вас есть [резервная копия каталога] вашей базы данных и вы хотите ее восстановить.Лучшим способом будет использовать Postgres Backup и восстановление.Этот ответ предназначен только для людей, у которых нет хорошей резервной копии PG или обновленной ...

Убедитесь, что на вашем компьютере установлена ​​программа Postgres.Если база данных используется другими пользователями, убедитесь, что вы выполняете все восстановление на тестовом неактивном сервере PG.

Каталог данных Postgres обычно выглядит так (Ubuntu 18.04 Postgres 10): Данные Postgres 10структура каталогов

переключение пользователя на postgres (не обязательно, но делает это намного проще):

su postgres

убедитесь, что Postgres остановлен.

pg_ctl stop

переместить текущий каталог для резервного копирования.$ PGDATA должен указывать на каталог данных.в моей установке это "/ var / lib / postgresql / 10 / main /".Убедитесь, что [target_dir] существует

cd $PGDATA
mv -r . [target_dir]

скопируйте каталог резервного копирования в $ PGDATA

cp -r [directory backup] $PGDATA

измените разрешения (postgres не любит разрешения для других ...)

chmod -R 0700 $PGDATA

проверьте, не пропало ли ни одного файла или каталога ...

start postgres

pg_ctl start

Удачи!

...