CentOS 8 -ב PostgreSQL 12 תמרזה לופכש רידגהל דציכ


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

.WAL -ה ץבוק יולימל ןיתמהל ילבמ ,םתריצי ידכ ךות הנתמה בצמל WAL תומושר םרזמש ,ישארה/ישארה תרשל רבחתהל (לופכש דבע) הנתמה םינותנ דסמ תרש רדגומ גנימירטס לופכש םע

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

.םתוא הלביק הנתמההש ינפל םינשי WAL יחלפ רוזחממ ישארה תרש תעינמל ןורתפכ הנתמה רובע "לופכש יצירח"\שמתשנ ונא .CentOS 8 -ב הנתמה תכרעמל הנתמה-רטסאמ תמרזה לופכש רידגהל דציכ הארמ הז ךירדמ

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

:(לוהינ תויוכז לעב ליגר שמתשמכ רבוחמ התא םא ךרוצה תדימב Sudo הדוקפב שמתשה) SSH תועצמאב שרושכ ךלש הנתמהו ישארה םינותנה דסמ יתרשל תרבחתהש חינמ הז ךירדמ

Postgresql master database server: 		10.20.20.9
Postgresql standby database server:		10.20.20.8

.CentOS 8 -ב pgAdmin -ו PostgreSQL ןיקתהל דציכ :האר תרחא ,Postgresql 12 ןיקתהל םינותנה ידסמ יתרש ינש לע

.לוכשא לופכש תרדגה לע לקמש המ ,PostgreSQL לש םיליגר הרוצת ירטמרפל recovery.conf לש םירטמרפ לש הרמהו recovery.conf לש הפלחה ןוגכ ,לופכש לש הרוצתו םושייב םייתועמשמ םייוניש םע עיגמ PostgreSQL

PostgreSQL לש ישארה םינותנה דסמ תרש לש הרוצתה תעיבק :1 בלש

.תוחוקלמ םירוביחל בישקי רטסאמה תרש ןהילא IP -ה תובותכ תא רדגהו postgres תכרעמ ןובשחל רובע ,ישארה תרשב .1

.לכה רמולכ * -ב שמתשנ הז הרקמב

# su - postgres
$ psql -c "ALTER SYSTEM SET listen_addresses TO '*';"

.םירחא םירושקו רתוי םירחואמ םיצבקב הלא ינפ לע תופידע ןושארה תורישב תורוצת ךא .postgresql.conf -ב םינסחואמה הלאל ףסונב םיארוקו (/ var/lib/pgsql/12/data/לשמל) םינותנה תייקית שרושב

.םינותנה דסמ תרשל חלושו רצוי שמתשמה רצויש תודוקפה תא דהדהמ -e -ו שדחה דיקפתל המסיס שקבמ -P לגדה ,האבה הדוקפב .createuser תינכות תועצמאב ,ישארה תרשל הנתמה תרשמ

# su – postgres
$ createuser --replication -P -e replicator
$ exit

.ךסמה תנומתב גצומש יפכ לופכשל רדגומ םינותנה דסמ הדש םע var/lib/pgsql/12/data/pg_hba.conf/ חוקלה תומיא לש הרוצתה ץבוק ףוסב אבה ךרעה תא ןזה זאו .3

host    replication     replicator      10.20.20.8/24     md5

.םייונישה תא ליחהל ידכ systemctl האבה הדוקפה תועצמאב Postgres12 תוריש תא שדחמ לעפה .4

# systemctl restart postgresql-12.service

.תכרעמה להנמל הנתמה תרשמ תושקב רשפאל ידכ דלוורייפה תרוצתב Postgresql תוריש תא ףיסוהל ךילע ,לעופ דלוורייפה תוריש םא ,ןכמ רחאל .5

# firewall-cmd --add-service=postgresql --permanent
# firewall-cmd --reload

הנתמה תרש לוחתאל יסיסב יוביג תכיפה :2 בלש

.יוביג .סיסבה תא חקתש ינפל ,גצומש יפכ ויתחתש המ לכ תא קוחמל זאו ,(/ var/lib/pgsql/12/data /) םינותנה תיירפס תא תובגל ,postgres לש שמתשמה ןובשחל רובעל ,הנתמה תרשב postgresql 12 תורי

