क्या मुझे MySQL डेटाबेस बैकअप के लिए mysqldump या mysqlhotcopy का उपयोग करना चाहिए?


14

मेरे पास एक MySQL डेटाबेस पर एक वर्डप्रेस ब्लॉग है जिसे मैं नियमित रूप से बैकअप लेना चाहता हूं। क्या बैकअप बनाने के लिए mysqldump प्रोग्राम या mysqlhotcopy स्क्रिप्ट का उपयोग करना बेहतर होगा? प्रत्येक का भला - बुरा क्या है? क्या कोई अन्य विकल्प हैं जिन पर मुझे विचार करना चाहिए?

जवाबों:


5

मैं आपको बता सकता हूं कि मैं अपने डेटाबेस का बैकअप बनाए रखने के लिए वर्तमान में mysqldump का उपयोग करता हूं। मैं ऐसा इसलिए करता हूं क्योंकि मेरा लक्ष्य साप्ताहिक बैकअप रखना है ताकि यदि कोई व्यक्ति अपने वेबपेज को हटाता है, तो मैं इसे एक सप्ताह पहले से ही पुनर्प्राप्त कर सकता हूं।

इसके बारे में अच्छी बात यह है कि यह एक मूल पाठ फ़ाइल है, इसलिए मैं इसे MySQL के साथ किसी भी कंप्यूटर पर आयात कर सकता हूं, इसे लोड कर सकता हूं, और लापता डेटा की खोज कर सकता हूं। नोट: मैं जो चाहता था उसे पाने के लिए, मैं अपनी स्क्रिप्ट में जो कमांड इस्तेमाल कर रहा हूं वह यह है:

mysqldump --databases databaseName > /file/path

यह --databasesवही है जो mysqldump CREATE DATABASE IF NOT EXISTहेडर को डंप करता है ताकि मैं इसे कहीं भी आयात कर सकूं ।

जबकि यह विधि मेरे लिए काम करती है, मुझे यकीन है कि अन्य उद्देश्यों के लिए बेहतर तरीके हैं। मैं यह भी कह सकता हूं कि किसी भी बैकअप समाधान के लिए, आपको इसे कम से कम किसी अन्य कंप्यूटर पर संग्रहीत करना चाहिए, और यदि आप कर सकते हैं तो अधिमानतः ऑफसाइट (हमारे क्लाउड में)।


5

मैं "WordPress Database Backup (WP-DB-Backup)" नामक एक वर्डप्रेस प्लगइन का उपयोग करने पर विचार करूंगा जो कि वर्डप्रेस डेटाबेस बैकअप गाइड पर भी सूचीबद्ध है । यह प्लगइन एक शेड्यूल पर डेटाबेस का बैकअप ले सकता है और इसे आपको (एक छोटा डेटाबेस मानकर) ईमेल कर सकता है। आप इसे स्थानीय स्तर पर ही वापस कर सकते हैं। DB को छोटा करने के लिए आप टिप्पणी स्पैम और संशोधन को छोड़ सकते हैं

कम नियंत्रण लेकिन लागू करने में आसान।

MySQL डंप आपको सबसे अधिक नियंत्रण देते हैं । आपकी होस्टिंग सेवा भी एक सीमित कारक हो सकती है। कुछ होस्ट आपको क्रॉन जॉब चलाने या mysqldump कमांड चलाने की सुविधा नहीं देते हैं।


4

शुक्रिया # 1

यदि आप MySQL इंस्टेंस के किसी भी बैकअप को करते हैं तो MySQL Replicaton को सेटअप करना सबसे अच्छा है ताकि किसी भी तरह के सर्वर लोड या डिस्क I / O को बढ़ाने से आपके प्रोडक्शन डेटाबेस पर कोई असर न पड़े।

एक बार जब आप MySQL प्रतिकृति सेट करते हैं, तो आप विभिन्न तरीकों से एक mysqldump को स्क्रिप्ट कर सकते हैं ( कृपया तकनीकों की विविधता के लिए DBA StackExchange पर मेरी पोस्ट देखें ), जब तक आप उन mysqldumps को एक दास पर चलाते हैं।

शुक्रिया # 2

यदि आप MySQL प्रतिकृति के लिए किसी अन्य सर्वर को सेट नहीं कर सकते हैं और आपका सारा डेटा InnoDB है, तो आपको एक समय-समय पर mysqldump करना होगा। यह --single-transactionmysqldump के साथ विकल्प का उपयोग करके किया जाता है । इस प्रकार, यदि आप आधी रात से शुरू होने वाले mysqldump को चलाते हैं और बैकअप 12:15 पूर्वाह्न पर समाप्त हो जाता है, तो पुनर्स्थापित किए जाने पर mysqldump का आउटपुट 12:00 AM के रूप में डेटा को प्रतिबिंबित करता है।

