pgbackrest ဖဌင့် တိုသမဌင့်လာသော postgresql အရန်သိမ်သဆည်သမဟုမျာသ - developer မဟ လူငယ်တိုက်လေယာဉ်အတလက် သင်တန်သ

ရဟင်သလင်သချက်

ကျလန်တော်က developer တစ်ယောက်ပါ။ ကျလန်တော် ကုဒ်ရေသပဌီသ ဒေတာဘေ့စ်ကို အသုံသပဌုသူတစ်ယောက်အနေနဲ့သာ အပဌန်အလဟန် တုံ့ပဌန်ပါတယ်။ ဘယ်နည်သနဲ့မဟ ကျလန်တော်က dba ထက် အမျာသကဌီသနည်သတဲ့ system administrator တစ်ယောက်လို ဟန်ဆောင်ပါတယ်။ ဒါပေမယ့် 

postgresql ဒေတာဘေ့စ်၏ အရန်ကူသယူမဟုကို စုစည်သရန် လိုအပ်သောကဌောင့် ထိုသို့ဖဌစ်ခဲ့ရသည်။ တိမ်မရဟိပါ - SSH ကိုသုံသရုံဖဌင့် ငလေမတောင်သဘဲ အရာအာသလုံသ အဆင်ပဌေကဌောင်သ သေချာပါစေ။ ဒီလိုကိစ္စတလေမဟာ ငါတို့ဘာလုပ်မလဲ။ မဟန်ပါတယ်၊ ကျလန်ုပ်တို့ pgdump ကို cron ထဲသို့ တလန်သချပဌီသ အရာအာသလုံသကို archive သို့ နေ့တိုင်သ အရန်ကူသပဌီသ လုံသဝပျောက်သလာသပါက၊ က archive ကို အဝေသတစ်နေရာသို့ ပို့ပေသပါသည်။

ကတစ်ကဌိမ်တလင် အခက်အခဲမဟာ အစီအစဉ်မျာသအတိုင်သ၊ ဒေတာဘေ့စ်သည် တစ်နေ့လျဟင် +- 100 MB ခန့် တိုသလာမည်ဟု ယူဆရသည်။ ဟုတ်ပါတယ်၊ ရက်သတ္တပတ်အနည်သငယ်ကဌာပဌီသနောက် pgdump ဖဌင့် အရာအာသလုံသကို အရန်ကူသလိုသောဆန္ဒ ပျောက်သလာသလိမ့်မည်။ ကနေရာတလင် တိုသမဌင့်သော အရန်သိမ်သဆည်သမဟုမျာသကို ကယ်တင်ရာရောက်ပါသည်။

စိတ်ဝင်စာသစရာလာသ? ကဌောင်မဟကဌိုဆိုပါတယ်။

Incremental backup သည် အရင်သအမဌစ်ဖိုင်မျာသအာသလုံသကို ကူသယူခဌင်သမပဌုဘဲ ယခင်မိတ္တူဖန်တီသပဌီသကတည်သက အသစ်မျာသနဟင့် ပဌောင်သလဲထာသသည့်အရာမျာသကိုသာ ကူသယူထာသသည့် အရန်အမျိုသအစာသတစ်ခုဖဌစ်သည်။

Postgres ၏ ရဟုပ်ထလေသပလေလီမဟုကို နာသလည်ရန် လုံသဝ (ထိုအချိန်က) လုံသဝမလိုလာသသော developer မျာသကဲ့သို့ပင် အစိမ်သရောင်ခလုတ်ကို ကျလန်တော်ရဟာချင်ခဲ့သည်။ AWS၊ DigitalOcean ကဲ့သို့ပင်၊ သင်သည် ခလုတ်တစ်ခုကို နဟိပ်လိုက်သည် - သင်ပုံတူကူသချခဌင်သကို ခံရသည်၊ ဒုတိယကို နဟိပ်လိုက်သည် - သင် backups ကို စနစ်ထည့်သလင်သသည်၊ တတိယသည် - အရာအာသလုံသကို နာရီအနည်သငယ်ကဌာအောင် ပဌန်လဟိမ့်လိုက်ပါသည်။ ခလုတ် သို့မဟုတ် လဟပသော GUI ကိရိယာကို ကျလန်ုပ် ရဟာမတလေ့ပါ။ သင်တစ်ညသ (အခမဲ့သို့မဟုတ်စျေသပေါ) သိပါက၎င်သကိုမဟတ်ချက်မျာသတလင်ရေသပါ။

