Миграция PostgreSQL 11 на PostgreSQL 15

Миграция PostgreSQL 11 на PostgreSQL 15 производится с помощью скрипта postgresql-upgrade.
После запуска скрипт:
  1. Устанавливает PostgreSQL 15.

  2. Переносит данные из текущего кластера.

  3. Удаляет PostgreSQL 11 в случае успешного переноса данных.

Миграция данных производится с помощью утилиты pg_upgrade от PostgresPRO, входящей в состав скрипта.

Warning

Без резервного копирования вы рискуете поетрять данные.

Системные требования

Операционная система:

  • Ubuntu 18.04 LTS,

  • Ubuntu 20.04 LTS,

  • Ubuntu 22.04 LTS.

База данных:

  • Предустановленная PostgreSQL 11.

Note

Скрипт производит миграцию путём переназначения файлов данных, дополнительное место не требуется.

Условия миграции

Скрипт сработает при соблюдении условий:

Условие

Описание

Комментарий

Расположение PostgreSQL 11

Данные и файлы конфигурации расположены в директории
/var/lib/postgresql/11/.

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

Название базы данных

Базы данных имеют названия:
IBatyr, postgres, template0, template1.

Скрипт не переносит базы данных с другими названиями.
Измените скрипт для переноса архивных БД
Используйте внутренние регламенты для переноса баз,
не входяших в инфраструктуру IBatyr.

Пользовательский кластер

Пользовательский кластер расположен на одном хосте
с базой данных.

Скрипт не сработает, если пользовательский кластер
находится на отдельном хосте.
Используйте другие способы миграции.

Расположение архивных баз данных

У всех архивных БД кластера в параметре location указан путь
/var/lib/staffcop/archives.

Скрипт остановится, если у одной или нескольких БД
в параметре location указан путь к /var/lib/postgresql/11. [1]

Подготовка

Архивные базы данных

Для переноса архивной базы данных запустите скрипт postgresql-upgrade командой:

sudo nano /usr/share/staffcop/bin/postresql-upgrade

Измените переменную ARCHIVED_DATABASES:

  • при переносе одной архивной БД:

ARCHIVED_DATABASES="archive2023"
  • при переносе нескольких архивных БД :

ARCHIVED_DATABASES="archive_2021 archive_2022 archive_2023"

Резервное копирование

Перед запуском скрипта выполните резервное копирование БД с помощью команды:

ibatyr backup_db

Warning

Без резеврного копирования перед миграцией вы рискуете потерять данные из-за ошибок обновления.

Запуск скрипта

  1. Запустите в терминале скрипт командой:

ibatyr postgresql upgrade

Скрипт автоматически проверит совместимость старого и нового кластеров PostgreSQL с помощью утилиты pg_upgrade.

  1. После успешной проверки скрипт запросит подтверждение перед обновлением PostgreSQL:

*** WARNING! You are really want to run Postgres upgrade script (type 'yes')?

Введите yes, чтобы начать миграцию кластера PostgreSQL 11 на версию 15.

Завершение миграции

Скрипт удалит PostgreSQL 11 и предложит перезапустить IBatyr командой:

ibatyr init

Время перезапуска зависит от объема базы.

При возникновении вопросов обратитесь в техподдержку.

Дата изменения: 10.07.2024