Site icon IT Draft

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

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

Selectel — ведущий провайдер облачной инфраструктуры и услуг дата-центров

Компания занимает лидирующие позиции на рынке на рынке выделенных серверов и приватных облаков, и входит в топ-3 крупнейших операторов дата-центров в России.


$ 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 восстановлен

Exit mobile version