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

PostgreSQL पर रिलीज टेस्ट को तेज करने के लिए ऑटोमेशन का उपयोग करना

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

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

क्लस्टर-टू-क्लस्टर प्रतिकृति

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

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

क्लस्टर-टू-क्लस्टर प्रतिकृति बनाना

ClusterControl UI से एक नया क्लस्टर-टू-क्लस्टर प्रतिकृति बनाने के लिए, ClusterControl पर जाएँ -> PostgreSQL क्लस्टर चुनें -> क्लस्टर क्रियाएँ -> स्लेव क्लस्टर बनाएँ।

स्लेव क्लस्टर मौजूदा प्राथमिक क्लस्टर से डेटा स्ट्रीम करके बनाया जाएगा।

आपको SSH क्रेडेंशियल और पोर्ट, अपने स्लेव क्लस्टर के लिए एक नाम निर्दिष्ट करना होगा, और यदि आप चाहते हैं कि ClusterControl आपके लिए संबंधित सॉफ़्टवेयर और कॉन्फ़िगरेशन स्थापित करे।

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

इस चरण में, आपको सर्वर को नए स्लेव क्लस्टर में जोड़ना होगा। इस कार्य के लिए, आप डेटाबेस नोड का IP पता या होस्टनाम दोनों दर्ज कर सकते हैं।

आप ClusterControl गतिविधि मॉनिटर में कार्य की स्थिति की निगरानी कर सकते हैं। कार्य समाप्त होने के बाद, आप क्लस्टर को मुख्य क्लस्टर नियंत्रण स्क्रीन में देख सकते हैं।

ClusterControl CLI

ClusterControl CLI, जिसे s9s के रूप में भी जाना जाता है, ClusterControl संस्करण 1.4.1 में क्लस्टर कंट्रोल सिस्टम का उपयोग करके डेटाबेस क्लस्टर्स को इंटरैक्ट करने, नियंत्रित करने और प्रबंधित करने के लिए एक कमांड-लाइन टूल है। ClusterControl CLI क्लस्टर ऑटोमेशन के लिए एक नया द्वार खोलता है जहां आप इसे मौजूदा परिनियोजन ऑटोमेशन टूल जैसे Ansible, Puppet, Chef, आदि के साथ आसानी से एकीकृत कर सकते हैं। आप इस ClusterControl टूल का उपयोग स्लेव क्लस्टर बनाने के लिए भी कर सकते हैं। आइए एक उदाहरण देखें:

$ s9s cluster --create --cluster-name=PostgreSQL1rep --cluster-type=postgresql --provider-version=13 --nodes="192.168.100.133"  --os-user=root --os-key-file=/root/.ssh/id_rsa --db-admin=admin --db-admin-passwd=********* --vendor=postgres --remote-cluster-id=14 --log

अब, उपयोग किए गए पैरामीटर को अधिक विवरण में देखते हैं:

  • क्लस्टर:क्लस्टर्स को सूचीबद्ध करने और उनमें हेरफेर करने के लिए।

  • बनाएं:एक नया क्लस्टर बनाएं और इंस्टॉल करें।

  • क्लस्टर-नाम:नए स्लेव क्लस्टर का नाम।

  • क्लस्टर-प्रकार:स्थापित करने के लिए क्लस्टर का प्रकार।

  • प्रदाता-संस्करण:सॉफ्टवेयर संस्करण।

  • नोड्स:स्लेव क्लस्टर में नए नोड्स की सूची।

  • Os-user:SSH कमांड के लिए यूजर नेम।

  • Os-key-file:SSH कनेक्शन के लिए उपयोग की जाने वाली कुंजी फ़ाइल।

  • Db-admin:डेटाबेस व्यवस्थापक उपयोगकर्ता नाम।

  • Db-admin-passwd:डेटाबेस व्यवस्थापक के लिए पासवर्ड।

  • रिमोट-क्लस्टर-आईडी:क्लस्टर-टू-क्लस्टर प्रतिकृति के लिए मास्टर क्लस्टर आईडी।

  • लॉग:जॉब संदेशों की प्रतीक्षा करें और उनकी निगरानी करें।

क्लस्टर-टू-क्लस्टर प्रतिकृति प्रबंधित करना

