1. परिचय
इस कोडलैब में, AlloyDB Omni के अलग-अलग इंस्टेंस के बीच लॉजिकल रेप्लिकेशन को कॉन्फ़िगर करने का तरीका बताया गया है. आपको एक ही Compute Engine वीएम पर, AlloyDB Omni के कई इंस्टेंस डिप्लॉय करने होंगे. साथ ही, pglogical एक्सटेंशन का इस्तेमाल करके, उनके बीच रेप्लिकेशन सेट अप करना होगा.
एक नोड पर कई इंस्टेंस चलाने से, डेवलपमेंट, टेस्टिंग या रेप्लिकेशन एनवायरमेंट को सिम्युलेट करने में मदद मिलती है. इस कोडलैब के आखिर में, आपके पास रेप्लिकेशन का ऐसा सेटअप होगा जो काम कर रहा होगा. इसमें एक इंस्टेंस, प्रोवाइडर के तौर पर काम करेगा और दूसरा इंस्टेंस, सदस्य के तौर पर काम करेगा.
ज़रूरी शर्तें
- Google Cloud Console से, Google Cloud प्रोजेक्ट और Cloud Shell को ऐक्सेस करने की सुविधा.
- Google Cloud SDK (
gcloud) इंस्टॉल और कॉन्फ़िगर किया गया हो. gcloud इंस्टॉल करने के बारे में जानकारी के लिए, gcloud-install पर जाएं
आपको क्या सीखने को मिलेगा
gcloudका इस्तेमाल करके, एक से ज़्यादा AlloyDB Omni इंस्टेंस के लिए Compute Engine वीएम बनाने और उसे तैयार करने का तरीका.- AlloyDB Omni RPM इंस्टॉल करने का तरीका.
systemdटेंप्लेट का इस्तेमाल करके, AlloyDB Omni के एक से ज़्यादा इंस्टेंस को कॉन्फ़िगर और चालू करने का तरीका.pglogicalका इस्तेमाल करके, AlloyDB Omni इंस्टेंस के बीच लॉजिकल रेप्लिकेशन को कॉन्फ़िगर करने का तरीका.- डेटा को सेवा देने वाली कंपनी से सदस्य के तौर पर शामिल कंपनी में कॉपी करके, रेप्लिकेशन की पुष्टि करने का तरीका.
आपको किन चीज़ों की ज़रूरत होगी
- AlloyDB Omni RPM के लिए यूआरएल लिंक पाएं. लिंक आपके ईमेल पते पर भेजे जाते हैं. इनमें रिपॉज़िटरी यूआरएल सर्वर का लिंक भी शामिल होता है. इस एनवायरमेंट वैरिएबल को शुरू करें, ताकि कोडलैब के दौरान यूआरएल का इस्तेमाल किया जा सके.
export ALLOYDB_OMNI_REPOSITORY_URL="..." - Google Cloud का ऐक्सेस वाला टर्मिनल काम कर रहा हो. इसके लिए, Cloud Shell का इस्तेमाल किया जा सकता है.
2. सेटअप और ज़रूरी शर्तें
प्रोजेक्ट सेटअप करना
Google Cloud प्रोजेक्ट बनाना
- Google Cloud Console में, प्रोजेक्ट चुनने वाले पेज पर जाकर, Google Cloud प्रोजेक्ट चुनें या बनाएं.
- पक्का करें कि आपके Cloud प्रोजेक्ट के लिए बिलिंग की सुविधा चालू हो. किसी प्रोजेक्ट के लिए बिलिंग चालू है या नहीं, यह देखने का तरीका जानें.
Cloud Shell शुरू करना
लैपटॉप से Google Cloud को रिमोटली ऐक्सेस किया जा सकता है. हालांकि, इस कोडलैब में Google Cloud Shell का इस्तेमाल किया गया है. यह क्लाउड में चलने वाला कमांड-लाइन एनवायरमेंट है.

