f Postgres Restore pg_basebackup 備份 ~ 迪貝之家

Pages

Postgres Restore pg_basebackup 備份

 

天要做某個Postgres的災難回復演練
就是進行備份的restore
這個系統是用pg_basebackup 來進行備份
所以我寫的就是怎麼用pg_basebackup來進行還原步驟
坦白說...在這之前,沒真正做過
所以只好去谷哥囉.......
Backup and Restore a PostgreSQL Cluster With Multiple Tablespaces Using pg_basebackup
我所有的步驟都是依據這篇Po文
首先, 當然是確定tablespace 的對應
你看人家標題針對的就是它
因為如果是default
簡單啦~~
就把base.tar.gz解開來就對了
我一開始是進原系統查看tablespace 的定義
pg_tablespace
後來仔細讀了那篇文章之後
才知道base.tar.gz裏有一個tablespace_map的檔案
裏頭的內容就是該份備份表格空間與file system的對應
tablespace_map
也對啦~~當你真的碰到系統掛了
去哪兒找mapping 阿......
圖裏我cat的內容叫tablespace_map.old
那是因為這個時候,系統已經還原成功了
再來,
就是把個別的tar.gz備份檔解壓縮到對應的目錄
tar xvzfpP /dbbackup/backup/COWBAY_20200907/base.tar.gz -C /edb
tar xvzfpP /dbbackup/backup/COWBAY_20200907/16414.tar.gz -C /COWBAYtbs_data/COWBAY_data
tar xvzfpP /dbbackup/backup/COWBAYol_20200907/16415.tar.gz -C /COWBAYtbs_index/COWBAY_idx
tar xvzfpP /dbbackup/backup/COWBAYol_20200907/16416.tar.gz -C /COWBAYtbs_temp
tar xvzfpP /dbbackup/backup/COWBAYol_20200907/16397.tar.gz -C /COWBAYtbs_data/bt_data
tar xvzfpP /dbbackup/backup/COWBAYol_20200907/16398.tar.gz -C /COWBAYtbs_data/bt_data_pa
tar xvzfpP /dbbackup/backup/COWBAYol_20200907/16400.tar.gz -C /COWBAYtbs_index/bt_idx
tar xvzfpP /dbbackup/backup/COWBAYol_20200907/16401.tar.gz -C /COWBAYtbs_index/bt_idx_pa
tar xvzfpP /dbbackup/backup/COWBAYol_20200907/16396.tar.gz -C /COWBAYtbs_data/ol_data
tar xvzfpP /dbbackup/backup/COWBAYol_20200907/16399.tar.gz -C /COWBAYtbs_index/ol_idx
tar xvzfpP pg_wal.tar.gz -C /edb_arch/postgres_archive
最後,
就是編輯recovery.conf囉
我也不指定時間了
反正就是有多少WAL檔
就修到那個時間點
所以我只放了一行設定
restore_command = 'cp /edb_arch/postgres_archive/%f "%p"'
登登登登登........
來下指令啟動db instance了
pg_ctl start
這樣就結束了
postgresql restore