migrate_postgresql

Данная команда выполняет миграцию базы данных на новую версию PostgreSQL

Это означает, что существующие данные и схемы из текущей версии PostgreSQL будут перенесены в установленную новую версию

Синтаксис

rude migrate_postgresql --to [ВЕРСИЯ_POSTGRESQL]

Пример

В данном руководстве описывается пошаговый процесс обновления PostgreSQL с версии 11 до версии 14 на Astra Linux 1.7.x для дальнейшего обновления сервера RuDesktop до версии 2.9

Окружение стенда:

Сервер RuDesktop 2.8.1705

Обновление PostgreSQL с 11 до 14 версии:

  1. Заменить содержимое файла по пути /usr/share/rudesktop/bin/backup:

    #!/bin/bash -e
    # AS_ROOT
    
    BACKUP_FILE="$1"
    shift
    
    PGPASSWORD=$POSTGRES_PASSWORD pg_dump \
      $POSTGRES_CONNECTION \
      --verbose --compress=9 --clean --create --blobs \
      --file="$BACKUP_FILE" \
      "$@"
    

    Пример:

  2. Создать бэкап БД командой:

    rude backup /path/to/file.gz --no-security-labels --disable-mac
    

    Важно

    Вместо /path/to/file.gz указать полный путь, куда будет сохранен файл бэкапа с указанием названия файла

    Подробнее о команде backup

    Пример:

  3. Добавить расширенный репозиторий astra-ce в файл по пути /etc/apt/source.list:

    deb https://dl.astralinux.ru/astra/stable/1.7_x86-64/repository-extended/ 1.7_x86-64 astra-ce
    

    Пример:

  4. Выполнить команду по обновлению репозиториев:

    apt update -y
    

    Пример:

    Важно

    Если при выполнении команды по обновлению репозиториев возникают ошибки, проверьте время на сервере:

    date -u
    timedatectl status
    

    Пример:

  5. Остановить cluster PostgreSQL 11 командой:

    pg_dropcluster 11 main --stop
    
  6. Проверить отсутствие cluster

    pg_lsclusters
    

    Если clusters отсутствуют, появится следующее сообщение

  7. Удалить PostgreSQL 11 командой:

    apt remove postgresql-11
    

    Пример:

    Важно

    PostgreSQL 11 будет удалён, вместо него будет установлен PostgreSQL 14, а также будет создан новый кластер, который работает на порту 5432

    В выводе терминала можно увидеть, что:

    • Следующие пакеты будут УДАЛЕНЫ: postgresql-11 и postgresql-client-11

    • Следующие НОВЫЕ пакеты будут установлены: postgresql-14 и postgresql-client-14

  8. Проверить cluster для 14 версии PostgreSQL:

    pg_lsclusters
    

    Пример:

    Важно

    Если в Ver значение 14, в Port значение 5432 и в Status значение online, значит cluster работает и можно продолжать

  9. Внести изменения в конфигурационный файл по пути /etc/postgresql/14/main/pg_hba.conf

    Найти строку:

    host    all             all             127.0.0.0/32               md5
    

    И заменить на:

    host    all             all             0.0.0.0/0               md5
    
  10. Внести изменения в конфигурационный файл по пути /etc/postgresql/14/main/postgresql.conf

    Найти строку:

    listen_addresses
    

    В начале строки удалить символ # и значение localhost изменить на *

    listen_addresses = '*'
    

    Найти строку:

    max_connections
    

    Изменить значение на 500

    max_connections = 500
    
  11. Перезапустить PostgreSQL командой:

    systemctl restart postgresql
    
  12. Выполнить инициализацию сервера RuDesktop командой:

    rude init
    

    Пример:

  13. Выполнить восстановление БД командой:

    rude restore /path/to/file.gz
    

    Пример:

    Важно

    Вместо /path/to/file.gz укажите путь до файла с бэкапом

  14. Проверить версию PostgreSQL командой:

    echo "select * from version()" | rude sql
    

    Пример:

    Важно

    Если в выводе отображается версия 14, то сервер RuDesktop работает на новой версии PostgreSQL

  15. Зайти в веб-интерфейс сервера RuDesktop в браузере и убедиться, что:

    • Веб-интерфейс открывается

    • Авторизация работает

    • Лицензия присутствует

    • Прочие данные восстановились после restore

  16. Обновить сервер RuDesktop до версии 2.9 любым удобным способом по инструкции Установка\обновление сервера