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

- Google Cloud Console खोलें और सबसे ऊपर दाईं ओर मौजूद टूलबार पर, Cloud Shell आइकॉन पर क्लिक करें.Cloud Shell को इनमें से किसी भी तरीके से खोला जा सकता है:
- अगर Google Cloud Console का इस्तेमाल किया जा रहा है, तो G और फिर S दबाएं.
- इस लिंक पर क्लिक करें.
आम तौर पर, एनवायरमेंट को चालू करने और उससे कनेक्ट होने में कुछ समय लगता है. यह प्रोसेस पूरी होने के बाद, आपको कुछ ऐसा दिखेगा:
{: width="624"}
3. Compute Engine VM बनाना
इस सेक्शन में, gcloud कमांड-लाइन टूल का इस्तेमाल करके, एक Compute Engine (GCE) वर्चुअल मशीन (वीएम) बनाई जाती है. आपने Rocky Linux 9 इमेज का इस्तेमाल किया हो. यह AlloyDB Omni RPM के साथ पूरी तरह से काम करती है.
- अपने प्रोजेक्ट आईडी, वर्चुअल मशीन के नाम, मशीन टाइप, ज़ोन, और क्षेत्र के लिए एनवायरमेंट वैरिएबल तय करें.
export PROJECT="your-project-id" export INSTANCE_NAME="alloydb-omni-pgbackrest" export MACHINE_TYPE="e2-standard-4" 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 - Rocky Linux 9 और 20 जीबी के बैलेंस किए गए परसिस्टेंट डिस्क के साथ Compute Engine VM इंस्टेंस बनाएं. बेहतर सुरक्षा के लिए,
--no-addressफ़्लैग का इस्तेमाल करें, ताकि वीएम को सार्वजनिक आईपी पता असाइन न किया जाए.gcloud compute instances create $INSTANCE_NAME \ --project=$PROJECT \ --zone=$ZONE \ --machine-type=$MACHINE_TYPE \ --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. S3 के साथ काम करने वाला ऑब्जेक्ट स्टोरेज सेट अप करना
इस सेक्शन में, आपको अपने वीएम से कनेक्ट करना होगा. साथ ही, एनवायरमेंट तैयार करना होगा. इसके अलावा, आपको बैकअप बकेट को होस्ट करने के लिए, S3 के साथ काम करने वाला लोकल ऑब्जेक्ट स्टोरेज सर्वर (�) और S3 क्लाइंट (�) सेट अप करना होगा.miniomc
- Identity-Aware Proxy (IAP) का इस्तेमाल करके, एसएसएच के ज़रिए वीएम से कनेक्ट करें. वीएम के पास सार्वजनिक आईपी पता नहीं है. इसलिए,
gcloud, SSH कनेक्शन को IAP के ज़रिए अपने-आप टनल कर देगा.gcloud compute ssh $INSTANCE_NAME --zone=$ZONE --project=$PROJECT --tunnel-through-iap policycoreutils-python-utilsपैकेज इंस्टॉल करें, ताकि ज़रूरत पड़ने पर बाद में SELinux नीति को कॉन्फ़िगर किया जा सके.sudo dnf install -y policycoreutils-python-utils- S3 के साथ काम करने वाले सर्वर बाइनरी (
minio) को डाउनलोड करें.curl -L -o minio \ https://github.com/minio/minio/releases/download/RELEASE.2024-05-10T01-41-38Z/minio.linux-amd64.RELEASE.2024-05-10T01-41-38Z chmod +x minio sudo mv minio /usr/local/bin/ - ऑब्जेक्ट स्टोरेज सर्वर के लिए डेटा डायरेक्ट्री बनाएं.
sudo mkdir -p /var/lib/s3-storage/data - उदाहरण के क्रेडेंशियल का इस्तेमाल करके, S3 के साथ काम करने वाले सर्वर को बैकग्राउंड में शुरू करें. ध्यान दें कि सीक्रेट कुंजी कम से कम आठ वर्णों की होनी चाहिए.
export MINIO_ROOT_USER="s3admin" export MINIO_ROOT_PASSWORD="s3password" nohup sudo env MINIO_ROOT_USER="$MINIO_ROOT_USER" \ MINIO_ROOT_PASSWORD="$MINIO_ROOT_PASSWORD" \ /usr/local/bin/minio server /var/lib/s3-storage/data \ --console-address ":9001" \ > s3-server.log 2>&1 & - पुष्टि करें कि S3 के साथ काम करने वाला सर्वर चालू हो.
ps aux | grep minio - बकेट मैनेज करने के लिए, S3 क्लाइंट (
mc) डाउनलोड और इंस्टॉल करें.curl -L -o mc \ https://github.com/minio/mc/releases/download/RELEASE.2024-05-09T17-04-24Z/mc.linux-amd64.RELEASE.2024-05-09T17-04-24Z chmod +x mc sudo mv mc /usr/local/bin/ - S3 क्लाइंट के एलियास (
s3repo) को कॉन्फ़िगर करें औरalloydb-backupsनाम की बकेट बनाएं.mc alias set s3repo http://localhost:9000 s3admin s3password mc mb s3repo/alloydb-backups
5. AlloyDB Omni इंस्टॉल करना
इस सेक्शन में, AlloyDB Omni को इंस्टॉल और कॉन्फ़िगर किया जाता है.
- डेटा डायरेक्ट्री, AlloyDB Omni रिपॉज़िटरी के यूआरएल, और PostgreSQL
postgresएडमिन उपयोगकर्ता के लिए मज़बूत पासवर्ड के लिए, वीएम पर एनवायरमेंट वैरिएबल तय करें. यूआरएल को उस यूआरएल से बदलें जो आपको साइन अप फ़ॉर्म से मिला है. ध्यान दें: इस कोडलैब में, कमांड लाइन पर एनवायरमेंट वैरिएबल (जैसे,export PGDATA="/var/lib/alloydbomni" export ALLOYDB_OMNI_REPOSITORY_URL="..." export PGPASSWORD="YourStrongPassword123!"PGPASSWORD=$PGPASSWORD) का इस्तेमाल करके पासवर्ड पास करने की सुविधा दी गई है.इससे कोडलैब को आसानी से समझा जा सकता है. हालांकि, इससे प्रोसेस लिस्टिंग में पासवर्ड दिख सकता है. प्रोडक्शन में, ज़्यादा सुरक्षित तरीकों का इस्तेमाल करें. जैसे,.pgpassफ़ाइल या सीक्रेट मैनेजर. - डेटा डायरेक्ट्री बनाएं. AlloyDB Omni, डेटाबेस फ़ाइलों को इसी डायरेक्ट्री में सेव करेगा.
sudo mkdir -p $PGDATA - डेटाबेस कॉन्फ़िगरेशन फ़ाइल बनाकर, अपनी वर्चुअल मशीन (वीएम) पर YUM डेटाबेस कॉन्फ़िगर करें.
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 - AlloyDB Omni डेटाबेस इंस्टेंस शुरू करें.
sudo PGPASSWORD=$PGPASSWORD PGDATA=$PGDATA /usr/lib/postgresql/18/bin/alloydbomni18-setup initdb - स्टैंडर्ड कोडलैब के तरीकों के मुताबिक, सेटअप को आसान बनाने के लिए, SELinux के एनफ़ोर्सिंग मोड को कुछ समय के लिए बंद करें.
sudo setenforce 0 - AlloyDB Omni डेटाबेस इंस्टेंस तैयार करें.
sudo PGPASSWORD=$PGPASSWORD PGDATA=$PGDATA /usr/lib/postgresql/18/bin/alloydbomni18-setup preparedb - AlloyDB Omni
systemdसेवा चालू करें और इसका इस्तेमाल शुरू करें.sudo systemctl enable alloydbomni18 sudo systemctl start alloydbomni18 - पुष्टि करें कि AlloyDB Omni सेवा चालू है और सही तरीके से काम कर रही है.
sudo systemctl status alloydbomni18
6. pgBackRest को कॉन्फ़िगर करना
इस सेक्शन में, AlloyDB Omni की सामान्य रिपॉज़िटरी से pgBackRest इंस्टॉल करने के बारे में बताया गया है. साथ ही, इसमें /etc/pgbackrest/pgbackrest.conf को कॉन्फ़िगर करने के बारे में बताया गया है, ताकि S3 के साथ काम करने वाले ऑब्जेक्ट स्टोरेज बकेट का इस्तेमाल बैकअप रिपॉज़िटरी के तौर पर किया जा सके. इसमें AlloyDB Omni में WAL आर्काइविंग को चालू करने के बारे में भी बताया गया है.
- AlloyDB Omni के सामान्य रिपॉज़िटरी यूआरएल के लिए, वीएम पर एक एनवायरमेंट वैरिएबल तय करें. यूआरएल को उस यूआरएल से बदलें जो आपको साइन अप फ़ॉर्म से मिला है.
export ALLOYDB_OMNI_COMMON_REPOSITORY_URL="..." - pgBackRest YUM रिपॉज़िटरी को कॉन्फ़िगर करें और
pgbackrest-2.58.0इंस्टॉल करें.sudo tee /etc/yum.repos.d/pgbackrest.repo <<EOF [pgbackrest] name=Google Alloydb Omni Orchestrator baseurl=$ALLOYDB_OMNI_COMMON_REPOSITORY_URL enabled=1 repo_gpgcheck=0 gpgcheck=0 gpgkey=https://dl.google.com/linux/linux_signing_key.pub EOF sudo dnf install -y pgbackrest-2.58.0 - pgBackRest के लिए स्पूल और लॉग डायरेक्ट्री बनाएं. साथ ही,
postgresउपयोगकर्ता को मालिकाना हक असाइन करें.sudo mkdir -p /var/log/pgbackrest sudo mkdir -p /var/lib/pgbackrest sudo chown -R postgres:postgres /var/log/pgbackrest sudo chown -R postgres:postgres /var/lib/pgbackrest /etc/pgbackrest/pgbackrest.confबनाएं और फ़ाइलों के लिए अनुमतियां कॉन्फ़िगर करें.sudo mkdir -p /etc/pgbackrest/conf.d sudo tee /etc/pgbackrest/pgbackrest.conf <<EOF [global] spool-path=/var/lib/pgbackrest lock-path=/var/lib/pgbackrest # S3 Repository details repo1-type=s3 repo1-s3-endpoint=http://localhost:9000 repo1-s3-bucket=alloydb-backups repo1-s3-key=s3admin repo1-s3-key-secret=s3password repo1-s3-region=us-east-1 repo1-s3-uri-style=path repo1-path=/pgbackrest # Retention policy repo1-retention-full=3 repo1-retention-full-type=count repo1-retention-diff=16 # Force immediate checkpoint during backup start start-fast=y # Logging log-path=/var/log/pgbackrest log-level-console=info log-level-file=info # Compression compress-type=zst # Asynchronous WAL archiving archive-async=y archive-push-queue-max=1024MB archive-get-queue-max=256MB archive-missing-retry=y [global:archive-push] process-max=2 [global:archive-get] process-max=2 [omni] pg1-user=postgres pg1-socket-path=/tmp pg1-path=$PGDATA EOF sudo chown postgres:postgres /etc/pgbackrest/pgbackrest.conf sudo chmod 640 /etc/pgbackrest/pgbackrest.conf- pgBackRest स्टैंज़ा को
postgresउपयोगकर्ता के तौर पर शुरू करें. पुष्टि करें कि आउटपुट मेंsudo -u postgres pgbackrest --stanza=omni stanza-createstanza-create command end: completed successfullyदिख रहा है. psqlका इस्तेमाल करके, AlloyDB Omni के डेटा को संग्रहित करने से जुड़े पैरामीटर कॉन्फ़िगर करें.sudo -u postgres /usr/lib/postgresql/18/bin/psql \ -c "ALTER SYSTEM SET archive_mode = 'on';" \ -c "ALTER SYSTEM SET archive_command = 'pgbackrest --stanza=omni archive-push %p';" \ -c "ALTER SYSTEM SET wal_level = 'replica';" \ -c "ALTER SYSTEM SET max_wal_senders = 10;"- आर्काइव करने से जुड़े बदलावों को लागू करने के लिए, AlloyDB Omni सेवा को रीस्टार्ट करें.
sudo systemctl restart alloydbomni18 - pgBackRest कॉन्फ़िगरेशन की इंटिग्रिटी और कनेक्टिविटी की पुष्टि करें.
पुष्टि करें कि आउटपुट मेंsudo -u postgres pgbackrest --stanza=omni checkcheck command end: completed successfullyदिख रहा है.
7. बैकअप लेना
इस सेक्शन में, S3 के साथ काम करने वाले ऑब्जेक्ट स्टोरेज में, AlloyDB Omni डेटाबेस का पूरा बैकअप और डिफ़रेंशियल बैकअप लेने के लिए, pgBackRest का इस्तेमाल किया जाता है.
pgbackrestका इस्तेमाल करके, पूरा बैकअप ट्रिगर करें.sudo -u postgres pgbackrest \ --stanza=omni \ --type=full backuppgbackrestका इस्तेमाल करके, डिफ़रेंशियल बैकअप ट्रिगर करें. ध्यान दें: बैकअप के अन्य टाइप मेंsudo -u postgres pgbackrest \ --stanza=omni \ --type=diff backupincr(इंक्रीमेंटल) शामिल है.
8. बैकअप की सूची देखना और उनकी पुष्टि करना
इस सेक्शन में, बैकअप की सूची बनाएं और पुष्टि करें कि वे सही तरीके से पूरे हो गए हैं.
pgbackrest infoकमांड का इस्तेमाल करके, बैकअप की सूची बनाएं. पुष्टि करें कि आउटपुट में,sudo -u postgres pgbackrest \ --stanza=omni infostatus: okके साथ-साथ हर उस बैकअप कमांड के लिए बैकअप की जानकारी दिख रही हो जिसे आपने लागू किया है:- पूरा बैकअप:
full backup:(उदाहरण के लिए,F 20260908-093545F) - डिफ़ बैकअप:
diff backup:(उदाहरण के लिए,F_ D 20260908-093545F_20260908-094016D)
- पूरा बैकअप:
- S3 क्लाइंट (
mc) का इस्तेमाल करके, बकेट में सेव की गई बैकअप फ़ाइलों की पुष्टि करें. आपको आउटपुट मेंmc ls s3repo/alloydb-backups/pgbackrest/backup,archive, औरstanza.infoदिखना चाहिए.
9. बैकअप से डेटा वापस लाना
इस सेक्शन में, AlloyDB Omni डेटाबेस सेवा को बंद करने और pgbackrest का इस्तेमाल करके किसी खास बैकअप से डेटा वापस लाने के बारे में बताया गया है.
चेतावनी: डेटाबेस को वापस लाने पर, आपका डेटाबेस बंद हो जाता है. साथ ही, डेटाबेस का सारा डेटा बदल जाता है.
- उस बैकअप आईडी के लिए एनवायरमेंट वैरिएबल तय करें जिससे आपको डेटा वापस लाना है. वैल्यू को
pgbackrest infoआउटपुट में दिखाए गए बैकअप आईडी से बदलें.export BACKUPID="20260908-093545F" - AlloyDB Omni सेवा को बंद करें और पुष्टि करें कि यह बंद है.
पुष्टि करें कि आउटपुट मेंsudo systemctl stop alloydbomni18 sudo systemctl status alloydbomni18Active: inactiveदिख रहा है. - चुने गए बैकअप से डेटाबेस को वापस लाने के लिए,
pgbackrest restoreको--deltaविकल्प के साथ चलाएं. पुष्टि करें कि आउटपुट मेंsudo -u postgres pgbackrest \ --stanza=omni \ --set=$BACKUPID \ --delta restorerestore command end: completed successfullyदिख रहा है. - AlloyDB Omni सेवा शुरू करें और पुष्टि करें कि यह चालू है और काम कर रही है.
पुष्टि करें कि आउटपुट मेंsudo systemctl start alloydbomni18 sudo systemctl status alloydbomni18Active: active (running)दिख रहा है.
10. क्लीनअप और सर्वे
कोडलैब पूरा करने के बाद, Google Cloud के संसाधनों को मिटाया जा सकता है. इससे, आपको अनचाहे शुल्क से बचने में मदद मिलेगी.
- अपने लोकल Cloud Shell टर्मिनल पर वापस जाने के लिए, वीएम पर एसएसएच सेशन से डिसकनेक्ट करें.
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 गेटवे और Cloud Router को मिटाएं.
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
11. बधाई हो
कोडलैब पूरा करने के लिए बधाई! आपने S3 के साथ काम करने वाले ऑब्जेक्ट स्टोरेज का इस्तेमाल करके, AlloyDB Omni के आरपीएम डिप्लॉयमेंट का बैक अप लेने और उसे वापस लाने के लिए, pgBackRest को कॉन्फ़िगर कर लिया है.
हमने क्या-क्या बताया
- AlloyDB Omni RPM के लिए Compute Engine वीएम को सेट अप करने का तरीका.
- S3 के साथ काम करने वाले ऑब्जेक्ट स्टोरेज बकेट को सेट अप करने का तरीका.
- S3 के साथ काम करने वाली रिपॉज़िटरी के साथ pgBackRest को कॉन्फ़िगर करने का तरीका.
- फ़ुल और डिफ़रेंशियल बैकअप लेने, उनकी सूची बनाने, और उनकी पुष्टि करने का तरीका.
- pgBackRest का इस्तेमाल करके, बैकअप से डेटा वापस लाने का तरीका.
ज़्यादा जानकारी के लिए, AlloyDB Omni की खास जानकारी देखें.