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

Microsoft Azure का उपयोग करके MySQL क्लाउड बैकअप और पुनर्स्थापना परिदृश्य

बैकअप आपके डेटाबेस संचालन का एक बहुत ही महत्वपूर्ण हिस्सा है, क्योंकि आपदा आने पर आपका व्यवसाय सुरक्षित होना चाहिए। जब वह समय आता है (और यह होगा), तो आपका रिकवरी प्वाइंट ऑब्जेक्टिव (आरपीओ) और रिकवरी टाइम ऑब्जेक्टिव (आरटीओ) पूर्वनिर्धारित होना चाहिए, क्योंकि इस तरह आप उस घटना से कितनी तेजी से उबर सकते हैं जो हुई थी।

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

अपने डेटाबेस को Microsoft Azure (जिसके बारे में हम इस ब्लॉग में चर्चा करेंगे) जैसे क्लाउड प्रदाता के साथ होस्ट करना कोई अपवाद नहीं है, फिर भी आपको अपनी आपदा पुनर्प्राप्ति नीति तैयार करने और परिभाषित करने की आवश्यकता है।

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

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

इस ब्लॉग में, हम इन सभी बैकअप को कवर करेंगे और Microsoft Azure क्लाउड पर MySQL डेटाबेस का उपयोग करके परिदृश्यों को पुनर्स्थापित करेंगे।

Azure पर वर्चुअल मशीन पर बैकअप करना

दुर्भाग्य से, Microsoft Azure एक MySQL-विशिष्ट बैकअप प्रकार समाधान प्रदान नहीं करता है (उदा. MySQL एंटरप्राइज़ बैकअप, Percona XtraBackup, या MariaDB का Mariabackup)।

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

बैकअप बनाने और सेटअप करने के लिए, बाएं पैनल पर जाएं और सभी संसाधन → गणना → वर्चुअल मशीन पर क्लिक करें। अब टेक्स्ट फ़ील्ड में आवश्यक पैरामीटर सेट करें। एक बार जब आप उस पृष्ठ पर हों, तो प्रबंधन टैब पर जाएं और नीचे स्क्रॉल करें। आप यह देखने में सक्षम होंगे कि आप बैकअप कैसे सेट अप या बना सकते हैं। नीचे स्क्रीनशॉट देखें:

फिर अपनी बैकअप आवश्यकताओं के आधार पर अपनी बैकअप नीति सेट करें। नई नीति बनाने के लिए बस बैकअप नीति टेक्स्ट फ़ील्ड में नया बनाएं लिंक दबाएं। नीचे देखें:

आप अपनी बैकअप नीति को सप्ताह, मासिक और वार्षिक आधार पर अवधारण के साथ कॉन्फ़िगर कर सकते हैं .

अपना बैकअप कॉन्फ़िगर करने के बाद, आप जांच सकते हैं कि आपने उस विशेष वर्चुअल मशीन पर बैकअप सक्षम किया है जिसे आपने अभी बनाया है। नीचे स्क्रीनशॉट देखें:

Azure पर अपनी वर्चुअल मशीन को पुनर्स्थापित करें और पुनर्प्राप्त करें

Azure में अपनी पुनर्प्राप्ति को डिज़ाइन करना इस बात पर निर्भर करता है कि आपके एप्लिकेशन को किस प्रकार की नीति और आवश्यकताओं की आवश्यकता है। यह इस बात पर भी निर्भर करता है कि किसी घटना या रखरखाव के दौरान उपयोगकर्ता के लिए आरटीओ और आरपीओ कम या अदृश्य होना चाहिए। उच्च पुनर्प्राप्ति दर प्राप्त करने के लिए आप अपनी वर्चुअल मशीन को उपलब्धता सेट के साथ या किसी भिन्न उपलब्धता क्षेत्र पर सेट कर सकते हैं।

आप अपने VM के लिए एक डिजास्टर रिकवरी भी सेटअप कर सकते हैं ताकि आपकी वर्चुअल मशीन को व्यवसाय की निरंतरता और डिजास्टर रिकवरी की जरूरतों के लिए किसी अन्य Azure क्षेत्र में दोहराया जा सके। हालाँकि, यह आपके संगठन के लिए एक अच्छा विचार नहीं हो सकता है क्योंकि यह एक उच्च लागत के साथ आता है। यदि जगह में है, तो Azure आपको बनाए गए बैकअप से वर्चुअल मशीन को पुनर्स्थापित करने या बनाने का विकल्प प्रदान करता है।

