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

रखरखाव कार्यों को स्वचालित करने के लिए डेटाबेस बैकअप सलाहकारों का उपयोग करना

एक आपदा आमतौर पर एक आउटेज का कारण बनती है, जिसका अर्थ है सिस्टम डाउनटाइम और डेटा की संभावित हानि। एक बार जब हम ब्लैकआउट का पता लगा लेते हैं, तो हम इससे उबरने के लिए अपनी DR योजना को ट्रिगर करते हैं। लेकिन यह आश्चर्य की बात होगी, अगर कोई बैकअप नहीं है, या लंबे समय तक ठीक होने के बाद, आप देखते हैं कि यह वह नहीं है जिसकी आपको आवश्यकता है।

जबकि आउटेज महंगा हो सकता है - अक्सर एक वित्तीय प्रभाव होता है जो व्यवसाय के लिए हानिकारक हो सकता है और डेटा हानि कंपनी को बंद करने का एक कारण हो सकता है।

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

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

एक साधारण उदाहरण:

#!/bin/sh

mysqldump -h 192.168.1.1 -u user -ppassword dbname > filename.sql



if [ "$?" -eq 0 ]; then

    echo "Success."

else

    echo "Error."

fi

लेकिन क्या होगा यदि बैकअप स्क्रिप्ट  बिल्कुल भी प्रारंभ न हो? Google "लिनक्स क्रॉन, नहीं चल रहा है" के लिए काफी खोज परिणाम प्रदान करता है।

दुर्भाग्य से, ओपन-सोर्स डेटाबेस अक्सर बैकअप रिपोजिटरी प्रदान नहीं करते हैं।

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

इस लेख में, हम देखेंगे कि ओपन सोर्स डेटाबेस के साथ एंटरप्राइज़-ग्रेड डेटाबेस प्राप्त करने के लिए आप अपने बैकअप को निष्पादित करने के लिए क्लस्टरकंट्रोल का उपयोग कैसे कर सकते हैं।

बैकअप रिपोर्ट

ClusterControl का उद्देश्य परिचालन रिपोर्ट तैयार करना है। परिचालन रिपोर्टिंग दिन-प्रतिदिन उद्यम गतिविधि की निगरानी और नियंत्रण के लिए सहायता प्रदान करती है। बैकअप रिपोर्ट कई में से एक है। आप इस तरह की रिपोर्ट पा सकते हैं:

  • दैनिक सिस्टम रिपोर्ट
  • पैकेज अपग्रेड रिपोर्ट
  • स्कीमा परिवर्तन रिपोर्ट
  • उपलब्धता 
  • बैकअप

लेकिन आपको इसकी आवश्यकता क्यों होगी?

आपके पास पहले से ही सभी संभावित मेट्रिक्स/ग्राफ के साथ एक उत्कृष्ट निगरानी उपकरण हो सकता है और आपने शायद मेट्रिक्स और थ्रेसहोल्ड के आधार पर अलर्ट भी सेट किए हैं (कुछ में स्वचालित सलाहकार भी होंगे जो उन्हें सिफारिशें प्रदान करेंगे या चीजों को स्वचालित रूप से ठीक करेंगे।) यह अच्छा है - आपकी दृश्यता में प्रणाली महत्वपूर्ण है; फिर भी, आपको बहुत सारी जानकारी संसाधित करने में सक्षम होने की आवश्यकता है।

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

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

CLI रिपोर्ट

उन लोगों के लिए जो कमांड-लाइन इंटरफ़ेस पसंद करते हैं, बैकअप क्लस्टरकंट्रोल कमांड लाइन इंटरफ़ेस (CLI) को ट्रैक करने का एक अच्छा विकल्प है।

CLI आपको सरल कमांड का उपयोग करके ClusterControl के भीतर उपलब्ध अधिकांश कार्यों को निष्पादित करने देता है। बैकअप निष्पादन और बैकअप रिपोर्ट उनमें से एक हैं।

शक्तिशाली GUI के संयोजन में उपयोग किया जाता है, यह ClusterControl उपयोगकर्ताओं को उनके पसंद के किसी भी इंजन का उपयोग करके अपने ओपन-सोर्स डेटाबेस वातावरण को प्रबंधित करने के वैकल्पिक तरीके प्रदान करता है।

$ s9s backup --list --cluster-id=1 --long --human-readable