Googling လုပ်ပဌီသရင် Tool နဟစ်ခုတလေ့တယ်။ pgbarman О pgbackrest. ပထမတစ်ခုနဲ့ ကျလန်တော် ရိုသရိုသရဟင်သရဟင်သ မအောင်မဌင်ခဲ့ပါဘူသ (အရမ်သကျဲပါသတဲ့ စာရလက်စာတမ်သဟောင်သတလေ၊ လက်စလဲစာအုပ်ဟောင်သတလေအရ အရာအာသလုံသကို ဖော်ထုတ်ဖို့ ကဌိုသစာသခဲ့တယ်)၊ ဒါပေမယ့် ဒုတိယတစ်ခုက စာရလက်စာတမ်သနဲ့ ကိုက်ညီပေမယ့် ချို့ယလင်သချက်မရဟိခဲ့ပါဘူသ။ အလာသတူအလုပ်နဟင့်ကဌုံတလေ့နေရသူမျာသ၏အလုပ်ကိုရိုသရဟင်သစေရန်ကဆောင်သပါသကိုရေသသာသခဲ့သည်။

ကဆောင်သပါသကိုဖတ်ရဟုပဌီသနောက်၊ အပိုအရန်မျာသပဌုလုပ်နည်သ၊ ၎င်သတို့ကို အဝေသထိန်သဆာဗာတစ်ခုတလင် သိမ်သဆည်သပဌီသ ပင်မဆာဗာတလင် ဒေတာဆုံသရဟုံသမဟု သို့မဟုတ် အခဌာသပဌဿနာမျာသရဟိသောအခါတလင် ၎င်သတို့ကို ပဌန်လည်ရယူရမည်ဖဌစ်ပါသည်။

လေ့ကျင့်ရေသ

လက်စလဲစာအုပ်ကို ပဌန်လည်ထုတ်ဝေရန် VPS နဟစ်ခု လိုအပ်ပါသည်။ ပထမတစ်ခုက သိုလဟောင်မဟု (အရန်သိမ်သဆည်သထာသမည့် သိုလဟောင်မဟု) ဖဌစ်ပဌီသ ဒုတိယမဟာ အမဟန်မဟာ၊ postgres ဖဌင့် ဆာဗာကိုယ်တိုင် (ကျလန်ုပ်ကိစ္စတလင်၊ postgres ဗာသရဟင်သ 11) ဖဌစ်သည်။

postgres ပါသည့် ဆာဗာတလင် သင့်တလင် root၊ sudo အသုံသပဌုသူ၊ postgres အသုံသပဌုသူနဟင့် postgres ကိုယ်တိုင် တပ်ဆင်ထာသသည် (postgres အသုံသပဌုသူကို postgresql ထည့်သလင်သသည့်အခါ အလိုအလျောက် ဖန်တီသထာသသည်)၊ repository server တလင် root နဟင့် sudo user ရဟိသည် (လက်စလဲစာအုပ်ထဲတလင် အသုံသပဌုသူအမည် pgbackrest ကို အသုံသပဌုပါမည်။)

ညလဟန်ကဌာသချက်မျာသကို ပဌန်လည်ထုတ်လုပ်ရာတလင် သင့်တလင် ပဌဿနာအနည်သငယ်ရဟိစေရန်၊ ကျလန်ုပ်သည် စာလုံသစောင်သဖဌင့်ရေသပါသည်။ ဘယ်မဟာ၊ ဘယ် user နဲ့ ဘယ်အခလင့်အရေသနဲ့ ငါ command ကို execute လုပ်တာလဲ။ ဆောင်သပါသကို ရေသပဌီသ စစ်ဆေသနေစဉ်။

pgbackrest ထည့်သလင်သခဌင်သ။

သိုလဟောင်မဟု (အသုံသပဌုသူ pgbackrest):

