Skip to content

Бэкап и восстановление

У central один носитель состояния — PostgreSQL. Значит, весь бэкап инсталляции — это регулярный дамп одной базы; ни state-каталоги стримеров, ни архив в него не входят и не нужны для восстановления управляющего контура.

Снимайте дамп

pg_dump -U catena catena > catena-$(date +%F).sql

Учётные данные — в DATABASE_URL из /etc/catena/secrets.env. Ставьте на таймер и увозите копии с машины: дамп маленький (конфигурация и учёт, не медиа), снимать его можно хоть ежечасно без оглядки на нагрузку.

Сам файл /etc/catena/secrets.env сохраните один раз при установке: в дампе его нет, а восстановленной инсталляции понадобятся те же пароли.

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

Порядок проверен целиком — от дампа до ожившего кластера:

  1. Остановите central: systemctl stop catena.
  2. Пересоздайте базу и залейте дамп:
psql -U catena -d postgres -c 'DROP DATABASE catena WITH (FORCE);' -c 'CREATE DATABASE catena OWNER catena;'
psql -U catena -d catena < catena-2026-07-21.sql
  1. Запустите central: systemctl start catena.

Дальше ничего делать не нужно: каналы, реестр и настройки вернулись вместе с дампом, а стримеры — они всё это время вещали сами по себе — переподключаются автоматически, в пределах минутной паузы ретрая. Если дамп оказался старше того, что стримеры успели применить, они получат от central явный сигнал и заберут его состояние как истину — откат версий кластер не рвёт.

Полное разрушение central — без остановки вещания

Это главная гарантия архитектуры Catena: гибель central-машины целиком — диск, база, всё — не прерывает эфир. Стримеры вещают автономно, зрители продолжают смотреть, и пока вы строите новый central, никто из них этого не замечает.

  1. Поставьте Catena на новую машину (установка), не заходя в консоль.
  2. Верните сохранённый /etc/catena/secrets.env (или впишите в новый прежний DATABASE_URL, если база внешняя и уцелела).
  3. Восстановите базу из дампа, как выше, и запустите сервис.

Стримеры находят нового central по прежнему адресу и переподключаются — их ключи приехали в дампе вместе с реестром. Управляющий контур погиб и отстроен заново, а вещание этого не заметило: эфир не прерывался ни на секунду.

Если дампа нет — управляющий контур строится заново: пустой central, каналы заводятся с нуля, а каждый осиротевший стример переподцепляется сбросом state-каталога и новым join-токеном. Эфир на стримерах идёт и в этом сценарии — но конфигурацию каналов придётся восстанавливать руками. Один регулярный pg_dump избавляет от проблем с перебалансировкой всего кластера.

Что бэкапить не нужно

  • State-каталоги стримеров — это идентичность конкретной машины; при её гибели машину просто присоединяют заново.
  • Архив DVR — медиаданные на дисках стримеров; их сохранность — вопрос дисков и репликации, не дампа базы.
  • Хранилище метрик — в памяти, история накапливается заново.