النسخ المتماثل المنطقي باستخدام AlloyDB Omni

1. مقدمة

يوضّح هذا الدرس التطبيقي حول الترميز كيفية ضبط الإعدادات لتنفيذ عملية النسخ المتماثل المنطقي بين مثيلات AlloyDB Omni المستقلة. ستنشر نُسخًا متعددة من AlloyDB Omni على جهاز Compute Engine افتراضي واحد وتُعدّ عملية النسخ المتماثل بينها باستخدام الإضافة pglogical.

يُعدّ تشغيل نُسخ متعددة على عقدة واحدة مفيدًا في التطوير أو الاختبار أو محاكاة بيئات النسخ المتماثل. في نهاية هذا الدرس التطبيقي حول الترميز، سيكون لديك إعداد تكرار يعمل مع آلة افتراضية واحدة تعمل كموفّر وأخرى كمشترك.

المتطلبات الأساسية

  • الوصول إلى مشروع Google Cloud وCloud Shell من خلال Google Cloud Console
  • تم تثبيت Google Cloud SDK (gcloud) وإعداده. للحصول على تفاصيل حول تثبيت gcloud، يُرجى الرجوع إلى gcloud-install.

أهداف الدورة التعليمية

  • كيفية إنشاء جهاز Compute Engine الافتراضي وإعداده لعدة مثيلات من AlloyDB Omni باستخدام gcloud
  • كيفية تثبيت حِزم RPM في AlloyDB Omni
  • كيفية إعداد مثيلات AlloyDB Omni متعددة وتهيئتها باستخدام نماذج systemd
  • كيفية ضبط النسخ المتماثل المنطقي بين مثيلات AlloyDB Omni باستخدام pglogical
  • كيفية التحقّق من عملية النسخ المتماثل من خلال نسخ البيانات من مقدّم الخدمة إلى المشترك

المتطلبات

  • الحصول على رابط عنوان URL لحِزم AlloyDB Omni RPM يتم إرسال الروابط إلى بريدك الإلكتروني، بما في ذلك رابط إلى خادم عنوان URL الخاص بالمستودع. اضبط قيمة متغير البيئة التالي لإبقاء عنوان URL جاهزًا للاستخدام أثناء درس تطبيقي حول الترميز.
    export ALLOYDB_OMNI_REPOSITORY_URL="..."
    
  • جهاز طرفي يعمل مع إمكانية الوصول إلى Google Cloud يمكنك استخدام Cloud Shell لهذا الغرض.

2. الإعداد والمتطلبات

إعداد المشروع

إنشاء مشروع على Google Cloud

  1. في وحدة تحكّم Google Cloud، في صفحة اختيار المشروع، اختَر مشروع Google Cloud أو أنشِئه.
  2. تأكَّد من تفعيل الفوترة لمشروعك على Cloud. كيفية التحقّق من تفعيل الفوترة في مشروع

بدء Cloud Shell

على الرغم من إمكانية تشغيل Google Cloud عن بُعد من الكمبيوتر المحمول، ستستخدم في هذا الدرس التطبيقي حول الترميز Google Cloud Shell، وهي بيئة سطر أوامر تعمل في السحابة الإلكترونية.

رمز لتفعيل Cloud Shell

  1. افتح وحدة تحكّم Google Cloud وانقر على رمز Cloud Shell في شريط الأدوات أعلى يسار الصفحة.يمكنك أيضًا فتح Cloud Shell بإحدى الطرق التالية:

يستغرق توفير Cloud Shell والاتصال بالبيئة بضع لحظات عادةً. عند اكتمال هذه العملية، ستظهر لك نتيجة مشابهة لما يلي:

وحدة طرفية في Google Cloud Shell توضّح أنّه تم ربط البيئة

3- إنشاء جهاز Compute Engine الافتراضي