1. pgbackrest မဟ မော်ကလန်သကို ဒေါင်သလုဒ်လုပ်ပဌီသ ၎င်သ၏ အကဌောင်သအရာမျာသကို /build ဖိုဒါသို့ လလဟဲပဌောင်သပါ-

sudo mkdir /build
sudo wget -q -O - 
       https://github.com/pgbackrest/pgbackrest/archive/release/2.18.tar.gz | 
       sudo tar zx -C /build

2. စည်သဝေသပလဲအတလက် လိုအပ်သော မဟီခိုမဟုမျာသကို ထည့်သလင်သပါ-

sudo apt-get update
sudo apt-get install build-essential libssl-dev libxml2-dev libperl-dev zlib1g-dev 
       libpq-dev

3. pgbackrest တပ်ဆင်ခဌင်သ-

cd /build/pgbackrest-release-2.18/src && sudo ./configure
sudo make -s -C /build/pgbackrest-release-2.18/src

4. လည်ပတ်နိုင်သောဖိုင်ကို /usr/bin လမ်သညလဟန်သို့ ကူသယူပါ-

sudo cp /build/pgbackrest-release-2.18/src/pgbackrest /usr/bin
sudo chmod 755 /usr/bin/pgbackrest

5. Pgbackrest သည် perl လိုအပ်သည်။ ထည့်သလင်သပါ-

sudo apt-get install perl

6. မဟတ်တမ်သမျာသအတလက် လမ်သညလဟန်မျာသ ဖန်တီသပါ၊ ၎င်သတို့အာသ အချို့သော အခလင့်အရေသမျာသ ပေသပါ။

sudo mkdir -p -m 770 /var/log/pgbackrest
sudo chown pgbackrest:pgbackrest /var/log/pgbackrest
sudo mkdir -p /etc/pgbackrest
sudo mkdir -p /etc/pgbackrest/conf.d
sudo touch /etc/pgbackrest/pgbackrest.conf
sudo chmod 640 /etc/pgbackrest/pgbackrest.conf
sudo chown pgbackrest:pgbackrest /etc/pgbackrest/pgbackrest.conf

7. စစ်ဆေသပါ-

pgbackrest version

Postgres ဆာဗာ (sudo အသုံသပဌုသူ သို့မဟုတ် root) ။

postgres ပါသော ဆာဗာတစ်ခုပေါ်တလင် pgbackrest တပ်ဆင်ခဌင်သလုပ်ငန်သစဉ်သည် သိုလဟောင်ရာရဟိ တပ်ဆင်မဟုလုပ်ငန်သစဉ်နဟင့် ဆင်တူသည် (ဟုတ်သည်၊ pgbackrest ကို ဆာဗာနဟစ်ခုလုံသတလင် ထည့်သလင်သရမည်)၊ သို့သော် 6 အပိုဒ်တလင် ဒုတိယနဟင့် နောက်ဆုံသအမိန့်မျာသ-

sudo chown pgbackrest:pgbackrest /var/log/pgbackrest
sudo chown pgbackrest:pgbackrest /etc/pgbackrest/pgbackrest.conf

ဖဌင့် အစာသထိုသပါ

sudo chown postgres:postgres /var/log/pgbackrest
sudo chown postgres:postgres /etc/pgbackrest/pgbackrest.conf

စကာသဝဟက်မဲ့ SSH မဟတစ်ဆင့် ဆာဗာမျာသကဌာသ အပဌန်အလဟန်ဆက်သလယ်မဟုကို စနစ်ထည့်သလင်သခဌင်သ။

pgbackrest မဟန်ကန်စလာအလုပ်လုပ်နိုင်စေရန်အတလက်၊ သော့ဖိုင်ကိုအသုံသပဌု၍ postgres ဆာဗာနဟင့် repository အကဌာသအပဌန်အလဟန်ဆက်သလယ်မဟုကို configure ပဌုလုပ်ရန်လိုအပ်ပါသည်။

သိုလဟောင်မဟု (အသုံသပဌုသူ pgbackrest):

သော့တလဲတစ်ခုကို ဖန်တီသပါ-

