pg_basebackup物理備份與還原


pg_basebackup被用於獲得一個正在運行的PostgreSQL數據庫集簇的基礎備份,簡單記錄下過程

1、初始化數據庫(pg版本12.1)

./initdb -USYSTEM -W -D ./data

 

 

 

 2、修改配置文件

1、vim postgresql.conf
listen_addresses = '*'
wal_level = replica
archive_mode = on
archive_command = 'cp %p /home/cli/bin/%f && echo %f >> /home/cli/bin/archive.list' max_wal_senders= 10 wal_keep_segments=1024 hot_standby = on
2、vim postgresql.conf
host    replication     all             192.168.1.108/32            trust

3、創建基礎備份

主機啟動數據庫
./pg_ctl -D data/ start

備機創建備份集

  ./pg_basebackup -D /home/cli/pg/bin/back -Ft -v -P -USYSTEM -h 192.168.1.108 -p5432 -R

-----------------

[cli@localhost bin]$ ./pg_basebackup -D /home/cli/pg/bin/back -Ft -v -P -USYSTEM -h 192.168.1.108 -p5432 -R
pg_basebackup: 開始基礎備份,等待檢查點完成
pg_basebackup: 已完成檢查點
pg_basebackup: 預寫日志起始於時間點: 0/2000028, 基於時間軸1
pg_basebackup: 啟動后台 WAL 接收進程
pg_basebackup: 已創建臨時復制槽"pg_basebackup_52255"
24761/24761 kB (100%), 1/1 表空間
pg_basebackup: 預寫日志結束點: 0/2000100
pg_basebackup: 等待后台進程結束流操作...
pg_basebackup: 同步數據到磁盤...
pg_basebackup: 基礎備份已完成

4、備機進行恢復

1、查看備份文件
[
cli@localhost back]$ ls base.tar pg_wal.tar

2、解壓備份文件至數據庫data目錄
[cli@localhost back]$ tar -xvf base.tar -C ../data/
3、查看data目錄文件
[cli@localhost data]$ ls
backup_label pg_commit_ts pg_ident.conf pg_notify pg_snapshots pg_subtrans PG_VERSION postgresql.auto.conf tablespace_map
base pg_dynshmem pg_logical pg_replslot pg_stat pg_tblspc pg_wal postgresql.conf
global pg_hba.conf pg_multixact pg_serial pg_stat_tmp pg_twophase pg_xact standby.signal
4、復制pg_wal目錄下的日志文件至archive目錄下(/home/cli/bin)
5、修改postgresql.auto.conf,
restore_command = 'cp /home/cli/bin/%f %p'
6、啟動備機數據庫,恢復完成

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM