Ошибка при postgres обновлении с 11.1 до 11.6 с использованием pg_upgrade - PullRequest
1 голос
/ 25 февраля 2020

Я пытаюсь обновить одну минорную версию (11.1) до другой минорной версии (11.6) с помощью инструмента pg_upgrade, но она не работает в приведенной ниже команде:

su - postgres -c '/usr/pgsql-11/bin/pg_upgrade -d /opt/collabnet/teamforge/var/pgsql/11.1/data -D /opt/collabnet/teamforge/var/pgsql/11.6/data -b /usr/pgsql-11/bin -B /usr/pgsql-11/bin'

с ошибкой ниже :

Performing Consistency Checks

Checking cluster versions                                   ok

Cannot upgrade to/from the same system catalog version when
using tablespaces.
Failure, exiting

и приведенная ниже ошибка в файле postgresql .log:

could not open directory "pg_tblspc/16400/PG_11_201809051": No such file or directory

Есть идеи о том, как его преодолеть с помощью того же инструмента pg_upgrade?

pg_upgrade_server.log

could not open directory "pg_tblspc/16400/PG_11_201809051": No such file or directory

1 Ответ

1 голос
/ 25 февраля 2020

Вы не используете pg_upgrade для незначительного обновления.

Просто остановите сервер, замените 11.1 двоичных файлов на 11.6 (вы должны использовать 11.7) и запустите сервер. Под «заменой двоичных файлов» я имею в виду, что вы должны установить версию 11.6 PostgreSQL в тех же каталогах, что и версия 11.1, тем самым перезаписав предыдущую установку.

Вот и все! Вам также следует прочитать примечания к выпуску, иногда необходимо внести некоторые дополнительные исправления в метаданные базы данных.

Ошибка, с которой вы сталкиваетесь, связана с использованием табличных пространств. В каждом табличном пространстве PostgreSQL создает подкаталог, имя которого содержит версию каталога . Во время pg_upgrade новый такой подкаталог создается в каждом табличном пространстве. Это, конечно, не может работать, если версии каталога совпадают.

...