вторник, 27 октября 2020 г.

Миграция Jira с H2 на PostgreSQL

Если при устновке Jira Software была выбрана встроенная СУБД H2, а не внешняя, то со временем увеличение объёма данных может отрицательно сказаться на производительности сервиса. В моём конкретном случаем размер файла /var/atlassian/application-data/jira/database/h2db.mv.db приблизился к 5 Гб, что вызывало огромные задержки при выполнении любых действий. Чтобы решить эту проблему было принято решение перенести данные на полноценную СУБД - PostgreSQL. Ставить PostgreSQL будем на тот же сервер, на котором запущена Jira.

Документация Atlassian говорит, что максимальная версия PostgreSQL, которая поддерживается - 11, её и будем устанавливать. Сервер работает под управлением Ubuntu, так что, открыв соответствующую инструкцию на сайте PostgreSQL, произведём установку.

Добавим ключ безопасности репозитория
sudo -s
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add
и сам репозиторий
echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list
Обновим список доступных пакетов и установим необходимые
apt update && apt install postgresql-11
Добавим автозагрузку
systemctl enable postgresql
Теперь настроим СУБД, согласно ещё одной инструкции Atlassian.
Создадим пользователя и укажем его пароль
sudo -u postgres createuser --interactive
Введите имя новой роли: jiradbuser
Должна ли новая роль иметь полномочия суперпользователя? (y - да/n - нет) n
Новая роль должна иметь право создавать базы данных? (y - да/n - нет) n
Новая роль должна иметь право создавать другие роли? (y - да/n - нет) n

sudo -u postgres psql -c "ALTER USER jiradbuser WITH ENCRYPTED PASSWORD 'jiradbuserpassword';"
Создадим базу данных, которую будет использовать Jira
sudo -u postgres createdb -E UNICODE -l C -T template0 jiradb
и дадим пользователю jiradbuser права на доступ к ней
sudo -u postgres psql -c "GRANT ALL PRIVILEGES ON DATABASE jiradb TO jiradbuser;"
Проверяем, что всё хорошо
sudo -u postgres psql -Ujiradbuser -hlocalhost -djiradb
если после ввода пароля пользователя появилось приглашение psql
psql (11.9 (Ubuntu 11.9-1.pgdg16.04+1))
SSL-соединение (протокол: TLSv1.2, шифр: ECDHE-RSA-AES256-GCM-SHA384, бит: 256, сжатие: выкл.)
Введите "help", чтобы получить справку.

jiradb=>
значит всё сделано правильно и можно продолжать.
Выйти из psql можно с помощью команды
\q
Заходим в веб-интерфейс Jira и создаём бэкап, как описано тут. Нажимаем знак шестерни в правом верхнем углу и последовательно переходим Система > Раздел бокового меню ИМПОРТ И ЭКСПОРТ > Бэкап системы. Тут вводим желаемое имя файла резервной копии и ждём завершения процесса её создания. Файл будет находится в каталоге /var/atlassian/application-data/jira/export.

После завершения процесса создания резервной копии останавливаем Jira
/opt/atlassian/jira/bin/stop-jira.sh
Указываем в переменной окружения путь к jre, иначе скрипт конфигурации завершится с ошибкой
PATH=$PATH:/opt/atlassian/jira/jre/bin
и запускаем скрипт конфигурации для подключения Jira к базе PostgreSQL
/opt/atlassian/jira/bin/config.sh
Выбираем последовательно пункты Database Selection > PostgreSQL и указываем соответствующие данные для подключения к базе
PostgreSQL Database Configuration.
Hostname ()> localhost
Port ()> 5432
Database ()> jiradb
Username ()> jiradbuser
Password ()>
Schema name ()> public
схема выбирается public, если не была указана другая.
Соглашаемся на тестирование подключения и если видим в ответ
Attempting to connect to localhost:5432/jiradb
Connection successful!
выходим из меню с сохранением настроек Return to Main Menu > Save and Exit.

Запускаем Jira
/opt/atlassian/jira/bin/start-jira.sh
Переходим в веб-интерфейс Jira и ждём завершения загрузки модулей системы. Когда сервис загрузится, то нас будет приветствовать мастер первоначальной настройки сервера.

Не пугаемся!

Нажимаем на ссылку импорта данных и указываем путь к файлу резервной копии, которую создавали ранее.
После завершения импорта нас будет приветствовать Jira в том же виде, в котором она была до запуска мастера настроки подключения к базе данных, но работающая заметно быстрее.

Комментариев нет:

Отправить комментарий