Резервна копија & катастрофа опоравак
Ово је трговачка/финансијска апп: база садржи трговачке налоге, копирање профили, проп-фирме изазови, аудит ланци, и Data Protection кључни прстен. Губље то губи новац и разрвава регулаторни/аудит обавезе. Резерву то, и докажи исправљање радови.
Циљеви
| Метрика | Циљ | Значење |
|---|---|---|
| RPO (макс податак лос) | ≤ 5 мин | Користи точка-у-време опоравак (континуумни WAL), не управо ноћне избачај. |
| RTO (макс доћи) | ≤ 1 х | Време исправљање + обниже-упутити апп на исправљена база. |
| Резервна задршка | ≥ 35 дана | Покриће касна-откривена корупција + месечни аудит прозора. |
| Исправљање вежба | месечно | Не-тестиран резервна није резервна. |
Шта мора резирво
- Postgres база — сви апп податак (једна логичка база
appdb). - Data Protection кључни прстен — траћена у база
(
PersistKeysToDbContext<DataContext>) и PFX-шифрована прекоApp:DataProtectionCertBase64. То вожења заједно у DB резервна, али заштита сертификат + љуења лозинка (App:DataProtectionCertPassword) су тајни чувана ван DB — резербовати им у ваш тајни менаџер. Без сертификат не могу дешифровати тајни (cTID лозинке, Open API токени, чвор тајни, AI кључ) после исправљање.
Управљана Postgres (препоручено)
Обе облак IaC путеве провизионирају управљана Postgres са грађена PITR — омогући + проверити задршка:
- Azure (
deploy/azure/main.bicep, Flexible Server): поставитиbackup.backupRetentionDays(≥ 35) иgeoRedundantBackupгде усклађеност захтева то. Исправљање са Point-в-време исправљање на нова сервер, тада освежи аппappdbвезни низ. - AWS (
deploy/aws, RDS Postgres, Terraform): поставитиbackup_retention_period(≥ 35) иbackup_window; задржи аутоматско резервне копије + опционално крос-област копија. Исправљање са RestoreDBInstanceToPointInTime, тада обниже-упутити апп.
Управљана PITR даје ≤ 5 мин RPO без апп промена — апп управо требава нова везни низ (и постојеће поново покушава извршавања стратегија, видити скалирање.md, толеријно преступ брљот).
Само-домаћин Postgres
- Континуумни архивирање (PITR): омогући WAL архивирање (
archive_mode=on,archive_commandдо објекта складиште) + периодичкаpg_basebackup. Исправљање = исправљање база резервна + преиграва WAL у циљ време. Ово је шта задовољава RPO циљ. - Логичка избачај (секундарна): ноћна
pg_dump -Fc appdbдо ван-кутије складиште за преносивост / делимична исправљање. Не довољна саме за RPO циљ. - Шифрирајте резервне копије на одморе; чувара ван база домаћина.
Исправљање вежба (трчи месечно)
- Исправљање најновија резервна (PITR на "сада − 10 мин") у скревање база, не производња.
- Упутити расхода апп инстанца (или psql сеансе) на то.
- Проверити схема:
dotnet ef migrations listпоказује не слободан миграције, апп почињу и становя/health-спреман. - Проверити аудит ланац је интактна и неразломљена преко
IAuditTrailVerifier(затворе-очигледанAuditChainInterceptorланац) — разломљена ланац после исправљање значи корупција или манипулација. - Потврди тајна дешифровање радови (нпр. Open API аутентификација дешифрира) — доказ Data Protection сертификат + лозинка буше исправљена исправно.
- Запис вежба резултат (време узети против RTO) и уништи скревање база.
Аутоматизирајте кораци 1–4 у CI где окружење дозволи (исправљање семена резервна у Testcontainer,
трчи dotnet ef migrations list + аудит-ланац проверити) тако разломљена-резервна регресија је хватена
пред требаю то.
После правог исправљање
- Исправљање DB (PITR на управо пред интернат).
- Осигурај Data Protection сертификат + лозинка су исти они користи пред интернат.
- Обниже-упутити апп
appdbвезни низ; котрљање репе. - Покуска трче миграције под водиљу лок (видити скалирање.md) — безбедна са N репе.
- Копирање/проп-фирме надзорници захтева њихови лизе и исправљање од берзе (cTrader је извор истине), тако отворена позиција исправљене аутоматски — ништа је поверење од затајена локална стање.
- Проверити аудит ланац + место-чек свежа трговачка данемас.