Назад | Перейти на главную страницу

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

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

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

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

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

Совет по поиску файла 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

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