2008-09-23 23 views
32

हम सीएमएस-आईएसएच एप्लिकेशन के लिए कॉचडडीबी देख रहे हैं। हमारे उत्पादन डेटाबेस का बैक अप लेने के आसपास कुछ सामान्य पैटर्न, सर्वोत्तम प्रथाओं और वर्कफ़्लो सलाह क्या हैं?कॉच डीबी बैकअप और डेटाबेस क्लोनिंग

मैं विशेष रूप से विकास और परीक्षण में उपयोग के लिए डेटाबेस क्लोन करने की प्रक्रिया में रूचि रखता हूं।

क्या लाइव डिस्किंग इंस्टेंस के तहत डिस्क पर फ़ाइलों को कॉपी करने के लिए पर्याप्त है? क्या आप दो लाइव चलने वाले उदाहरणों के बीच डेटाबेस डेटा क्लोन कर सकते हैं?

आपके द्वारा उपयोग की जाने वाली तकनीकों की सलाह और विवरण की सराहना की जाएगी।

उत्तर

30

कॉच डीबी प्रतिकृति का समर्थन करता है, इसलिए वहां से कोचडीबी के दूसरे उदाहरण और वहां से बैकअप दोहराएं, जहां आप परिवर्तन लिखते हैं, परेशानियों से परहेज करें।

http://wiki.apache.org/couchdb/FrequentlyAskedQuestions#how_replication

तुम सचमुच यह कह रही है, जहां के लिए दोहराने के लिए अपने CouchDB उदाहरण के लिए एक पोस्ट अनुरोध भेजने के लिए, और यह काम करता है (टीएम)

संपादित करें: तुम बस चल डेटाबेस के नीचे से फ़ाइलों को सी.पी. कर सकते हैं जब तक आप I/O हिट स्वीकार कर सकते हैं।

37

इस बात से अवगत होना एक और बात यह है कि आप फ़ाइलों को लाइव डेटाबेस के अंतर्गत से कॉपी कर सकते हैं। यह देखते हुए कि आपके पास संभवतः बड़ा डेटाबेस हो सकता है, आप इसे ओओबी को अपनी टेस्ट/उत्पादन मशीन से दूसरी मशीन पर कॉपी कर सकते हैं।

मशीनों के लोड लिखने पर निर्भर करता है कि यह किसी भी लिखते हैं कि प्रगति में थे जब फ़ाइल की प्रतिलिपि बन इकट्ठा करने के लिए नकल के बाद एक प्रतिकृति को गति प्रदान करने की सलाह दी जाती हो सकता है। लेकिन कुछ रिकॉर्ड की प्रतिकृति अभी भी पूरे डेटाबेस को प्रतिकृति से तेज होगी।

संदर्भ देखें: लाइव सर्वर के नीचे से तुम आई/ओ लोड हिट ले जा सकते हैं, तो बस cp अपने डेटाबेस फ़ाइलें: http://wiki.apache.org/couchdb/FilesystemBackups

+1

"आप लाइव डेटाबेस के तहत फाइलों को कॉपी कर सकते हैं" - यह एक उत्कृष्ट सलाह है, मैं डेटाबेस को डुप्लिकेट करना चाहता था और पाया कि मैं इसे पूरा करने के लिए खोजक में एक .couch फ़ाइल को डुप्लिकेट और नाम बदल सकता हूं। – DigitalDesignDj

6

मैं दूसरे पॉल सुझाव देना चाहूँगा। यदि आप किसी भी प्रतिकृति प्रतिलिपि को चलाते हैं, तो आप अपने मास्टर के प्रदर्शन को प्रभावित किए बिना सुरक्षित रूप से उस से भी प्रतिलिपि बना सकते हैं।

7

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

यह लगभग कोई आई/ओ भूमि के ऊपर का परिणाम है। यदि आपके पास उदाहरण है गलती से डेटाबेस से एक दस्तावेज़ हटा दिया गया है, आप स्नैपशॉट को दूसरी मशीन पर ले जा सकते हैं और वहां लापता डेटा निकाल सकते हैं। तुम भी वापस उत्पादन डेटाबेस के लिए दोहराने के लिए सक्षम हो सकता है, लेकिन मैं कभी नहीं कि कोशिश की है।

