Резервные копии
Страница для администраторов инстансов, развёрнутых самостоятельно. Дампы базы данных 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. Интерфейс тогда честно показывает баннер, что резервное копирование отключено, — это намеренно отличается от состояния «служба недоступна».
В остальном всё работает одинаково: дампы охватывают базу этого инстанса и никогда не затрагивают соседние базы того же кластера.
Что дальше
- Хранилище файлов — настройка места для дампов.
- Установка → Обновление — перед обновлением всегда делайте копию.
- Конфигурация — переменные окружения, относящиеся к бэкапу.