Перейти к содержимому

Стратегии резервного копирования и восстановления данных

Как организовать резервное копирование данных в Corta

Почему важно создавать резервные копии

Рекомендуется регулярно выполнять резервное копирование вашей базы данных и загруженных файлов. Обязательно создайте резервную копию перед обновлением Corta до новой версии. Для автоматизации используйте задания cron с выгрузкой данных во внешнее облако или на выделенное хранилище.

Пример настройки cron для резервного копирования (Linux)

0 3 * * * docker-compose exec -T --env POSTGRES_PASSWORD=ваш_пароль db pg_dump -U ваш_пользователь your-db-name | gzip > /opt/backups/backup-$(date +\%Y\%m\%d).sql.gz 

Как уменьшить размер резервной копии базы данных Corta

В ряде случаев можно исключить некоторые специфические таблицы из резервной копии, чтобы ускорить процесс и сделать миграцию между различными инстансами Corta проще и быстрее.

ТаблицаОписание и влияние при исключении
auth_sessions

Сессии пользователей

Все должны будут заново авторизоваться

credentials

Данные авторизации (пароли, коды сброса, подтверждения email)

Необходимо заново подтвердить пароли и регистрацию

auth_oa2tokens

OAuth2-токены, выдаваемые Corta для веб-приложений

Все приложения должны будут заново авторизоваться

actionlog

Журнал действий (создание пользователей, события, история)

История действий будет утеряна

automation_sessions

История выполнения Workflows

Информация о шагах и статусах Workflows пропадет

compose_record

Метаинформация записей No Code-приложений

Будут утеряны данные пользователей No Code-приложений

compose_record_value

Значения записей No Code-приложений

Будут утеряны данные пользователей No Code-приложений

queue_messages

Сообщения внутр. очереди

Все очереди сообщений будут сброшены

resource_activity_log

История изменений ресурсов (например, правки записей)

История ресурсов будет утеряна

Важно

Исключение этих таблиц может быть уместно для разработки, тестирования или ускорения миграции между средами. Все данные, связанные с пользователями (compose_record и compose_record_value), всегда сохраняйте для боевого контура.

Как выполнить резервное копирование MySQL

Рекомендации:

  • Используйте только утилиту mysqldump, встроенную в контейнере базы данных (например, в образе percona:8.0).
  • Не копируйте файлы базы данных напрямую — это приведёт к порче данных!
  • Учтите, что по умолчанию при экспорте ставятся блокировки таблиц.

Базовая команда резервного копирования:

# Сохраняет всю базу данных в файл dump.sql
docker-compose exec -T \
  --env MYSQL_PWD=ваш_пароль db \
  mysqldump ваша_бд --add-drop-database -u ваш_пользователь > dump.sql 

Пример с исключением таблиц:

docker-compose exec -T \
  --env MYSQL_PWD=ваш_пароль db \
  mysqldump ваша_бд --add-drop-database \
  --ignore-table=ваша_бд.actionlog \
  --ignore-table=ваша_бд.automation_sessions \
  --ignore-table=ваша_бд.resource_activity_log \
  -u ваш_пользователь > dump.sql

Примечание

Если сервис БД назван иначе в вашем docker-compose.yaml, замените db на своё имя.

Восстановление базы данных MySQL

Перед восстановлением остановите сервис Corta!

docker-compose exec -T \
  --env MYSQL_PWD=ваш_пароль db \
  mysql ваша_бд -u ваш_пользователь < dump.sql 

Как выполнить резервное копирование PostgreSQL

Рекомендации:

  • Используйте pg_dump или pg_dumpall.
  • Не копируйте файлы хранения базы данных вручную.
  • Возможно временное блокирование таблиц.

Примеры команд:

# Резервная копия всех БД в dump.sql
docker-compose exec db \
  pg_dumpall -c -U ваш_пользователь > dump.sql

# Резервная копия только одной БД
docker-compose exec db \
  pg_dump -d ваша_бд -c -U ваш_пользователь > dump.sql

# Сжатие дампа 
docker-compose exec db \
  pg_dumpall -c -U ваш_пользователь | gzip > /var/data/postgres/backups/dump.gz

Исключение таблиц для уменьшения размера дампа

docker-compose exec db \
  pg_dump -T corta.actionlog -T corta.automation_sessions -T corta.resource_activity_log -c -U ваш_пользователь corta > dump.sql

Заменяйте имена контейнера и БД на ваши значения.

Восстановление базы данных PostgreSQL

Перед восстановлением остановите сервис Corta!

# Восстановление из дампа
cat dump.sql | docker-compose exec db psql -U ваш_пользователь

# Восстановление конкретной БД
cat dump.sql | docker-compose exec db psql -U ваш_пользователь -d ваша_бд

# Восстановление из сжатого дампа
gzip < dump.gz | docker-compose exec db psql -U ваш_пользователь

Как выполнить резервное копирование файлов, загруженных в Corta

  • Если не используется объектное хранилище (MinIO и др.), то все файлы хранятся на сервере по пути /data.
  • Вы можете воспользоваться стандартными средствами архивации для копирования данных.

Пример архивации файлов

# Архивация всех файлов в backup.tar.bz2
tar -cjf backup.tar.bz2 data/server/

Восстановление файлов

# Разархивация архива
tar -xjf backup.tar.bz2

Итоговые рекомендации для регулярного бэкапа в Corta

  • Используйте cron или аналогичные механизмы для автоматизации.
  • Делайте отдельные резервные копии базы данных и файловых данных.
  • Проверяйте целостность и возможность восстановления с помощью тестовых восстановлений.
  • Перед обновлением Corta — всегда делайте свежий бэкап.
  • Храните копии бэкапов на внешних носителях или в облаке.

Соблюдая эти рекомендации и инструкции, вы минимизируете риски потери данных в системе Corta и сможете быстро восстановить платформу в случае сбоя или при миграции.