MariaDB
 sql >> डेटाबेस >  >> RDS >> MariaDB

मारियाडीबी एंटरप्राइज बैकअप की तुलना क्लस्टरकंट्रोल बैकअप मैनेजमेंट से करना

MariaDB Enterprise बैकअप, MariaDB Corporation का एक बैकअप समाधान है, जिसमें गैर-अवरुद्ध बैकअप, पूर्ण बैकअप, वृद्धिशील बैकअप, आंशिक बैकअप और पॉइंट इन टाइम रिकवरी जैसी कई सुविधाएँ हैं।

हमें अक्सर मारियाडीबी बैकअप और क्लस्टरकंट्रोल की बैकअप प्रबंधन सुविधाओं के बीच अंतर के बारे में प्रश्न मिलते हैं। तो इस ब्लॉग के बारे में यही है।

बैकअप बनाना बनाम उन्हें प्रबंधित करना

MariaDB बैकअप Percona XtraBackup का एक कांटा है, और यह MariaDB सर्वर का भौतिक बैकअप लेने का एक उपकरण है। यह आपको पूर्ण, वृद्धिशील, आंशिक बैकअप जैसी चीजें करने की अनुमति देता है। बाइनरी लॉग की मदद से पॉइंट इन टाइम रिकवरी भी की जा सकती है। दस्तावेज़ीकरण के अनुसार, मारियाडीबी बैकअप का 'एंटरप्राइज़' संस्करण "डीडीएल स्टेटमेंट ट्रैकिंग प्रदान करता है, जो बैकअप के दौरान लॉक-टाइम को कम करता है"।

ClusterControl मारियाडीबी बैकअप को मारियाडीबी के लिए बैकअप विधि के रूप में समर्थन करता है। यह पूर्ण बैकअप, वृद्धिशील बैकअप और आंशिक बैकअप शेड्यूल करने के लिए एक ग्राफिकल यूजर इंटरफेस प्रदान करता है, और बैकअप फाइलों की वसूली करता है या समय वसूली में बिंदु को स्वचालित करता है। इसके अलावा, ClusterControl एन्क्रिप्शन, कम्प्रेशन, क्लाउड स्टोरेज पर अपलोड (Azure, AWS, Google Cloud) और बैकअप के स्वचालित सत्यापन जैसी सुविधाएँ प्रदान करता है ताकि यह सुनिश्चित हो सके कि वे पुनर्प्राप्त करने योग्य हैं।

पूर्ण बैकअप और पुनर्स्थापना

मारियाडीबी एंटरप्राइज बैकअप का उपयोग करके पूर्ण बैकअप करने के लिए, आप मारियाबैकअप कमांड उपयोगिताओं का उपयोग कर सकते हैं। मारियाबैकअप कमांड के बाद 4 पैरामीटर इनपुट होते हैं। पैरामीटर हैं:

  • बैकअप - इसका उपयोग मारियाबैकअप उपयोगिताओं का उपयोग करके डेटाबेस के बैकअप के लिए किया जाता है।
  • तैयार करें - समय-समय पर लगातार बैकअप बनाने के लिए, आपको रॉ बैकअप के निष्पादित होने के बाद बैकअप तैयार करना होगा।
  • कॉपी-बैक - निकाले गए बैकअप को mysql की डिफ़ॉल्ट डेटा निर्देशिका में पुनर्स्थापित करने के लिए उपयोग किया जाता है। यह मूल बैकअप को हटाए बिना बैकअप को mysql निर्देशिका में कॉपी कर देगा।
  • पीछे हटो -  सभी बैकअप निर्देशिकाओं को स्थानांतरित करके निकाले गए बैकअप को mysql डेटा निर्देशिका में पुनर्स्थापित करने के लिए उपयोग किया जाता है।

यदि आप बैकअप लेना और पुनर्स्थापित करना चाहते हैं, तो आप मारियाबैकअप कमांड के बाद अनिवार्य पैरामीटर पास करें। पूर्ण बैकअप कमांड के लिए, नीचे मारियाडीबी बैकअप का उपयोग करके एक नमूना स्क्रिप्ट है।

mariabackup --backup --target-dir=/backup/full/ --user=bkpuser --password=p4sswordb4ckup

आपको परिभाषित करने के लिए कुछ विकल्प हैं, जैसे --target-dir, जो बैकअप फ़ाइलों के लिए लक्षित स्थान है, --user, बैकअप के लिए क्रेडेंशियल उपयोगकर्ताओं के लिए उपयोग किया जाता है, और --पासवर्ड के लिए क्रेडेंशियल बैकअप पासवर्ड।

बैकअप को पॉइंट-इंट-टाइम सुसंगत बनाने के लिए, आपको पूर्ण बैकअप समाप्त होने के बाद तैयारी को चलाना होगा। जब तक आप तैयारी नहीं चलाते, तब तक डेटा फ़ाइलें सुसंगत नहीं होती हैं, ऐसा इसलिए होता है क्योंकि जब आप बैकअप चलाते हैं, तो डेटा फ़ाइलों को बैकअप के दौरान अलग-अलग समय पर कॉपी किया जाता था।

