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

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

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

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

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

Предупреждение

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

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

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

  • Ubuntu 18.04 LTS,

  • Ubuntu 20.04 LTS,

  • Ubuntu 22.04 LTS.

База данных:

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

Примечание

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

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

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

Условие

Описание

Комментарий

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

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

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

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

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

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

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

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

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

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

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

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

Локальные настройки сервера

Локаль консоли сервера совпадает с локалью кластера PostgreSQL 11

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

dpkg-reconfigure locales

Подготовка

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

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

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

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

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

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

ARCHIVED_DATABASES="archive_2021 archive_2022 archive_2023"

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

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

staffcop backup_db

Предупреждение

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

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

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

sudo staffcop 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 и предложит перезапустить Staffcop командой:

staffcop init

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

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

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