İçeriğe geç
NarDBv0.2.0-dev

Yedekleme

Şifreli, sıkıştırılmış .ndbz yedekleri almak ve başka bir makinede geri yüklemek.

Bir yedek tek bir .ndbz dosyasıdır: veritabanı klasörünün sıkıştırılmış (tar + gzip) ve yedek parolasıyla şifrelenmiş hali. Dosya adları da şifrelidir; yedeği bulan biri içinde hangi şemaların olduğunu göremez.

Terminal
>> backup_database -f ./yedekler/magaza-2026-10-30.ndbz
>> restore_database -f ./yedekler/magaza-2026-10-30.ndbz -t ./geri/magaza.ndbc

Menüden: Database → Backup... ve Database → Restore.... Go'da:

Go
err := db.BackupFile("magaza.ndbz", yedekParolasi)
err = nardb.Restore("magaza.ndbz", "geri/magaza.ndbc", yedekParolasi)

Nasıl çalışır#

  • Yedek alınırken yazmalar kısa süre bekler: yazma günlüğü dosyalara aktarılır ve dosyalar tutarlı bir an olarak kopyalanır. Okumalar ve yedekten sonraki yazmalar normal devam eder.
  • Yedek parolası en az 12 karakterdir. Şifreleme anahtarı ondan Argon2id ile türetilir; algoritma XChaCha20-Poly1305'tir.
  • Akış 1 MiB'lık parçalar halinde şifrelenir. Her parça yedeğin başlığına, sırasına ve "son parça" işaretine bağlıdır. Değiştirilen, silinen, yeri değiştirilen ya da kesilen bir yedek geri yüklenmez.
  • Yanlış parola, parçalar açılmadan önce yakalanır ve "wrong passphrase" olarak bildirilir. Bozuk bir yedek ise "veri bozuk" olarak bildirilir; ikisi birbirine karışmaz.

Başka bir makineye taşımak#

Anahtarı sistem anahtar deposunda duran şifreli bir veritabanının yedeğinde, veri anahtarı yedeğin içine yedek parolasıyla yeniden sarılır. Böylece yedek, anahtar deposu olmayan başka bir makinede yalnızca yedek parolasıyla açılır. Geri yüklenen veritabanı parolalıdır; anahtarı o makinenin anahtar deposuna almak için:

Terminal
>> encrypt_database -e keychain

Şifresiz bir veritabanının yedeği de şifrelidir; ama geri yüklenen veritabanı, kaynağı gibi şifresizdir.

Sınırlar#

  • Geri yükleme her zaman yeni bir yola yapılır; var olan bir veritabanının üzerine yazılmaz.
  • Şifreli sayfalar sıkışmaz. Şifreli bir veritabanının yedeği, kabaca veritabanı kadar yer kaplar.
  • Yedek parolası unutulursa yedek açılamaz.
  • Artımlı (yalnızca değişenleri alan) yedek henüz yok; her yedek tamdır.