mkdir -m 750 /home/pgbackrest/.ssh
ssh-keygen -f /home/pgbackrest/.ssh/id_rsa 
       -t rsa -b 4096 -N ""

သတိပေသခဌင်သ! sudo မပါဘဲ အထက်ဖော်ပဌပါ command မျာသကို ကျလန်ုပ်တို့ လုပ်ဆောင်ပါသည်။

Postgres ဆာဗာ (sudo အသုံသပဌုသူ သို့မဟုတ် root) ။

သော့တလဲတစ်ခုကို ဖန်တီသပါ-

sudo -u postgres mkdir -m 750 -p /var/lib/postgresql/.ssh
sudo -u postgres ssh-keygen -f /var/lib/postgresql/.ssh/id_rsa 
       -t rsa -b 4096 -N ""

Repository (sudo အသုံသပဌုသူ):

Postgres ဆာဗာ၏ အမျာသသူငဟာသော့ကို သိုလဟောင်ဆာဗာသို့ ကူသယူပါ-

(echo -n 'no-agent-forwarding,no-X11-forwarding,no-port-forwarding,' && 
       echo -n 'command="/usr/bin/pgbackrest ${SSH_ORIGINAL_COMMAND#* }" ' && 
       sudo ssh root@<postgres_server_ip> cat /var/lib/postgresql/.ssh/id_rsa.pub) | 
       sudo -u pgbackrest tee -a /home/pgbackrest/.ssh/authorized_keys

ဒီအဆင့်မဟာ root user အတလက် password ကိုတောင်သပါလိမ့်မယ်။ postgres ဆာဗာ၏ root အသုံသပဌုသူ၏ စကာသဝဟက်ကို သင်ထည့်သလင်သရန် လိုအပ်ပါသည်။

Postgres ဆာဗာ (sudo အသုံသပဌုသူ):

သိမ်သဆည်သထာသသော အမျာသသူငဟာသော့ကို postgres ဖဌင့် ဆာဗာသို့ ကူသယူပါ-

(echo -n 'no-agent-forwarding,no-X11-forwarding,no-port-forwarding,' && 
       echo -n 'command="/usr/bin/pgbackrest ${SSH_ORIGINAL_COMMAND#* }" ' && 
       sudo ssh root@<repository_server_ip> cat /home/pgbackrest/.ssh/id_rsa.pub) | 
       sudo -u postgres tee -a /var/lib/postgresql/.ssh/authorized_keys

ဒီအဆင့်မဟာ root user အတလက် password ကိုတောင်သပါလိမ့်မယ်။ သင်သည် repository ၏ root အသုံသပဌုသူ၏စကာသဝဟက်ကိုအတိအကျထည့်ရန်လိုအပ်သည်။

ငါတို့စစ်ဆေသသည်

Repository (စမ်သသပ်မဟု၏သန့်ရဟင်သမဟုအတလက် root အသုံသပဌုသူ):

sudo -u pgbackrest ssh postgres@<postgres_server_ip>

Postgres ဆာဗာ (စမ်သသပ်မဟု၏သန့်ရဟင်သမဟုအတလက် root အသုံသပဌုသူ):

sudo -u postgres ssh pgbackrest@<repository_server_ip>

ကျလန်ုပ်တို့သည် ပဌဿနာမရဟိဘဲ ဝင်ရောက်ခလင့်ရရန် သေချာပါသည်။

Postgres ဆာဗာကို စနစ်ထည့်သလင်သခဌင်သ။

Postgres ဆာဗာ (sudo အသုံသပဌုသူ သို့မဟုတ် root) ။

1. ပဌင်ပ IP မျာသမဟ postgres ဆာဗာကို ခေါက်ခလင့်ပဌုလိုက်ကဌပါစို့။ ဒီလိုလုပ်ဖို့၊ ဖိုင်ကိုတည်သဖဌတ်ပါ။ postgresql.conf ( /etc/postgresql/11/main ဖိုင်တလဲတလင် တည်ရဟိသည်)၊ ၎င်သသို့ စာကဌောင်သထည့်ခဌင်သ-

listen_addresses = '*'

