migrate_postgresql¶
Данная команда выполняет миграцию базы данных на новую версию PostgreSQL
Это означает, что существующие данные и схемы из текущей версии PostgreSQL будут перенесены в установленную новую версию
Синтаксис¶
rude migrate_postgresql --to [ВЕРСИЯ_POSTGRESQL]
Пример¶
В данном руководстве описывается пошаговый процесс обновления PostgreSQL с версии 11 до версии 14 на Astra Linux 1.7.x для дальнейшего обновления сервера RuDesktop до версии 2.9
Окружение стенда:
Обновление PostgreSQL с 11 до 14 версии:
Заменить содержимое файла по пути
/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" \ "$@"Пример:
![]()
Создать бэкап БД командой:
rude backup /path/to/file.gz --no-security-labels --disable-macВажно
Вместо
/path/to/file.gzуказать полный путь, куда будет сохранен файл бэкапа с указанием названия файлаПодробнее о команде backup
Пример:
![]()
Добавить расширенный репозиторий 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Пример:
![]()
Выполнить команду по обновлению репозиториев:
apt update -yПример:
![]()
Остановить cluster PostgreSQL 11 командой:
pg_dropcluster 11 main --stopПроверить отсутствие cluster
pg_lsclustersЕсли clusters отсутствуют, появится следующее сообщение
![]()
Удалить PostgreSQL 11 командой:
apt remove postgresql-11Пример:
![]()
Важно
PostgreSQL 11 будет удалён, вместо него будет установлен PostgreSQL 14, а также будет создан новый кластер, который работает на порту 5432
В выводе терминала можно увидеть, что:
Следующие пакеты будут УДАЛЕНЫ: postgresql-11 и postgresql-client-11
Следующие НОВЫЕ пакеты будут установлены: postgresql-14 и postgresql-client-14
Проверить cluster для 14 версии PostgreSQL:
pg_lsclustersПример:
![]()
Важно
Если в
Verзначение 14, вPortзначение 5432 и вStatusзначение online, значит cluster работает и можно продолжатьВнести изменения в конфигурационный файл по пути
/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Внести изменения в конфигурационный файл по пути
/etc/postgresql/14/main/postgresql.confНайти строку:
listen_addressesВ начале строки удалить символ
#и значениеlocalhostизменить на*listen_addresses = '*'Найти строку:
max_connectionsИзменить значение на 500
max_connections = 500Перезапустить PostgreSQL командой:
systemctl restart postgresqlВыполнить инициализацию сервера RuDesktop командой:
rude initПример:
![]()
Выполнить восстановление БД командой:
rude restore /path/to/file.gzПример:
![]()
Важно
Вместо
/path/to/file.gzукажите путь до файла с бэкапомПроверить версию PostgreSQL командой:
echo "select * from version()" | rude sqlПример:
![]()
Важно
Если в выводе отображается версия 14, то сервер RuDesktop работает на новой версии PostgreSQL
Зайти в веб-интерфейс сервера RuDesktop в браузере и убедиться, что:
Веб-интерфейс открывается
Авторизация работает
Лицензия присутствует
Прочие данные восстановились после restore
Обновить сервер RuDesktop до версии 2.9 любым удобным способом по инструкции Установка\обновление сервера
В данном руководстве описывается пошаговый процесс обновления PostgreSQL с версии 12 до версии 16 на РЕД ОС 7.3.x для дальнейшего обновления сервера RuDesktop до версии 2.9
Окружение стенда:
Обновление PostgreSQL с 12 до 16 версии:
Заменить содержимое файла по пути
/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" \ "$@"Пример:
![]()
Установить PostgreSQL 16 командой:
dnf install postgresql16-serverПример:
![]()
Запустить процесс миграции с PostgreSQL 12 до 16 версии командой:
PGCONF_OLD=/var/lib/pgsql/data/ PGCONF_OLD_OPT=/var/lib/pgsql/data/postgresql.conf PGSVC_OLD=postgresql PGBIN_OLD=/usr/bin/ PGDATA_OLD=/var/lib/pgsql/data rude migrate_postgresql --to 16Пример:
![]()
Остановить службу PostgreSQL 12 версии командой:
systemctl stop postgresql.serviceОтключить автоматический запуск службы PostgreSQL 12 версии командой:
systemctl disable postgresql.serviceДобавить маску для службы PostgreSQL 12 версии командой:
systemctl mask postgresql.serviceВажно
Необходимо для того, чтобы после перезапуска ПК, версия PostgreSQL 12 не запускалась автоматически
Данная команда делает следующее:
Создаёт символическую ссылку от файла юнита
/etc/systemd/system/postgresql.serviceна специальное устройство/dev/null. Это эффективно блокирует любой доступ к файлу юнита, предотвращая запуск службыПредотвращает автоматический и ручной запуск: служба не будет запускаться автоматически при загрузке системы, и попытки вручную запустить её с использованием
systemctl startне будут успешными, пока она замаскированаЗащищает от запуска через зависимости: другие службы или процессы, которые могли бы вызвать запуск
postgresql.serviceчерез зависимости, также не смогут этого сделатьВнести изменения в конфигурационный файл по пути
/var/lib/pgsql/16/data/postgresql.confдля PostgreSQL 16 версии:Найти строку:
listen_addressesВ начале строки удалить символ
#и значениеlocalhostизменить на*listen_addresses = '*'Найти строку:
max_connectionsЗаменить значение на 500
max_connections = 500Внести изменения в конфигурационный файл по пути
/var/lib/pgsql/16/data/pg_hba.confдля PostgreSQL 16 версии:Найти строку:
host all all 127.0.0.0/32 md5Заменить на:
host all all 0.0.0.0/0 md5Запустить службу PostgreSQL 16 версии и добавить ее в автозагрузку командой:
systemctl enable postgresql-16.service --nowПроверить статус службы PostgreSQL 16 версии командой:
systemctl status postgresql-16.serviceПодсказка
В статусе должно отображаться
active (running)Проверить версию PostgreSQL командой:
echo "select * from version()" | rude sqlПример:
![]()
Важно
Если в выводе отображается версия 16, то сервер RuDesktop работает на новой версии PostgreSQL
Зайти в веб-интерфейс сервера RuDesktop в браузере и убедиться, что:
Веб-интерфейс открывается
Авторизация работает
Лицензия присутствует
И прочее
Обновить сервер RuDesktop до версии 2.9 любым удобным способом по инструкции Установка\обновление сервера
В данном руководстве описывается пошаговый процесс обновления операционной системы Ubuntu с версии 20.04 до версии 22.04, а также обновление PostgreSQL с версии 12 до версии 14 для дальнейшего обновления сервера RuDesktop до версии 2.9
Обновление с 20 до 22 Ubuntu
Обновить текущие пакеты в системе
Откройте терминал и выполните команды для обновления всех пакетов в вашей текущей системе:
sudo apt update sudo apt upgrade sudo apt dist-upgradeЗапустить обновление ОС
Выполните следующую команду для запуска процесса обновления ОС:
sudo do-release-upgradeВажно
После обновления Ubuntu с версии 20.04 до 22.04 по умолчанию будет установлена новая версия PostgreSQL 14. Поэтому необходимо выполнить миграцию на эту версию
Просмотр доступных кластеров
Чтобы просмотреть доступные кластеры PostgreSQL, выполните следующую команду:
pg_lsclustersПодсказка
Если в списке присутствует кластер PostgreSQL версии 14, необходимо его остановить следующей командой:
sudo pg_dropcluster 14 main --stopПосле этого необходимо запустить кластер версии 12 следующей командой:
systemctl start postgresql@12-mainЗапустить процесс миграции
rude migrate_postgresql --to 14Проверка работы сервера на новой версии PostgreSQL
Чтобы убедиться, что сервер работает на новой версии PostgreSQL, выполните следующую команду:
echo "select * from version()" | rude sqlВ ответ вы получите информацию о версии PostgreSQL, например:
PostgreSQL 14.19 (Ubuntu 14.19-0ubuntu0.22.04.1) on x86_64-pc-linux-gnu, compiled by gcc (Ubuntu 11.4.0-1ubuntu1~22.04.2) 11.4.0, 64-bitЕсли вы видите, что PostgreSQL работает на версии 14, это означает, что миграция прошла успешно, и вы можете перейти к обновлению сервера до версии 2.9 любым удобным способом по инструкции Установка\обновление сервера