Пређи на главни садржај

Резервна копија & катастрофа опоравак

Ово је трговачка/финансијска апп: база садржи трговачке налоге, копирање профили, проп-фирме изазови, аудит ланци, и Data Protection кључни прстен. Губље то губи новац и разрвава регулаторни/аудит обавезе. Резерву то, и докажи исправљање радови.

Циљеви​

МетрикаЦиљЗначење
RPO (макс податак лос)≤ 5 минКористи точка-у-време опоравак (континуумни WAL), не управо ноћне избачај.
RTO (макс доћи)≤ 1 хВреме исправљање + обниже-упутити апп на исправљена база.
Резервна задршка≥ 35 данаПокриће касна-откривена корупција + месечни аудит прозора.
Исправљање вежбамесечноНе-тестиран резервна није резервна.

Шта мора резирво​

  1. Postgres база — сви апп податак (једна логичка база appdb).
  2. 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 циљ.
  • Шифрирајте резервне копије на одморе; чувара ван база домаћина.

Исправљање вежба (трчи месечно)​

  1. Исправљање најновија резервна (PITR на "сада − 10 мин") у скревање база, не производња.
  2. Упутити расхода апп инстанца (или psql сеансе) на то.
  3. Проверити схема: dotnet ef migrations list показује не слободан миграције, апп почињу и становя /health-спреман.
  4. Проверити аудит ланац је интактна и неразломљена преко IAuditTrailVerifier (затворе-очигледан AuditChainInterceptor ланац) — разломљена ланац после исправљање значи корупција или манипулација.
  5. Потврди тајна дешифровање радови (нпр. Open API аутентификација дешифрира) — доказ Data Protection сертификат + лозинка буше исправљена исправно.
  6. Запис вежба резултат (време узети против RTO) и уништи скревање база.

Аутоматизирајте кораци 1–4 у CI где окружење дозволи (исправљање семена резервна у Testcontainer, трчи dotnet ef migrations list + аудит-ланац проверити) тако разломљена-резервна регресија је хватена пред требаю то.

После правог исправљање​

  1. Исправљање DB (PITR на управо пред интернат).
  2. Осигурај Data Protection сертификат + лозинка су исти они користи пред интернат.
  3. Обниже-упутити апп appdb везни низ; котрљање репе.
  4. Покуска трче миграције под водиљу лок (видити скалирање.md) — безбедна са N репе.
  5. Копирање/проп-фирме надзорници захтева њихови лизе и исправљање од берзе (cTrader је извор истине), тако отворена позиција исправљене аутоматски — ништа је поверење од затајена локална стање.
  6. Проверити аудит ланац + место-чек свежа трговачка данемас.