2011-10-15 8 views
32

मैं अपने आवेदन के साथ कुछ अजीब व्यवहार और कुछ परीक्षण है कि डेटाबेस बंद, इसे हटा दें, और एक परीक्षण स्थिरता के साथ बदलने के चलाने के बाद अपने डेटाबेस फ़ाइल की स्थिति देख रहा हूँ। जब मैं अपने डीबगिंग पीसी पर किसी टूल के साथ डेटाबेस फ़ाइल की जांच करता हूं, तो यह उस मेल से मेल नहीं खाता है जो एप्लिकेशन स्वयं रिपोर्टिंग प्रतीत होता है। यह संभव है कि यह अजीब व्यवहार this bug से संबंधित है।एसक्लाइट डेटाबेस में .db-shm और .db-wal एक्सटेंशन क्या हैं?

मैंने देखा डेटाबेस के रूप में एक ही आधार नाम के साथ दो फ़ाइलों देखते हैं कि (सामान्य .db विस्तार के साथ।) फ़ाइल एक्सटेंशन .db-shm और .db-wal हैं, और प्रत्येक .db फ़ाइल का टाइमस्टैंप से अधिक नया।

मुझे लगता है कि इन अस्थायी फ़ाइलों के कुछ प्रकार हैं। हालांकि, मैं सोच रहा हूं कि आवेदन समाप्त हो गया है, क्या उन्हें हटाया नहीं जाना चाहिए? सबसे महत्वपूर्ण बात यह है कि, मुझे लगता है कि ऑपरेटिंग सिस्टम द्वारा एप्लिकेशन को समाप्त करने से पहले .db फ़ाइल के अंदर जो भी डेटा संग्रहीत किया जाता है, उसे अपडेट किया जाता है। क्या ये सही है?

+0

@ satur9nine जो वास्तव में अजीब है .. मुझे किसी और के कोड को अपडेट करने के लिए कहा गया था .. और परीक्षण के दौरान मुझे एहसास हुआ कि कोर डेटा का उपयोग आईओएस 6.x के साथ ठीक काम करता है .. लेकिन फिर जब मैंने आईओएस 7 पर इसका परीक्षण किया .x .. इसके परिणामस्वरूप उपरोक्त '.db-shm' और' .db-wal' .. क्या यह किसी और के साथ हुआ? – abbood

+2

आईओएस 7 में इन सभी लेनदेन शामिल हैं। डीबी फाइल मेरे लिए एक खाली डेटाबेस है। मुझे डीबी की "असली" सामग्री देखने के लिए सभी तीन फाइलों को पकड़ने की जरूरत है। –

उत्तर

21

आप सही हैं, इन SQLite द्वारा बनाई गई अस्थायी फ़ाइलें हैं। यदि आप मैन्युअल रूप से मुख्य डीबी को हटा रहे हैं तो आपको शायद इन्हें भी हटा देना चाहिए। जो मैं वाल इकट्ठा कर सकता हूं उससे रोलबैक जर्नल के लिए एक प्रतिस्थापन है जो लेनदेन विफल होने पर SQLite को रोलबैक परिवर्तनों को सक्षम बनाता है। SQLite उन्हें कैसे उपयोग करता है और क्यों उन्हें इतने लंबे समय तक रखा जाता है, SQLite के लेखकों तक है लेकिन सामान्य SQLite में बहुत रॉक ठोस लगता है इसलिए मैं उनके बारे में बहुत ज्यादा चिंता नहीं करता। अधिक जानकारी के लिए यहाँ देखें:

http://www.sqlite.org/fileformat2.html#walindexformat

इन फ़ाइलों SQLite 3.7 की एक नई विशेषता है। मुझे यकीन नहीं है कि उनका अस्तित्व आपके द्वारा बताए गए बग से संबंधित है लेकिन बग रिपोर्ट किसी भी तरह से कार्य-आसपास सुझाती है।

+2

लेकिन .shm फ़ाइल के बारे में क्या। क्या आप उस पर कुछ प्रकाश डाल सकते हैं? –

+0

लिंक के अनुसार: एमएमएपीड फ़ाइल डेटाबेस के समान निर्देशिका में है और डेटाबेस के समान नाम "-shm" प्रत्यय के साथ है। – satur9nine

संबंधित मुद्दे