अब आपके पास आपका क्लस्टर-टू-क्लस्टर प्रतिकृति तैयार है और चल रहा है, इस टोपोलॉजी पर UI और CLI दोनों से ClusterControl का उपयोग करके प्रदर्शन करने के लिए अलग-अलग क्रियाएं हैं।

एक गुलाम समूह का पुनर्निर्माण

एक स्लेव क्लस्टर के पुनर्निर्माण के लिए, ClusterControl पर जाएं -> स्लेव क्लस्टर चुनें -> नोड्स -> नोड चुनें -> नोड क्रियाएँ -> प्रतिकृति स्लेव का पुनर्निर्माण करें।

ClusterControl निम्न चरणों का पालन करेगा:

  • PostgreSQL सर्वर बंद करें

  • इसके डेटादिर से सामग्री निकालें

  • pg_basebackup का उपयोग करके मास्टर से स्लेव तक बैकअप स्ट्रीम करें

  • गुलाम शुरू करें

आप ClusterControl सर्वर से निम्न कमांड का उपयोग करके एक स्लेव क्लस्टर का पुनर्निर्माण भी कर सकते हैं:

$ s9s replication --stage --master="192.168.100.125" --slave="192.168.100.133" --cluster-id=15 --remote-cluster-id=14 --log

पैरामीटर हैं:

  • प्रतिकृति:डेटा प्रतिकृति की निगरानी और नियंत्रण के लिए।

  • चरण:एक प्रतिकृति दास का चरण/पुनर्निर्माण।

  • मास्टर:मास्टर क्लस्टर में प्रतिकृति मास्टर।

  • दास:दास क्लस्टर में प्रतिकृति दास।

  • क्लस्टर-आईडी:स्लेव क्लस्टर आईडी।

  • रिमोट-क्लस्टर-आईडी:मास्टर क्लस्टर आईडी।

  • लॉग:जॉब संदेशों की प्रतीक्षा करें और उनकी निगरानी करें।

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

एक परीक्षण वातावरण बनाने का दूसरा तरीका है अपने प्राथमिक क्लस्टर के बैकअप से एक नया क्लस्टर बनाना। इसके लिए ClusterControl पर जाएं -> अपना PostgreSQL क्लस्टर चुनें -> बैकअप। वहां, सूची से पुनर्स्थापित करने के लिए बैकअप चुनें।

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

“बैकअप से क्लस्टर बनाएं” विकल्प चयनित बैकअप से एक नया PostgreSQL क्लस्टर बनाएगा।

नए क्लस्टर को परिनियोजित करने के लिए आपको OS और डेटाबेस क्रेडेंशियल और जानकारी जोड़ने की आवश्यकता है। जब यह कार्य समाप्त हो जाएगा, तो आप नए क्लस्टर को ClusterControl UI में देखेंगे।

स्टैंडअलोन होस्ट पर बैकअप पुनर्स्थापित करें

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

यहां आप निर्दिष्ट कर सकते हैं कि क्या आप चाहते हैं कि ClusterControl नए नोड में सॉफ़्टवेयर स्थापित करे, और फ़ायरवॉल या AppArmor/SELinux (OS के आधार पर) को अक्षम करें। आप नोड को ऊपर और चालू रख सकते हैं, या ClusterControl अगली पुनर्स्थापना कार्य तक डेटाबेस सेवा को बंद कर सकता है। जब यह समाप्त हो जाएगा, तो आप बैकअप सूची में एक टिक के साथ चिह्नित/पुनर्स्थापित/सत्यापित बैकअप देखेंगे।

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

स्वचालित क्लस्टर नियंत्रण बैकअप सत्यापन

ClusterControl में -> अपना PostgreSQL क्लस्टर चुनें -> बैकअप -> बैकअप बनाएं।

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

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

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

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

निष्कर्ष

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

जैसा कि आप देख सकते थे, 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. GraphQL और PostgreSQL को कैसे कनेक्ट करें

  2. क्या मैं Postgresql को लेन-देन में त्रुटियों को अनदेखा करने के लिए कह सकता हूँ?

  3. अस्थायी डेटाबेस डिज़ाइन, एक मोड़ के साथ (लाइव बनाम ड्राफ्ट पंक्तियाँ)

  4. Postgres-XL 9.5 . की दिशा में कार्य करना

  5. आपके PostgreSQL परिनियोजन में देखने के लिए 7 चीजें