
YouTrack – система управления задачами с гибкой конфигурацией, где данные хранятся в базе H2 или PostgreSQL. Потеря информации из-за сбоя сервера, ошибок миграции или случайного удаления может привести к простоям и потере рабочего времени. Резервное копирование – единственный способ гарантировать восстановление системы в исходное состояние. В этом руководстве рассмотрены методы создания бэкапов для разных версий YouTrack: Standalone, InCloud и Docker-контейнеров.
Стандартный подход к резервированию включает экспорт данных через встроенные инструменты YouTrack и копирование файлов базы. Для Standalone-версии на базе H2 резервная копия создаётся командой youtrack.sh backup, которая сохраняет данные в архив формата .zip. В случае использования PostgreSQL потребуется отдельный бэкап базы через pg_dump с параметрами --clean --if-exists, чтобы избежать конфликтов при восстановлении. Для InCloud JetBrains предоставляет автоматическое резервирование, но доступ к бэкапам ограничен – рекомендуется дополнительно экспортировать данные через API или веб-интерфейс.
При работе с Docker-контейнерами резервное копирование требует сохранения не только данных базы, но и конфигурационных файлов из тома /opt/youtrack/conf. Используйте docker exec для выполнения команды бэкапа внутри контейнера или создавайте снапшоты томов через docker commit. Храните резервные копии на отдельном сервере или в облачном хранилище с шифрованием – например, AWS S3 с политикой версионирования или Backblaze B2. Проверяйте целостность бэкапов раз в месяц, восстанавливая их на тестовой среде.
Автоматизация процесса снижает риск человеческой ошибки. Настройте cron-задачи для регулярного выполнения скриптов бэкапа: ежедневные инкрементальные копии и еженедельные полные. Для PostgreSQL используйте WAL-архивирование, чтобы минимизировать потерю данных при сбое. В случае миграции на новую версию YouTrack всегда создавайте резервную копию перед обновлением – даже незначительные изменения в схеме базы могут привести к несовместимости.
Подготовка окружения для резервного копирования
Перед началом резервного копирования YouTrack убедитесь, что сервер соответствует минимальным требованиям: 8 ГБ ОЗУ, 4-ядерный процессор с тактовой частотой от 2,5 ГГц и свободное дисковое пространство в 1,5 раза превышающее текущий объём базы данных. Для Linux-систем используйте дистрибутивы на базе RHEL 8+ или Ubuntu 20.04 LTS с установленным OpenJDK 17. На Windows Server 2019/2022 требуется .NET Framework 4.8 и PowerShell 5.1 или новее.
Выделите отдельный раздел или диск под резервные копии с файловой системой ext4 (Linux) или NTFS (Windows). Исключите использование сетевых хранилищ (NFS, SMB) для временных файлов копирования – это снижает производительность на 30–40%. Настройте квоты: минимальный объём должен быть не менее 50 ГБ даже для небольших инсталляций (до 10 000 задач).
- Отключите индексацию на целевом диске для резервных копий – это ускоряет запись на 15–20%.
- Настройте политику ротации логов YouTrack: оставляйте только последние 7 дней в
/logsперед созданием копии. - Проверьте права доступа: пользователь, запускающий резервное копирование, должен иметь права на чтение каталогов
/dataи/conf.
Для виртуализированных сред (VMware ESXi, Hyper-V) заранее увеличьте лимиты IOPS на диске с резервными копиями до 1000+ операций в секунду. В Docker-контейнерах монтируйте тома с параметром --tmpfs для временных файлов, чтобы избежать фрагментации. Если YouTrack развёрнут в Kubernetes, используйте PersistentVolume с классом хранения fast (например, SSD или NVMe).
Создайте тестовый стенд с идентичной конфигурацией для проверки резервных копий. Используйте утилиту youtrack.sh backup --dry-run (Linux) или youtrack.bat backup --dry-run (Windows) для симуляции процесса без фактического копирования. Зафиксируйте время выполнения и потребление ресурсов – это поможет спрогнозировать окно обслуживания для продакшен-среды.
Выбор метода создания бэкапа: встроенные инструменты или сторонние решения

