שכפול לוגי עם AlloyDB Omni

1. מבוא

ב-Codelab הזה נסביר איך מגדירים שכפול לוגי בין מופעים עצמאיים של AlloyDB Omni. תפרסו כמה מופעים של AlloyDB Omni במכונת VM אחת של Compute Engine ותגדירו שכפול ביניהם באמצעות התוסף pglogical.

הפעלת כמה מופעים בצומת יחיד שימושית לפיתוח, לבדיקה או לסימולציה של סביבות שכפול. בסיום ה-Codelab, תהיה לכם הגדרת שכפול פעילה עם מופע אחד שפועל כספק ומופע אחר שפועל כמנוי.

דרישות מוקדמות

  • גישה לפרויקט ב-Google Cloud ול-Cloud Shell ממסוף Google Cloud.
  • ה-SDK של Google Cloud‏ (gcloud) מותקן ומוגדר. פרטים על התקנת gcloud זמינים במאמר gcloud-install.

מה תלמדו

  • איך יוצרים מכונה וירטואלית ב-Compute Engine ומכינים אותה למספר מופעים של AlloyDB Omni באמצעות gcloud.
  • איך מתקינים חבילות RPM של AlloyDB Omni.
  • איך מגדירים ומפעילים כמה מופעים של AlloyDB Omni באמצעות תבניות systemd.
  • איך מגדירים שכפול לוגי בין מופעים של AlloyDB Omni באמצעות pglogical.
  • איך מאמתים את השכפול על ידי שכפול נתונים מהספק למנוי.

הדרישות

  • קבלת קישור לכתובת URL של חבילות RPM של AlloyDB Omni. הקישורים נשלחים לאימייל שלכם, כולל קישור לשרת של כתובת ה-URL של המאגר. מאתחלים את משתנה הסביבה הבא כדי שכתובת ה-URL תהיה מוכנה לשימוש במהלך ה-codelab.
    export ALLOYDB_OMNI_REPOSITORY_URL="..."
    
  • טרמינל פעיל עם גישה ל-Google Cloud. למטרה הזו אפשר להשתמש ב-Cloud Shell.

2. הגדרה ודרישות

הגדרת הפרויקט

יצירת פרויקט של Google Cloud

  1. במסוף Google Cloud, בדף לבחירת הפרויקט, בוחרים פרויקט ב-Google Cloud או יוצרים פרויקט.
  2. הקפידו לוודא שהחיוב מופעל בפרויקט שלכם ב-Cloud. כך בודקים אם החיוב מופעל בפרויקט

הפעלת Cloud Shell

אפשר להפעיל את Google Cloud מרחוק מהמחשב הנייד, אבל בשיעור Codelab הזה משתמשים ב-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, שתואם באופן מלא ל-RPM של AlloyDB Omni.

  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 למכונה הווירטואלית באמצעות שרת 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 כדי לאפשר למכונה הווירטואלית לגשת למאגרי חבילות חיצוניים ולהוריד את התוכנה הנדרשת.
    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 ליבות vCPU, דיסק אחסון מתמיד מאוזן בנפח 20GB, 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. הכנת ה-VM

בקטע הזה מתחברים למכונה הווירטואלית החדשה ומתכוננים לסביבת מערכת ההפעלה.

  1. מתחברים למכונה הווירטואלית באמצעות SSH באמצעות IAP. למכונה הווירטואלית אין כתובת 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

אחרי שהכנתם את מכונת ה-VM, אתם יכולים להגדיר את מאגר החבילות ולהתקין את חבילת ה-RPM של AlloyDB Omni.

  1. מגדירים את מאגר YUM ב-VM על ידי יצירת קובץ תצורת המאגר. מחליפים את $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 של חבילת ה-RPM של AlloyDB Omni.
    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 Manager כדי שהשירות החדש של התבנית יזוהה.
    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%) הן ערכים לדוגמה. כדאי לשנות את המגבלות בהתאם לעומס העבודה הספציפי ולקיבולת של מכונת ה-VM.למידע נוסף על 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 למצב מתירני משביתה את האכיפה, ולכן צריך להשתמש בה בזהירות. בשיעור Codelab הזה אנחנו משתמשים בו כדי לפשט את ההתקנה. בסביבת הייצור, צריך להגדיר מדיניות SELinux מתאימה כדי להפעיל את AlloyDB Omni במצב אכיפה. אחרי ההגדרה, אפשר להפעיל מחדש את האכיפה על ידי הרצת הפקודה sudo setenforce 1.
  2. מגדירים סיסמה חזקה למשתמש האדמין של PostgreSQL‏ postgres. ב-codelab הזה, הסיסמה הזו משמשת בשני המקרים.
    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. מעדכנים את הקובץ postgresql.conf כדי להגדיר את המופע להאזנה ביציאה 5433.
    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 Manager.
    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 פועלת כמנויה.

הערה: ב-codelab הזה נעשה שימוש במשתמש העל postgres לחיבורי השכפול. בסביבת ייצור, יוצרים משתמש ייעודי לשכפול עם הרשאות 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 למספר מופעים.
  • איך מאתחלים, מגדירים ומתחילים כמה שירותים עצמאיים ביציאות שונות.
  • איך מאמתים את העצמאות של כל מופע.

מידע נוסף