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

अपने MySQL के स्वचालित परिनियोजन या बैकअप से क्लस्टर पोस्टग्रेज

ClusterControl 1.7.1 बैकअप से क्रिएट क्लस्टर नामक एक नई सुविधा का परिचय देता है, जो आपको एक नया MySQL या पोस्टग्रेज-आधारित क्लस्टर तैनात करने और बैकअप से डेटा को पुनर्स्थापित करने की अनुमति देता है। यह ब्लॉग पोस्ट दिखाता है कि यह नई सुविधा कैसे काम करती है, और इस प्रकार का स्वचालन आपके बुनियादी ढांचे के संचालन में सुधार कैसे कर सकता है।

पेश है:बैकअप से क्लस्टर बनाएं

बैकअप प्रबंधन हमारे उपयोगकर्ताओं द्वारा सबसे पसंदीदा विशेषता है, और हमने इसे अगले स्तर तक ले लिया है। यह नई कार्यक्षमता सरल लगती है - ClusterControl 1.7.1 मौजूदा बैकअप से एक नया क्लस्टर परिनियोजित करने में सक्षम है। हालांकि, बैकअप से सीधे प्रोडक्शन-ग्रेड क्लस्टर को परिनियोजित करने के लिए कई प्रक्रियाएं और जांच शामिल हैं। बहाली स्वयं अपनी चुनौतियों के साथ आती है, जैसे:

  • पूर्ण या आंशिक पुनर्स्थापना परिणाम
  • आधार बैकअप और इसके वृद्धिशील बैकअप आदेश (वृद्धिशील बैकअप के लिए)
  • बैकअप डिक्रिप्शन (यदि एन्क्रिप्ट किया गया हो)
  • पुनर्स्थापन उपकरण विकल्प
  • डीकंप्रेसन (यदि संपीड़ित हो)
  • स्रोत से गंतव्य सर्वर पर स्ट्रीमिंग का बैकअप लें
  • पुनर्स्थापन के दौरान और बाद में डिस्क स्थान का उपयोग
  • पुनर्स्थापन प्रगति रिपोर्टिंग

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

कदम मूल रूप से सरल हैं:

  1. ClusterControl नोड से पासवर्ड रहित SSH को नए सर्वर पर सेटअप करें।
  2. बैकअप सूची से एक तार्किक बैकअप चुनें, या बैकअप -> बैकअप बनाएं के अंतर्गत एक बनाएं ।
  3. क्लिक करें पुनर्स्थापित करें -> बैकअप से क्लस्टर बनाएं और परिनियोजन विज़ार्ड का पालन करें।

यह सुविधा फिलहाल विशेष रूप से MySQL Galera Cluster और PostgreSQL के लिए बनाई गई है। मौजूदा बैकअप पर "पुनर्स्थापित करें" पर क्लिक करने के बाद आप UI में जो देखेंगे वह यहां दिया गया है:

नीचे का विकल्प वह है जिसे हम ढूंढ रहे हैं। अगला, परिनियोजन कॉन्फ़िगरेशन से पहले चुने गए बैकअप पर सारांश संवाद है:

इसके बाद, संबंधित क्लस्टर (MySQL Galera Cluster या PostgreSQL) के लिए समान डेटाबेस क्लस्टर परिनियोजन विज़ार्ड एक नए क्लस्टर को कॉन्फ़िगर करने के लिए दिखाया जाएगा:

ध्यान दें कि आपको वही डेटाबेस रूट/व्यवस्थापक उपयोगकर्ता नाम और पासवर्ड निर्दिष्ट करना होगा जो आपके पास बैकअप में है। अन्यथा, पहले नोड को प्रारंभ करते समय परिनियोजन आधे रास्ते में विफल हो जाएगा। सामान्य तौर पर, बहाली और परिनियोजन प्रक्रियाएं निम्नलिखित क्रम में होंगी:

  1. सभी डेटाबेस नोड्स पर आवश्यक सॉफ़्टवेयर और निर्भरता स्थापित करें।
  2. पहला नोड प्रारंभ करें।
  3. पहले नोड पर बैकअप स्ट्रीम करें और पुनर्स्थापित करें (ऑटो-रिस्टार्ट फ़्लैग के साथ)।
  4. बाकी नोड्स को कॉन्फ़िगर करें और जोड़ें।

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

आप इससे क्या हासिल कर सकते हैं?

इस सुविधा से आप कई चीजों का लाभ उठा सकते हैं, जैसा कि निम्नलिखित अनुभागों में बताया गया है।

विभिन्न परिस्थितियों में अपने डेटासेट का परीक्षण करें

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

एक साधारण उदाहरण के लिए, MySQL 5.6 और MySQL 5.7 के बीच DDL निष्पादन में एक बड़ा सुधार हुआ है। 10 मिलियन रो टेबल पर निम्नलिखित DROP ऑपरेशन यह सब साबित करता है:

mysql-5.7> ALTER TABLE sbtest1 DROP COLUMN xx;
Query OK, 0 rows affected (1 min 58.12 sec)
mysql-5.6> ALTER TABLE sbtest1 DROP COLUMN xx;
Query OK, 0 rows affected (2 min 23.74 sec)

तुलना करने के लिए एक और क्लस्टर होने से वास्तव में हमें सुधार को मापने और माइग्रेशन को सही ठहराने की अनुमति मिलती है।

तार्किक बैकअप के साथ डेटाबेस माइग्रेशन

तार्किक बैकअप जैसे mysqldump और pg_dumpall अपने डेटा को एक संस्करण या विक्रेता से दूसरे संस्करण में अपग्रेड, डाउनग्रेड या माइग्रेट करने का सबसे सुरक्षित तरीका है। डेटाबेस माइग्रेशन करने के लिए सभी लॉजिकल बैकअप का उपयोग किया जा सकता है। डेटाबेस अपग्रेड चरण मूल रूप से सरल हैं:

  1. एक तार्किक बैकअप बनाएं (या शेड्यूल करें) - MySQL के लिए mysqldump या PostgreSQL के लिए pg_dumpall
  2. ClusterControl नोड से पासवर्ड रहित SSH को नए सर्वर पर सेटअप करें।
  3. बैकअप सूची से एक बनाया गया तार्किक बैकअप चुनें।
  4. क्लिक करें पुनर्स्थापित करें -> बैकअप से क्लस्टर बनाएं और परिनियोजन विज़ार्ड का पालन करें।
  5. नए क्लस्टर पर डेटा बहाली की पुष्टि करें।
  6. अपने आवेदन को नए क्लस्टर की ओर इंगित करें।

कुल क्लस्टर पुनर्प्राप्ति का तेज़ समय

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

$ s9s cluster \
--create \
--cluster-type=postgresql \
--nodes="192.168.0.101?master;192.168.0.102?slave;192.168.0.103?slave" \
--provider-version=11 \
--db-admin=postgres \
--db-admin-passwd='s3cr3tP455' \
--os-user=root \
--os-key-file=/root/.ssh/id_rsa \
--cluster-name="PostgreSQL 9.6 - Test"
--backup-id=214 \
--log

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

एसिंक्रोनस प्रतिकृति के माध्यम से स्केल आउट करें

MySQL गैलेरा क्लस्टर के लिए, नव निर्मित क्लस्टर को MySQL एसिंक्रोनस प्रतिकृति के माध्यम से बढ़ाया जा सकता है। मान लें कि हमने डेटा सेंटर में उत्पादन क्लस्टर से नवीनतम बैकअप के आधार पर कार्यालय में एक नया क्लस्टर पहले ही बहाल कर दिया है, और हम चाहते हैं कि कार्यालय क्लस्टर उत्पादन क्लस्टर से प्रतिकृति जारी रखे, जैसा कि निम्नलिखित आरेख में दिखाया गया है:

फिर आप निम्न तरीके से एसिंक्रोनस प्रतिकृति लिंक सेट कर सकते हैं:

  1. उत्पादन में एक नोड चुनें और बाइनरी लॉगिंग सक्षम करें (यदि अक्षम हो)। नोड्स पर जाएँ -> नोड चुनें -> नोड क्रियाएँ -> बाइनरी लॉगिंग सक्षम करें।

  2. कार्यालय क्लस्टर के लिए सभी नोड्स पर बाइनरी लॉगिंग सक्षम करें। इस क्रिया के लिए एक रोलिंग पुनरारंभ की आवश्यकता होती है जो "स्वतः पुनरारंभ नोड" ड्रॉपडाउन के अंतर्गत "हां" चुनने पर स्वचालित रूप से निष्पादित हो जाएगी:

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

  3. प्रबंधित करें -> स्कीमा और उपयोगकर्ता -> उपयोगकर्ता -> नया उपयोगकर्ता बनाएं:

    . का उपयोग करके उत्पादन क्लस्टर पर एक प्रतिकृति उपयोगकर्ता बनाएं
  4. फिर, उत्पादन क्लस्टर में मास्टर नोड को दोहराने के लिए एक नोड चुनें और प्रतिकृति लिंक सेट करें:

    mysql> CHANGE MASTER master_host = 'prod-mysql1', master_user = 'slave', master_password = 'slavepassw0rd', master_auto_position = 1;
    mysql> START SLAVE;
  5. सत्यापित करें कि क्या प्रतिकृति चल रही है:

    mysql> SHOW SLAVE STATUS\G
    सुनिश्चित करें कि स्लेव_आईओ_थ्रेड और स्लेव_एसक्यूएल_थ्रेड 'हां' की रिपोर्ट कर रहे हैं। यदि कार्यालय पिछड़ रहा है तो कार्यालय के क्लस्टर को मास्टर नोड के साथ पकड़ना शुरू कर देना चाहिए।

अभी लोगों के लिए बस इतना ही!


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Neo4j - Cypher . का उपयोग करके एक नोड बनाएं

  2. 'तारीख जोड़ा' के लिए अमान्य डिफ़ॉल्ट मान

  3. उबंटू पर MySQL 8 कैसे स्थापित करें

  4. MySQL डायनेमिक-पिवट

  5. SQL DELETE सिंटैक्स - DBMS द्वारा सूचीबद्ध