בקטעים הבאים מוסבר איך להגדיר את השרת הראשי של AlloyDB Omni לרפליקציה, איך להגדיר את שרת הרפליקה ואיך לאמת את סטטוס הרפליקציה בשרת הראשי.
לפני שמתחילים
לפני שממשיכים, צריך להתקין ולהגדיר את AlloyDB Omni באמצעות חבילת ה-RPM. מידע נוסף זמין במאמר התקנת AlloyDB Omni באמצעות RPM.
הגדרת השרת הראשי לשכפול
מעדכנים את הגדרות הרשת או חומת האש של המארח של השרת הראשי, כדי לאפשר תעבורת נתונים נכנסת (ingress) מהמארח של שרת הרפליקה דרך יציאת Postgres של השרת הראשי.
יוצרים משתמש רפליקציה:
psql -h localhost -U postgres -c "create user REPLICA_USER with replication password 'PASSWORD'; grant pg_read_all_settings to REPLICA_USER;"מוסיפים את השורות הבאות לקובץ
/DATA_DIR/pg_hba.confשל השרת הראשי לפניhost all all all scram-sha-256שקיים בקובץ:host alloydbmetadata alloydbmetadata IP_RANGE trust host replication REPLICA_USER IP_RANGE scram-sha-256מחליפים את מה שכתוב בשדות הבאים:
-
IP_RANGE: טווח ה-IP, בסימון CIDR, של רשת המשנה שבה נמצאת מכונת הרפליקה. לדוגמה,203.0.113.0/24. -
DATA_DIR: הנתיב של ספריית הנתונים של השרת הראשי.
-
מפעילים מחדש את השרת הראשי:
sudo systemctl restart alloydbomniPG_VERSION
יצירה והגדרה של שרת הרפליקה
כדי ליצור ולהגדיר שרת רפליקה של AlloyDB Omni:
מוודאים שלרפליקה יש קישוריות רשת לשרת הראשי:
ping SOURCE_IPמחליפים את
SOURCE_IPבכתובת ה-IP של מכונת AlloyDB Omni הראשית שממנה רוצים לבצע את השכפול.מוודאים שהרפליקה יכולה להתחבר לשרת הראשי:
psql "host=SOURCE_IP user=REPLICA_USER replication=1" -c "IDENTIFY_SYSTEM;"הפלט אמור להיראות כך:
systemid | timeline | xlogpos | dbname ---------------------+----------+-----------+-------- 7376500460465963036 | 1 | 0/454B670 | (1 row)לרפליקה צריך להיות מיקום אחסון מתמיד בדיסק. צריך להריץ את הפקודה הזו בתור המשתמש
postgres:sudo -u postgres pg_basebackup \ --pgdata=DATA_DIR \ --checkpoint=fast \ --host="SOURCE_IP" \ --port="SOURCE_PORT" \ --username=REPLICA_USER \ --create-slot \ --write-recovery-conf \ --progress \ --slot="SLOT_NAME"מחליפים את מה שכתוב בשדות הבאים:
-
SOURCE_PORT: יציאת ה-TCP של המכונה הראשית של AlloyDB Omni שממנה רוצים לבצע את הרפליקציה. אם לא תציינו ערך, AlloyDB Omni ישתמש בערך ברירת המחדל5432. -
SLOT_NAME: התווית של השם של משבצת הרפליקציה. -
DATA_DIR: הנתיב לספריית הנתונים של שרת הרפליקה.
-
מפעילים את המכונה של הרפליקה:
sudo systemctl start alloydbomniPG_VERSION
אימות סטטוס הרפליקציה בשרת הראשי
כדי לוודא שהרפליקציה מוגדרת כמו שצריך, מריצים את הפקודה הבאה במארח של השרת הראשי:
psql -h localhost -U postgres -c "select * from pg_stat_replication"טבלת הפלט מכילה שורה אחת לכל רפליקה שמחוברת לשרת מסד הנתונים הראשי.
אחרי שמגדירים את הרפליקציה, כל ההוספות, העדכונים והמחיקות של שורות בשרת מסד הנתונים הראשי ניתנים לקריאה ברפליקה תוך כמה שניות.