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ız | Daha hızlı | Daha yavaş |
| Satırların ulaştığını teyit eder | Evet | Evet |
| İçeriğin eşleştiğini teyit eder | Hayır | Evet |
| Yarıda kalan işi sürdürmek için önerilir | Evet |
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.
