feat(books-backup): cover bookva-* tenant (db/mongo/minio)

bookva tenant (bookva-db/mongo/es/minio) поднят 26.05 при cutover-prep, а
books-vds backup написан 25.05 — до bookva. Покрытие не расширили; gap висел
wiki-follow-up #2 ~2.5 недели. Тот же класс, что MSSQL: новый stateful, бэкап
отстал, повешен как заметка.

Добавлено в scripts/books-vds-backup-daily-kreknin/run.sh (deploy == repo,
бэкап .bak-pre-bookva):
- bookva-db: mariadb-dump (тот же BOOKS_DB_ROOT_PASSWORD, стек клонирован)
- bookva-mongo: mongodump --archive (no-auth)
- bookva-minio: raw rsync named volume bookva-minio-data (immutable objects)

Каждая команда протестирована изолированно ДО внесения в скрипт. Verified
зелёным прогоном: BOOKS-VDS backup OK 10m42s, артефакты на kreknin
(bookva-mariadb 257M, bookva-mongo 3.2M, bookva-minio 1.4G).

bookva-es отложен (path.repo не сконфигурирован, нужен ES restart через
Portainer) -> .tasks/bookva-es-snapshot-repo.md. Покрыт по факту: индексы
epz/products идентичны slovo ES, который снапшотится.

- .wiki/entities/books-vds.md: Backup-секция + follow-up #2 частично закрыт
- .wiki/concepts/backup-inventory-2026-06.md: bookva row -> done
- .tasks/bookva-es-snapshot-repo.md: backlog для ES-снапшота

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-06-12 11:01:05 +03:00
parent b332af66e4
commit aeb82a6a70
5 changed files with 49 additions and 8 deletions

View File

@@ -34,7 +34,7 @@ CMS-баз на [[../entities/vds-kzntsv]] **3 недели не имели offs
|---|---|---|---|
| 1 | **kreknin сам не бэкапится** — SPOF всей estate (1 том 7 ТБ, RAID не подтверждён; смерть `/volume1` = одновременная потеря offsite-копий ВСЕХ машин) | «задача, но на потом» | ⚪ заведена `[[../../.tasks/kreknin-self-backup]]` (#1 по риску) |
| 2 | **openwrt UCI** — единственный публичный ingress всех CMS, без копии | «можешь сделать» | ✅ **СДЕЛАНО** — см. ниже |
| 3 | **bookva-* на books-vds** (`bookva-db/mongo/es/minio`, 4.7 ГБ tenant-данных) не дампятся/не rsync'ятся | не обсуждалось | ⚠️ открыто (follow-up при активации bookva) |
| 3 | **bookva-* на books-vds** (`bookva-db/mongo/es/minio` tenant-данные) не дампятся/не rsync'ятся | «немедленно делать» | ✅ **СДЕЛАНО 2026-06-12** — db/mongo/minio в daily-backup (verified); bookva-es отложен (`[[../../.tasks/bookva-es-snapshot-repo]]`, покрыт slovo-снапшотом) |
| 4 | **nl-vds-3xui `x-ui.db`** — профили + Reality-ключи только на хосте | «не нужен» | ⏸ accepted (won't-do) |
| 5 | **windows-host stale script** — таргетит удалённые 08.06 ресурсы | «забыть, не актуально» | ⏸ accepted (ignore) |

View File

@@ -55,7 +55,7 @@ Single root partition, нет отдельной `/data`. Docker hub data под
Follow-ups:
1. **Каноничный фикс — в репо books**: legacy seller-перебирающие джобы стоит либо мигрировать в `tasks.json` со скоупом, либо вывести из эксплуатации (их функции, возможно, уже покрыты reconciler-gen). Риск mongo-only правки: если будущий релиз даст legacy-джобе реальный `schedule` в `tasks.json` без скоупа — reconciler пере-сеет её (data без idSeller) → доступ к Bookva вернётся.
2. wiki-drift — `bookva-*` stack (bookva-api/db/es/minio/mongo/scheduler/task-runner/web) + books-task-runner/scheduler не в stack-inventory ниже; нужен re-inventory.
2. ~~wiki-drift — `bookva-*` stack не в stack-inventory~~ **частично закрыто 2026-06-12**: bookva-db/mongo/es/minio засечены и (кроме es) добавлены в backup (см. § Backup). Полный stack-inventory bookva-* (api/web/scheduler/task-runner/ntfy) — всё ещё TODO.
## Стек (2026-05-25 inventory)
@@ -106,13 +106,16 @@ Recreate ломает access всему остальному (traefik) или с
## Backup
Daily 06:00 MSK → kreknin. См. [[../sources/books-vds-backup-daily-kreknin-2026-05-25]]. Pipeline:
- DB dumps: books-db (mariadb), mongo (shared), books-job-scheduler-mongo
- ES snapshot via REST API (file repo `kreknin`)
- rsync bind paths + dumps + `/opt/books/` + `/etc/{ssh,hosts,cron.d}` + `/root/.ssh``vitya@kreknin:/volume1/NetBackup/books-vds/<date>/`
- DB dumps (slovo): books-db (mariadb), mongo (shared), books-job-scheduler-mongo
- DB dumps (bookva, added 2026-06-12): bookva-db (mariadb, тот же root pw что books-db), bookva-mongo (no-auth)
- ES snapshot via REST API (file repo `kreknin`) — **только slovo ES**
- rsync bind paths + dumps + `bookva-minio-data` (named volume, raw) + `/opt/books/` + `/etc/{ssh,hosts,cron.d}` + `/root/.ssh``vitya@kreknin:/volume1/NetBackup/books-vds/<date>/`
- ntfy `BOOKS-VDS backup OK <date>` + email
- Retention 7 daily snapshots
Live since 2026-05-25.
Live since 2026-05-25. **bookva tenant добавлен 2026-06-12** (db/mongo/minio verified на kreknin: bookva-mariadb 257M, bookva-mongo 3.2M, bookva-minio 1.4G).
**bookva-es НЕ снапшотится** (отдельный ES-контейнер, `path.repo` не сконфигурирован → REST-snapshot невозможен без recreate). Покрыт по факту: индексы `epz`(820604)/`products`(105922) **идентичны slovo ES**, который снапшотится. Полноценный bookva-es snapshot — `.tasks/bookva-es-snapshot-repo.md` (нужен Portainer stack edit + ES restart). Deploy script: `/opt/stacks/backup/run.sh` (== repo `scripts/books-vds-backup-daily-kreknin/run.sh`).
## DNS