Bir SQLite db3 dosyasının geçerli / tutarlı olduğunu nasıl doğrulayabilirim


24

Çeşitli nedenlerden dolayı canlı çalışan bir üretim sisteminden (kötü sysadmin kötü sysadmin biliyorum) kopyaladığım bazı sqlite version3 db3 dosyalarım var. Tüm verilerin bu dosyalardan okunabileceğini doğrulayacak bazı sqlite komutları var mı (biraz zaman alırsa umrumda değil).

Tüm verileri boşa harcayan ve ardından yeni dosyalara yeniden içe aktaran bazı perl yazılımları kırmayı düşünüyordum. Bence sqlite bozuk veriyle karşılaşırsa bir istisna atar. Daha iyi bir yolu var mı?

Ben CentOS 5.3 ve sqlite-3.3.6-2

Yanıtlar:


34

Bence denemek istiyorsun:

pragma integrity_check;

Gönderen belgeler :

Bu pragma tüm veritabanının bütünlüğünü kontrol eder. İntegrity_check pragması sıra dışı kayıtları, eksik sayfaları, hatalı biçimlendirilmiş kayıtları, eksik indeks girişlerini ve UNIQUE ve NOT NULL sınırlama hatalarını arar. İntegrity_check pragma problemleri bulursa, problemleri tanımlayan dizeler (satır başına tek sütunlu çoklu satırlar gibi) döndürülür. [...]

Ayrıca, PRAGMA integrity_check'in kontrolünün çoğunu yapan ancak çok daha hızlı çalışan PRAGMA quick_check komutuna bakın .


3
Ayrıca bakınız sqlite.org/faq.html#q21
Teddy
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.