في هذا القسم، يمكنك إنشاء جهاز افتراضي واحد على Compute Engine باستخدام أداة سطر الأوامر gcloud. استخدِم صورة Rocky Linux 9 المتوافقة تمامًا مع حِزم AlloyDB Omni RPM.

  1. حدِّد متغيّرات البيئة لرقم تعريف مشروعك واسم الجهاز الافتراضي والمنطقة والبلد.
    export PROJECT="your-project-id"
    export INSTANCE_NAME="alloydb-omni-multi-vm"
    export ZONE="us-central1-c"
    export REGION="us-central1"
    
  2. سجِّل الدخول باستخدام حسابك على Google Cloud، واضبط المشروع التلقائي.
    gcloud auth login
    gcloud config set project $PROJECT
    
  3. للسماح باتصالات SSH بالجهاز الظاهري باستخدام خدمة Identity-Aware Proxy (IAP)، أنشئ قاعدة جدار حماية.
    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"
    
  4. بما أنّه يتم إنشاء الجهاز الافتراضي بدون عنوان IP عام، عليك إعداد Cloud Router وCloud NAT gateway للسماح للجهاز الافتراضي بالوصول إلى مستودعات الحِزم الخارجية وتنزيل البرامج المطلوبة.
    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
    
  5. تأكَّد من أنّ شبكة السحابة الإلكترونية الخاصة الافتراضية (VPC) تتضمّن مسارًا صالحًا لبوابة الإنترنت التلقائية. هذا المسار مطلوب لكي تتمكّن خدمة 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
    
  6. أنشئ مثيل الجهاز الافتراضي (VM) في Compute Engine بالمواصفات المطلوبة (16 وحدة معالجة مركزية افتراضية، وقرص دائم متوازن بسعة 20 غيغابايت، وRocky Linux 9). لتعزيز الأمان، استخدِم العلامة --no-address للتأكّد من عدم تخصيص عنوان IP عام للجهاز الظاهري.
    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
    
  7. بعد إنشاء الجهاز الظاهري، تحقَّق من حالته.
    gcloud compute instances list --filter="name=$INSTANCE_NAME" --project=$PROJECT
    

4. إعداد الجهاز الافتراضي

في هذا القسم، يمكنك الاتصال بالجهاز الافتراضي الذي أنشأته حديثًا وإعداد بيئة نظام التشغيل.

  1. اتّصِل بالجهاز الافتراضي عبر بروتوكول SSH باستخدام خدمة "الشراء داخل التطبيق". بما أنّ الجهاز الافتراضي ليس لديه عنوان IP عام، ينشئ gcloud تلقائيًا نفقًا لاتصال SSH من خلال IAP.
    gcloud compute ssh $INSTANCE_NAME --zone=$ZONE --project=$PROJECT --tunnel-through-iap
    
  2. تحديد متغيّر بيئة لدليل البيانات الأساسي
    export BASE_PGDATA="/var/lib/alloydbomni"
    
  3. أنشئ دليل البيانات الأساسي.
    sudo mkdir -p $BASE_PGDATA
    
  4. ثبِّت حزمة policycoreutils-python-utils حتى يمكن ضبط سياسة SELinux.
    sudo dnf install -y policycoreutils-python-utils
    

5- تثبيت AlloyDB Omni

بعد إعداد الجهاز الافتراضي، يمكنك الآن ضبط مستودع الحِزم وتثبيت حزمة AlloyDB Omni RPM.

  1. اضبط مستودع YUM على جهازك الافتراضي من خلال إنشاء ملف إعدادات المستودع. استبدِل $ALLOYDB_OMNI_REPOSITORY_URL بعنوان 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
    
  2. تعديل ذاكرة التخزين المؤقت YUM
    sudo yum makecache
    
  3. ثبِّت الإصدار 18 من حزمة AlloyDB Omni RPM.
    sudo dnf install -y alloydbomni18
    

6. إعداد مثيلات متعددة

