2013-06-18 3 views
3

У меня сломанная виртуальная машина, которая не загружается с помощью старой базы данных postgresql (используется для запуска PostgreSQL 8.4). У меня есть доступ к файловой системе (и директории pg_data).Восстановить базу данных Postgres из каталога pg_data

Как я могу извлечь данные (или восстановить базу данных) из этого каталога данных?

Как можно просто скопировать содержимое этого каталога в рабочий каталог 8.4 pg_data?

ответ

4

На самом деле это в основном так просто. Вот шаги, которые я предпринял для получения этой работы:

1) Сопоставьте каталог data (/var/lib/postgres/8.4/data) в файл tar.gz.

2) Переместите файл в рабочей станции (мой рабочий стол, работающий дистрибутив Debian-обоснованную Linux)

3) Установите APT репозиторий PostgreSQL и установить postgresql-8.4 (или версия, которая была на разбитом сервере) используя инструкции, указанные на странице the PostgreSQL Linux downloads for Ubuntu.

4) Извлеките содержимое файла tar.gz в основной каталог для «новой» установки PostgreSQL 8.4 (/var/lib/postgresql/8.4/main/).

5) Измените postgresql.conf, чтобы изменить port = 5432 на port = 5433. Это позволяет нам контролировать, какую версию PostgreSQL мы подключаем к использованию номера порта (при условии, что у нас есть последняя стабильная версия на нашей рабочей станции, например 9.1). Таким образом, 9,1 останется на умолчанию 5432, и 8,4 будет на 5433.

6) Изменение владения извлеченного каталога данных так Postgres является владельцем: chown -R postgres:postgres /var/lib/postgresql/8.4/main/*

7) Запустите службу Postgres: service postgresql start (вы будете видеть обе версии запуска)

8) su, как Postgres и подключение через порт 5433, и имя базы данных, которая была на старом сервере: psql -p 5433 DatabaseName

Смежные вопросы