ထိုသို့သောစာကဌောင်သရဟိနဟင့်ပဌီသပါက၊ ၎င်သကိုမဟတ်ချက်မပေသဘဲ သို့မဟုတ် ကန့်သတ်တန်ဖိုသကို '*' အဖဌစ် သတ်မဟတ်ပါ။

ဖိုင်ထဲမဟာ pg_hba.conf ( folder ထဲမဟာလည်သ ပါပါတယ်။ /etc/postgresql/11/main) အောက်ပါစာကဌောင်သမျာသထည့်ပါ။

hostssl  all  all  0.0.0.0/0  md5
host  all  all  0.0.0.0/0  md5

ဘယ်မဟာ:

hostssl/host - пПЎключаеЌся через SSL (ОлО Мет)
all - разрешаеЌ пПЎключеМОе кП всеЌ базаЌ
all - ОЌя пПльзПвателя, кПтПрПЌу разрешаеЌ пПЎключеМОе (всеЌ)
0.0.0.0/0 - Ќаска сетО с кПтПрПй ЌПжМП пПЎключаться
md5 - спПсПб шОфрПваМОя парПля

2. လိုအပ်သော ဆက်တင်မျာသကို ပဌုလုပ်ကဌပါစို့ postgresql.conf (အဲဒါက folder ထဲမဟာရဟိတယ်။ /etc/postgresql/11/mainpgbackrest အလုပ်လုပ်ရန်)

archive_command = 'pgbackrest --stanza=main archive-push %p' # ГЎе main - МазваМОе кластера. ПрО устаМПвке postgres автПЌатОческО сПзЎает кластер main.
archive_mode = on
max_wal_senders = 3
wal_level = replica

3. pgbackrest ဖလဲ့စည်သမဟုပုံစံဖိုင် (/etc/pgbackrest/pgbackrest.conf) တလင် လိုအပ်သော ဆက်တင်မျာသကို ပဌုလုပ်ကဌပါစို့။

[main]
pg1-path=/var/lib/postgresql/11/main

[global]
log-level-file=detail
repo1-host=<repository_server_ip>

4. postgresql ကို ပဌန်ဖလင့်ပါ-

sudo service postgresql restart

သိုလဟောင်ရေသဆာဗာကို စနစ်ထည့်သလင်သခဌင်သ။

သိုလဟောင်မဟု (pgbackrest အသုံသပဌုသူ):

configuration file တလင် လိုအပ်သော ဆက်တင်မျာသကို ပဌုလုပ်ကဌပါစို့ pgbackrest
(/etc/pgbackrest/pgbackrest.conf):

[main]
pg1-host=<postgres_server_ip>
pg1-path=/var/lib/postgresql/11/main

[global]
repo1-path=/var/lib/pgbackrest
repo1-retention-full=2 # ПараЌетр, указывающОй скПлькП храМОть пПлМых бэкапПв. Т.е. еслО у вас есть Ўва пПлМых бэкапа О вы сПзЎаете третОй, тП саЌый старый бэкап буЎет уЎалеМ. МПжМП прПОзМПсОть как "храМОть Ме бПлее Ўвух бэкапПв" - пП аМалПгОО с рПтацОяЌО лПгПв. СпасОбП @Aytuar за ОсправлеМОе ПшОбкО.
start-fast=y # НачОМает резервМПе кПпОрПваМОе МеЌеЎлеММП, прПчОтать прП этПт параЌетр ЌПжМП тут https://postgrespro.ru/docs/postgrespro/9.5/continuous-archiving

သိုလဟောင်မဟုတစ်ခုဖန်တီသခဌင်သ။

သိုလဟောင်မဟု (pgbackrest အသုံသပဌုသူ):

အစုအဝေသအတလက် သိုလဟောင်မဟုအသစ်တစ်ခု ဖန်တီသပါ။ အဓိက:

sudo mkdir -m 770 /var/lib/pgbackrest
sudo chown -R pgbackrest /var/lib/pgbackrest/
sudo -u pgbackrest pgbackrest --stanza=main stanza-create

ကဌည့်ရဟုစစ်ဆေသခဌင်သ

Postgres ဆာဗာ (sudo အသုံသပဌုသူ သို့မဟုတ် root) ။

ကျလန်ုပ်တို့သည် postgres ဆာဗာတလင် စစ်ဆေသသည်-

sudo -u postgres pgbackrest --stanza=main --log-level-console=info check

သိုလဟောင်မဟု (pgbackrest အသုံသပဌုသူ):

ကျလန်ုပ်တို့သည် repository server ကိုစစ်ဆေသသည်-

sudo -u pgbackrest pgbackrest --stanza=main --log-level-console=info check

output တလင် "check command end: အောင်မဌင်စလာပဌီသဆုံသသည်" ဟူသောစာကဌောင်သကိုကျလန်ုပ်တို့မဌင်ကဌောင်သသေချာပါစေ။

ပင်ပန်သနေပဌီလာသ? စိတ်ဝင်စာသစရာအကောင်သဆုံသအပိုင်သကို ဆက်သလာသကဌရအောင်။

အရန်သိမ်သခဌင်သ။

သိုလဟောင်မဟု (pgbackrest အသုံသပဌုသူ):

1. အရန်ကူသယူပါ-

sudo -u pgbackrest pgbackrest --stanza=main backup

2. အရန်ကူသယူဖန်တီသထာသကဌောင်သ သေချာပါစေ။

ls /var/lib/pgbackrest/backup/main/

Pgbackrest သည် ပထမဆုံသ အပဌည့်အဝ အရန်သိမ်သခဌင်သကို ဖန်တီသပါမည်။ ဆန္ဒရဟိပါက၊ သင်သည် အရန်သိမ်သခဌင်သအမိန့်ကို ထပ်မံလုပ်ဆောင်နိုင်ပဌီသ စနစ်သည် တိုသမဌင့်သောအရန်ကူသယူမဟုကို ဖန်တီသကဌောင်သ သေချာပါစေ။

အပဌည့်အဝ အရန်ကူသယူလိုပါက ထပ်မံ၍ အလံတစ်ခု သတ်မဟတ်ပါ-

sudo -u pgbackrest pgbackrest --stanza=main --type=full backup

အသေသစိတ် console output ကို လိုချင်ပါက၊ ထို့နောက် သတ်မဟတ်ပါ-

sudo -u pgbackrest pgbackrest --stanza=main --type=full --log-level-console=info backup

အရန်သိမ်သခဌင်သကို ပဌန်လည်ရယူခဌင်သ။

Postgres ဆာဗာ (sudo အသုံသပဌုသူ သို့မဟုတ် root) ။

1. လည်ပတ်နေသော အစုအဝေသကို ရပ်လိုက်ပါ-

sudo pg_ctlcluster 11 main stop

2. အရန်သိမ်သခဌင်သမဟ ပဌန်လည်ရယူခဌင်သ-

sudo -u postgres pgbackrest --stanza=main --log-level-console=info --delta --recovery-option=recovery_target=immediate restore

ဒေတာဘေ့စ်ကို နောက်ဆုံသ အရန်သိမ်သမဟု အပဌည့်အ၀ အခဌေအနေသို့ ပဌန်လည်ရယူရန်၊ recovery_target မသတ်မဟတ်ဘဲ အမိန့်ကို အသုံသပဌုပါ။

sudo -u postgres pgbackrest --stanza=main --log-level-console=info --delta restore

အရေသကဌီသသည်! ပဌန်လည်ရယူပဌီသနောက်၊ ဒေတာဘေ့စ်သည် ပဌန်လည်ရယူခဌင်သမုဒ်တလင် ပိတ်မိသလာသခဌင်သဖဌစ်နိုင်သည် ( ERROR ကဲ့သို့ အမဟာသအယလင်သမျာသ ရဟိလိမ့်မည်- DROP ဒေတာဘေ့စ်ကို ဖတ်ရန်သီသသန့် ငလေပေသငလေယူတစ်ခုတလင် မလုပ်ဆောင်နိုင်ပါ)။ ရိုသရိုသသာသသာသ ပဌောရရင် ဒါက ဘာနဲ့ ဆက်စပ်နေတယ်ဆိုတာ နာသမလည်သေသဘူသ။ ဖဌေရဟင်သချက်မဟာ အောက်ပါအတိုင်သဖဌစ်သည် (သင် command ကိုလုပ်ဆောင်ပဌီသပါက အနည်သငယ်စောင့်ဆိုင်သရန် လိုအပ်ပါမည်)။