लेकिन हमेशा आप ठीक उसी CouchDB संशोधनों का उपयोग करें जब डेटाबेस फ़ाइलों को इधर-उधर जाने के लिए सुनिश्चित करें। ऑन-डिस्क प्रारूप अभी भी असंगत तरीकों से विकसित हो रहा है।

1

CouchDB प्रतिकृति भयानक है। मैं आम तौर पर tar करता हूं जो बहुत बेहतर है।

  1. स्रोत मेजबान
  2. tar.gz डेटा फ़ाइलों पर CouchDB सेवा बंद करो।
  3. मेरे उबंटू सर्वर पर यह आमतौर पर/var/lib/couchdb (कभी-कभी सोफे संस्करण के आधार पर उपनिर्देशिका में) होता है। यदि आप सुनिश्चित नहीं हैं कि ये फ़ाइलें कहां हैं, तो आप अपने कोच डीबी कॉन्फ़िगरेशन फ़ाइलों में पथ पा सकते हैं, या अक्सर एक पीएस-ए डब्ल्यू करके कॉच डीबी शुरू करने वाले पूर्ण कमांड को देखने के लिए। सुनिश्चित करें कि आप उपनिर्देशिकाएं प्राप्त करते हैं जो . से प्रारंभ करते हैं जब आप फ़ाइलों को संग्रहित करते हैं।
  4. स्रोत होस्ट पर couchdb सेवा को पुनरारंभ करें।
  5. scp गंतव्य होस्ट पर tar.gz फ़ाइल और उन्हें अस्थायी स्थान में अनपैक करें।
  6. chown उपयोगकर्ता और समूह के लिए फ़ाइलें जो गंतव्य पर डेटाबेस निर्देशिका में पहले से मौजूद फ़ाइलों का मालिक है। यह संभवतः couchdb: couchdb है। यह महत्वपूर्ण है, क्योंकि फ़ाइल अनुमतियों को गड़बड़ करना एकमात्र तरीका है जिसे मैंने अभी तक इस प्रक्रिया को गड़बड़ करने में कामयाब रहा है।
  7. गंतव्य होस्ट पर रोकें CouchDB।
  8. cp गंतव्य निर्देशिका में फ़ाइलों को। फिर मेरे मेजबानों पर यह/var/lib/couchdb रहा है।
  9. अपने नए घर में फ़ाइल अनुमतियों को दो बार जांचें।
  10. गंतव्य होस्ट पर कोच डीबी को पुनरारंभ करें।
+4

प्रतिकृति केवल एकमात्र चीज है जो कॉच डीबी _really_ अच्छी है - यह संशोधित-आधारित दस्तावेज़ डिज़ाइन के पीछे पूरी बात थी। यदि आप प्रतिकृति नहीं कर रहे हैं तो मैं गंभीरता से सवाल करूँगा कि आप इसका उपयोग क्यों कर रहे हैं। इसके अलावा, आपको फ़ाइलों की प्रतिलिपि बनाने के लिए CouchDB को रोकने की आवश्यकता नहीं है (रेफरी: http://wiki.apache.org/couchdb/FilesystemBackups) – slang

+0

वास्तव में? यदि आकार 20 जीबी से अधिक है, तो बड़े डेटाबेस पर प्रतिकृति दुर्घटनाग्रस्त हो जाती है। मैं लघु डेटाबेस के बारे में बात नहीं कर रहा हूं। या तो आप एक कॉचडब डेवलपर हैं ... यही कारण है कि इस प्रतिकृति डिजाइन का समर्थन करते हैं। स्पष्ट रूप से उत्पाद प्रतिकृति पर बेकार है ... प्रक्रिया बड़े आकार के डीबी के लिए कई बार दुर्घटनाग्रस्त हो जाती है !!! – coffeequant

+1

हाहा, नहीं - मैं एक कॉच डीबी देव नहीं हूं - मैं बस इसे VICE पर कुछ आंतरिक एनालिटिक्स सिस्टम में उपयोग करता हूं। और 20 जीबी कोई समस्या नहीं होनी चाहिए - अगर आपको कोई दुर्घटना हो, तो मैं अपाचे को एक बग के रूप में रिपोर्ट करूंगा। – slang

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