Восстановление из резервной копии
Данный раздел описывает процедуру восстановления данных для TeamStorm в случае системного сбоя.
ВНИМАНИЕ
Для восстановления работы нужно установить "чистую" версию TeamStorm
Перед восстановлением убедитесь, что cистема чистая и работает корректно
Восстановление данных из резервной состоит из двух шагов и выполняется в порядке, обратном созданию резервных копий.
-
Восстановление разделов docker-контейнеров.
-
Восстановление баз данных
Postgres
из ранее созданных дампов.
Восстановление разделов docker-контейнеров
Для восстановления разделов контейнеров нужно иметь привилегии
пользователя root
, так как по-умолчанию только root
имеет доступ к этим
разделам файловой структуры.
-
Создайте временную директорию и перейдите в нее. Затем скопируйте сюда архив, содержащий разделы контейнеров докер:
-
Перенесите директории в папку c разделами
docker
. По умолчанию это/var/lib/docker/volumes/
.
ВНИМАНИЕ
Пользователь root
больше не нужен, остальные операции можно делать из-под "обычного" пользователя
Восстановление баз данных PostgreSQL из дампов
Данная процедура описывает баз данных PostgreSQL из предварительно созданных дампов. Процедура автоматизирована и для запуска нужно выполнить следующие действия:
-
Перейдите в директорию
scripts
, которая находится внутри директории с артефактами TeamStorm: -
Создайте здесь директорию
dumps
, сохраните туда архив и распакуйте его:mkdir dumps ls -la -rwxrwx--- 1 user user 1275 Feb 02 11:22 db_backup.sh* -rwxrwx--- 1 user user 1652 Feb 02 11:22 db_restore.sh* drwxr-xr-x 2 user user 4096 Feb 02 13:26 dumps/ scp backup-server:/teamstorm/teamstorm_2025-02-02_04-00-00_backup.tgz ./dumps/ cd dumps tar -xzvf teamstorm_2025-02-02_04-00-00_backup.tgz
-
Запустите скрипт
db_restore.sh
, указав целевую директорию и общий суффикс, состоящий из временной метки и расширения, например, для файлов:
Общим суффикcом будет 2025-02-02_04-00-00.bak
. Таким образом, команда для восстановления будет выглядеть следующим образом:
ВНИМАНИЕ
Обращайте внимание на лог восстановления, при необходимости перенаправьте поток вывод в файл для дальнейшего анализа.
Пример успешного восстановления:
...
Recovering from backup: container: teamstorm-database_service-1 teamstormdb teamstormdb_02-02-2025_04_00.bak
UPDATE 1
pg_terminate_backend
----------------------
t
t
t
t
(4 rows)
DROP DATABASE
CREATE DATABASE
После успешного восстановления перезапустите teamstorm
: