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:
@@ -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) |
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user