Резервное копирование и восстановление¶
Резервное копирование базы данных¶
Резервное копирование базы данных выполняется автоматически ежедневно в 7 утра.
Файлы резервных копий базы данных размещаются в каталоге /opt/userside/data/backup
.
Имя файла содержит номер версии userside.
Файлы старше 20 дней автоматически удаляются.
Если нужно запустить резревное копирование базы данных вручную в любое время, выполнить команду:
docker compose exec userside backup
Резервное копирование файлов¶
Все изменяемые файлы находятся в каталоге /opt/userside/data/var
.
Интересными для резервного копирования являются только файлы приложенных файлов из подкаталога /opt/userside/data/var/attachments
.
Необходимость резервного копирования и ее периодичность настраивайте самостоятельно любым удобным способом.
Автоматическое резервное копирование этих файлов силами docker-сервиса userside не производится.
Восстановление резервной копии базы данных¶
Остановить набор контейнеров:
docker compose stop
Если вносились измения в конфигурацию postgres, скопировать файл
./data/database/postgresql.conf
. Если не вносились — пропустить этот шаг.sudo cp ./data/database/postgresql.conf ./
Пересоздать каталог с базой данных:
sudo rm -rf ./data/database sudo mkdir -p ./data/database
Запустить только сервис
postgres
:docker compose up -d postgres
И дождаться его готовности (состояния healthy) периодически просматривая состояние командой:
docker compose ps postgres
Выполнить восстановление нужной резервной копии базы данных:
gunzip < ./data/backup/userside_3.18.31_....sql.gz \ | docker compose exec -T postgres psql -U userside
В ходе восстановления следить за выводом. Восстановление должно пройти без ошибок. Если есть ошибки, пишите мне в телеграм.
Остановить набор сервисов:
docker compose stop
Сравнить версии образа сервиса
userside
из файлаdocker-compose.yaml
с версией файла резервной копии. Если версия userside совпадает с версией базы данных или если версия userside новее (3.18.31) чем версия базы данных (3.18.19), то пропустить этот шаг.Если же версия userside более старая (3.18.19), чем версия резервной копии базы данных (3.18.31), то отредактировать docker-compose.yaml. Указать версию образа docker совпадающую с версией базы данных или новее.:
services: userside: image: uscr.duckdns.org/userside/userside:3.18.31
Важно
Версия docker-образа userside должна либо совпадать с версией базы данных, либо версия docker-образа должна быть новее версии базы данных, но не наоборот!
Если был скопирован файл postgres.conf (п.2), то переместить этот файл
postgres.conf
назад в каталог./data/database
:sudo mv -f postgresql.conf ./data/database/postgresql.conf
Запустить набор контейнеров:
docker compose up -d
Если версия образа userside новее чем версия базы данных, автоматически запустится процесс обновления, который может выполняться долго. Наблюдать за ходом можно командой (выход Ctrl + C):
docker compose logs -f
Журнал миграций записывается в файл
data/var/log/migrations.log,
так что можно следить за этим файлом:tail -f data/var/log/migrations.log
Больше никаких действий не требуется. Только дождаться окончания запуска (или окончания миграций).