Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> SQL

चरण-दर-चरण गाइड: CentOS 8 पर PostgreSQL 12 स्ट्रीमिंग रेप्लिकेशन सेटअप करना

PostgreSQL स्ट्रीमिंग रेप्लिकेशन प्राथमिक (मास्टर) नोड से स्टैंडबाय (स्लेव) नोड्स तक राइट-अहेड लॉग (WAL) डेटा को लगातार स्ट्रीम करता है, जिससे हाई उपलब्धता और फॉल्ट टॉलरेंस के लिए निकट-रीयल-टाइम डेटाबेस कॉपी बनती है।

मास्टर नोड कॉन्फ़िगरेशन

1. WAL आर्काइविंग सक्षम करें

postgresql.conf संपादित करें:

archive_mode = on
archive_command = 'cp %p /var/lib/pgsql/12/archive/%f'
wal_level = replica
max_wal_senders = 3

2. रेप्लिकेशन कनेक्शन की अनुमति दें

pg_hba.conf संपादित करें:

# TYPE DATABASE USER ADDRESS METHOD
host replication repluser 192.168.1.20/32 md5

3. रेप्लिकेशन उपयोगकर्ता बनाएं

CREATE ROLE repluser WITH REPLICATION LOGIN PASSWORD 'securepass';

इन परिवर्तनों के बाद मास्टर पर PostgreSQL पुनः आरंभ करें।

स्लेव नोड कॉन्फ़िगरेशन

1. मास्टर से बेस बैकअप

sudo -u postgres pg_basebackup -h master_ip -D /var/lib/pgsql/12/data -U repluser -P -R

2. recovery.conf कॉन्फ़िगर करें

/var/lib/pgsql/12/data/recovery.conf बनाएं:

standby_mode = 'on'
primary_conninfo = 'host=master_ip port=5432 user=repluser password=securepass'
restore_command = 'cp /var/lib/pgsql/12/archive/%f "%p"'

3. स्लेव शुरू करें

sudo systemctl start postgresql-12
sudo systemctl enable postgresql-12

रेप्लिकेशन सत्यापित करें

कनेक्टेड रेप्लिका जांचने के लिए मास्टर पर चलाएं:

SELECT client_addr, state, sync_state FROM pg_stat_replication;
client_addr | state | sync_state
----------------+-----------+------------
192.168.1.20 | streaming | async

मैनुअल फेलओवर

यदि मास्टर विफल होता है:

  • विफल मास्टर से रेप्लिकेशन डिस्कनेक्ट करें
  • स्लेव पर, recovery.conf में recovery_target_timeline = 'latest' सेट करें
  • प्रमोटेड स्लेव पर PostgreSQL पुनः आरंभ करें
  • pg_stat_replication का उपयोग करके अन्य स्लेव्स को नए मास्टर से कनेक्ट करें

निष्कर्ष

CentOS 8 पर PostgreSQL 12 स्ट्रीमिंग रेप्लिकेशन में मास्टर पर WAL आर्काइविंग और रेप्लिकेशन एक्सेस कॉन्फ़िगर करना, स्लेव पर बेस बैकअप और recovery.conf बनाना, फिर pg_stat_replication के साथ सत्यापित करना शामिल है। मैनुअल फेलओवर जरूरत पड़ने पर स्लेव को मास्टर में प्रमोट करता है।

  1. जावास्क्रिप्ट में लीनियर सर्च लागू करना जावास्क्रिप्ट में लीनियर सर्च लागू करना

    जावास्क्रिप्ट में लीनियर सर्च लागू करने के लिए निम्नलिखित कोड है: उदाहरण <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Docum

  1. HTML पेज में head टैग का उपयोग क्यों करते हैं? HTML पेज में head टैग का उपयोग क्यों करते हैं?

    परिचय <head> टैग HTML पेज में सभी हेड एलिमेंट्स के लिए एक कंटेनर है। <head>...</head> टैग जोड़ना काफी आसान है। इसके तहत दस्तावेज़ का शीर्षक जोड़ें या मेटा जानकारी, स्टाइल्स, स्क्रिप्ट्स, आदि। महत्वपूर्ण नोट <title>...</title> टैग्स <head>...</head> टैग्स क

  1. CSS में लेटर स्पेसिंग CSS में लेटर स्पेसिंग

    अक्षरों के बीच की जगह को CSS letter-spacing प्रॉपर्टी का उपयोग करके एडजस्ट किया जा सकता है। CSS letter-spacing प्रॉपर्टी का सिंटैक्स निम्नानुसार है: सिंटैक्स Selector {    letter-spacing: /*value*/ } निम्नलिखित उदाहरण CSS letter-spacing प्रॉपर्टी को दर्शाते हैं: उदाहरण <!DOCTYPE html>