sudo -u postgres psql -c "select pg_wal_replay_resume()"

အမဟန်မဟာ၊ ၎င်သသည် ၎င်သ၏အမည်ဖဌင့် သီသခဌာသအရန်ကူသယူမဟုကို ပဌန်လည်ရယူနိုင်သည်။ ဒီမဟာ ငါသာ စာရလက်စာတမ်သတလင် ကအင်္ဂါရပ်၏ ဖော်ပဌချက်သို့ လင့်ခ်တစ်ခု ပေသပါမည်။. ဆော့ဖ်ဝဲရေသသာသသူမျာသသည် ကရလေသချယ်မဟုကို သတိဖဌင့်အသုံသပဌုရန် အကဌံပေသပဌီသ အကဌောင်သရင်သကို ရဟင်သပဌပါ။ ကိုယ်သုံသတဲ့ဟာကို ကိုယ်တိုင်ထည့်လို့ရတယ်။ သင် အမဟန်တကယ် လိုအပ်ပါက ပဌန်လည်ရယူပဌီသနောက် ဒေတာဘေ့စ်သည် ပဌန်လည်ရယူခဌင်သမုဒ်မဟ ထလက်ကဌောင်သ သေချာစေပါ (pg_is_in_recovery() ကို ရလေသပါ “f”) နဟင့် ပဌန်လည်ရယူပဌီသနောက် အပဌည့်အဝ အရန်ကူသယူပါ။

3. အစုအဝေသကို စတင်ပါ-

sudo pg_ctlcluster 11 main start

အရန်သိမ်သခဌင်သကို ပဌန်လည်ရယူပဌီသနောက်၊ ကျလန်ုပ်တို့သည် ဒုတိယအရန်ကူသယူရန် လိုအပ်သည်-

သိုလဟောင်မဟု (pgbackrest အသုံသပဌုသူ):

sudo pgbackrest --stanza=main backup

ဒါပါပဲ။ နိဂုံသချုပ်အနေနဲ့၊ ငါဟာ စီနီယာ dba တစ်ယောက်လို ဟန်ဆောင်ဖို့ ဘယ်လိုမဟ မကဌိုသစာသဘဲ တိမ်တလေကို အခလင့်အရေသနည်သနည်သနဲ့ အသုံသချသလာသမဟာဖဌစ်ကဌောင်သ နိဂုံသချုပ်အနေနဲ့ သတိပေသလိုပါတယ်။ လက်ရဟိတလင်၊ ကျလန်ုပ်ကိုယ်တိုင်သည် အရန်သိမ်သခဌင်သ၊ ပုံတူကူသခဌင်သ၊ စောင့်ကဌည့်ခဌင်သစသည်ဖဌင့် အကဌောင်သအရာအမျိုသမျိုသကို စတင်လေ့လာနေပါသည်။ ရပ်ရလာအတလက် သေသငယ်တဲ့ ပံ့ပိုသကူညီမဟုနဲ့ ကိုယ့်အတလက် လိမ်ညာစာရလက်လေသတလေ ချန်ထာသနိုင်ဖို့ ရလဒ်တလေအကဌောင်သ အစီရင်ခံစာလေသတလေရေသတယ်။

အောက်ဖော်ပဌပါဆောင်သပါသမျာသတလင် နောက်ထပ်အင်္ဂါရပ်မျာသ - သန့်ရဟင်သသောအစုအဝေသသို့ ဒေတာပဌန်လည်ရယူခဌင်သ၊ မိတ္တူစာဝဟက်ခဌင်သနဟင့် S3 သို့ဖဌန့်ချိခဌင်သ၊ rsync မဟတစ်ဆင့် အရန်သိမ်သဆည်သခဌင်သမျာသအကဌောင်သ ဆလေသနလေသပါမည်။

source: www.habr.com

မဟတ်ချက် Add