# systemctl stop postgresql-12.service
# su - postgres
$ cp -R /var/lib/pgsql/12/data /var/lib/pgsql/12/data_orig
$ rm -rf /var/lib/pgsql/12/data/*

.תונוכנה תואשרהה םעו (Postgres שמתשמה ןובשח ךותב ,Postgres רמולכ םינותנה דסמ תכרעמב שמתשמה) הנוכנ תולעב יסיסבה יוביגה תא תחקל ידכ pg_basebackup ילכב שמתשה ןכמ רחאל .7

:תורשפאה ,האבה הדוקפב

    $ pg_basebackup -h 10.20.20.9 -D /var/lib/pgsql/12/data -U replicator -P -v  -R -X stream -C -S pgstandby1
    $ exit
    

    .ls הדוקפה תועצמאב ונכות תא םושרל ןתינ .postgresql.auto.conf תבותכל תופרוצמ רוביחה תורדגהו הנתמה תוא רצונ .ךסמה םוליצב ךכ תואריהל רומא הנתמה תרשב שדחה םינותנה ךירדמ ,יוביגה ךילהת םויס רחאל

    # ls -l /var/lib/pgsql/12/data/
    

    .םינותנה תיירפסב standby.signal ץבוק שיו postgresql.conf -ב (לדחמה תרירב ךרע) on -כ רדגומ hot_standby רטמרפה םא "הנתמה םח"\בצמב לעפי לופכש דבע

    .ןמקלדכ pg_replication_slots תגוצת תא חתופ התא רשאכ pgstandby1 ארקנה לופכשה ץירח תא תוארל לגוסמ תויהל רומא התא ,ישארה תרשל הרזח תעכ .9

    # su - postgres
    $ psql -c "SELECT * FROM pg_replication_slots;"
    $ exit
    

    .cat הדוקפב שמתשה ,postgresql.auto.conf ץבוקב תופרוצמה רוביחה תורדגה תא גיצהל ידכ .10

    # cat /var/lib/pgsql/12/data/postgresql.auto.conf
    

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

    # systemctl start postgresql-12
    

    PostgreSQL תמרזה לופכש תקידב :3 בלש

    .pg_stat_wal_receiver תגוצת תועצמאב תאז קודבל לכות ,גנימירטס לש סוטטס םע הנתמה תרשב WAL טלקמ ךילהת הארת ,הנתמה בצמל רטסאמה ןיב החלצהב רוביח רצונש רחאל .12

    $ psql -c "\x" -c "SELECT * FROM pg_stat_wal_receiver;"
    

    .pg_stat_replication pg_stat_replication תגוצת תא קודבל לוכי התא ,ןורכניסא לש ןורכניס תגוצתו המרזה בצמ םע ישארה/ישארה תרשב םאות WAL חלוש ךילהתו

    $ psql -c "\x" -c "SELECT * FROM pg_stat_replication;"
    

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


    .הנתמה תרשב םייק אוה םא קודבו ישארה תרשב הקידבל םינותנ דסמ תריצי ידי לע רדסב דבוע לופכשה םא קודב תעכ .13

    ינורכניס לופכש תלעפה :ילנויצפוא

    .רתוי וא דחא ינורכניס הנתמה תרשל ורבעוה הקסעב ועצובש םייונישה לכ רשאכ תחלצומ הקסעש קר רשאמ הז .תינמז וב קתעה/הנתמהלו ישארה םינותנה דסמל (םינותנ בותכל וא) הקסע עצבל תלוכי עיצמ ינורכניס לו

    .לכל ותוא רידגנ ,הז ךירדמ רובע .קיר וניאש ךרעל synchronous_standby_names רטמרפה תא רידגהל ךילע ,ןכ ומכו (והשלכ יונישב ךרוצ ןיא ןכלו ,לדחמה תרירב ךרע אוהש) לעופ בצמל םג synchronous_commit ת

    $ psql -c "ALTER SYSTEM SET synchronous_standby_names TO  '*';"
    

    .םישדחה םייונישה תא ליחהל ידכ PostgreSQL 12 תוריש תא שדחמ ןעט זאו .15

    # systemctl reload postgresql-12.service
    

    .ןורכנס לש ןורכניס בצמו המירז לש בצמ תוארהל רומא אוה ,ישארה תרשב WAL לש חלושה ךילהת לע בוש לואשת רשאכ תעכ .16

    $ psql -c "\x" -c "SELECT * FROM pg_stat_replication;"
    

    .PostgreSQL לש יסיסב לוכשאב ינורכניס לופכש רשפאל דציכ םג ונרקס .CentOS 8 -ב PostgreSQL 12 לש יסיסב םינותנ דסמ תמרזה לופכש רידגהל דציכ וניארה .הזה ךירדמה ףוסל ונעגה

    .PostgreSQL 12 דועיתב Log-Shipping לש הנתמה יתרש לא רובע ,םיפסונ םיטרפ תלבקל .םושייל תויפיצפסה תושירדה לע וא/ו ךלש IT -ה תביבס לע הנועה ןורתיפ רוחבל לכות דימתו לופכשב םיבר םישומיש םנשי