YouTrack предоставляет два встроенных механизма резервного копирования: youtrack.sh backup для локальных инсталляций и API-метод /api/admin/backup для облачных версий. Первый генерирует полный архив данных (база, вложения, конфигурации) в формате .zip с временными метками, но требует остановки сервиса на время создания копии – до 30 минут для баз объёмом 50+ ГБ. API-метод работает асинхронно, не прерывая работу системы, однако ограничен размером бэкапа (до 10 ГБ для бесплатных тарифов) и не сохраняет пользовательские скрипты или кастомные плагины.
Сторонние решения целесообразны в трёх сценариях:
- Необходимость инкрементальных бэкапов – инструменты вроде Bacula или Duplicati позволяют сохранять только изменения с момента последней копии, сокращая время простоя до 2–5 минут.
- Автоматизация с гибким расписанием – Cron (Linux) или Task Scheduler (Windows) интегрируются с утилитами типа rsync для синхронизации данных на удалённые хранилища (AWS S3, NAS) без ручного вмешательства.
- Шифрование и компрессия – сторонние скрипты на Python или Bash могут паковать бэкапы с алгоритмами
gzip -9или7z -mhe=on, уменьшая объём на 40–60% и добавляя защиту паролем.
Ключевые ограничения встроенных инструментов: отсутствие поддержки версионирования (только последняя копия), невозможность выборочного восстановления отдельных проектов или задач, а также риск потери данных при сбое во время бэкапа. Для облачных инсталляций JetBrains накладывает дополнительные ограничения – частота создания бэкапов не может превышать 1 раза в 24 часа, а хранение копий старше 30 дней требует ручного вмешательства.
Рекомендации по выбору:
- Для локальных инсталляций с объёмом данных до 20 ГБ и редкими изменениями (1–2 раза в неделю) достаточно встроенного
youtrack.sh backupс запуском по Cron в ночное время. - При работе с критически важными данными или объёмами свыше 50 ГБ используйте сторонние решения с инкрементальными бэкапами и хранением копий в географически распределённых хранилищах (например, Backblaze B2 + Rclone).
- Для облачных версий комбинируйте API-бэкапы с экспортом критических данных через
/api/issues/exportв формате.csvили.xml– это позволит восстановить хотя бы часть информации при превышении лимитов.
Настройка автоматического резервного копирования через планировщик задач
Автоматизация резервного копирования YouTrack через планировщик задач Windows или cron в Linux исключает человеческий фактор и гарантирует регулярность создания бэкапов. Для Windows используйте Task Scheduler, для Linux – cron. Минимальная частота – ежедневное копирование, но для проектов с высокой активностью рекомендуется запуск каждые 6–12 часов.
Создайте скрипт для выполнения резервного копирования. В Windows используйте PowerShell или командный файл (.bat), в Linux – Bash. Пример команды для YouTrack Standalone (версия 2023.3+): youtrack.sh backup --output /path/to/backups/$(date +\%Y\%m\%d).zip. Убедитесь, что у пользователя, от имени которого запускается задача, есть права на запись в целевую директорию.
В Task Scheduler настройте триггер на запуск скрипта по расписанию. Выберите «Ежедневно» или «По расписанию» с интервалом в несколько часов. Укажите путь к скрипту в поле «Программа или сценарий» и добавьте аргументы, если требуется. В Linux добавьте строку в crontab -e: 0 */6 * * * /path/to/youtrack.sh backup --output /backups/$(date +\%F).zip для запуска каждые 6 часов.
Храните резервные копии на отдельном физическом или сетевом накопителе. Локальные диски подвержены риску одновременного выхода из строя с основным хранилищем. Для критически важных данных используйте облачные решения (AWS S3, Google Cloud Storage) с шифрованием на стороне клиента. Пример команды для загрузки в S3: aws s3 cp /backups/$(date +\%F).zip s3://your-bucket-name/.
Настройте ротацию бэкапов, чтобы избежать переполнения хранилища. В скрипте реализуйте удаление копий старше 30 дней: find /backups -name "*.zip" -mtime +30 -delete. Для Windows используйте PowerShell-команду Get-ChildItem -Path "C:\backups\*.zip" | Where-Object { $_.LastWriteTime -lt (Get-Date).AddDays(-30) } | Remove-Item.
Тестируйте восстановление из резервной копии не реже одного раза в квартал. Создайте тестовую среду YouTrack и восстановите данные из последнего бэкапа. Проверьте целостность базы данных, работоспособность поиска и корректность отображения пользовательских ролей. Документируйте процесс восстановления в инструкции для администраторов.
Создание полной резервной копии базы данных YouTrack вручную

