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
Не приятный ответ.