في هذا القسم، اضبط مثيلَين: inst1 وinst2.

  1. لإتاحة مثيلات متعددة، أنشئ 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
    
  2. أعِد تحميل إعدادات مدير systemd للتعرّف على خدمة النموذج الجديدة.
    sudo systemctl daemon-reload
    
  3. أنشئ دليل الإعداد لآلات AlloyDB Omni الافتراضية.
    sudo mkdir -p /etc/alloydbomni
    
  4. اضبط دليل البيانات في inst1.
    sudo tee /etc/alloydbomni/inst1.conf << EOF
    PGDATA=/var/lib/alloydbomni/inst1
    EOF
    
  5. اضبط دليل البيانات في inst2.
    sudo tee /etc/alloydbomni/inst2.conf << EOF
    PGDATA=/var/lib/alloydbomni/inst2
    EOF
    
  6. اضبط الأذونات المناسبة على ملفات الإعداد.
    sudo chmod 640 /etc/alloydbomni/*.conf
    sudo chown postgres:postgres /etc/alloydbomni/*.conf
    
  7. أنشِئ أدلة البيانات لكلتا الآلتين الافتراضيتين واضبط الملكية الصحيحة.
    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
    
  8. اختياري: اضبط حدود الموارد لكل آلة افتراضية. يمنع ذلك إحدى الآلات الافتراضية من استهلاك جميع موارد الآلة الافتراضية. أنشئ 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%
    EOF
    
    بالنسبة إلى inst2:
    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. إعداد قواعد البيانات وتجهيزها

يجب تهيئة كل مثيل لقاعدة البيانات وإعداده بشكل منفصل.

  1. اضبط SELinux على الوضع المتساهل لإجراء عملية الإعداد.
    sudo setenforce 0
    
    تنبيه: يؤدي ضبط SELinux على وضع التساهل إلى إيقاف التنفيذ ويجب استخدامه بحذر. ويتم استخدامه في هذا الدرس التطبيقي لتبسيط عملية التثبيت. في مرحلة الإنتاج، اضبط سياسات SELinux المناسبة لتشغيل AlloyDB Omni في وضع التنفيذ. يمكنك إعادة تفعيل فرض القيود بعد الإعداد من خلال تنفيذ sudo setenforce 1.
  2. حدِّد كلمة مرور قوية لمستخدم المشرف postgres في PostgreSQL. يتم استخدام كلمة المرور هذه في كلتا الحالتين في هذا الدرس التطبيقي.
    export PGPASSWORD="YourStrongPassword123!"
    
    ملاحظة: يتم هنا تمرير كلمات المرور باستخدام متغيّرات البيئة في سطر الأوامر (مثل PGPASSWORD=$PGPASSWORD) لتبسيط عملية التدريب العملي، ولكن يمكن أن يؤدي ذلك إلى الكشف عن كلمة المرور في قوائم العمليات. في مرحلة الإنتاج، استخدِم طرقًا أكثر أمانًا، مثل ملف .pgpass أو أداة إدارة الأسرار.

إعداد inst1

  1. ابدأ إعداد دليل قاعدة البيانات لـ inst1.
    sudo PGPASSWORD=$PGPASSWORD \
      PGDATA=/var/lib/alloydbomni/inst1 \
      /usr/lib/postgresql/18/bin/alloydbomni18-setup initdb
    
  2. اضبط الجهاز الظاهري للاستماع على المنفذ 5433 من خلال تعديل ملف postgresql.conf.
    sudo sed -i \
      "s/^#*[[:space:]]*port[[:space:]]*=[[:space:]]*[0-9]*/port = 5433/" \
      /var/lib/alloydbomni/inst1/postgresql.conf
    
  3. جهِّز مثيل قاعدة البيانات لاستخدام AlloyDB Omni.
    sudo PGPASSWORD=$PGPASSWORD \
      PGDATA=/var/lib/alloydbomni/inst1 \
      PGPORT=5433 \
      /usr/lib/postgresql/18/bin/alloydbomni18-setup preparedb
    

إعداد inst2

  1. ابدأ إعداد دليل قاعدة البيانات لـ inst2.
    sudo PGPASSWORD=$PGPASSWORD \
      PGDATA=/var/lib/alloydbomni/inst2 \
      /usr/lib/postgresql/18/bin/alloydbomni18-setup initdb
    
  2. اضبط الجهاز الظاهري للاستماع على المنفذ 5434.
    sudo sed -i \
      "s/^#*[[:space:]]*port[[:space:]]*=[[:space:]]*[0-9]*/port = 5434/" \
      /var/lib/alloydbomni/inst2/postgresql.conf
    
  3. إعداد مثيل قاعدة البيانات
    sudo PGPASSWORD=$PGPASSWORD \
      PGDATA=/var/lib/alloydbomni/inst2 \
      PGPORT=5434 \
      /usr/lib/postgresql/18/bin/alloydbomni18-setup preparedb
    

8. بدء خدمات AlloyDB Omni

يمكنك الآن بدء خدمات systemd لكلتا الحالتين.

  1. للتعرّف على الإعدادات الجديدة وعمليات التجاوز، أعِد تحميل إعدادات أداة إدارة systemd.
    sudo systemctl daemon-reload
    
  2. فعِّل الخدمة وابدأها لـ "inst1".
    sudo systemctl enable alloydbomni18@inst1
    sudo systemctl start alloydbomni18@inst1
    
  3. فعِّل الخدمة وابدأها لـ "inst2".
    sudo systemctl enable alloydbomni18@inst2
    sudo systemctl start alloydbomni18@inst2
    
  4. تأكَّد من أنّ كلتا الخدمتَين نشطتَين وقيد التشغيل.
    sudo systemctl status alloydbomni18@inst1
    sudo systemctl status alloydbomni18@inst2
    
    تأكَّد من أنّ الناتج لكليهما يشير إلى Active: active (running).

9. التحقّق من آلات AlloyDB Omni الافتراضية

تأكَّد من أنّ كلتا الحالتين تعملان بشكلٍ صحيح ومستقل.

  1. اتّصِل بـ inst1 (المنفذ 5433). سيُطلب منك إدخال كلمة المرور التي أعددتها في تهيئة قواعد البيانات وإعدادها.
    /usr/lib/postgresql/18/bin/psql -h localhost -p 5433 -U postgres -W
    
  2. تشغيل طلب بحث للتحقّق من الربط
    postgres=# SELECT version();
    
  3. قطع الاتصال بالمثيل
    postgres=# \q
    
  4. اتّصِل بـ inst2 (المنفذ 5434).
    /usr/lib/postgresql/18/bin/psql -h localhost -p 5434 -U postgres -W
    
  5. تشغيل طلب بحث للتحقّق من الربط
    postgres=# SELECT version();
    
  6. قطع الاتصال بالمثيل
    postgres=# \q
    

10. إعداد النسخ المتماثل باستخدام pglogical

اضبط عملية النسخ المتطابق المنطقي بين مثيلَي قاعدة البيانات باستخدام الإضافة pglogical. في هذا السيناريو، يعمل inst1 كمقدّم خدمة ويعمل inst2 كمشترك.

ملاحظة: يستخدم هذا الدرس التطبيقي postgres superuser لاتصالات النسخ المتماثل. في بيئة التشغيل الفعلي، أنشئ مستخدمًا مخصّصًا للنسخ المتماثل لديه امتيازات REPLICATION، وامنحه إذن الوصول إلى الجداول التي يتم نسخها بشكل متماثل فقط.

