Апгрейд PostgreSQL

В отличии от mysql, где переход на следующую мажорную версию осуществляется обновлением бинарников и схемы БД, апгрейд PostgreSQL проходит несколько иначе. Рассмотрим на конкретном примере

Имеется кластер 1С и клиент-серверная программа подачи отчетности МЕДОК, данные которых хранятся в PostgreSQL. Текущая версия 14.7, перейти нужно на 15.2. ОС Windows 2016 standart

Установка новой версии PostgreSQL

Текущий инстанс установлен по пути C:\Program Files\PostgreSQL 1C\14 и работает с портом 5432. Новый устанавливаем в папку C:\Program Files\PostgreSQL 1C\15 и работать он будет с портом 5433. Скачиваем дистрибутив и запускаем инсталятор

Апгрейд PostgreSQL

Пароль пользователя postgres оставляем тот же, что и для версии 14. Потом удобнее будет мигрировать

Апгрейд PostgreSQL

В ходе установки инсталятор предложит свой postgres.conf в зависимости от железа, либо конфиг по-умолчанию. Но это не важно, потому что postgres.conf от 14-й версии скорее всего подойдет

По окончании инсталяции имеем два рабочих инстанса PostgreSQL, 14-й на порту 5432 и 15-й на порту 5433

Миграция

Нет потребности сливать все базы в дамп и потом из него накатывать. Будем заливать сразу. Предварительно останавливаем службы 1C:Enterprise 8.3 Server Agent и ZvitGrp, которые работают с PostgreSQL. Запускаем cmd.exe и выполняем следующее:

cd C:\Program Files\PostgreSQL 1C\15\bin
chcp 1251
set PGPASSWORD=********* (пароль суперпользователя postgres)
pg_dumpall -U postgres -p 5432 | psql -U postgres -p 5433

Если не задать в переменной PGPASSWORD пароль суперпользователя, то при миграции каждой следующей базы придется вводить пароль вручную, что на большом количестве баз несколько напряжно

Ждем. В зависимости от размера время может быть разным. Все базы (размер дампа 56Гб, сделал за день до миграции) «зашли» за 70 минут

Переключение

По окончании, останавливаем все службы postgresql. Для версии 14 Startup Type устанавливаем в состояние Disabled. postgres.conf и pg_hba.conf (возможно еще какой-то .conf) копируем из C:\Program Files\PostgreSQL 1C\14\data\ в C:\Program Files\PostgreSQL 1C\15\data\ и запускаем службу postgresql-1c-15, 1С и МЕДКА. Проверяем

P.S.

Не все опции из postgres.conf 14-й версии верны для 15-ой. Пришлось удалить stats_temp_directory из-за которой 15-я версия не запускалась

0 0 голоса
Оцените статью
Подписаться
Уведомить о
guest

0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии