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

PostgreSQL v13 क्लस्टरकंट्रोल के साथ परिनियोजन और स्केलिंग 1.8.2

PostgreSQL उन डेटाबेसों में से एक है जिसे MySQL, MariaDB और MongoDB के साथ ClusterControl के माध्यम से तैनात किया जा सकता है। ClusterControl न केवल डेटाबेस क्लस्टर के परिनियोजन को सरल करता है, बल्कि आपके एप्लिकेशन के बढ़ने और उस कार्यक्षमता की आवश्यकता के मामले में स्केलेबिलिटी के लिए एक फ़ंक्शन है।

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

यूजर इंटरफेस (यूआई) परिनियोजन

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

पहला कदम है कि आप अपने ClusterControl में लॉग इन करें और डिप्लॉय पर क्लिक करें:

आपको परिनियोजन के अगले चरण के लिए नीचे स्क्रीनशॉट के साथ प्रस्तुत किया जाएगा , जारी रखने के लिए PostgreSQL टैब चुनें:

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

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

फोटो लेखकफोटो विवरण

यहां हमें या तो होस्टनाम का उपयोग करने वाले सर्वर को परिभाषित करने की आवश्यकता है या आईपी ​​​​पता, जैसे इस मामले में 1 मास्टर और 2 दास। अंतिम चरण हमारे क्लस्टर के लिए प्रतिकृति मोड चुनना है।

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

डिप्लॉयमेंट में सामान्य रूप से कुछ मिनट लगेंगे, प्रदर्शन ज्यादातर पर निर्भर करता है नेटवर्क और सर्वर की विशिष्टता।

अब जबकि हमारे पास ClusterControl GUI का उपयोग करके PostgreSQL v13 स्थापित है, जो काफी सरल है। ।

कमांड लाइन इंटरफेस (CLI) PostgreSQL परिनियोजन

उपरोक्त से, हम देख सकते हैं कि वेब UI का उपयोग करके परिनियोजन बहुत सरल है। महत्वपूर्ण नोट यह है कि तैनाती से पहले सभी नोड्स में पासवर्ड रहित एसएसएच कनेक्शन होना चाहिए। इस खंड में, हम यह देखने जा रहे हैं कि ClusterControl CLI या "s9s" टूल कमांड लाइन का उपयोग करके कैसे परिनियोजित किया जाए।

हमने माना है कि इससे पहले ClusterControl स्थापित किया गया है, आइए ssh-keygen जनरेट करके शुरू करें। ClusterControl नोड में, निम्न कमांड चलाएँ:

$ whoami
root
$ ssh-keygen -t rsa # generate the SSH key for the user
$ ssh-copy-id 10.10.40.11 # pg node1
$ ssh-copy-id 10.10.40.12 # pg node2
$ ssh-copy-id 10.10.40.13 # pg node3

उपरोक्त सभी कमांड सफलतापूर्वक चलने के बाद, हम निम्नलिखित कमांड का उपयोग करके पासवर्ड रहित कनेक्शन को सत्यापित कर सकते हैं:

$ ssh 10.10.40.11 "whoami" # make sure can ssh without password

यदि उपरोक्त आदेश सफलतापूर्वक चलता है, तो क्लस्टर परिनियोजन को ClusterControl सर्वर से कमांड की निम्न पंक्ति का उपयोग करके प्रारंभ किया जा सकता है:

$  s9s cluster --create --cluster-type=postgresql --nodes="10.10.40.11?master;10.10.40.12?slave;10.10.40.13?slave" --provider-version='13' --db-admin="postgres" --db-admin-passwd="[email protected]$$W0rd" --cluster-name=PGCluster --os-user=root --os-key-file=/root/.ssh/id_rsa --log

उपरोक्त कमांड चलाने के ठीक बाद, आपको कुछ ऐसा दिखाई देगा जिसका अर्थ है कि कार्य चलना शुरू हो गया है:

3 डेटा नोड पर क्लस्टर बनाया जाएगा।

कार्य पैरामीटर सत्यापित करना।

10.10.40.11: Checking ssh/sudo with credentials ssh_cred_job_6656.
10.10.40.12: Checking ssh/sudo with credentials ssh_cred_job_6656.
10.10.40.13: Checking ssh/sudo with credentials ssh_cred_job_6656.
…
…
This will take a few moments and the following message will be displayed once the cluster is deployed:
…
…
Directory is '/etc/cmon.d'.
Filename is 'cmon_1.cnf'.
Configuration written to 'cmon_1.cnf'.
Sending SIGHUP to the controller process.
Waiting until the initial cluster starts up.
Cluster 1 is running.
Registering the cluster on the web UI.
Waiting until the initial cluster starts up.
Cluster 1 is running.
Generated & set RPC authentication token.

आप अपने द्वारा बनाए गए उपयोगकर्ता नाम का उपयोग करके वेब कंसोल में लॉग इन करके भी इसे सत्यापित कर सकते हैं। अब हमारे पास 3 नोड्स का उपयोग करके तैनात एक PostgreSQL क्लस्टर है। यदि आप ऊपर परिनियोजन आदेश के बारे में अधिक जानना चाहते हैं, तो यहां आपके लिए सबसे अच्छा संदर्भ है।

ClusterControl UI के साथ PostgreSQL का विस्तार करना

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

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

"प्रतिकृति स्लेव जोड़ें" पर क्लिक करने के बाद, आपको निम्न पृष्ठ दिखाई देगा . आप अपनी स्थिति के आधार पर या तो "नया जोड़ें ..." या "आयात करें ..." चुन सकते हैं। इस उदाहरण में हम पहला विकल्प चुनेंगे:

आपके द्वारा इस पर क्लिक करने के बाद निम्न स्क्रीन प्रस्तुत की जाएगी:

फ़ोटो लेखकफ़ोटो विवरण
  • स्लेव होस्टनाम:नए स्लेव या नोड का होस्टनाम/आईपी पता

  • स्लेव पोर्ट:स्लेव का पोस्टग्रेएसक्यूएल पोर्ट, डिफ़ॉल्ट 5432 है

  • क्लस्टर का नाम:क्लस्टर का नाम, आप या तो इसे जोड़ सकते हैं या खाली छोड़ सकते हैं

  • डेटादिर के लिए पैकेज डिफ़ॉल्ट का उपयोग करें:यदि आप एक अलग स्थान चाहते हैं तो आप इस विकल्प को अनचेक कर सकते हैं दातादिर के लिए

  • PostgreSQL सॉफ़्टवेयर स्थापित करें:आप इस विकल्प को चेक किए हुए छोड़ सकते हैं

  • सिंक्रोनस प्रतिकृति:आप चुन सकते हैं कि आप इसमें किस प्रकार की प्रतिकृति चाहते हैं

  • LoadBalancer सेट में शामिल करें (यदि मौजूद है):यदि आपके पास क्लस्टर के लिए LoadBalancer कॉन्फ़िगर किया गया है तो इस विकल्प की जांच की जानी चाहिए

यहां महत्वपूर्ण महत्वपूर्ण नोट यह है कि इस सेटअप को चलाने से पहले आपको नए स्लेव होस्ट को पासवर्ड रहित होने के लिए कॉन्फ़िगर करने की आवश्यकता है। एक बार सब कुछ कन्फर्म हो जाने के बाद, हम सेटअप पूरा करने के लिए "फिनिश" बटन पर क्लिक कर सकते हैं। इस उदाहरण में, मैंने IP “10.10.40.140” जोड़ा है।

अब हम कार्य गतिविधि की निगरानी कर सकते हैं और सेटअप को पूरा होने दे सकते हैं। सेटअप की पुष्टि करने के लिए, हम नए दास को देखने के लिए "टोपोलॉजी" टैब पर जा सकते हैं:

ClusterControl CLI के साथ PostgreSQL का विस्तार करना

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

 $ s9s cluster --list --long
ID STATE   TYPE              OWNER GROUP  NAME      COMMENT
 1 STARTED postgresql_single admin admins PGCluster All nodes are operational.

इस उदाहरण में, हम देख सकते हैं कि क्लस्टर नाम "PGCluster" के लिए नोड आईडी "1" है। मौजूदा पोस्टग्रेएसक्यूएल क्लस्टर में एक नया नोड जोड़ने के तरीके पर पहला कमांड विकल्प देखें:

$  s9s cluster --add-node --cluster-id=1 --nodes="postgresql://10.10.40.141?slave" --log

लाइन के अंत में शॉर्टहैंड "--log" हमें यह देखने देगा कि नीचे दिए गए कमांड के बाद वर्तमान कार्य क्या चल रहा है:

Using SSH credentials from cluster.
Cluster ID is 1.
The username is 'root'.
Verifying job parameters.
Found a master candidate: 10.10.40.11:5432, adding 10.10.40.141:5432 as a slave.
Verifying job parameters.
10.10.40.11: Checking ssh/sudo with credentials ssh_cred_cluster_1_6245.
10.10.40.11:5432: Loading configuration file '/var/lib/pgsql/13/data/postgresql.conf'.
10.10.40.11:5432: wal_keep_segments is set to 0, increase this for safer replication.
…
…

अगला उपलब्ध कमांड जिसका आप उपयोग कर सकते हैं वह निम्न जैसा है:

$ s9s cluster --add-node --cluster-id=1 --nodes="postgresql://10.10.40.142?slave" --wait

क्लस्टर में नोड जोड़ें

\ Job  9 RUNNING    [▋         ]   5% Installing packages

ध्यान दें कि लाइन में "--wait" शॉर्टहैंड है और जो आउटपुट आप देखेंगे वह ऊपर के रूप में प्रदर्शित होगा। एक बार प्रक्रिया पूरी हो जाने पर, हम UI से क्लस्टर के "अवलोकन" टैब में नए नोड्स की पुष्टि कर सकते हैं:

निष्कर्ष

इस ब्लॉग पोस्ट में, हमने ClusterControl में PostgreSQL को स्केल करने के दो विकल्पों की समीक्षा की है। जैसा कि आप देख सकते हैं, क्लस्टरकंट्रोल के साथ PostgreSQL को स्केल करना आसान है। ClusterControl न केवल मापनीयता कर सकता है बल्कि आप अपने डेटाबेस क्लस्टर के लिए उच्च उपलब्धता सेटअप भी प्राप्त कर सकते हैं। HAProxy, PgBouncer के साथ-साथ Keepalived जैसी सुविधाएँ उपलब्ध हैं और जब भी आपको उन विकल्पों की आवश्यकता महसूस होती है, आपके क्लस्टर के लिए लागू होने के लिए तैयार हैं। ClusterControl के साथ, आपके डेटाबेस क्लस्टर को एक ही समय में प्रबंधित और मॉनिटर करना आसान है।

हमें उम्मीद है कि यह ब्लॉग पोस्ट आपके PostgreSQL सेटअप को बढ़ाने में आपका मार्गदर्शन करेगा।


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. जावा क्रॉसस्टैब - तैयार बयान क्वेरी

  2. Postgres में त्वरित यादृच्छिक पंक्ति चयन

  3. विंडोज़ के लिए अच्छा पोस्टग्रेस्क्ल क्लाइंट?

  4. डेबियन पर पोस्टग्रेज से पुराने डेटा को हटाने के लिए क्रॉन जॉब

  5. PostgreSQL में किसी अन्य तालिका के कॉलम के साथ तालिका के कॉलम को अपडेट करें