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
- במסוף Google Cloud, בדף לבחירת הפרויקט, בוחרים פרויקט ב-Google Cloud או יוצרים פרויקט.
- הקפידו לוודא שהחיוב מופעל בפרויקט שלכם ב-Cloud. כך בודקים אם החיוב מופעל בפרויקט
הפעלת Cloud Shell
אפשר להפעיל את Google Cloud מרחוק מהמחשב הנייד, אבל בשיעור Codelab הזה משתמשים ב-Google Cloud Shell, סביבת שורת פקודה שפועלת בענן.

- פותחים את מסוף Google Cloud ולוחצים על סמל Cloud Shell בסרגל הכלים שבפינה הימנית העליונה.אפשר גם לפתוח את Cloud Shell באחת מהדרכים הבאות:
- אם משתמשים במסוף Google Cloud, מקישים על G ואז על S.
- לוחצים על הקישור הזה.
בדרך כלל חולפות כמה שניות עד שההקצאה והחיבור לסביבת העבודה ב-Cloud Shell מסתיימים. בסיום הפעולה, הפלט אמור להיראות כך:

3. איך יוצרים מכונה וירטואלית ב-Compute Engine?
בקטע הזה, יוצרים מכונה וירטואלית בודדת ב-Compute Engine באמצעות כלי שורת הפקודה gcloud. משתמשים באימג' של Rocky Linux 9, שתואם באופן מלא ל-RPM של AlloyDB Omni.
- מגדירים משתני סביבה למזהה הפרויקט, לשם המכונה הווירטואלית, לאזור ולמיקום.
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 - כדי לאפשר חיבורי 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" - המכונה הווירטואלית נוצרת ללא כתובת 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 - מוודאים שלרשת הענן הווירטואלי הפרטי (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 - יוצרים את מכונת ה-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 - אחרי שיוצרים את המכונה הווירטואלית, מאמתים את הסטטוס שלה.
gcloud compute instances list --filter="name=$INSTANCE_NAME" --project=$PROJECT
4. הכנת ה-VM
בקטע הזה מתחברים למכונה הווירטואלית החדשה ומתכוננים לסביבת מערכת ההפעלה.
- מתחברים למכונה הווירטואלית באמצעות SSH באמצעות IAP. למכונה הווירטואלית אין כתובת IP ציבורית, ולכן
gcloudיוצר באופן אוטומטי מנהור לחיבור ה-SSH דרך IAP.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
אחרי שהכנתם את מכונת ה-VM, אתם יכולים להגדיר את מאגר החבילות ולהתקין את חבילת ה-RPM של AlloyDB Omni.
- מגדירים את מאגר 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 - מעדכנים את המטמון של YUM.
sudo yum makecache - מתקינים את גרסה 18 של חבילת ה-RPM של AlloyDB Omni.
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 - טוענים מחדש את ההגדרות של
systemdManager כדי שהשירות החדש של התבנית יזוהה.sudo systemctl daemon-reload - יוצרים את ספריית ההגדרות של מכונות AlloyDB Omni.
sudo mkdir -p /etc/alloydbomni - הגדרת ספריית הנתונים של
inst1.sudo tee /etc/alloydbomni/inst1.conf << EOF PGDATA=/var/lib/alloydbomni/inst1 EOF - הגדרת ספריית הנתונים של
inst2.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%) הן ערכים לדוגמה. כדאי לשנות את המגבלות בהתאם לעומס העבודה הספציפי ולקיבולת של מכונת ה-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% 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 למצב מתירני משביתה את האכיפה, ולכן צריך להשתמש בה בזהירות. בשיעור Codelab הזה אנחנו משתמשים בו כדי לפשט את ההתקנה. בסביבת הייצור, צריך להגדיר מדיניות SELinux מתאימה כדי להפעיל את AlloyDB Omni במצב אכיפה. אחרי ההגדרה, אפשר להפעיל מחדש את האכיפה על ידי הרצת הפקודהsudo setenforce 0sudo setenforce 1. - מגדירים סיסמה חזקה למשתמש האדמין של PostgreSQL
postgres. ב-codelab הזה, הסיסמה הזו משמשת בשני המקרים. הערה: במעבדת התכנות הזו, העברת סיסמאות באמצעות משתני סביבה בשורת הפקודה (למשל,export PGPASSWORD="YourStrongPassword123!"PGPASSWORD=$PGPASSWORD) משמשת לפשטות, אבל היא עלולה לחשוף את הסיסמה ברשימות של תהליכים. בסביבת ייצור, מומלץ להשתמש בשיטות מאובטחות יותר כמו.pgpassקובץ או מנהל סודות.
הגדרה של inst1
- הפעלת הספרייה של מסד הנתונים עבור
inst1.sudo PGPASSWORD=$PGPASSWORD \ PGDATA=/var/lib/alloydbomni/inst1 \ /usr/lib/postgresql/18/bin/alloydbomni18-setup initdb - מעדכנים את הקובץ
postgresql.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 בשני המקרים.
- כדי שהמערכת תזהה את ההגדרה החדשה ואת השינויים שנעשו בה, צריך לטעון מחדש את ההגדרה של
systemdManager.sudo systemctl daemon-reload - מפעילים ומתחילים את השירות של
inst1.sudo systemctl enable alloydbomni18@inst1 sudo systemctl start alloydbomni18@inst1 - מפעילים ומתחילים את השירות של
inst2.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 פועלת כמנויה.
הערה: ב-codelab הזה נעשה שימוש במשתמש העל postgres לחיבורי השכפול. בסביבת ייצור, יוצרים משתמש ייעודי לשכפול עם הרשאות REPLICATION ומעניקים לו גישה רק לטבלאות שמשוכפלות.
הגדרת מופעים ל-pglogical
- מפעילים את
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 - מגדירים את ההגדרות של
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 - כדי להחיל את שינויי התצורה, מפעילים מחדש את שני המקרים.
sudo systemctl restart alloydbomni18@inst1 sudo systemctl restart alloydbomni18@inst2
הגדרה של תפקידי רפליקציה וטבלאות
- ב-
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; " - ב-
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
- מאתחלים את צומת הספק 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'); " - מאתחלים את צומת המנוי 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
כדי לוודא שהשכפול פועל כמו שצריך, מוסיפים נתונים בספק ומבצעים שאילתה לגביהם במנוי.
- מוודאים שהמינוי פעיל. יכול להיות שיחלפו כמה שניות עד שתעברו ל
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.conf - השירות יופסק ויבוטל עבור
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 - טוענים מחדש את ההגדרות של מנהל systemd ומאפסים יחידות שנכשלו.
sudo systemctl daemon-reload sudo systemctl reset-failed
ניקוי משאבים ב-Google Cloud
אחרי שמנקים את המכונות, מוחקים את המכונה הווירטואלית של Compute Engine ומשאבים אחרים.
- מתנתקים מסשן ה-SSH.
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. מזל טוב
הצלחתם לפרוס ולהגדיר כמה מופעים של AlloyDB Omni במכונה וירטואלית אחת ב-Compute Engine.
מה נכלל
- איך להקצות ולהכין מכונה וירטואלית ב-Compute Engine.
- איך מתקינים חבילות RPM של AlloyDB Omni.
- איך מגדירים תבניות
systemdלמספר מופעים. - איך מאתחלים, מגדירים ומתחילים כמה שירותים עצמאיים ביציאות שונות.
- איך מאמתים את העצמאות של כל מופע.
מידע נוסף
- מידע נוסף על התקנה והגדרה מופיע במסמכי התיעוד של AlloyDB Omni.
- פרטים על תוסף השכפול שבו נעשה שימוש ב-codelab הזה מופיעים במאמרי העזרה של pglogical.