Physical Log Streaming Replication - PLSR

יש כמה רמות של WAL:

  • minimal
  • replica (עד 9.6 היה hot_standb)
  • logical

ל PLSR מתאים 2 - minimal ו logical, אבל גם מספיק לקבוע את replica.

minimal הוגדר כברירת מחדל, אך זה לא מספיק ליישום replication.
 

יתרונות:

  • משכפלים נתונים בינאריים ולא פקודות
  • כל השינויים שחלו ב Master יחולו על Slave  (כמו DDL, DML, vacuum, analyze, וכו '...)
  • עומס מינימלי על Master ו Slave
  • פיגור cשכפול מינימkh (אם קיימת רשת עם מהירות טובה)
  • אמין גם תחת עומסים כבדים או עיכובי שכפולים גדולים
  • מאפשר חלוקת עומסי קריאה למסד הנתונים באופן אופקי
  • יש מצב Cascade replication

חסרונות:

  • משכפלים את המסד הנתונים כולו
  • אי אפשר לשכפל חלק מטבלאות
  • Replica זמינה לקריאה בלבד
  • ה WAL יותר גדול מאשר ברמת minimal
  • בעת שימוש בסלוטים של שיכפול  קיים סיכון של היעדרות מקום פנוי בשטח הדיסק. זאת בשל העובדה כי סלוט אינו מוחק את לוג הישן ביותר מבלי לעבו אליו ב replication
  • אי אפשר לשכפל את הגירסות של PostgreSQL השונות

יש PLSR סינכרוני אסינכרוני. ההבדל כפי שיכולתם לנחש הוא ברצף של סינכרון הנתונים ב Master ו Slave

בשכפול אסינכרוני משתמשים ב PostgreSQL כברירת המחדל.

בשיטה זו, שאילתא ל Master, לא מחכה לתשובה מן ההעתקים שטרנסקציה הושמה, ו WAL מגיע  לעותקים בצורה אסינכרונית, כפי שהם נשלחים על ידי התהליך של "sender" ב Master. כלומר, במילים אחרות, לא יודע כלום על מה שקורה ב Slave.
 

יתרונות:

  • השפעה מינימלית של replication ל Master
  • השפעה מינימלית של replication ל Slave
  • האפשרות מישוש של Cascade replication
  • ניטור נוח של מצב הreplication

חסרונות:

  • חוסר סינכרון של הנתונים ב Master ו Slave

בכל מקרה קיימת אפשרות לתקשורת מ Slave ל Master. זה יכול להתממש על ידי קביעת hot_standby_feedback = on. זה יכול למנוע חלק מהקונפליקטים.

 

אמשיך במאמר הבא עם שכפול סינכרוני