बैकअप तैयार करने के लिए:

mariabackup --prepare --target-dir=/backup/full

आपके द्वारा तैयारी चलाने के बाद, यह बैकअप को पुनर्स्थापित करने के लिए तैयार कर देगा। जब तैयारी सफल रही, तब आपको आखिरी पंक्ति पर संदेश नीचे दिखाई देगा।

InnoDB: Shutdown completed; log sequence number 9553231

आप कॉपी-बैक का उपयोग करके पुनर्स्थापना आदेश चला सकते हैं। बैकअप को पुनर्स्थापित करने के लिए नमूना स्क्रिप्ट यहां दी गई है:

mariabackup --copy-back --target-dir=/backup/full

आप उपरोक्त स्क्रिप्ट को शेल स्क्रिप्ट कमांड में रख सकते हैं और निष्पादन योग्य अनुमति दे सकते हैं, इसे ऑपरेटिंग सिस्टम शेड्यूलर पर कॉन्फ़िगर कर सकते हैं।

ClusterControl बैकअप प्रबंधन का उपयोग करके बैकअप और पुनर्स्थापना का उपयोग करना बहुत आसान है। ClusterControl तार्किक बैकअप और भौतिक बैकअप का समर्थन करता है। तार्किक बैकअप के लिए, ClusterControl mysqldump का उपयोग करता है और भौतिक बैकअप के लिए mariabackup पूर्ण बैकअप और वृद्धिशील का उपयोग करता है।

आप कैसे बैकअप करना चाहते हैं, इस पर दो विकल्प हैं; आप सीधे बैकअप बना सकते हैं या आप बैकअप शेड्यूल कर सकते हैं।

आप एन्क्रिप्शन, कम्प्रेशन, समानांतर कॉपी थ्रेड जैसे कुछ विकल्पों को भी सक्षम कर सकते हैं जैसे नीचे दिखाया गया है:

बैकअप को पुनर्स्थापित करना उतना ही आसान है जितना कि बैकअप बनाया गया था। आपको बस उस पूर्ण बैकअप फ़ाइल का चयन करने की आवश्यकता है जिसे आप पुनर्स्थापित करना चाहते हैं।

आप कैसे बैकअप को पुनर्स्थापित करना चाहते हैं, इस पर दो विकल्प हैं; आप बैकअप को उन नोड्स में पुनर्स्थापित कर सकते हैं जहां बैकअप लिया गया था या आप बैकअप को एक समर्पित स्टैंडअलोन होस्ट में पुनर्स्थापित कर सकते हैं।

वृद्धिशील बैकअप और पुनर्स्थापना

एक बहुत बड़े डेटाबेस का पूर्ण बैकअप लेना समय लेने वाला और संसाधन गहन होगा। अंतिम पूर्ण बैकअप लेने के बाद परिवर्तनों का बैकअप करने के लिए वृद्धिशील बैकअप का उपयोग किया जाता है।

जब वृद्धिशील बैकअप चल रहा हो, तो मारियाडीबी एंटरप्राइज बैकअप पिछले पूर्ण बैकअप या वृद्धिशील बैकअप की तुलना अंतिम परिवर्तनों को खोजने के लिए करेगा।

mariabackup --backup --incremental-basedir=/backup/full --target-dir=/backup/incr --user=bkpuser  --password=p4sswordb4ackup

वृद्धिशील बैकअप करने से पहले, आपको यह सुनिश्चित करना होगा कि पूर्ण बैकअप तैयार किया गया है। उसके बाद, आप पिछले पूर्ण बैकअप पर लागू करके वृद्धिशील बैकअप चला सकते हैं।

mariabackup --prepare  --target-dir=/backup/full --incremental-dir=/backup/incr

पूर्ण बैकअप के लिए वृद्धिशील बैकअप लागू होने के बाद, पूर्ण बैकअप निर्देशिका में अब सभी बैकअप डेटा तैयार हो जाएंगे।

सभी वृद्धिशील परिवर्तनों के साथ तैयार पूर्ण बैकअप को पुनर्स्थापित करने के माध्यम से किया जा सकता है:

mariabackup --copy-back --target-dir=/backup/full

ClusterControl में वृद्धिशील बैकअप करने के लिए, आप मारियाबैकअप वृद्धिशील चुन सकते हैं। वृद्धिशील बैकअप करने से पहले आपके पास पूरी तरह से तैयार बैकअप होना चाहिए।

जब आप वृद्धिशील बैकअप चलाते हैं तो ClusterControl स्वचालित रूप से निकटतम पूर्ण बैकअप ढूंढ लेगा। और बैकअप को पुनर्स्थापित करने के लिए, आप पूर्ण तैयार बैकअप चुन सकते हैं और पुनर्स्थापित कर सकते हैं। यह आपको संकेत देगा कि आप बैकअप को कैसे पुनर्स्थापित करना चाहते हैं, या तो नोड या स्टैंडअलोन होस्ट पर। यह वृद्धिशील परिवर्तनों सहित बैकअप को पुनर्स्थापित करेगा।

