Postgresql миграция без дампа

Приветствую, после сбоя жесткого диска у меня восстановлена ​​БД PostgreSQL, но ОС не работает. Я пытаюсь скопировать его на другой сервер с более новой версией PostgreSQL, но все, что мне удалось получить, это:

Была найдена старая версия формата базы данных. Вам необходимо обновить формат данных перед использованием PostgreSQL. См. /Usr/share/doc/postgresql-8.1.22/README.rpm-dist для получения дополнительной информации.

Я не знаю номер старой версии.

Пожалуйста, посоветуйте мне что-нибудь.

2 ответа

Совет по поиску файла pg_version хорош, а также вы, вероятно, сможете запустить pg_controldata для $PGDATA и получить некоторую информацию. В худшем случае продолжайте устанавливать основные версии (7.4.x, 8.0.x, 8.1.x и т. Д.) До тех пор, пока не найдете совместимое соответствие.

Если у вас есть работающая база данных, вы можете беспокоиться об обновлении при необходимости. pg_dump / restore является одним из вариантов. pg_upgrade будет работать на 8.3+. У вас также есть возможность использовать систему репликации, такую ​​как slony, для перекрестной репликации версий (насколько хорошо она будет работать, зависит от того, на какой версии вы остановились).

Однако для всех этих методов (включая pg_upgrade) вам понадобится работающая копия вашей системы, поэтому начните с поиска подходящей / совместимой версии для начала.

Если вы смогли получить все файлы в каталоге данных, тогда должен быть файл PG_VERSION. Используя это, вы можете создать базу данных с этой версией. Из моего анализа я не смог найти способ восстановить данные базы данных без базы данных с правильной версией.

Вот несколько шагов для восстановления, если вы знаете версию:

http://archives.postgresql.org/pgsql-general/2009-09/msg01152.php

Если вы знаете, что ваша последняя версия 8.3 или выше, это должно работать:

http://www.postgresql.org/docs/9.0/static/pgupgrade.html

Не приятный ответ.

Другие вопросы по тегам