İçeriğe geç

Backup, restore ve felaket kurtarma

Geliştirme · 0.0.0-dev

Yayın

Doküman
0.0.0-dev
Uygulama
0.0.0

Bu sayfa

Uygulama
0.0.0
Şema
munderecat-backup-recovery-v1
Veri
tr-latn-1

Bu runbook, kabul edilmiş tr-latn-1 veritabanının PostgreSQL custom-format logical snapshot’ını alır ve ikinci bir fresh PostgreSQL 17 hedefinde doğrular. Backup schema ve data içeren tam archive’dır; corpus package veya deterministik build çıktısı değildir. Her capture ayrı artifact kimliğine, byte sayısına ve SHA-256 değerine sahiptir.

Backup allowlist’i public, migration_control ve provenance_control şemalarıdır. Pinned Supabase image’ındaki auth, storage ve diğer platform şemaları dump’a girmez. Current v1 drill immutable Latin core’u, migration control state’ini ve shared provenance yapısını taşır. Osmanlıca, lexical, heading, haşiye, tekrar ve alignment release’leri bağımsız artifact/release kapılarını tamamladıklarında allowlist ve restore witness’ı birlikte genişletilmelidir.

Derived projection ve cache’ler backup otoritesi değildir. Accepted source root’larından yeniden üretilebilen bu katmanlar restore sonrasında ayrı builder kapısıyla hazırlanır.

İşlem Veritabanına etkisi
Public rebuild Release artifact’larını fresh DB’ye import eder; F10-007 yoludur
Logical restore Exact retained backup satır ve nesnelerini yeni recovery hedefinde kurar
Application rollback Uyumlu eski uygulama deployment’ını açar; migration history’yi değiştirmez
Forward fix Yeni reviewed migration/release ekler; uygulanmış geçmişi silmez
Disaster activation Restore hedefini yeni recovery epoch ve dış authorization ile trafiğe alır

Restore, kabul edilmiş satırların anlamını düzeltme yolu değildir. Böyle bir değişiklik successor release, curation işlemi veya forward fix gerektirir.

Önce hızlı manifest ve bozulma testini çalıştırın:

Terminal window
make backup-restore-check

Gerçek küçük PostgreSQL lifecycle testi:

Terminal window
MUNDERECAT_RECOVERY_OUTPUT=/external/path/sample-recovery \
make backup-restore-sample-check

Release öncesi tek full drill:

Terminal window
MUNDERECAT_RELEASE_ROOT=/external/path/tr-latn-1 \
MUNDERECAT_RECOVERY_OUTPUT=/external/path/tr-latn-1-recovery \
make backup-restore-full-drill

Output dizini önceden var olmamalı ve repository dışında bulunmalıdır. Başarılı dizinde custom-format dump, backup-manifest.json ve recovery-report.json yer alır. Manifest source commit/release/core kimliğini, explicit schema allowlist’ini, kabul edilmiş release ve materialization root’larını, PostgreSQL tool sürümlerini, backup byte/hash değerini ve source reconstruction witness’larını bağlar. Report ikinci DB’deki schema/data/role fingerprint’ini, core fingerprint’i ve sentence/paragraph/chapter sonuçlarını gösterir.

  1. Backup basename, byte count ve SHA-256 manifest’e karşı doğrulanır. Fark varsa target oluşturulmaz veya restore başlamaz.
  2. Digest-pinned PostgreSQL 17 image’ıyla fresh, networkless ve host portsuz hedef başlatılır.
  3. Accepted migrations exact schema, owner, ACL ve sealed role state’ini kurar.
  4. pg_restore --data-only restore SQL’ini üretir. USER trigger disable, FK drop, truncate, data yükleme, FK revalidation ve trigger state restoration adımlarının tamamı tek psql transaction’ında çalışır; herhangi bir hata bütün data değişikliğini geri alır. Geçici owner üyelikleri transaction sonrasında kaldırılır.
  5. Üç allowlisted schema’nın deterministic schema ve data dump fingerprint’leri, parola içermeyen rol/membership fingerprint’i, core release/fingerprint, routine catalog ve bütün exact reconstruction witness’ları source ile karşılaştırılır.
  6. Hedef yalnız doğrulama için kullanılır ve drill sonunda kaldırılır.

Herhangi bir adım başarısızsa output publish edilmez. Partial staging, source ve target container’ları cleanup kapsamındadır.

Bu logical snapshot’ın RPO sınırı capture anıdır. Capture sonrasındaki accepted curation veya operational olaylar backup içinde değildir; gerçek incident’ta lost tail açıkça listelenmelidir. Bu runbook WAL arşivleme veya PITR iddiasında bulunmaz.

Drill report’undaki stage süreleri ölçülen restore süresidir; production RTO garantisi değildir. Kaynak büyüklüğü, artifact transferi ve altyapı provisioning süresi ayrıca bütçelenmelidir.

Doğrulanmış clone kendiliğinden production olmaz. ADR-012 uyarınca operatör yeni target identity/recovery epoch tahsis eder; backup ve manifest roots, restore authorization, restore edilen roots, mevcut external head ve lost-tail envanteri append-only dış ledgera yazılmadan trafik aktive edilmez. İmzalı retention ve incident drill’leri F10-019/F10-020 kapılarıdır.