आंशिक बैकअप और पुनर्स्थापना

आंशिक बैकअप निर्दिष्ट करता है कि आप किस डेटाबेस या तालिका का बैकअप लेना चाहते हैं। आप या तो बैक अप लेने के लिए डेटाबेस और तालिकाओं की एक सूची चुन सकते हैं, या आप बैकअप से कुछ डेटाबेस और तालिकाओं को बाहर कर सकते हैं। विकल्पों में शामिल हैं:--डेटाबेस, --डेटाबेस-बहिष्कृत, --टेबल्स, --टेबल्स-बहिष्कृत

नीचे कार्ड_डेटा तालिका के लिए आंशिक बैकअप करने के लिए एक नमूना स्क्रिप्ट है।

mariabackup --backup --target-dir=/backup/partial --user=bkpuser --password=p4sswordb4ckup --tables=card_data

नीचे दिए गए आदेश को चलाकर बैकअप को समय-समय पर सुसंगत बनाने के लिए आपको अभी भी पूर्ण आंशिक बैकअप तैयार करने की आवश्यकता है: 

mariabackup --prepare --export --target-dir=/backup/partial

आंशिक पुनर्स्थापना करना पूर्ण बैकअप और वृद्धिशील बैकअप को पुनर्स्थापित करने की तुलना में बहुत अलग है। आपको चल रहे मारियाडीबी सर्वर में टेबल और डेटाबेस तैयार करने की आवश्यकता है, और फिर डेटा फ़ाइलों को मैन्युअल रूप से mysql डेटा निर्देशिका में कॉपी करें।

उदाहरण के लिए, आप card_data तालिका (गैर-विभाजित तालिका) के लिए आंशिक पुनर्स्थापना करना चाहते हैं।

  • लक्ष्य डेटाबेस में समान संरचना के साथ card_data की खाली तालिका बनाएं 
  • डिस्कर्ड टेबलस्पेस को कार्ड_डेटा टेबल पर चलाएं।
    ALTER TABLE carddb.card_data DISCARD TABLESPACE;
  • डेटा फ़ाइलों को mysql डेटा निर्देशिका में कॉपी करें 
    cp /backup/partial/carddb/card_data.* /var/lib/mysql/carddb
  • फ़ाइलों का स्वामी बदलें mysql बनें
    chown mysql:mysql /var/lib/mysql/carddb/card_data.*
  • आखिरी बात, टेबलस्पेस इंपोर्ट करें: 
    ALTER TABLE carddb.card_data IMPORT TABLESPACE;

ClusterControl में आंशिक बैकअप वास्तव में सीधा है, आपको केवल आंशिक बैकअप विकल्प को सक्षम करने की आवश्यकता है। यह आपको नीचे दिखाए गए अनुसार डेटाबेस और तालिकाओं को शामिल या बहिष्कृत करने का विकल्प देगा:

अगला भाग पूर्ण बैकअप और वृद्धिशील बैकअप के समान है, आप कर सकते हैं एन्क्रिप्शन और संपीड़न जैसी सेटिंग चुनें.

आंशिक बैकअप को पुनर्स्थापित करना ठीक वैसा ही है जैसा हम पूर्ण बैकअप को पुनर्स्थापित करते समय करते हैं। आपको केवल आंशिक बैकअप चुनने की आवश्यकता है, और बाकी को ClusterControl द्वारा नियंत्रित किया जाएगा।

प्वाइंट इन टाइम रिकवरी

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

आप SQL में किए गए परिवर्तनों को एक्सट्रेक्ट करके पॉइंट इन टाइम रिकवरी कर सकते हैं, जैसे कि पुनर्स्थापना के बाद। आप स्रोत डेटाबेस नोड में विशिष्ट समय निकालने के लिए mysqlbinlog चला सकते हैं, और SQL को लक्ष्य/पुनर्स्थापित डेटाबेस नोड में लागू कर सकते हैं।

ClusterControl में प्वाइंट इन टाइम रिकवरी (PITR) को नीचे दिखाए अनुसार सक्षम किया जा सकता है:

आपको यह परिभाषित करने की आवश्यकता है कि किस बिंदु तक पुनर्प्राप्त करना है, दो विकल्प समर्थित हैं जो समय आधारित या स्थिति आधारित हैं। समय आधारित के लिए, आपको बस सटीक समय भरना होगा जब डेटा बहाल किया जाएगा। पोजीशन बेस्ड के लिए आपको बिनलॉग का नाम और पोजीशन भरना होगा। बाकी पुनर्स्थापना समान है।

निष्कर्ष

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. सेंटोस/आरएचईएल 7 और डेबियन 8/9 में मारियाडीबी (मास्टर-स्लेव) प्रतिकृति को कैसे सेटअप करें

  2. MySQL गैलेरा क्लस्टर्स के बीच एसिंक्रोनस प्रतिकृति कैसे सेट करें

  3. कैसे INSTR () मारियाडीबी में काम करता है

  4. मारियाडीबी में ASIN () कैसे काम करता है

  5. 2017 में हमारे सबसे लोकप्रिय डेटाबेस ब्लॉग पोस्ट