ID CID STATE     OWNER HOSTNAME CREATED  SIZE FILENAME

 1   1 COMPLETED dba   10.0.0.5 07:21:39 252K mysqldump_2017-05-09_072135_mysqldb.sql.gz

 1   1 COMPLETED dba   10.0.0.5 07:21:43 1014 mysqldump_2017-05-09_072135_schema.sql.gz

 1   1 COMPLETED dba   10.0.0.5 07:22:03 109M mysqldump_2017-05-09_072135_data.sql.gz

 1   1 COMPLETED dba   10.0.0.5 07:22:07 679 mysqldump_2017-05-09_072135_triggerseventsroutines.sql.gz

 2   1 COMPLETED dba   10.0.0.5 07:30:20 252K mysqldump_2017-05-09_073016_mysqldb.sql.gz

 2   1 COMPLETED dba   10.0.0.5 07:30:24 1014 mysqldump_2017-05-09_073016_schema.sql.gz

 2   1 COMPLETED dba   10.0.0.5 07:30:44 109M mysqldump_2017-05-09_073016_data.sql.gz

 2   1 COMPLETED dba   10.0.0.5 07:30:49 679 mysqldump_2017-05-09_073016_triggerseventsroutines.sql.gz

संस्करण 1.4.1 से शुरू होकर, इंस्टॉलर स्क्रिप्ट स्वचालित रूप से इस पैकेज को ClusterControl नोड पर स्थापित कर देगी। CLI s9s-tools पैकेज का हिस्सा है। डेटाबेस क्लस्टर को दूरस्थ रूप से प्रबंधित करने के लिए आप इसे किसी भिन्न मशीन पर अलग से भी स्थापित कर सकते हैं। ClusterControl के समान यह सुरक्षित SSH संचार का उपयोग करता है।

स्वचालित बैकअप सत्यापन

यदि हम डेटा पुनर्प्राप्त करने में सक्षम नहीं हैं तो बैकअप बैकअप नहीं है। बैकअप सत्यापित करना कुछ ऐसा है जिसे आमतौर पर कई कंपनियों द्वारा अनदेखा किया जाता है। आइए देखें कि कैसे क्लस्टर कंट्रोल बैकअप के सत्यापन को स्वचालित कर सकता है और किसी भी आश्चर्य से बचने में मदद कर सकता है।

ClusterControl में, अपने क्लस्टर का चयन करें और "बैकअप" अनुभाग पर जाएं, फिर, "बैकअप बनाएं" चुनें।

स्वचालित सत्यापन बैकअप सुविधा शेड्यूल्ड बैकअप के लिए उपलब्ध है, इसलिए, आइए चुनें "शेड्यूल बैकअप" विकल्प।

बैकअप शेड्यूल करते समय, विधि या स्टोरेज जैसे सामान्य विकल्पों को चुनने के अलावा, हमें शेड्यूल/फ़्रीक्वेंसी भी निर्दिष्ट करने की आवश्यकता होती है। इस उदाहरण में, हम MySQL बैकअप सत्यापन सेटअप करने जा रहे हैं। हालाँकि PostgreSQL और Timescale डेटाबेस के लिए भी यही हासिल किया जा सकता है।

जब बैकअप सत्यापन की जाँच की जाती है तो दूसरा टैब दिखाई देगा।

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

विफल बैकअप निष्पादन और एकीकरण सेवाएं

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

तृतीय-पक्ष टूल एकीकरण आपको अन्य लोकप्रिय प्रणालियों के साथ अलर्ट स्वचालित करने में सक्षम बनाता है। वर्तमान में, ClusterControl ServiceNow, PagerDuty, VictorOps, OpsGenie, Slack, Telegram, और Webhooks को सपोर्ट करता है।

नीचे हम स्लैक चैनल एकीकरण का एक उदाहरण देख सकते हैं। जब भी कोई बैकअप इवेंट होता है तो वह स्लैक चैनल में दिखाई देगा।

निष्कर्ष

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PDO MySQL:एक क्वेरी में कई पंक्तियाँ सम्मिलित करें

  2. JDBC MySql कनेक्शन पूलिंग अभ्यास समाप्त कनेक्शन पूल से बचने के लिए

  3. MySQL एक डेटाबेस से दूसरे में सम्मिलित करें

  4. CHAR () MySQL में उदाहरण

  5. MySQL में एकाधिक तालिकाओं से COUNT(*)