Полная резервная копия базы данных YouTrack включает данные из внутренней H2 или внешней PostgreSQL/MySQL базы, а также конфигурационные файлы и вложения. Для H2 (дефолтная СУБД) резервное копирование выполняется через встроенную команду backup в консоли YouTrack. Запустите сервер с параметром --backup, указав путь к целевому каталогу: java -jar youtrack.jar backup /path/to/backup. Процесс создаст архив с расширением .zip, содержащий файлы youtrack.h2.db, youtrack.trace.db и метаданные.
Для PostgreSQL или MySQL используйте штатные инструменты СУБД. В PostgreSQL выполните команду pg_dump с указанием имени базы и пользователя: pg_dump -U youtrack_user -d youtrack_db -Fc -f youtrack_backup.dump. Параметр -Fc создаёт бинарный дамп для быстрого восстановления. В MySQL аналогично: mysqldump -u youtrack_user -p youtrack_db > youtrack_backup.sql. Убедитесь, что у пользователя есть права на чтение всех таблиц, включая системные (agile_board, issue, user).
Вложения и конфигурационные файлы хранятся в каталоге data (по умолчанию $YOUTRACK_HOME/data). Скопируйте его целиком, включая подкаталоги attachments, backups, config и search. Для автоматизации используйте rsync с исключением временных файлов: rsync -avz --exclude='*.tmp' /opt/youtrack/data/ /backup/youtrack_data/. Проверьте права доступа – резервная копия должна сохраняться под тем же пользователем, что и оригинальные файлы.
При работе с Docker-контейнером выполните резервное копирование изнутри контейнера. Подключитесь к работающему экземпляру: docker exec -it youtrack_container bash, затем создайте дамп базы (для PostgreSQL): pg_dump -U youtrack -d youtrack_db > /var/lib/youtrack/backup/youtrack.dump. Скопируйте данные на хост-машину: docker cp youtrack_container:/var/lib/youtrack/backup /host/backup/path. Для H2 используйте тот же метод с командой backup через java -jar.
Проверка целостности резервной копии критична. Для H2 распакуйте архив и убедитесь в наличии файлов youtrack.h2.db и youtrack.trace.db – их размер должен совпадать с оригиналом. В PostgreSQL/MySQL восстановите дамп в тестовую базу и выполните запросы: SELECT COUNT(*) FROM issue; и SELECT COUNT(*) FROM attachment;. Сравните результаты с продакшеном. Для вложений проверьте контрольные суммы: find /backup/youtrack_data/attachments -type f -exec md5sum {} + | sort > checksums.txt.
Храните резервные копии на отдельном носителе с шифрованием. Для долговременного хранения используйте облачные хранилища с поддержкой версионирования (AWS S3, Backblaze B2) или локальные NAS с RAID-массивом. Настройте ротацию копий: удаляйте дампы старше 30 дней, но сохраняйте ежемесячные копии за последние 6 месяцев. Исключите хранение резервных копий на том же физическом сервере, где развёрнут YouTrack – при аппаратном сбое данные будут утеряны.
Проверка целостности и восстановление данных из резервной копии

Перед восстановлением данных из резервной копии YouTrack выполните проверку её целостности. Используйте встроенную утилиту youtrack.sh с параметром verify-backup. Команда выглядит так: ./youtrack.sh verify-backup /path/to/backup.zip. Утилита проверит структуру архива, контрольные суммы файлов и соответствие схемы базы данных. Ошибки в логах (logs/verify-backup.log) указывают на повреждённые секции – такие копии восстанавливать нельзя.
Для ручной проверки содержимого резервной копии распакуйте архив и изучите ключевые файлы. В корне архива должны присутствовать: database.dump (дамп базы данных), attachments/ (вложения задач), config/ (настройки сервера). Размер database.dump не должен быть меньше 1 МБ для пустой установки – меньший размер сигнализирует о неполном дампе. Проверьте контрольные суммы с помощью sha256sum или md5sum, сравнив их с эталонными значениями, если они были сохранены при создании копии.
Восстановление данных выполняйте только на чистой установке YouTrack той же версии, что и исходная. Используйте команду: ./youtrack.sh restore /path/to/backup.zip --target-dir=/path/to/new-installation. Процесс занимает от 5 минут до нескольких часов в зависимости от объёма данных. Таблица ниже показывает ориентировочное время восстановления для разных объёмов:
| Объём данных | Время восстановления (SSD) | Время восстановления (HDD) |
|---|---|---|
| 1 ГБ | 5–10 мин | 15–25 мин |
| 10 ГБ | 40–60 мин | 90–120 мин |
| 50 ГБ | 3–5 ч | 6–8 ч |
После восстановления запустите сервер и выполните проверку работоспособности через веб-интерфейс. Откройте случайные задачи, проверьте доступность вложений и выполните поиск по ключевым словам. Если возникают ошибки доступа к данным, проверьте права на каталоги data/ и attachments/ – они должны принадлежать пользователю, под которым запущен YouTrack (обычно youtrack). Для диагностики используйте logs/youtrack.log, где фиксируются ошибки базы данных и отсутствующие файлы.
При частичном повреждении резервной копии восстановите только критически важные данные. Извлеките database.dump и выполните импорт через psql или pg_restore, если используется PostgreSQL: pg_restore -U youtrack -d youtrack -c /path/to/database.dump. Для вложений скопируйте содержимое attachments/ в соответствующий каталог установки. Убедитесь, что структура подкаталогов сохранена – каждый вложенный файл должен находиться в папке с именем, совпадающим с первыми двумя символами его хеша (например, attachments/ab/abc123...).
Для автоматизации проверки целостности добавьте скрипт в cron, который будет запускать verify-backup после каждого создания резервной копии. Пример cron-задания: 0 3 * * * /opt/youtrack/bin/youtrack.sh verify-backup /backups/youtrack-$(date +\%Y\%m\%d).zip >> /var/log/youtrack/verify.log 2>&1. Настройте уведомления о неудачных проверках через mail или интеграцию с мониторингом (например, Prometheus + Alertmanager). Храните последние 3 успешные копии – это позволит откатиться на рабочую версию при обнаружении скрытых повреждений.