- Google Cloud Console खोलें और सबसे ऊपर दाईं ओर मौजूद टूलबार पर, Cloud Shell आइकॉन पर क्लिक करें.Cloud Shell को इनमें से किसी भी तरीके से खोला जा सकता है:
- अगर Google Cloud Console का इस्तेमाल किया जा रहा है, तो G और फिर S दबाएं.
- इस लिंक पर क्लिक करें.
Cloud Shell को चालू होने और एनवायरमेंट से कनेक्ट होने में आम तौर पर कुछ समय लगता है. यह कार्रवाई पूरी होने के बाद, आपको इससे मिलता-जुलता आउटपुट दिखेगा:

3. Compute Engine VM बनाना
इस सेक्शन में, gcloud कमांड-लाइन टूल का इस्तेमाल करके, एक Compute Engine वर्चुअल मशीन (वीएम) बनाएं. Rocky Linux 9 इमेज का इस्तेमाल करें. यह AlloyDB Omni RPM के साथ पूरी तरह से काम करती है.
- अपने प्रोजेक्ट आईडी, वीएम के नाम, ज़ोन, और क्षेत्र के लिए एनवायरमेंट वैरिएबल तय करें.
export PROJECT="your-project-id" export INSTANCE_NAME="alloydb-omni-multi-vm" export ZONE="us-central1-c" export REGION="us-central1" - अपने Google Cloud खाते का इस्तेमाल करके साइन इन करें और डिफ़ॉल्ट प्रोजेक्ट कॉन्फ़िगर करें.
gcloud auth login gcloud config set project $PROJECT - पहचान के बारे में जानकारी रखने वाली प्रॉक्सी (आईएपी) का इस्तेमाल करके, अपनी वीएम में एसएसएच कनेक्शन की अनुमति देने के लिए, फ़ायरवॉल का नियम बनाएं.
gcloud compute firewall-rules create allow-ssh-alloydb-omni \ --project=$PROJECT \ --direction=INGRESS \ --action=allow \ --rules=tcp:22 \ --source-ranges="0.0.0.0/0" - वीएम को सार्वजनिक आईपी पते के बिना बनाया गया है. इसलिए, Cloud Router और Cloud NAT गेटवे को कॉन्फ़िगर करें, ताकि वीएम बाहरी पैकेज रिपॉज़िटरी को ऐक्सेस कर सके और ज़रूरी सॉफ़्टवेयर डाउनलोड कर सके.
gcloud compute routers create alloydb-omni-router \ --project=$PROJECT \ --network=default \ --region=$REGION gcloud compute routers nats create alloydb-omni-nat \ --project=$PROJECT \ --router=alloydb-omni-router \ --region=$REGION \ --nat-all-subnet-ip-ranges \ --auto-allocate-nat-external-ips - पुष्टि करें कि आपके वर्चुअल प्राइवेट क्लाउड (वीपीसी) नेटवर्क में, मान्य डिफ़ॉल्ट इंटरनेट गेटवे रूट मौजूद हो. Cloud NAT को इंटरनेट पर आउटबाउंड ट्रैफ़िक फ़ॉरवर्ड करने के लिए, इस रूट की ज़रूरत होती है.
gcloud compute routes create default-internet-route \ --project=$PROJECT \ --network=default \ --destination-range=0.0.0.0/0 \ --next-hop-gateway=default-internet-gateway - ज़रूरी स्पेसिफ़िकेशन (16 वीसीपीयू, 20 जीबी बैलेंसड परसिस्टेंट डिस्क, Rocky Linux 9) के साथ Compute Engine वीएम इंस्टेंस बनाएं. बेहतर सुरक्षा के लिए,
--no-addressफ़्लैग का इस्तेमाल करें. इससे यह पक्का किया जा सकेगा कि वीएम को कोई सार्वजनिक आईपी पता असाइन न किया गया हो.gcloud compute instances create $INSTANCE_NAME \ --project=$PROJECT \ --zone=$ZONE \ --machine-type=n2-highmem-16 \ --image-family=rocky-linux-9 \ --image-project=rocky-linux-cloud \ --boot-disk-size=20GB \ --boot-disk-type=pd-balanced \ --no-address - वर्चुअल मशीन (वीएम) बनाने के बाद, वीएम के स्टेटस की पुष्टि करें.
gcloud compute instances list --filter="name=$INSTANCE_NAME" --project=$PROJECT
4. वीएम तैयार करना
इस सेक्शन में, आपको नई बनाई गई वीएम से कनेक्ट करना होगा. साथ ही, ऑपरेटिंग सिस्टम एनवायरमेंट को तैयार करना होगा.
- IAP का इस्तेमाल करके, एसएसएच के ज़रिए वीएम से कनेक्ट करें. वीएम के पास सार्वजनिक आईपी पता नहीं है. इसलिए,
gcloudएसएसएच कनेक्शन को आईएपी के ज़रिए अपने-आप टनल कर देता है.gcloud compute ssh $INSTANCE_NAME --zone=$ZONE --project=$PROJECT --tunnel-through-iap - बेस डेटा डायरेक्ट्री के लिए एनवायरमेंट वैरिएबल तय करें.
export BASE_PGDATA="/var/lib/alloydbomni" - बेस डेटा डायरेक्ट्री बनाएं.
sudo mkdir -p $BASE_PGDATA policycoreutils-python-utilsपैकेज इंस्टॉल करें, ताकि SELinux नीति को कॉन्फ़िगर किया जा सके.sudo dnf install -y policycoreutils-python-utils
5. AlloyDB Omni इंस्टॉल करना
वीएम तैयार होने के बाद, अब पैकेज रिपॉज़िटरी को कॉन्फ़िगर किया जा सकता है. साथ ही, AlloyDB Omni RPM पैकेज इंस्टॉल किया जा सकता है.
- डेटाबेस कॉन्फ़िगरेशन फ़ाइल बनाकर, अपनी वर्चुअल मशीन (वीएम) पर YUM डेटाबेस कॉन्फ़िगर करें.
$ALLOYDB_OMNI_REPOSITORY_URLको उस यूआरएल से बदलें जो आपको मिला है.export ALLOYDB_OMNI_REPOSITORY_URL="..." sudo tee /etc/yum.repos.d/alloydbomni.repo << EOF [alloydbomni] name=alloydbomni baseurl=$ALLOYDB_OMNI_REPOSITORY_URL enabled=1 repo_gpgcheck=0 gpgcheck=1 gpgkey=https://dl.google.com/linux/linux_signing_key.pub EOF - YUM कैश मेमोरी अपडेट करें.
sudo yum makecache - AlloyDB Omni के RPM पैकेज का वर्शन 18 इंस्टॉल करें.
sudo dnf install -y alloydbomni18
6. एक से ज़्यादा इंस्टेंस कॉन्फ़िगर करना
इस सेक्शन में, दो इंस्टेंस कॉन्फ़िगर करें: inst1 और inst2.
- एक से ज़्यादा इंस्टेंस के लिए,
systemdटेंप्लेट सेवा फ़ाइलalloydbomni18@.serviceबनाएं.sudo tee /etc/systemd/system/alloydbomni18@.service << EOF [Unit] Description=AlloyDB Omni Database server instance %I After=syslog.target After=network-online.target [Service] SyslogIdentifier=alloydbomni-%I Type=notify User=postgres Group=postgres # Load configuration for the instance EnvironmentFile=/etc/alloydbomni/%I.conf OOMScoreAdjust=-1000 Environment=PG_OOM_ADJUST_FILE=/proc/self/oom_score_adj Environment=PG_OOM_ADJUST_VALUE=0 ExecStartPre=/usr/lib/postgresql/18/bin/alloydbomni18-check-db-dir \${PGDATA} ExecStart=/usr/lib/postgresql/18/bin/postgres -D \${PGDATA} ExecReload=/bin/kill -HUP \$MAINPID KillMode=mixed KillSignal=SIGINT TimeoutSec=0 TimeoutStartSec=0 TimeoutStopSec=1h [Install] WantedBy=multi-user.target EOF - नई टेंप्लेट सेवा को पहचानने के लिए,
systemdमैनेजर कॉन्फ़िगरेशन को फिर से लोड करें.sudo systemctl daemon-reload - AlloyDB Omni इंस्टेंस के लिए कॉन्फ़िगरेशन डायरेक्ट्री बनाएं.
sudo mkdir -p /etc/alloydbomni inst1के लिए डेटा डायरेक्ट्री कॉन्फ़िगर करें.sudo tee /etc/alloydbomni/inst1.conf << EOF PGDATA=/var/lib/alloydbomni/inst1 EOFinst2के लिए डेटा डायरेक्ट्री कॉन्फ़िगर करें.sudo tee /etc/alloydbomni/inst2.conf << EOF PGDATA=/var/lib/alloydbomni/inst2 EOF- कॉन्फ़िगरेशन फ़ाइलों पर सही अनुमतियां सेट करें.
sudo chmod 640 /etc/alloydbomni/*.conf sudo chown postgres:postgres /etc/alloydbomni/*.conf - दोनों इंस्टेंस के लिए डेटा डायरेक्ट्री बनाएं और मालिकाना हक की सही जानकारी सेट करें.
sudo mkdir -p /var/lib/alloydbomni/inst1 sudo mkdir -p /var/lib/alloydbomni/inst2 sudo chown -R postgres:postgres /var/lib/alloydbomni sudo chmod 750 /var/lib/alloydbomni/inst1 /var/lib/alloydbomni/inst2 - ज़रूरी नहीं: हर इंस्टेंस के लिए संसाधन की सीमाएं सेट करें. इससे एक इंस्टेंस को सभी वीएम संसाधनों का इस्तेमाल करने से रोका जा सकता है. दोनों इंस्टेंस के लिए,
systemdओवरराइड डायरेक्ट्री और फ़ाइलें बनाएं.ध्यान दें: यहां दिए गए कॉन्फ़िगरेशन (40%) में इस्तेमाल की गई संसाधन सीमाएं, उदाहरण के तौर पर दी गई वैल्यू हैं. अपने वर्कलोड और वीएम की क्षमता के हिसाब से सीमाएं तय करें.inst1के लिए:sudo mkdir -p /etc/systemd/system/alloydbomni18@inst1.service.d sudo tee /etc/systemd/system/alloydbomni18@inst1.service.d/override.conf << EOF [Service] CPUQuota=40% MemoryMax=40% EOFinst2के लिए:sudo mkdir -p /etc/systemd/system/alloydbomni18@inst2.service.d sudo tee /etc/systemd/system/alloydbomni18@inst2.service.d/override.conf << EOF [Service] CPUQuota=40% MemoryMax=40% EOF
7. डेटाबेस को शुरू करना और तैयार करना
हर डेटाबेस इंस्टेंस को अलग-अलग तरीके से शुरू करें और तैयार करें.
- सेटअप के लिए, SELinux को नीति लागू न करने वाले मोड पर कॉन्फ़िगर करें.
चेतावनी: SELinux को नीति लागू न करने वाले मोड पर सेट करने से, नीति लागू करने की सुविधा बंद हो जाती है. इसलिए, इसका इस्तेमाल सावधानी से करना चाहिए. इस कोडलैब में, इसका इस्तेमाल इंस्टॉलेशन को आसान बनाने के लिए किया जाता है. प्रोडक्शन में, AlloyDB Omni को नीति लागू करने वाले मोड में चलाने के लिए, SELinux की सही नीतियां कॉन्फ़िगर करें. सेटअप करने के बाद,sudo setenforce 0sudo setenforce 1चलाकर नीति लागू करने की सुविधा को फिर से चालू किया जा सकता है. - PostgreSQL
postgresएडमिन उपयोगकर्ता के लिए एक मज़बूत पासवर्ड तय करें. इस पासवर्ड का इस्तेमाल, इस कोडलैब के दोनों इंस्टेंस के लिए किया जाता है. ध्यान दें: इस कोडलैब में, कमांड लाइन पर एनवायरमेंट वैरिएबल (जैसे,export PGPASSWORD="YourStrongPassword123!"PGPASSWORD=$PGPASSWORD) का इस्तेमाल करके पासवर्ड पास करने की सुविधा दी गई है.इससे कोडलैब को आसानी से समझा जा सकता है. हालांकि, इससे प्रोसेस लिस्टिंग में पासवर्ड दिख सकता है. प्रोडक्शन में, ज़्यादा सुरक्षित तरीकों का इस्तेमाल करें. जैसे,.pgpassफ़ाइल या सीक्रेट मैनेजर.
inst1 को सेट अप करें
inst1के लिए डेटाबेस डायरेक्ट्री शुरू करें.sudo PGPASSWORD=$PGPASSWORD \ PGDATA=/var/lib/alloydbomni/inst1 \ /usr/lib/postgresql/18/bin/alloydbomni18-setup initdbpostgresql.confफ़ाइल को अपडेट करके, इंस्टेंस को पोर्ट5433पर सुनने के लिए कॉन्फ़िगर करें.sudo sed -i \ "s/^#*[[:space:]]*port[[:space:]]*=[[:space:]]*[0-9]*/port = 5433/" \ /var/lib/alloydbomni/inst1/postgresql.conf- AlloyDB Omni के लिए डेटाबेस इंस्टेंस तैयार करें.
sudo PGPASSWORD=$PGPASSWORD \ PGDATA=/var/lib/alloydbomni/inst1 \ PGPORT=5433 \ /usr/lib/postgresql/18/bin/alloydbomni18-setup preparedb
inst2 सेट अप करना
inst2के लिए डेटाबेस डायरेक्ट्री शुरू करें.sudo PGPASSWORD=$PGPASSWORD \ PGDATA=/var/lib/alloydbomni/inst2 \ /usr/lib/postgresql/18/bin/alloydbomni18-setup initdb- पोर्ट
5434पर सुनने के लिए इंस्टेंस को कॉन्फ़िगर करें.sudo sed -i \ "s/^#*[[:space:]]*port[[:space:]]*=[[:space:]]*[0-9]*/port = 5434/" \ /var/lib/alloydbomni/inst2/postgresql.conf - डेटाबेस इंस्टेंस तैयार करें.
sudo PGPASSWORD=$PGPASSWORD \ PGDATA=/var/lib/alloydbomni/inst2 \ PGPORT=5434 \ /usr/lib/postgresql/18/bin/alloydbomni18-setup preparedb
8. AlloyDB Omni की सेवाएं शुरू करना
अब दोनों इंस्टेंस के लिए, systemd की सेवाएं शुरू की जा सकती हैं.
- नए कॉन्फ़िगरेशन और ओवरराइड को पहचानने के लिए,
systemdमैनेजर कॉन्फ़िगरेशन को फिर से लोड करें.sudo systemctl daemon-reload inst1के लिए सेवा चालू करें और इसका इस्तेमाल शुरू करें.sudo systemctl enable alloydbomni18@inst1 sudo systemctl start alloydbomni18@inst1inst2के लिए सेवा चालू करें और इसका इस्तेमाल शुरू करें.sudo systemctl enable alloydbomni18@inst2 sudo systemctl start alloydbomni18@inst2- पुष्टि करें कि दोनों सेवाएं चालू हों और काम कर रही हों.
पुष्टि करें कि दोनों के आउटपुट मेंsudo systemctl status alloydbomni18@inst1 sudo systemctl status alloydbomni18@inst2Active: active (running)दिख रहा हो.
9. AlloyDB Omni इंस्टेंस की पुष्टि करना
पुष्टि करें कि दोनों इंस्टेंस सही तरीके से काम कर रहे हों और एक-दूसरे से अलग हों.
inst1(पोर्ट 5433) से कनेक्ट करें. आपको वह पासवर्ड डालने के लिए कहा जाएगा जिसे आपने डेटाबेस को शुरू करने और तैयार करने के दौरान कॉन्फ़िगर किया था./usr/lib/postgresql/18/bin/psql -h localhost -p 5433 -U postgres -W- कनेक्शन की पुष्टि करने के लिए कोई क्वेरी चलाएं.
postgres=# SELECT version(); - इंस्टेंस से डिसकनेक्ट करें.
postgres=# \q inst2(पोर्ट 5434) से कनेक्ट करें./usr/lib/postgresql/18/bin/psql -h localhost -p 5434 -U postgres -W- कनेक्शन की पुष्टि करने के लिए कोई क्वेरी चलाएं.
postgres=# SELECT version(); - इंस्टेंस से डिसकनेक्ट करें.
postgres=# \q
10. pglogical रेप्लिकेशन के लिए कॉन्फ़िगर करना
pglogical एक्सटेंशन का इस्तेमाल करके, दोनों इंस्टेंस के बीच लॉजिकल रेप्लिकेशन कॉन्फ़िगर करें. इस उदाहरण में, inst1 सेवा देने वाली कंपनी के तौर पर काम करता है और inst2 सदस्य के तौर पर काम करता है.
ध्यान दें: यह कोडलैब, रेप्लिकेशन कनेक्शन के लिए postgres सुपरयूज़र का इस्तेमाल करता है. प्रोडक्शन एनवायरमेंट में, रेप्लिकेशन के लिए खास तौर पर एक उपयोगकर्ता बनाएं. उसे REPLICATION के अधिकार दें. साथ ही, उसे सिर्फ़ उन टेबल का ऐक्सेस दें जिन्हें रेप्लिकेट किया जा रहा है.
pglogical के लिए इंस्टेंस कॉन्फ़िगर करना
shared_preload_librariesमेंpglogicalचालू करें. साथ ही,inst1के लिएpostgresql.confमें अन्य रेप्लिकेशन पैरामीटर कॉन्फ़िगर करें.# Append pglogical to shared_preload_libraries sudo sed -i \ "s/\(shared_preload_libraries\s*=\s*'\)\([^']*\)'/\1\2,pglogical'/" \ /var/lib/alloydbomni/inst1/postgresql.conf # Append replication settings sudo tee -a /var/lib/alloydbomni/inst1/postgresql.conf << EOF wal_level = logical max_replication_slots = 10 max_wal_senders = 10 max_worker_processes = 20 track_commit_timestamp = on alloydb.enable_pglogical = on alloydb.logical_decoding = on EOFinst2के लिए वे सेटिंग कॉन्फ़िगर करें जो आपनेinst1के लिए कॉन्फ़िगर की थीं.# Append pglogical to shared_preload_libraries sudo sed -i \ "s/\(shared_preload_libraries\s*=\s*'\)\([^']*\)'/\1\2,pglogical'/" \ /var/lib/alloydbomni/inst2/postgresql.conf # Append replication settings sudo tee -a /var/lib/alloydbomni/inst2/postgresql.conf << EOF wal_level = logical max_replication_slots = 10 max_wal_senders = 10 max_worker_processes = 20 track_commit_timestamp = on alloydb.enable_pglogical = on alloydb.logical_decoding = on EOF- कॉन्फ़िगरेशन में किए गए बदलावों को लागू करने के लिए, दोनों इंस्टेंस रीस्टार्ट करें.
sudo systemctl restart alloydbomni18@inst1 sudo systemctl restart alloydbomni18@inst2
रेप्लिकेशन की भूमिकाएं और टेबल सेट अप करना
inst1(provider, port 5433) पर, रेप्लिकेशन की भूमिका और रेप्लिकेट की जाने वाली टेबल बनाएं./usr/lib/postgresql/18/bin/psql -h localhost -p 5433 \ -U postgres -d postgres -c " DO \$\$ BEGIN IF NOT EXISTS (SELECT FROM pg_catalog.pg_roles WHERE rolname = 'app_owner') THEN CREATE ROLE app_owner WITH LOGIN PASSWORD 'Password123'; END IF; END \$\$; GRANT ALL ON SCHEMA public TO app_owner; CREATE TABLE IF NOT EXISTS replication_test ( id SERIAL PRIMARY KEY, data TEXT, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); ALTER TABLE replication_test OWNER TO app_owner; "inst2(सदस्यता लेने वाला, पोर्ट 5434) पर, एक जैसी भूमिका और टेबल स्ट्रक्चर बनाएं./usr/lib/postgresql/18/bin/psql -h localhost -p 5434 \ -U postgres -d postgres -c " DO \$\$ BEGIN IF NOT EXISTS (SELECT FROM pg_catalog.pg_roles WHERE rolname = 'app_owner') THEN CREATE ROLE app_owner WITH LOGIN PASSWORD 'Password123'; END IF; END \$\$; GRANT ALL ON SCHEMA public TO app_owner; CREATE TABLE IF NOT EXISTS replication_test ( id SERIAL PRIMARY KEY, data TEXT, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); ALTER TABLE replication_test OWNER TO app_owner; "
pglogical नोड और सदस्यता कॉन्फ़िगर करना
inst1पर pglogical provider नोड को शुरू करें./usr/lib/postgresql/18/bin/psql -h localhost -p 5433 \ -U postgres -d postgres -c " CREATE EXTENSION IF NOT EXISTS pglogical; SELECT pglogical.create_node( node_name := 'provider', dsn := 'host=127.0.0.1 port=5433 dbname=postgres user=postgres password=YourStrongPassword123!' ); SELECT pglogical.replication_set_add_table('default', 'replication_test'); "- pglogical subscriber नोड को शुरू करें और
inst2पर सदस्यता बनाएं. ध्यान दें: सदस्यता बनाने के बाद, शुरुआती सिंक्रनाइज़ेशन पूरा होने में कुछ समय लग सकता है./usr/lib/postgresql/18/bin/psql -h localhost -p 5434 \ -U postgres -d postgres -c " CREATE EXTENSION IF NOT EXISTS pglogical; SELECT pglogical.create_node( node_name := 'subscriber', dsn := 'host=127.0.0.1 port=5434 dbname=postgres user=postgres password=YourStrongPassword123!' ); SELECT pglogical.create_subscription( subscription_name := 'test_subscription', provider_dsn := 'host=127.0.0.1 port=5433 dbname=postgres user=postgres password=YourStrongPassword123!' ); "
11. pglogical रेप्लिकेशन की पुष्टि करना
पुष्टि करें कि डेटा कॉपी करने की प्रोसेस सही तरीके से काम कर रही है. इसके लिए, सेवा देने वाली कंपनी के खाते में डेटा डालें और सेवा लेने वाली कंपनी के खाते में क्वेरी करें.
- पुष्टि करें कि सदस्यता चालू हो.
replicatingपर स्विच होने में कुछ सेकंड लग सकते हैं./usr/lib/postgresql/18/bin/psql -t -A -h localhost -p 5434 \ -U postgres -d postgres -c " SELECT status FROM pglogical.show_subscription_status() WHERE subscription_name = 'test_subscription'; " - जारी रखने से पहले, पुष्टि करें कि आउटपुट में
replicatingदिख रहा हो. - सेवा देने वाली कंपनी (
inst1) के लिए, जांच वाली लाइन डालें./usr/lib/postgresql/18/bin/psql -h localhost -p 5433 \ -U postgres -d postgres -c " INSERT INTO replication_test (data) VALUES ('Hello from replication provider!'); " - डेटा कॉपी हुआ है या नहीं, इसकी पुष्टि करने के लिए
inst2पर टेबल को क्वेरी करें. पुष्टि करें कि आपको/usr/lib/postgresql/18/bin/psql -h localhost -p 5434 \ -U postgres -d postgres -c "SELECT * FROM replication_test;"inst1पर डाली गई लाइन दिख रही है.
12. साफ़-सफ़ाई सेवा
संसाधन हटाएं. सबसे पहले, वीएम पर मौजूद AlloyDB Omni इंस्टेंस को बंद करें. इसके बाद, Google Cloud के संसाधनों को मिटाएं.
AlloyDB Omni इंस्टेंस मिटाना
वर्चुअल मशीन (वीएम) को मिटाने से पहले, AlloyDB Omni इंस्टेंस को क्लीन अप किया जा सकता है. इसके लिए, सेवाओं को बंद और बंद करें. साथ ही, उनके कॉन्फ़िगरेशन और डेटा को हटाएं.
inst1के लिए सेवा को बंद और बंद करें. साथ ही, इसका डेटा और कॉन्फ़िगरेशन हटाएं.sudo systemctl stop alloydbomni18@inst1 sudo systemctl disable alloydbomni18@inst1 sudo rm -rf /var/lib/alloydbomni/inst1 sudo rm -f /etc/alloydbomni/inst1.confinst2के लिए सेवा को बंद और बंद करें. साथ ही, इसका डेटा और कॉन्फ़िगरेशन हटाएं.sudo systemctl stop alloydbomni18@inst2 sudo systemctl disable alloydbomni18@inst2 sudo rm -rf /var/lib/alloydbomni/inst2 sudo rm -f /etc/alloydbomni/inst2.conf- systemd मैनेजर के कॉन्फ़िगरेशन को फिर से लोड करें और फ़ेल हुई यूनिट को रीसेट करें.
sudo systemctl daemon-reload sudo systemctl reset-failed
Google Cloud के संसाधनों को मिटाना
इंस्टेंस को क्लीन अप करने के बाद, Compute Engine वीएम और अन्य संसाधन मिटाएं.
- एसएसएच सेशन से डिसकनेक्ट करें.
exit - Compute Engine वीएम इंस्टेंस मिटाएं.
gcloud compute instances delete $INSTANCE_NAME --zone=$ZONE --project=$PROJECT --quiet - फ़ायरवॉल का नियम मिटाएं.
gcloud compute firewall-rules delete allow-ssh-alloydb-omni --project=$PROJECT --quiet - Cloud NAT और राऊटर को मिटाएं.
gcloud compute routers nats delete alloydb-omni-nat --router=alloydb-omni-router --region=$REGION --project=$PROJECT --quiet gcloud compute routers delete alloydb-omni-router --region=$REGION --project=$PROJECT --quiet - डिफ़ॉल्ट इंटरनेट रूट मिटाएं.
gcloud compute routes delete default-internet-route --project=$PROJECT --quiet
13. बधाई हो
आपने एक ही Compute Engine वीएम पर, AlloyDB Omni के कई इंस्टेंस को डिप्लॉय और कॉन्फ़िगर कर लिया है.
हमने क्या-क्या शामिल किया है
- Compute Engine वीएम को कैसे प्रोविज़न और तैयार करें.
- AlloyDB Omni RPM इंस्टॉल करने का तरीका.
- एक से ज़्यादा इंस्टेंस के लिए,
systemdटेंप्लेट कॉन्फ़िगर करने का तरीका. - अलग-अलग पोर्ट पर कई स्वतंत्र सेवाओं को शुरू करने, कॉन्फ़िगर करने, और शुरू करने का तरीका.
- हर इंस्टेंस की स्वतंत्रता की पुष्टि कैसे करें.
ज़्यादा जानें
- इंस्टॉल करने और कॉन्फ़िगर करने के बारे में ज़्यादा जानने के लिए, AlloyDB Omni का दस्तावेज़ देखें.
- इस कोडलैब में इस्तेमाल किए गए रेप्लिकेशन एक्सटेंशन के बारे में ज़्यादा जानने के लिए, pglogical का दस्तावेज़ देखें.