Миграция PostgreSQL 11/15 на PostgreSQL 15/16¶
В Staffcop Enterprise возможна миграция между версиями:
PostgreSQL 11 → PostgreSQL 15,
PostgreSQL 11 → PostgreSQL 16;
PostgreSQL 15 → PostgreSQL 16.
Внимание
Миграция поддерживается только на Ubuntu Server.
Для выполнения миграции используется скрипт postgresql-upgrade.
Внимание
Для миграции на PostgreSQL 16 требуется корректировка скрипта. Обратитесь в техническую поддержку.
После запуска скрипт:
Установит PostgreSQL 15 или 16.
Перенесет данные из текущего кластера.
Удалит PostgreSQL 11 или 15 при успешном переносе данных.
Миграцию выполняет утилита pg_upgrade от PostgresPRO. Утилита входит в состав скрипта.
См.также
Системные требования¶
Операционная система:
Ubuntu 18.04 LTS,
Ubuntu 20.04 LTS,
Ubuntu 22.04 LTS.
База данных:
Предустановленная PostgreSQL 11 или PostgreSQL 15.
Примечание
Скрипт производит миграцию путём переназначения файлов данных, дополнительное место не требуется.
Условия миграции¶
Скрипт сработает при соблюдении условий:
Условие |
Описание |
Комментарий |
Расположение PostgreSQL 11, 15 |
Данные и файлы конфигурации расположены в директории |
Если данные находятся в другой папке, скрипт не сможет |
Название базы данных |
Базы данных имеют названия: |
Скрипт не переносит базы данных с другими названиями. |
Пользовательский кластер |
Пользовательский кластер расположен на одном хосте |
Скрипт не сработает, если пользовательский кластер |
Расположение архивных баз данных |
У всех архивных БД кластера в параметре location указан путь |
Скрипт остановится, если у одной или нескольких БД |
Локальные настройки сервера |
Локаль консоли сервера совпадает с локалью кластера PostgreSQL 11/15 |
При несоответствии измените локаль консоли с помощью команды: dpkg-reconfigure locales
|
Подготовка¶
Резервное копирование¶
Перед запуском скрипта выполните резервное копирование БД с помощью команды:
staffcop backup_db
Опасно
Без резервного копирования перед миграцией вы рискуете потерять данные из-за ошибок обновления.
Перенос архивных баз данных¶
Для переноса архивной базы данных:
Откройте скрипт postgresql-upgrade для редактирования:
sudo nano /usr/share/staffcop/bin/postgresql-upgrade
Измените переменную
ARCHIVED_DATABASES:
при переносе одной архивной БД:
ARCHIVED_DATABASES="archive2023"
при переносе нескольких архивных БД :
ARCHIVED_DATABASES="archive_2021 archive_2022 archive_2023"
Запуск скрипта¶
Скрипт предназначен для переноса PostgreSQL 11 на PostgreSQL 15. Перенос версии 11 на 15 или 15 на 16 требует корректировки скрипта. Обратитесь в техподдержку.
Запустите в терминале скрипт командой:
sudo staffcop postgresql upgradeСкрипт автоматически проверит совместимость старого и нового кластеров PostgreSQL с помощью утилиты pg_upgrade.
После успешной проверки скрипт запросит подтверждение перед обновлением PostgreSQL:
*** WARNING! You are really want to run Postgres upgrade script (type 'yes')?Введите yes, чтобы начать миграцию кластера PostgreSQL на новую версию.
Завершение миграции¶
Скрипт удалит старую версию и предложит перезапустить Staffcop командой:
staffcop init
Время перезапуска зависит от объема базы.
Перейдите в журнал действий pg_upgrade для просмотра логов:
cd /var/lib/postgresql/15/main/pg_upgrade_output.d
или
cd /var/lib/postgresql/16/main/pg_upgrade_output.d
При возникновении вопросов обратитесь в техподдержку.
Дата изменения: 10.07.2024