उदाहरण के लिए, अपनी वर्चुअल मशीन के निर्माण के दौरान, आप डिस्क टैब पर जा सकते हैं, फिर डेटा डिस्क पर जा सकते हैं। आप एक मौजूदा डिस्क बना या संलग्न कर सकते हैं जहाँ आप अपने पास उपलब्ध स्नैपशॉट संलग्न कर सकते हैं। नीचे दिया गया स्क्रीनशॉट देखें जिसके लिए आप स्नैपशॉट या स्टोरेज ब्लॉब में से चुन सकेंगे:

 आप स्क्रीनशॉट की तरह ही किसी विशिष्ट समय पर पुनर्स्थापित भी कर सकते हैं नीचे:

Azure में पुनर्स्थापित करना विभिन्न तरीकों से किया जा सकता है, लेकिन यह उसी का उपयोग करता है आपके द्वारा पहले ही बनाए गए संसाधन।

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

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

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

MySQL के लिए Azure डेटाबेस के लिए बैकअप

MySQL के लिए Azure डेटाबेस Microsoft Azure द्वारा पूरी तरह से प्रबंधित डेटाबेस सेवा है। यह सेवा आपके बैकअप को सेटअप करने और क्षमताओं को पुनर्स्थापित करने का एक बहुत ही लचीला और सुविधाजनक तरीका प्रदान करती है।

अपने MySQL सर्वर इंस्टेंस के निर्माण के बाद, आप बैकअप रिटेंशन को सेटअप कर सकते हैं और अपने बैकअप रिडंडेंसी विकल्प बना सकते हैं; या तो स्थानीय रूप से निरर्थक (स्थानीय क्षेत्र) या भू-अनावश्यक (एक अलग क्षेत्र पर)। Azure आपको वह अनुमानित लागत प्रदान करेगा जो आपसे एक महीने के लिए ली जाएगी। नीचे एक नमूना स्क्रीनशॉट देखें:

ध्यान रखें कि भू-अनावश्यक बैकअप विकल्प केवल सामान्य प्रयोजन पर उपलब्ध हैं और मेमोरी ऑप्टिमाइज्ड प्रकार के कंप्यूट नोड्स। यह एक बेसिक कंप्यूट नोड पर उपलब्ध नहीं है, लेकिन आप स्थानीय क्षेत्र (यानी उपलब्ध उपलब्धता क्षेत्रों के भीतर) में अपना अतिरेक प्राप्त कर सकते हैं।

एक बार जब आप एक मास्टर सेटअप कर लेते हैं, तो MySQL सर्वर के लिए Azure डेटाबेस पर जाकर एक प्रतिकृति बनाना आसान होता है → अपना MyQL उदाहरण → प्रतिकृति → चुनें और प्रतिकृति जोड़ें पर क्लिक करें। आपकी प्रतिकृति को स्रोत के रूप में इस्तेमाल किया जा सकता है या जरूरत पड़ने पर लक्ष्य को बहाल किया जा सकता है।

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

एक बैकअप से MySQL के लिए अपने Azure डेटाबेस को पुनर्स्थापित करना

Azure पोर्टल का उपयोग करके पुनर्स्थापित करना बहुत आसान और त्वरित है। आप बस अपने MySQL इंस्टेंस नोड के साथ रिस्टोर बटन को हिट कर सकते हैं और यूआई का अनुसरण कर सकते हैं जैसा कि नीचे स्क्रीनशॉट में दिखाया गया है:

तब आप एक समयावधि का चयन कर सकते हैं और एक नया उदाहरण बना सकते हैं या उत्पन्न कर सकते हैं कैप्चर किए गए इस बैकअप के आधार पर:

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

CALL mysql.az_replication_change_master('<master_host>', '<master_user>', '<master_password>', 3306, '<master_log_file>', <master_log_pos>, '<master_ssl_ca>');

कहां,

master_host:मास्टर सर्वर का होस्टनाम

master_user:मास्टर सर्वर के लिए उपयोगकर्ता नाम

मास्टर_पासवर्ड:मास्टर सर्वर के लिए पासवर्ड

master_log_file:चल रहे शो मास्टर स्थिति से बाइनरी लॉग फ़ाइल नाम

master_log_pos:चल रहे शो मास्टर स्थिति से बाइनरी लॉग स्थिति

master_ssl_ca:CA प्रमाणपत्र का संदर्भ। यदि एसएसएल का उपयोग नहीं कर रहे हैं, तो खाली स्ट्रिंग में पास करें।

फिर MySQL थ्रेड्स शुरू करना इस प्रकार है,

CALL mysql.az_replication_start;

