2009-03-05 15 views
9

MySQL हॉट बैकअप के लिए अमेज़ॅन ईबीएस स्नैपशॉट सुविधाओं का उपयोग करके आपके अनुभव क्या हैं।MySQL हॉट बैकअप के लिए अमेज़ॅन के ईबीएस का उपयोग

मेरे पास एक डेटाबेस है जो ec2 में बैच प्रोसेसिंग जॉब चला रहा है। मैं ईबीएस स्नैपशॉट के साथ बैकअप। अब तक बैकअप लगातार दिखता है। लेकिन मुझे डर है कि जैसे ही मैं जांच करना बंद कर दूंगा "(अनिश्चितता सिद्धांत)।

ईबीएस स्नैपशॉट के साथ बैकअप संबंधपरक डेटाबेस (और विशेष रूप से mysql) के साथ आपके अनुभव क्या हैं?

उत्तर

11

मैं एक वर्ष से अधिक समय के लिए अपने MySQL डेटा डीआईआर का बैक अप लेने के लिए ईबीएस स्नैपशॉट का उपयोग कर रहा हूं। यह पूरी तरह से काम कर रहा है। मुझे इन स्नैपशॉट्स का उपयोग प्रतिस्थापन (या क्लोन) MySQL सेटअप के आधार के रूप में कभी भी कोई समस्या नहीं हुई है।

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

एरिक हैमंड द्वारा this article देखें जो आपके लिए यह सब कुछ करता है।

1

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

3

MySQL असंगत डिस्क राज्यों से खराब रूप से पुनर्प्राप्त करने की प्रतिष्ठा है, स्नैपशॉट होने पर XFS अनिवार्य रूप से फ़ाइल सिस्टम पर आईओ को रोक देता है। आम तौर पर एक डेटाबेस एक फ्लश() करता है जब पूर्ण लेनदेन लॉग प्रविष्टि बनाई जाती है जो अनिवार्य रूप से फ़ाइल सिस्टम को चेकपॉइंट इंगित करता है। एक जर्नलिंग फाइल सिस्टम के मामले में, यह महत्वपूर्ण है, और अधिकांश भाग के लिए, फाइल सिस्टम एक बार घुड़सवार अंतिम वैध जर्नल प्रविष्टि में ठीक हो जाएगा, यह 100% नहीं है, लेकिन यह कुछ भी नहीं है। अधिकांश डेटाबेस सिस्टम ट्रांज़ेक्शन लॉग फ़ाइल का उपयोग पुनर्प्राप्ति पर 'रोल-फॉरवर्ड' पर करते हैं यदि डेटाबेस फाइल लेनदेन लॉग के पीछे होती है, और डेटाबेस इंजन केवल लेन-देन लॉग की सामग्री को जितना अधिक दे सकता है उतना ही आगे बढ़ेगा। यह आंशिक रूप से लिखित लेनदेन के माध्यम से आगे बढ़ने की कोशिश नहीं करेगा। यहां समस्या यह है कि MySQL इसे प्राप्त करने में सबसे अच्छा नहीं है, इसलिए यह पूरी तरह से एक समस्या हो सकती है। मुझे इसके लिए ठोस समाधान नहीं मिला है, मैं कल्पना करता हूं कि एक दर्पण चलाना, जब आप स्नैपशॉट करते हैं तो MySQL को रोकना और फिर सिंक्रनाइज़ेशन फिर से शुरू करना काम कर सकता है, लेकिन मुझे नहीं पता कि MySQL दर्पण एक दर्पण के साथ आंशिक रूप से अनुपलब्ध हो सकता है या नहीं थोड़ी देर के बाद और फिर पूर्ण पुन: दर्पण के बिना पकड़ने में सक्षम हो, इस मामले में, आप बस सभी डेटाबेसों का एक mysqldump कर सकते हैं क्योंकि यह एक पूर्ण दर्पण चलाने के रूप में डेटाबेस पर एक ही प्रभाव के बारे में होगा। यह वही दूसरा चल रहा विकल्प है जिसे मैं सोच सकता हूं - बैकअप विभाजन और स्नैपशॉट के लिए सभी डेटाबेस के mysqldump को चलाने के लिए। आपको बैकअप चलाने नहीं देता है, इसलिए आप इसे अक्सर नहीं कर सकते हैं, और यदि आप 24/7 हैं, तो mysqldump डेटाबेस पर भारी लोड डालता है, जबकि यह चल रहा है, अब तक इष्टतम से।

अन्य डेटाबेस इंजन इस पर बहुत बेहतर हैं। PostgreSQL एक असंगत डिस्क स्थिति से पुनर्प्राप्त करने के लिए बहुत अच्छा है कि वे इसे एक जर्नल फाइल सिस्टम पर चलाने की अनुशंसा नहीं करते हैं। आपके पास लेन-देन लॉग संग्रह करने का विकल्प भी है ताकि आप अंतिम अच्छे पूर्ण बैकअप से किसी भी समय तक आगे बढ़ सकें जहां संग्रहीत लॉग मौजूद हैं। इसके साथ लगातार बैकअप बनाने के लिए बहुत आसान है। ओरेकल आपको लेनदेन लॉग के कई सेट्स की अनुमति देगा जो भौतिक डिस्क/ईबीएस विभाजनों के बीच स्विच करते हैं जो आपको लगातार स्नैपशॉट लेने के लिए विंडोज़ देते हैं और डेटाबेस इंजन को इंगित करने की क्षमता है जिसे आप करना चाहते हैं, और फ्लिप नहीं करना जब तक आप ऐसा नहीं करते हैं।

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

-1

आप अपने डेटाबेस (ओं) को प्रबंधित करने के लिए Amazon RDS का उपयोग करने पर विचार कर सकते हैं - यह एक मानक MySQL सर्वर की तरह काम करता है और फिर यदि आप क्रैश (यह नहीं करेंगे) तो आप अमेज़ॅन को दोष दे सकते हैं। साथ ही, वे नियमित रूप से आपके लिए सर्वर का बैक अप लेते हैं और पैच करते हैं। मैंने अपना वर्डप्रेस और vBulletin को ऊपर ले जाया और इसे एक घंटा लग गया।

बस मेरी 2 ¢!

+0

-1 का विस्तार करने की जरूरत है । सवाल का जवाब नहीं देता है। – talonx

1

मैं डीबी फाइल सिस्टम के लिए सार परत के रूप में LVM का उपयोग करने का सुझाव दूंगा। क्योंकि यह स्थानीय स्नैपशॉट्स के लाभ प्राप्त करेगा जो हॉट बैकअप की तरह है। एलवीएम स्नैपशॉट्स को किसी भी मशीन पर इसका उपयोग करने के लाभ के साथ ईबीएस के समान परिणामों को प्राप्त करने का लाभ होता है (न केवल अमेज़ॅन आधारित)।

एक और प्लस, कि एलवीएम गर्म आकार विशेष रूप से अच्छा उपयोग कर सकते हैं, जब आप समय नीचे कम से कम जरूरत है और तेज़ी से अपने डिस्क स्थान (विशिष्ट स्थितियों में की सिफारिश की है, लेकिन संभव नहीं)

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