İşletme
#Yedekleme ve geri yükleme
Denetim kaydı silinemez; ürünün temel özelliği budur. Ama sunucu kaybolursa kayıt da kaybolur ve o noktada elinizde kanıt kalmaz. Yedekleme, silinmezliğin tek boşluğudur.
Bu yordam koddan ve kurulum tanımından çıkarılmıştır. Kendi kurulumunuzda bir kez baştan sona prova etmeden yedeğiniz olduğunu varsaymayın. Denenmemiş yedek, yedek değildir.
#Ne yedeklenir
| Ne | Docker birimi | Kaybedilirse |
|---|---|---|
| Denetim kaydı ve yapılandırma | nev-gateway_mongo-data | Geri getirilemez. Kanıtınız buydu |
| İmza anahtarı çifti | nev-gateway_checkpoint-keys | Özel anahtar giderse yeni checkpoint imzalanamaz. Açık anahtar giderse geçmiş checkpoint'ler doğrulanamaz |
| Parmak izi ve kasa anahtarları | nev-gateway_gateway-keys | Parmak izleri doğrulanamaz olur; kasadaki sağlayıcı anahtarları açılamaz |
| Yazılmayı bekleyen kayıtlar | nev-gateway_audit-spool | Veritabanı erişilemezken diske yazılmış, henüz aktarılmamış kayıtlar |
| Sırlar | deploy/.env (sunucuda, birim değil) | Parolalar ve sağlayıcı anahtarları |
Yedeklenmesi gerekmeyen: nev-gateway_redis-data. Redis yalnız zincir ucunu ve sayaçları tutar; zincir ucu kaybolursa kayıttan yeniden kurulur. Bütçe sayaçları sıfırdan başlar.
#Yedek alma
Kısa bir duruş gerektirir; imaj içindeki araçlara bağlı olmadığı için her kurulumda çalışır.
cd deploy
docker compose stop gateway worker
docker compose stop mongo
TS=$(date -u +%Y%m%dT%H%M%SZ)
mkdir -p "$HOME/nev-yedek/$TS"
for v in mongo-data checkpoint-keys gateway-keys audit-spool; do
docker run --rm \
-v "nev-gateway_$v:/kaynak:ro" \
-v "$HOME/nev-yedek/$TS:/hedef" \
alpine tar czf "/hedef/$v.tar.gz" -C /kaynak .
done
cp .env "$HOME/nev-yedek/$TS/env.backup" # sırlar; ayrı ve şifreli saklayın
docker compose up -d
#Geri yükleme
cd deploy
docker compose down
for v in mongo-data checkpoint-keys gateway-keys audit-spool; do
docker volume rm "nev-gateway_$v"; docker volume create "nev-gateway_$v"
done
TS=<geri-yüklenecek-yedeğin-damgası>
for v in mongo-data checkpoint-keys gateway-keys audit-spool; do
docker run --rm \
-v "nev-gateway_$v:/hedef" \
-v "$HOME/nev-yedek/$TS:/kaynak:ro" \
alpine tar xzf "/kaynak/$v.tar.gz" -C /hedef
done
cp "$HOME/nev-yedek/$TS/env.backup" .env
docker compose up -d --wait
mongo-provision her up komutunda çalışır ve geri yüklenen veritabanını da bu sürümün beklediği şekle getirir.
#Doğrulama — asıl adım
Geri yükleme "servisler ayağa kalktı" ile bitmez. Kaydın bozulmadan döndüğünü göstermeniz gerekir: kayıtları dışa aktarın ve nev-verify çalıştırın. DOĞRULANDI görmüyorsanız geri yükleme başarısızdır; servisler ayakta olsa bile. Ayrıntı: Bağımsız doğrulama.
#Prova
Yılda bir kez, üretim dışı bir sunucuda: yedeği alın, birimleri gerçekten silin, geri yükleyin, nev-verify ile doğrulayın. Prova edilmemiş bir geri yükleme yordamı, felaket anında ilk kez denenen bir yordamdır.