या आप प्रतिकृति थ्रेड्स को निम्नानुसार रोक सकते हैं,

CALL mysql.az_replication_stop;

या आप मास्टर को इस रूप में हटा सकते हैं,

CALL mysql.az_replication_remove_master;

या SQL थ्रेड त्रुटियों को इस रूप में छोड़ दें,

CALL mysql.az_replication_skip_counter;

जैसा कि पहले उल्लेख किया गया है, जब एक MySQL उदाहरण के तहत प्रतिकृति जोड़ें सुविधा के तहत Microsoft Azure का उपयोग करके एक प्रतिकृति बनाई जाती है, तो ये विशिष्ट संग्रहीत कार्यविधियाँ उपलब्ध नहीं होती हैं। हालाँकि, mysql.az_replication_restart प्रक्रिया उपलब्ध होगी क्योंकि आपको Azure द्वारा प्रबंधित प्रतिकृति के प्रतिकृति थ्रेड को रोकने या प्रारंभ करने की अनुमति नहीं है। तो हमारे पास ऊपर दिया गया उदाहरण एक मास्टर से पुनर्स्थापित किया गया था जो मास्टर की पूरी प्रतिलिपि लेता है लेकिन एक एकल नोड के रूप में कार्य करता है और मौजूदा मास्टर की प्रतिकृति होने के लिए मैन्युअल सेटअप की आवश्यकता होती है।

इसके अतिरिक्त, जब आपके पास एक मैनुअल प्रतिकृति है जिसे आपने सेटअप किया है, तो आप इसे MySQL सर्वर के लिए Azure डेटाबेस के अंतर्गत नहीं देख पाएंगे → अपने MyQL उदाहरण का चयन करें → प्रतिकृति जब से आपने प्रतिकृति को मैन्युअल रूप से बनाया या सेटअप किया है ।

वैकल्पिक क्लाउड और बैकअप समाधान पुनर्स्थापित करें

ऐसे कुछ परिदृश्य हैं जहां आप क्लाउड में अपने MySQL डेटाबेस का पूर्ण बैकअप लेते समय पूर्ण-पहुंच प्राप्त करना चाहते हैं। ऐसा करने के लिए आप अपनी स्वयं की स्क्रिप्ट बना सकते हैं या ओपन-सोर्स तकनीकों का उपयोग कर सकते हैं। इनके साथ आप नियंत्रित कर सकते हैं कि आपके MySQL डेटाबेस में डेटा का बैकअप कैसे लिया जाना चाहिए और इसे कैसे संग्रहीत किया जाना चाहिए।

आप अपना कस्टम ऑटोमेशन बनाने के लिए Azure कमांड लाइन इंटरफेस (CLI) का भी लाभ उठा सकते हैं। उदाहरण के लिए, आप Azure CLI के साथ निम्न कमांड का उपयोग करके एक स्नैपशॉट बना सकते हैं:

az snapshot create  -g myResourceGroup -source "$osDiskId" --name osDisk-backup

या निम्न कमांड के साथ अपना MySQL सर्वर रेप्लिका बनाएं:

az mysql server replica create --name mydemoreplicaserver --source-server mydemoserver --resource-group myresourcegroup

