Bagaimana saya dapat memverifikasi bahwa file SQLite db3 valid / konsisten

24

Saya punya beberapa file sqlite version3 db3 yang saya salin dari sistem produksi yang berjalan langsung (saya tahu sysadmin buruk sysadmin buruk) karena berbagai alasan. Apakah ada beberapa perintah sqlite yang dapat saya jalankan yang akan memverifikasi bahwa semua data dapat dibaca dari file-file ini (Saya tidak keberatan jika perlu beberapa saat).

Saya sedang mempertimbangkan meretas beberapa perl yang membuang semua data dan kemudian mengimpornya kembali ke file baru. Saya pikir sqlite akan melempar pengecualian jika menemukan data yang korup. Apakah ada cara yang lebih baik?

Saya CentOS 5.3 dan sqlite-3.3.6-2

hellomynameisjoel
sumber

Jawaban:

34

Saya pikir Anda ingin mencoba:

pragma integrity_check;

Dari dokumentasi :

Pragma ini melakukan pemeriksaan integritas seluruh database. Pragma integrity_check mencari catatan yang tidak berurutan, halaman yang hilang, catatan yang cacat, entri indeks yang hilang, dan kesalahan batasan UNIK dan BUKAN NULL. Jika pragma integrity_check menemukan masalah, string dikembalikan (sebagai beberapa baris dengan satu kolom per baris) yang menggambarkan masalah. [...]

Lihat juga perintah quick_check PRAGMA yang melakukan sebagian besar pemeriksaan integritas_check PRAGMA tetapi berjalan lebih cepat.

hernan43
sumber
3
Lihat juga sqlite.org/faq.html#q21
Teddy