ضبط مثيلات pglogical

  1. فعِّل pglogical في shared_preload_libraries واضبط مَعلمات النسخ المتماثل الأخرى في postgresql.conf لـ inst1.
    # 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
    EOF
    
  2. اضبط إعدادات inst2 التي ضبطتها في 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
    
  3. لتطبيق تغييرات الإعداد، أعِد تشغيل كلتا الآلتين الافتراضيتين.
    sudo systemctl restart alloydbomni18@inst1
    sudo systemctl restart alloydbomni18@inst2
    

إعداد أدوار وجداول النسخ المتماثل

  1. على inst1 (الموفّر، المنفذ 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;
    "
    
  2. على 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 والاشتراك

  1. ابدأ إعداد عقدة موفّر pglogical على inst1.
    /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');
    "
    
  2. ابدأ عُقدة المشترك في pglogical وأنشئ الاشتراك على 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

تأكَّد من أنّ عملية النسخ المتماثل تعمل على النحو المتوقّع من خلال إدراج البيانات في المزوّد والاستعلام عنها في المشترك.

  1. تأكَّد من أنّ الاشتراك نشط. قد يستغرق الانتقال إلى 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';
      "
    
  2. تأكَّد من أنّ الناتج يعرض replicating قبل المتابعة.
  3. أدرِج صفًا تجريبيًا في جدول موفّر الخدمة (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!');
    "
    
  4. للتأكّد من تكرار البيانات، استعلم عن الجدول في 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 من خلال إيقاف الخدمات وإيقافها، وإزالة إعداداتها وبياناتها.

  1. إيقاف الخدمة وتعطيلها لحساب inst1 وإزالة بياناتها وإعداداتها
    sudo systemctl stop alloydbomni18@inst1
    sudo systemctl disable alloydbomni18@inst1
    sudo rm -rf /var/lib/alloydbomni/inst1
    sudo rm -f /etc/alloydbomni/inst1.conf
    
  2. إيقاف الخدمة وتعطيلها لحساب inst2 وإزالة بياناتها وإعداداتها
    sudo systemctl stop alloydbomni18@inst2
    sudo systemctl disable alloydbomni18@inst2
    sudo rm -rf /var/lib/alloydbomni/inst2
    sudo rm -f /etc/alloydbomni/inst2.conf
    
  3. أعِد تحميل إعدادات مدير systemd وأعِد ضبط الوحدات التي تعذّر تحميلها.
    sudo systemctl daemon-reload
    sudo systemctl reset-failed
    

تنظيف موارد Google Cloud

بعد تنظيف المثيلات، احذف الجهاز الافتراضي على Compute Engine والموارد الأخرى.

  1. قطع الاتصال بجلسة SSH
    exit
    
  2. احذف آلة Compute Engine الافتراضية.
    gcloud compute instances delete $INSTANCE_NAME --zone=$ZONE --project=$PROJECT --quiet
    
  3. احذف قاعدة جدار الحماية.
    gcloud compute firewall-rules delete allow-ssh-alloydb-omni --project=$PROJECT --quiet
    
  4. احذف 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
    
  5. احذف مسار الإنترنت التلقائي.
    gcloud compute routes delete default-internet-route --project=$PROJECT --quiet
    

13. تهانينا

لقد نجحت في نشر وإعداد عدة مثيلات من AlloyDB Omni على جهاز Compute Engine افتراضي واحد.

المواضيع التي تناولناها

  • كيفية توفير جهاز Compute Engine الظاهري وإعداده
  • كيفية تثبيت حِزم RPM في AlloyDB Omni
  • كيفية ضبط نماذج systemd لعدة حالات
  • كيفية بدء خدمات مستقلة متعددة وإعدادها وتشغيلها على منافذ مختلفة
  • كيفية التحقّق من استقلالية كل مثيل

مزيد من المعلومات

  • راجِع مستندات AlloyDB Omni للحصول على مزيد من المعلومات حول التثبيت والإعداد.
  • للحصول على تفاصيل حول إضافة النسخ المتماثل المستخدَمة في هذا الدرس العملي، يُرجى الاطّلاع على مستندات pglogical.