הקדמה ל PostgreSQL replication

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

 

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

במאמר זה אנסה לסקור את סוגי replication ב PostgreSQL.

 

הגדרה

Replication - זהו מנגנון של התאמת התוכן של מספר עותקים של האובייקט (למשל, את תוכנו של מסד הנתונים).

באותו מסד נתונים שבו קורים השינויים נקרא Master. ומסד נהתונים המסונכרן נקרא Slave (או replica).

הסוגים הנפוצים ביותר של replication הם פיזי ולוגי.

ב PostgreSQL יש את שניהם.

 

אתחיל בכמה מונחים.

Write Ahead Log

WAL - יומן טרנסקציות, מנגנון של streaming replication של PostgreSQL מבוסס עליו, נכתב כל מה שקורה עם הנתונים במסד הנתונים.

Write Ahead Log נכתבבפסרייה pg_xlog/ במערכת הקבצים.

אנחנו לא נתעכב במבנה של WAL, מנגנונים של רישומיו, ועוד.

Streaming Replication

SR - מבוסס על WAL, כל מה שנכתב בתוך WAL,  נשלח ל slaves ונכתב שם. Streaming replication יכול להיות פיזי ולוגי.

Physical Log Streaming Replication

streaming replication - PLSR פיזי, כל מה שהגיע ל WAL ללא ניתוח נוסף משוכפל בשרת slave, השינויים הם: סכימה, נתונים ושינויים ברמה נמוכה יותר (full page writes, vacuum, hint bit settings).

Logical Log Streaming Replication

streaming replication - LLSR לוגי (הופיע בגרסה 9.4), גם מבוסס על יומני WAL, אבל יותר מתוחכמת ול replication מוציאיםרק חלק מסוים של היומנים המתארים שינויים בסכימה ונתונים (כלומר כמה דברים ברמה נמוכה לא מועברים).

בבלוג הבא המשיך עם הסבר יותר מפורט של Physical Log Streaming Replication