הגדרת שכפול ראשי במצב המתנה עבור Postgres

Edge for Private Cloud v4.18.05

כברירת מחדל, Edge מתקין את כל צומתי Postgres במצב מאסטר. עם זאת, במערכות ייצור עם כמה צומתי Postgres, מגדירים אותם לשימוש בשכפול מסוג master-standby, כך שאם הצומת הראשי נכשל, הצומת המשני יכול להמשיך לשרת את התנועה.

אם הצומת הראשי נכשל, אפשר להפוך את השרת המשני לראשי. מידע נוסף זמין במאמר טיפול ביתירות כשל במסד נתונים של PostgreSQL.

הגדרת שכפול Master-Standby בזמן ההתקנה

כדי להגדיר שכפול של מאסטר-גיבוי בזמן ההתקנה, צריך לכלול את המאפיינים הבאים בקובץ התצורה של שני צומתי Postgres:

PG_MASTER=IPorDNSofNewMaster
PG_STANDBY=IPorDNSofNewStandby

ההתקנה מגדירה באופן אוטומטי את שני צומתי Postgres כך שיפעלו כמאסטר-המתנה עם שכפול.

הגדרת שכפול Master-Standby לאחר ההתקנה

אחרי ההתקנה, אפשר להגדיר שכפול של מאסטר-גיבוי באמצעות התהליך הבא:

  1. מזהים איזה צומת של PostgreSQL יהיה השרת הראשי ואיזה יהיה השרת במצב המתנה.
  2. בצומת הראשי, עורכים את קובץ התצורה כדי להגדיר:
    PG_MASTER=IPorDNSofNewMaster
    PG_STANDBY=IPorDNSofNewStandby
  3. מפעילים את הרפליקציה במאסטר החדש:
    /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-master -f configFile
  4. בצומת ההמתנה, עורכים את קובץ התצורה כדי להגדיר:
    PG_MASTER=IPorDNSofNewMaster
    PG_STANDBY=IPorDNSofNewStandby
  5. Stop the standby node:
    /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql stop
  6. בצומת ההמתנה, מוחקים את כל נתוני Postgres הקיימים:
    rm -rf /opt/apigee/data/apigee-postgresql/
  7. מגדירים את הצומת במצב המתנה:
    /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-standby -f configFile

בדיקת שכפול Master-Standby

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

  1. בצומת הראשי, מריצים את הפקודה:
    /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql postgres-check-master

    מוודאים שכתוב שהוא הראשי.

  2. בצומת ההמתנה:
    /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql postgres-check-standby

    מוודאים שמופיע הכיתוב "standby" (המתנה).