Архивиране
Създаване, планиране, изтегляне, качване, възстановяване и изтриване на архиви. Всеки архив е tar.gz с проверената за цялост база данни, ключа за паролите и тайния ключ на сесиите. На страницата е и картата „Поддръжка на базата данни“ (срокове за съхранение, нощна поддръжка, компактиране).
На тази страница
Резервни копия
Автоматични копия на базата данни се правят всяка нощ и се проверяват, преди да бъдат запазени.
Настройва се на страница Архивиране (в страничното меню): час (по
подразбиране 04:00), срок на съхранение (по подразбиране 14 дни) и папка (по
подразбиране /data/backups). Всяко копие е един файл
bgpvr-<дата>.tar.gz, който съдържа базата данни, ключа за криптиране на
паролите и тайния ключ на администраторските сесии — за възстановяване не е нужно нищо
друго. Старите файлове bgpvr-*.db.gz са отбелязани с DB ONLY.
Не се включват: записите, VOD файловете, логата на каналите, генерираният HLS и базата
на програмата (epg.db). За медията е нужно отделно архивиране на
файловата система; програмата се изтегля наново след възстановяване.
Възстановяването става от страница Архивиране. Не подменяйте файлове
на базата на ръка, освен ако конзолата е недостъпна; ако все пак се наложи, изтрийте и
файловете -wal и -shm, иначе SQLite ще приложи стар журнал
върху възстановената база — тиха повреда.
В конзолата: Архивиране
Създаване на снимка веднага
Архивиране → „Backup now“ в заглавната лента на картата Backups. Бутонът показва „Backing up…“, след което излиза съобщение с получения размер и таблицата се обновява. Файловете се именуват bgpvr-YYYYMMDD-HHMMSS.tar.gz; по-старите снимки bgpvr-*.db.gz носят значка DB ONLY. „Last backup“ и статусът му (ok или error: …) се показват под заглавието. Неуспешна проверка за цялост изтрива временния файл и записва грешката, вместо да запази повреден архив.
Задаване на график, срок на съхранение и целева папка
Архивиране → картата Settings: маркирайте „Automatic daily backup“ (включено по подразбиране), задайте „Daily time (HH:MM)“ (по подразбиране 04:00), „Keep (days)“ (по подразбиране 14) и „Backup folder (on server)“ (по подразбиране /data/backups) → Save. Планировчикът се събужда на всеки 60 секунди и стартира, щом часът е настъпил и днешният архив още не е правен; рестарт по средата на деня не води до второ изпълнение.
Сваляне на снимка извън машината
Архивиране → таблицата Backups → „Download“ на съответния ред. Файлът се предава към браузъра през вашата автентикирана администраторска сесия. Правете това преди всяко рисково обновяване — копие, което стои на самата машина, не струва нищо, ако машината откаже.
Изтриване на снимка
Архивиране → таблицата Backups → червеният бутон с кошче → потвърдете в диалога на браузъра, в който се вижда името на файла.
Възстановяване от архив
Първо изтеглете архива. Натиснете „Restore“ на реда и въведете RESTORE. Сървърът подготвя архива, пази текущата база като /data/backups/pre-restore-<ts>.db.gz и се рестартира: всички потоци прекъсват за около 20 секунди и попадате на страницата за вход.
Връщане на „умрял“ сървър
Нова инсталация → създайте администраторския профил → Архивиране → „Upload backup“ (.tar.gz или .db.gz, проверява се при качване) → „Restore“ на качения ред.
Базите да остават малки
Архивиране → „Поддръжка на базата данни“ показва „Основна база“ и „База на програмата (epg.db)“ с размер, журнал (WAL) и свободно място. „Съхранение (дни, 0 = пази завинаги)“ задава по едно правило за всеки вид данни: програма 7, приключили AI задачи 30, stream-health 30, тестове на ключове 90, история на гледане 90, събития от устройства на портала 30, събития за сигурност 30, телеметрия на промо кампании 400, история на гледане на записи и VOD 400, отметки за гледане на записи 365, решени тикети — пазят се; отметките и данните на изтрити записи и профили се почистват след един ден. „Нощна поддръжка“ ги изпълнява в тихия прозорец; „Компактирай файловете (VACUUM) при свободно място ≥“ освобождава място, когато нищо не се записва. Бутони: „Преглед“ / „Почисти сега“ / „Компактирай сега“ / „Запази“.
Внимание
- „Daily time“ се приема само ако е записан точно като две цифри, двоеточие, две цифри. Ако въведете 4:00 вместо 04:00, бекендът мълчаливо отхвърля стойността, а съобщението пак казва „Settings saved“ — старият час остава в сила.
- Живата база работи в режим WAL. Ако конзолата е недостъпна и се налага да подмените файла на базата на ръка, изтрийте и старите -wal/-shm, иначе SQLite ще приложи остарелия WAL върху възстановения файл — тиха повреда на данните.
- Изчистването по срок на съхранение работи по времето на промяна (mtime) на всичко в папката за архиви, което съвпада с bgpvr-*.tar.gz или bgpvr-*.db.gz — снимка, която сте запазили нарочно за по-късно, се изтрива, щом надхвърли „Keep (days)“.
- „Backup folder (on server)“ е път ВЪТРЕ в контейнера. Ако го насочите извън монтиран том, всички снимки изчезват при пресъздаване на контейнера.
- Архивът съдържа конфигурация, клиенти, пакети, канали и метаданни за таймерите плюс двата тайни ключа. Записите, VOD файловете, picons и базата на програмата (epg.db) не са в него — възстановяването връща назад базата, но не и медията, а програмата се изтегля наново.
- Стара снимка с DB ONLY не възстановява pw_key: след възстановяването ѝ абонатите не могат да влязат, освен ако ключовият файл на сървъра не е същият.
- Редът „Off-site copy“ показва статус само ако задача извън машината докладва към него; иначе пише „no report yet“.
- „Заключвания“ (Lock storms) брои грешките „database is locked“. Пет или повече за минута изпращат един ред в Telegram и сигнал в конзолата (после мълчи 10 минути).
- Всички крайни точки за архивиране и поддръжка изискват администратор, но елементът „Архивиране“ в навигацията не е скрит за служителските профили. Служител може да отвори страницата и просто вижда празна таблица с настройки по подразбиране.