मैं MySQL में बहु-गीगाबाइट डेटाबेस का बैकअप कैसे ले सकता हूं? तेजी से बहाल करने के लिए बोनस अंक


11

MySQL में मेरा 4GB डेटाबेस है। मैं इसे कैसे वापस कर सकता हूं? इसके अलावा, क्या कोई ऐसा तरीका है जिससे मैं उस स्थिति में बहाली प्रक्रिया को तेज कर सकता हूं जिसे मुझे पुनर्प्राप्त करने की आवश्यकता है?

मैं वर्तमान में हर रात एक क्रॉन जॉब का उपयोग करता हूं जो mysqldumpसब कुछ डंप करने के लिए कॉल करता है और मैं 3 दिन का बैकअप रखता हूं।

जवाबों:


14

हमारे पास एक MySQL में लगभग 90 जीबी है, इसलिए यहां कुछ सुझाव दिए गए हैं:

  • आप निम्न कॉल की कोशिश कर सकते हैं: mysqldump -u USER -pPASS --single-transaction -Q --databases foo bar(डॉक्स का उपयोग करके जांच करें कि क्या वे स्विच आपके लिए काम करते हैं।)
  • यदि आप केवल MYISAM- टेबल्स का उपयोग करते हैं, तो डेटाबेस को किसी अन्य ड्राइव पर कॉपी करना और उसे टारगेट करना भी एक विकल्प हो सकता है। यह INNODB के साथ काम नहीं करेगा, क्योंकि यह एक अतिरिक्त फ़ाइल रखता है। इसके अलावा, आपको इसे सावधानीपूर्वक परीक्षण करना होगा।
  • बाइनरी लॉग सक्षम करें, और उन्हें वापस करें। (यह शायद मेरा पसंदीदा है!)
  • सेटअप प्रतिकृति और अपने एक दास पर बैकअप करने के लिए, और फिर इसे बाकी हिस्सों के साथ पकड़ने दें। यह बहुत अच्छा है जब यह चलता है, लेकिन समस्या यह चल रही है। रेप्लिकेट करना MySQL के साथ कोई मज़ा नहीं है। :(
  • क्या आपका फाइलसिस्टम स्नैपशॉट का समर्थन करता है? यदि ऐसा होता है, तो यह उनका उपयोग करने का एक शानदार अवसर है।
  • एक वाणिज्यिक समाधान का उपयोग करें, जैसे कि अमांडा

10

सबसे अच्छा तरीका सामान्य ऑपरेशन को बाधित किए बिना होगा। उच्च-विश्वसनीयता, दोष-सहिष्णु प्रणालियों के लिए, आपके पास 2 डीबी हैं जो सिंक में रखे गए हैं, और आप माध्यमिक बैकअप करते हैं। (उदाहरण के लिए यह लेख )

अन्यथा, मैनुअल पढ़ें : myseldump का उपयोग करें जैसा कि आप वर्तमान में करते हैं, या mysqlhotcopy स्क्रिप्ट का उपयोग करें (mysqldump की तरह उपयोग करें), या DB को रोकें और बस frm, MID, MYI फ़ाइलों (ssync का उपयोग करके) की प्रतिलिपि बनाएँ।

मुझे लगता है कि स्टॉप + कॉपी फाइल्स मेकेनिज्म सबसे तेज है जिसे आप प्राप्त करने जा रहे हैं।


3

यदि आपके कुछ डेटाबेस केवल-पढ़ने या संशोधित हैं, तो शायद ही कभी इसे कम क्रोन के रूप में एकल किया जाए।


2

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


1

आपको वास्तव में पेरकोना के Xtrabackup पर विचार करना चाहिए

रैपर स्क्रिप्ट "innobackupex" MyISAM को संभाल सकती है लेकिन एक गैर-लॉकिंग / ऑनलाइन बैकअप के लिए आपकी टेबल सभी को InnoDB होना चाहिए।

चियर्स

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.