Doküman menüsü

Sürüm 1.8.0-community

Doğrulama

GoArchive, kaynaktan bir şey silmeden önce arşivlenen verinin eksiksiz ulaştığını nasıl teyit eder.

GoArchive kaynaktan bir şey silmeden önce, hedefe ulaşanın okunanla eşleştiğini teyit eder. Denetim geçmezse hiçbir şey silinmez.

Nerede gerçekleşir

Doğrulama, her batch içinde kopyalama ile silme arasında yer alır:

seç → keşfet → kopyala → DOĞRULA → sil

Silme yalnızca doğrulama başarılı olursa çalışır. Arşivleme iş akışını üretim verisi üzerinde güvenle çalıştırılabilir kılan da bu sıradır.

İki yöntem

verification:
  method: sha256    # veya: count

Satır sayısı

Hedefe yazılan satırları sayar ve kaynaktan okunanlarla karşılaştırır. Hızlıdır ve her satırın ulaştığını teyit eder.

SHA256

Kopyalanan satırların içeriği üzerinden her iki tarafta bir sağlama hesaplar ve karşılaştırır. Saymaktan yavaştır; buna karşılık yalnızca satırların ulaştığını değil, içeriklerinin de birebir aynı olduğunu teyit eder.

Yöntem seçimi

Satır sayısıSHA256
HızDaha hızlıDaha yavaş
Satırların ulaştığını teyit ederEvetEvet
İçeriğin eşleştiğini teyit ederHayırEvet
Yarıda kalan işi sürdürmek için önerilirEvet

sha256 daha iyi bir varsayılandır. Hem daha güçlü bir güvence verir hem de yarıda kalan bir işi sürdürmeyi kolaylaştırır: yeniden işlenen bir batch, hedefte hâlihazırda bulunanla karşılaştırılarak teyit edilebilir.

Verim, içerik düzeyindeki güvenceden daha önemliyse ve veri ulaşmanın doğruluğu ima ettiği kadar yalınsa count seçin.

İş bazında yöntem

Farklı işler farklı doğrulanabilir:

verification:
  method: count

jobs:
  archive_old_orders:
    root_table: orders
    primary_key: id
    where: "created_at < DATE_SUB(NOW(), INTERVAL 2 YEAR)"
    verification:
      method: sha256

Burada genel varsayılan count, ancak siparişler işi sha256 kullanır.

Doğrulamayı atlamak

Doğrulama, yapılandırmadan veya tek bir çalışma için kapatılabilir:

verification:
  skip_verification: true
goarchive archive -c archiver.yaml --job archive_old_orders --skip-verify

Doğrulama olmadan silme adımı, kopyalamanın başarılı olduğu varsayımıyla ilerler. Veri silen her iş akışında doğrulamayı açık bırakın.

Çalışmadan önceki denetimler

Doğrulama veriyi teyit eder. Ayrı bir denetim kümesi ise ortamı teyit eder ve veri taşınmadan önce çalışır: her iki tarafta beklenen tabloların bulunduğu, yapılarının uyumlu olduğu, hesabın gereken yetkilere sahip olduğu ve tanımlanan ilişkilerin veritabanıyla örtüştüğü.

İstediğiniz zaman çalıştırın:

goarchive validate -c archiver.yaml

Aynı denetimler archive, copy-only ve purge komutlarının başında kendiliğinden çalışır.