Резервные копии
Страница для администраторов инстансов, развёрнутых самостоятельно. Дампы базы данных TAktom снимает «из коробки»; настраивать нужно то, как часто их снимать, сколько хранить и куда складывать.
Настройки — в разделе Админ → Бэкап.
Что попадает в резервную копию
Копия охватывает базу данных — проекты, задачи, комментарии, конфигурацию, пользователей. Ещё две вещи в дамп не входят и остаются на вас:
- Прикреплённые файлы — они лежат в хранилище файлов и резервируются средствами того, что их хранит.
- Файл параметров развёртывания с секретами. Держите его копию в надёжном месте.
Политики
Политика — это расписание: что дампить, как часто и сколько истории хранить. В комплекте идут две политики, их можно править и отключать:
| Политика | Что дампит | Период | Хранение |
|---|---|---|---|
| Полный дамп | Всю базу | 24 часа | 7 копий / 30 дней |
| Частый дамп | Всё, кроме содержимого журнала аудита и журнала вызовов ИИ | 1 час | 24 копии / 2 дня |
Частая политика существует ради того, чтобы регулярные дампы оставались небольшими: исключается только содержимое этих объёмных таблиц. Структура в дампе есть всегда, поэтому любой дамп восстанавливает базу целиком — частый просто вернётся без этой истории.
Для каждой политики задаются период, сколько копий хранить, сколько дней их держать и включена ли она. Дамп можно снять и вручную в любой момент.
Снимать дамп только при изменениях
Политике можно указать пропускать прогон, если база не менялась с прошлого дампа. На спокойном инстансе это избавляет от десятков одинаковых копий в хранилище. Страховочный интервал всё равно заставляет снять дамп через заданное время, поэтому сбой детектора не может оставить вас без свежих копий.
Ротация
Самые свежие копии политики в заданном количестве хранятся всегда, сколько бы им ни было лет. Сверх этого количества удаляются те, что старше срока хранения. Файл удаляется, а запись в журнале остаётся с пометкой об истёкшем сроке — история прогонов не теряется.
Куда складываются дампы
У каждой политики есть выбор:
| Вариант | Что делает |
|---|---|
| Только локальная копия (по умолчанию) | Дамп остаётся на диске самой установки. |
| Только объектное хранилище | Дамп снимается локально, выгружается в хранилище, локальный файл удаляется. |
| Хранилище и локальная копия | Выгружается в хранилище и остаётся локально. |
Двум последним вариантам нужно настроенное хранилище файлов; какое именно принимает дампы, выбирается здесь же. Это отдельный выбор, независимый от того, где лежат вложения задач, — см. Хранилище файлов → Назначение. Облачным инстансам хранилище для дампов назначено из коробки.
Локальные дампы лежат на том же сервере
Дамп, оставшийся локально, спасает от повреждения базы, но не от потери сервера. Чтобы резервная копия чего-то стоила, дампы должны покидать машину — либо выгрузкой в хранилище, либо вашим собственным регулярным копированием локальных дампов.
Если хранилище для дампов не назначено, варианты с выгрузкой выбрать нельзя — прогон гарантированно падал бы на доставке. А если доставка всё же сорвалась, прогон помечается неуспешным, но локальный файл сохраняется: терять снятый дамп из-за сетевого сбоя нельзя.
Журнал прогонов
Каждый прогон записывается: время, размер файла, контрольная сумма и ошибка, если она была. По журналу и проверяют, что копии действительно снимаются, — тихо падающая политика классическим образом обнаруживается слишком поздно.
Восстановление
Восстановление выполняется с командной строки сервера скриптом из комплекта поставки:
bash deploy/restore-backup.sh --list # какие дампы есть
bash deploy/restore-backup.sh --latest # восстановить самый свежий
bash deploy/restore-backup.sh /path/file.dump # восстановить конкретный файлВосстановление замещает данные
Восстановление перезаписывает содержимое базы. Скрипт требует явного подтверждения и перед началом сам снимает страховочный дамп текущего состояния, но относитесь к операции как к необратимой и будьте уверены в том, какой дамп восстанавливаете.
На время восстановления контейнеры приложения останавливаются, а сам скрипт подстраивается под то, как развёрнута база — встроенная она или внешняя. На хосте должно быть свободно примерно столько места, сколько весит дамп.
Инстансы на общей базе данных
Если ваш инстанс работает на общей или управляемой базе, которую её владелец уже резервирует централизованно, снятие собственных дампов можно выключить параметром BACKUP_ENABLED=0. Интерфейс тогда честно показывает баннер, что резервное копирование отключено, — это намеренно отличается от состояния «служба недоступна».
В остальном всё работает одинаково: дампы охватывают базу этого инстанса и никогда не затрагивают соседние базы того же кластера.
Что дальше
- Хранилище файлов — настройка места для дампов.
- Установка → Обновление — перед обновлением всегда делайте копию.
- Конфигурация — переменные окружения, относящиеся к бэкапу.