1.主库进行 pg_rman 备份:
打开归档
安装 pg_rman
建立备份目录:
mkdir -p /postgresql/backup
初始化备份目录
pg_rman init -B /postgresql/backup/
[pgsql@orcl backup]$ pg_rman -h 127.0.0.1 -p 5432 -U postgres backup -B
/postgresql/backup -b full
备份文件拷贝到备库
[pgsql@orcl backup]$ scp -r 20230506 192.168.31.42:/postgresql/backup
2.备库进行 pg_rman 恢复
备库初始化,不用启动数据库,把 pgdata 下面的文件全部删除
安装 pg_rman
rman 备份拷贝过去之后进行校验一下:
pg_rman validate -B /postgresql/backup/
不需要增量恢复的话,进行 rman 全备恢复:
[pgsql@orcl:/postgresql/backup/backup]$/usr/pgsql-15/bin/pg_rman restore -B
/postgresql/backup/ -D /postgresql/pgdata -A /postgresql/backup/backup/pg_wal -b
full
需要增量恢复的话,需要增量备份,增量备份会放在全备文件夹内,只拷贝增量备份的文件夹就行
[pgsql@orcl pg_wal]$ pg_rman -h 127.0.0.1 -p 5432 -U postgres backup -B
/postgresql/backup1 -b incremental
[pgsql@orcl backup1]$ scp -r 20230506/152422 192.168.31.42:/postgresql/backup
备库:
[pgsql@orcl:/postgresql/backup]$/usr/pgsql-15/bin/pg_rman validate -B
/postgresql/backup/
[pgsql@orcl:/postgresql/backup]$/usr/pgsql-15/bin/pg_rman show -B
/postgresql/backup/
=====================================================================
StartTime EndTime Mode Size TLI Status
=====================================================================
2023-05-06 15:24:22 2023-05-06 15:24:24 INCR 84MB 1 OK
2023-05-06 11:22:18 2023-05-06 11:22:22 FULL 200MB 1 OK
直接进行恢复会恢复到可以恢复的最后时间点:
[pgsql@orcl:/postgresql/backup/backup]$/usr/pgsql-15/bin/pg_rman restore -B
/postgresql/backup/ -D /postgresql/pgdata -A /postgresql/backup/backup/pg_wal -b
full
或者指定时间点恢复:
[pgsql@orcl pg_wal]$ /usr/pgsql-15/bin/pg_rman restore -B /postgresql/backup/ -D
/postgresql/pgdata --recovery-target-time "2023-05-06 15::23" --hard-copy
相关文档
评论