वैकल्पिक रूप से, आप एक ऐसे एंटरप्राइज़ टूल का भी लाभ उठा सकते हैं जो पुनर्स्थापना विकल्पों के साथ आपका बैकअप लेने के तरीके पेश करता है। ओपन-सोर्स तकनीकों या तृतीय पक्ष टूल का उपयोग करने के लिए अपने स्वयं के कार्यान्वयन का लाभ उठाने और बनाने के लिए ज्ञान और कौशल की आवश्यकता होती है। यहां वह सूची है जिसका आप लाभ उठा सकते हैं:

  • क्लस्टर नियंत्रण - हालांकि हम थोड़े पक्षपाती हो सकते हैं, क्लस्टरकंट्रोल युद्ध-परीक्षण, ओपन-सोर्स तकनीकों (पीएक्सबी, मारियाबैकअप, और मायडम्पर) का उपयोग करके आपके MySQL डेटाबेस के भौतिक और तार्किक बैकअप को प्रबंधित करने की क्षमता प्रदान करता है। यह MySQL, Percona, MariaDB, Galera डेटाबेस को सपोर्ट करता है। आप आसानी से हमारी बैकअप नीति बना सकते हैं और अपने डेटाबेस बैकअप को किसी भी क्लाउड (AWS, GCP, या Azure) पर संग्रहीत कर सकते हैं, कृपया ध्यान दें कि ClusterControl के मुफ़्त संस्करण में बैकअप सुविधाएँ शामिल नहीं हैं।
  • LVM स्नैपशॉट - आप अपने लॉजिकल वॉल्यूम का स्नैपशॉट लेने के लिए LVM का उपयोग कर सकते हैं। यह केवल आपके VM के लिए लागू है क्योंकि इसके लिए ब्लॉक-स्तरीय संग्रहण तक पहुंच की आवश्यकता होती है। इस उपकरण का उपयोग करने के लिए चेतावनी की आवश्यकता होती है क्योंकि यह आपके डेटाबेस नोड को बैकअप के चलने के दौरान अनुत्तरदायी बना सकता है।
  • पेरकोना एक्स्ट्रा बैकअप (पीएक्सबी) - Percona की एक ओपन सोर्स तकनीक। पीएक्सबी के साथ, आप अपने MySQL डेटाबेस की एक भौतिक बैकअप प्रतिलिपि बना सकते हैं। आप InnoDB स्टोरेज इंजन के लिए PXB के साथ हॉट-बैकअप भी कर सकते हैं, लेकिन इसे स्लेव या गैर-व्यस्त MySQL db सर्वर पर चलाने की अनुशंसा की जाती है। यह केवल आपके VM इंस्टेंस के लिए लागू होता है क्योंकि इसके लिए डेटाबेस सर्वर के लिए बाइनरी या फ़ाइल एक्सेस की आवश्यकता होती है।
  • मारियाबैकअप - पीएक्सबी के साथ ही, यह एक ओपन-सोर्स तकनीक है जिसे पीएक्सबी से फोर्क किया गया है लेकिन मारियाडीबी द्वारा बनाए रखा गया है। विशेष रूप से, यदि आपका डेटाबेस मारियाडीबी का उपयोग कर रहा है, तो आपको टेबलस्पेस के साथ असंगति के मुद्दों से बचने के लिए मारियाबैकअप का उपयोग करना चाहिए।
  • mydumper/myloader - ये बैकअप टूल आपके MySQL डेटाबेस की लॉजिकल बैकअप कॉपी बनाता है। आप MySQL के लिए अपने Azure डेटाबेस के साथ इसका उपयोग कर सकते हैं, हालांकि मैंने यह कोशिश नहीं की है कि यह आपके बैकअप और पुनर्स्थापना प्रक्रिया के लिए कितना सफल है।
  • mysqldump - यह एक तार्किक बैकअप उपकरण है जो बहुत उपयोगी होता है जब आपको किसी विशिष्ट तालिका या डेटाबेस को बैकअप और डंप (या पुनर्स्थापित) करने की आवश्यकता होती है। यह आमतौर पर डीबीए द्वारा उपयोग किया जाता है, लेकिन आपको अपने डिस्क स्थान पर ध्यान देने की आवश्यकता है क्योंकि भौतिक बैकअप की तुलना में तार्किक बैकअप प्रतियां बहुत बड़ी हैं।
  • MySQL एंटरप्राइज़ बैकअप - यह लिनक्स, विंडोज, मैक और सोलारिस सहित कई प्लेटफार्मों पर गर्म, ऑनलाइन, गैर-अवरुद्ध बैकअप प्रदान करता है। यह एक मुफ़्त बैकअप टूल नहीं है, लेकिन बहुत सारी सुविधाएँ प्रदान करता है।
  • rsync - यह एक तेज़ और असाधारण रूप से बहुमुखी फ़ाइल प्रतिलिपि उपकरण है। यह स्थानीय रूप से, किसी अन्य होस्ट से/किसी दूरस्थ शेल पर, या दूरस्थ rsync डेमॉन से/में कॉपी कर सकता है। यह बड़ी संख्या में विकल्प प्रदान करता है जो इसके व्यवहार के हर पहलू को नियंत्रित करते हैं और प्रतिलिपि बनाने के लिए फाइलों के सेट के बहुत लचीले विनिर्देश की अनुमति देते हैं। अधिकतर Linux सिस्टम में, rsync OS पैकेज के हिस्से के रूप में स्थापित किया जाता है।

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. WAMP स्थानीय नेटवर्क 403 निषिद्ध पर एक्सेस नहीं कर सकता

  2. MySQL 5.1 से ईमेल कैसे भेजें

  3. AWS RDS MySQL में धीमी क्वेरी लॉग को कैसे सक्षम करें

  4. Mysql के साथ अंतिम डाली गई आईडी पुनर्प्राप्त करें

  5. मैं पायथन में एक MySQL डेटाबेस से कैसे जुड़ सकता हूँ?