सुझाव # 3

MySQL Backups के लिए उपलब्ध एक और कार्यक्रम Percona से XtraBackup है।

XtraBackup एक व्यापक उपकरण है जो rsync की तरह व्यवहार करता है लेकिन जीवन में इसका उद्देश्य प्रत्यक्ष है। यह सभी InnoDB डेटा और टेबलस्पेस की नकल करना शुरू कर सकता है। यह आंतरिक रूप से चौकियों को बनाने और सही जगह में समय पर बैकअप प्राप्त करने में मदद करने के लिए एक इनोबीडी क्रैश रिकवरी करने की क्षमता रखता है। XtraBackup में एक अतिरिक्त विशेषता है जो वृद्धिशील बैकअप के निर्माण की अनुमति देता है। एक अन्य अतिरिक्त विशेषता इनोबीडी लॉग फाइलों का निर्माण है, जिसे एक इन-प्लेस क्रैश रिकवरी द्वारा भी बनाया गया है। MyISAM तालिकाओं की जमे हुए नकल प्रदान करने के लिए कुछ आवरण सॉफ्टवेयर भी है।

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


2

आपके टेबल के लिए आपके स्टोरेज इंजन पर निर्भर करता है। यह ARCHIVE और MyISAM तालिकाओं के लिए केवल इस MySQL मैनुअल पेज को काम करता है और इसे एक ही मशीन पर चलाया जाना चाहिए (अर्थात स्थानीय सॉकेट या टीसीपी / आईपी का उपयोग नहीं करना)

MySQL भी कहता है

यदि आप सर्वर पर बैकअप कर रहे हैं और आपके टेबल सभी MyISAM टेबल हैं, तो इसके बजाय mysqlhotcopy का उपयोग करने पर विचार करें क्योंकि यह तेजी से बैकअप और तेजी से पुनर्स्थापित को पूरा कर सकता है।


1

मैं दर्द को सही होने से बाहर निकालने के लिए कई पहले से मौजूद mySQL बैकअप स्क्रिप्ट का उपयोग करने की सलाह देता हूं।

मैं "autoysqlbackup" का उपयोग करता हूं जो एक ओपन-सोर्स शेल स्क्रिप्ट है जिसे सर्वर पर क्रोन जॉब के रूप में सेट किया जा सकता है। यह लगभग हर बोधगम्य बैकअप स्थिति को कवर करता है: http://sourceforge.net/projects/automysqlbackup/ । इसने कई वर्षों तक मेरे लिए त्रुटिपूर्ण काम किया - पूरी तरह से सिफारिश की।


1

mysqlhotcopy एक पर्ल स्क्रिप्ट सर्का '05 है। इसलिए यह पर्ल और विभिन्न पर्ल के लिए निर्भरता को जोड़ता है। मैं इस पर से गुजरता हूँ।

mysqldump एक C प्रोग्राम है जिसे MySQL के साथ वितरित किया जा रहा है और सक्रिय रूप से बनाए रखा गया है। यदि आप -x विकल्प जोड़ते हैं तो यह तालिकाओं को बंद कर देता है ताकि आप सुनहरे हों।

मेरे पास व्यक्तिगत रूप से क्रोन में यह स्क्रिप्ट है (यदि आप इसे हाथ से चलाना चाहते हैं तो आप उन्हें हटा सकते हैं) सभी डेटाबेस का एक पूरा डंप।

और अगर आपके पास वहाँ एक से अधिक डेटाबेस हैं, तो आप उनके लिए अनुदान भी डंप करना चाहेंगे। Maatkit आप वहाँ मदद मिलेगी, और आप बस mk-show-grants -uroot -pPASSWORD > mygrantsdatabase.sqlअपने अनुदान तालिकाएँ बैकअप और फिर से आयात करने के लिए तैयार करने के लिए होगा।


0

मुझे यह भी पता है कि कई सर्वर प्रबंधन उपकरण जैसे कि इंटरवर्क्स और एनसिम, डेटाबेस बैकअप के लिए mysqldump का उपयोग करते हैं और फिर पुनर्स्थापित करने के लिए एक साधारण mysql कमांड। इससे मेरा अनुमान होगा कि यह सबसे अच्छे तरीकों में से एक है।

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