Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
мануал_security_server_database_schema_update_при_обновлении_после_версии_6.25.2 [2023/04/11 06:42] evgeniy |
мануал_security_server_database_schema_update_при_обновлении_после_версии_6.25.2 [2023/05/08 18:16] (текущий) infra |
||
---|---|---|---|
Строка 1: | Строка 1: | ||
- | ====== Обновление Security Server Ubuntu 18.04 до 20.04 на месте ====== | + | ====== Ручное обновление схемы базы данных сервера безопасности при обновлении до версии 6.25.2 ====== |
- | В этом документе описываются шаги, необходимые для обновления автономного хоста Security Server с версии Ubuntu 18.04 LTS до Ubuntu 20.04 LTS. Пожалуйста, внимательно прочитайте весь документ перед началом процесса обновления. Предполагается, что читатель знаком с дистрибутивом Ubuntu Linux и имеет опыт обновления версии Ubuntu. | + | |
+ | При обновлении до версии 6.25.2 схема базы данных переименовывается, и для миграции требуется, чтобы программа установки могла получить доступ к базе данных с правами администратора. В случае отсутствия достаточных разрешений обновление завершится ошибкой (примеры сбоя приведены ниже), и потребуется выполнить некоторые действия вручную. | ||
- | С обновлением до Ubuntu 20.04 LTS PostgreSQL обновляется с версии 10 до 12. | ||
<code> | <code> | ||
- | Альтернативный метод: Обновление Security Server до Ubuntu 20.04 с использованием резервной копии конфигурации | + | Database and user exists, skipping database creation. |
+ | Liquibase Home is not set. | ||
+ | Liquibase Update Successful | ||
+ | psql: FATAL: password authentication failed for user "postgres" | ||
+ | Renaming public schema to 'serverconf' failed. | ||
+ | |||
+ | |||
+ | Database and user exists, skipping database creation. | ||
+ | Liquibase Home is not set. | ||
+ | Liquibase Update Successful | ||
+ | ERROR: must be owner of database serverconf | ||
+ | Renaming public schema to 'serverconf' failed. | ||
</code> | </code> | ||
- | ==== Подготовка==== | ||
- | При обновлении системы, в которой используется аппаратный модуль безопасности: убедитесь, что HSM совместим с Ubuntu 20.04, и ознакомьтесь с документацией по модулю HSM для получения инструкций по обновлению. | + | ====Исправление базы данных вручную=== |
+ | ===1 Подключиться к базе данных как суперпользователь базы данных (например, psql -h database.host -U postgres serverconf)=== | ||
- | * Ознакомьтесь с примечаниями к выпуску Ubuntu и инструкциями по обновлению: | + | ===2 Выполните следующие команды:=== |
- | * 18.04 → 20.04 https://wiki.ubuntu.com/FocalFossa/ReleaseNotes | + | |
- | * | + | |
- | * Обновите все пакеты до последних версий: | + | |
- | <code> | + | |
- | apt update && apt full-upgrade | + | |
- | </code> | + | |
- | + | ||
- | * Убедитесь, что версия программного обеспечения X-Road не ниже 6.25.0. | + | |
- | + | ||
- | * Рекомендуется: убедитесь, что у вас есть актуальная резервная копия (или моментальный снимок виртуальной машины) сервера и базы данных. | + | |
- | + | ||
- | * Используйте пользовательский интерфейс администратора, чтобы сделать резервную копию конфигурации сервера безопасности и загрузить ее в безопасное место. | + | |
- | + | ||
- | * Это позволяет восстановить конфигурацию сервера, если обновление по какой-либо причине не удалось. | + | |
- | + | ||
- | * Остановите сервер безопасности и запретите его автоматический запуск при загрузке: | + | |
<code> | <code> | ||
- | sudo systemctl stop "xroad-*" | + | ALTER DATABASE "serverconf" OWNER TO "postgres"; |
- | sudo systemctl disable "xroad-*" | + | REVOKE ALL ON DATABASE "serverconf" FROM PUBLIC; |
- | </code> | + | GRANT CREATE,TEMPORARY,CONNECT ON DATABASE "serverconf" TO "serverconf"; |
- | + | ALTER SCHEMA public RENAME TO "serverconf"; | |
- | * При необходимости сделайте резервную копию базы данных журнала сообщений. Без резервного копирования сбой в процессе обновления может привести к потере данных. | + | ALTER SCHEMA "serverconf" OWNER TO "serverconf"; |
- | * См. https://www.postgresql.org/docs/10/backup.html. | + | REVOKE ALL ON SCHEMA "serverconf" FROM PUBLIC; |
- | * Использование pg_dump является простым вариантом, но может быть проблематичным, если база данных очень велика: | + | CREATE SCHEMA public; |
- | <code> | + | GRANT USAGE ON SCHEMA public TO "serverconf"; |
- | sudo -iu postgres pg_dump -d messagelog -F c -f <dump_file> | + | ALTER EXTENSION hstore SET SCHEMA public; |
</code> | </code> | ||
- | * Уменьшение размера дампа базы данных журнала сообщений: По умолчанию база данных журнала сообщений хранит записи сообщений за 30 дней, но можно (временно) изменить время хранения, чтобы уменьшить количество записей в базе данных, тем самым уменьшив размер дамп базы данных. Изменение параметра не имеет немедленного эффекта, поскольку по умолчанию очистка журнала сообщений выполняется два раза в день (в полдень и в полночь). Дополнительную информацию см. в Руководстве пользователя Security Server. | + | ===3 Продолжить установку:=== |
- | * При необходимости сделайте резервную копию заархивированных файлов журнала сообщений. | + | * Ubuntu: apt --fix-broken install |
- | * Обратите внимание, что некоторые зарегистрированные сообщения могут быть еще не заархивированы и существовать только в базе данных. | + | * RHEL: yum reinstall xroad-proxy |
- | + | ||
- | * При желании сделайте резервную копию базы данных оперативного мониторинга (если установлен xroad-opmonitoring). Без резервного копирования сбой в процессе обновления может привести к потере данных. | + | |
- | * См. https://www.postgresql.org/docs/10/backup.html. | + | ---- |
- | <code> | + | |
- | sudo -iu postgres pg_dump -d "op-monitor" -F c -f <dump_file> | + | Автор Даниил Горбенко |
- | </code> | + | |
- | ==== Обновление Ubuntu 18.04 до 20.04 ==== | + | |
- | * Установите update-manager-core, если он еще не установлен. | + | |
- | * Убедитесь, что для строки подсказки в файле /etc/update-manager/release-upgrades установлено значение «lts». | + | |
- | * Запустите средство обновления с помощью команды | + | |
- | <code> | + | |
- | sudo do-release-upgrade | + | |
- | </code> | + | |
- | * Следуйте инструкциям на экране. | + | |
- | * Когда обновление будет завершено, перезагрузитесь при появлении запроса. | + | |
- | + | ||
- | ==== Обновление программного обеспечения X-Road ==== | + | |
- | === Обновите базу данных === | + | |
- | + | ||
- | * Процесс обновления Ubuntu по умолчанию создает пустой экземпляр базы данных, который следует удалить перед обновлением старой базы данных до версии 12. | + | |
- | * Просмотрите экземпляры базы данных с помощью pg_lsclusters и удалите лишние. | + | |
- | //Не удаляйте версию 10 (основную), работающую через порт 5432//. | + | |
- | <code> | + | |
- | sudo pg_dropcluster --stop <version, e.g. 12> main | + | |
- | </code> | + | |
- | === Пример === | + | |
- | <code> | + | |
- | $ sudo pg_lsclusters | + | |
- | Ver Cluster Port Status Owner Data directory Log file | + | |
- | 10 main 5432 online postgres /var/lib/postgresql/10/main /var/log/postgresql/postgresql-10-main.log | + | |
- | 12 main 5433 online postgres /var/lib/postgresql/12/main /var/log/postgresql/postgresql-12-main.log | + | |
- | + | ||
- | $ sudo pg_dropcluster --stop 12 main | + | |
- | </code> | + | |