Redmine: бэкапирование и восстановление

Redmine: backup, restore

Бэкапирование Redmine

Создаем файл с параметрами подключения к базе, для того что бы в дальнейшем создавать дамп PostgreSQL без ввода пароля

$ sudo nano /root/.pgpass
localhost:5432:redmine:redmine:%password%
$ sudo chmod 600 /root/.pgpass

Делаем бэкап базы:

$ sudo pg_dump -d "redmine" -h localhost -Fc -U redmine -w -f "/opt/redmine/$(date +%Y%m%d_%H%M%S)_redmine.dump"

Делаем бэкап директории, где установлен Redmine

$ tar -czf /opt/redmine/$(date +%Y%m%d_%H%M%S)_redmine.tar.gz /opt/redmine-4.0.5

Эти действия можно оформить скриптом и добавить скрипт в crontab

Восстановление Redmine

Рассмотрим вариант, когда надо восстановить Redmine на чистый сервер.
Вначале нам надо установить Redmine в соответствии с одной из предыдущих статей, но п.7 «Устанавливаем Redmine. Продолжение» немного изменится:

Переходим в каталог и прописываем настройки для PostgreSQL

$ cd /opt/redmine-4.0.5/
$ bundle config build.pg --with-pg-config=/usr/pgsql-10/bin/pg_config

Устанавливаем необходимые gems (в данном случае локально)

$ bundle install --without development test mysql2 sqlite --local

Создаем файл с параметрами подключения к базе, для того что бы в дальнейшем создавать дамп PostgreSQL без ввода пароля

$ sudo nano /root/.pgpass
localhost:5432:redmine:redmine:%password%
$ sudo chmod 600 /root/.pgpass

Остановим web-сервер Nginx, что бы не было подключений к базе

$ sudo systemctl stop nginx

Подключаемся к БД

$ sudo su - postgres
-bash-4.2$ psql

Если в PostgreSQL есть база redmine к примеру с тестовыми данными, удаляем ее и создаем чистую

postgres=# DROP DATABASE redmine;
postgres=# CREATE DATABASE redmine WITH ENCODING='UTF8' OWNER=redmine;
postgres=# \q
-bash-4.2$ exit

Восстанавливаем базу из дампа и запускаем Nginx:

$ sudo pg_restore -h localhost -U redmine -d "redmine" -v "/tmp/20200115_094958_redmine.dump"
$ sudo systemctl start nginx

Восстанавливаем файлы Redmine из архива, сохранив их в каталог /opt/nginx-4.0.5

Запускаем генерацию токена:

$ bundle exec rake generate_secret_token

Обновляем структуру БД

$ RAILS_ENV=production bundle exec rake db:migrate

Перезагружаем Nginx

$ sudo systemctl restart nginx

Готово, Redmine восстановлен

Максим Макаров

У блога появился хостинг, его любезно предоставила компания Облакотека. Облакотека - облачные сервисы для создания и управления виртуальной ИТ-инфраструктурой.
Если вам понравился мой блог и вы хотели бы видеть на нем еще больше полезных статей, большая просьба поддержать этот ресурс.

Оцените автора
IT Draft
Добавить комментарий

Нажимая на кнопку "Отправить комментарий", я даю согласие на обработку персональных данных и принимаю политику конфиденциальности.