Приветствую, после сбоя жесткого диска у меня восстановлена БД 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
Не очень приятный ответ.