मैं कैसे सत्यापित कर सकता हूं कि SQLite db3 फ़ाइल वैध / सुसंगत है


24

मेरे पास कुछ sqlite version3 db3 फाइलें हैं, जिन्हें मैंने विभिन्न कारणों से लाइव रनिंग प्रोडक्शन सिस्टम (मुझे बुरा sysadmin bad sysadmin) के रूप में कॉपी किया है। क्या कुछ साइक्लाईट कमांड है जो मैं चला सकता हूं जो यह सत्यापित करेगा कि सभी डेटा को इन फाइलों से बाहर पढ़ा जा सकता है (अगर कुछ समय लगता है तो मुझे कोई आपत्ति नहीं है)।

मैं कुछ पर्चों को हैक करने पर विचार कर रहा था जो सभी डेटा को डंप कर देता है और फिर इसे नई फाइलों में फिर से आयात करता है। मुझे लगता है कि अगर यह भ्रष्ट डेटा का सामना करता है तो साइक्लाइट एक अपवाद को फेंक देगा। क्या कोई बेहतर तरीका है?

मैं CentOS 5.3 और sqlite-3.3.6-2 हूं

जवाबों:


34

मुझे लगता है कि आप कोशिश करना चाहते हैं:

pragma integrity_check;

से प्रलेखन :

यह प्रचार पूरे डेटाबेस की अखंडता जाँच करता है। अखंडता_चेक प्राग्मा आउट-ऑफ-ऑर्डर रिकॉर्ड, लापता पृष्ठ, विकृत रिकॉर्ड, अनुक्रमणिका प्रविष्टियाँ और UNIQUE और नॉट नाल बाधा त्रुटियों के लिए दिखता है। यदि अखंडता_चेक प्राग्मा समस्याओं का पता लगाता है, तो स्ट्रिंग्स को लौटाया जाता है (एक पंक्ति में एक एकल स्तंभ के साथ कई पंक्तियों के रूप में) जो समस्याओं का वर्णन करते हैं। [...]

PRAGMA quick_check कमांड भी देखें, जो PRAGMA अखंडता की जाँच अधिक से अधिक करता है, लेकिन बहुत तेज़ी से चलता है।


3
यह भी देखें sqlite.org/faq.html#q21
टेडी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.