掰着脚趾数备份恢复,pg_rman也算一个够牛逼的工具了!!!_数据库

作者:IT邦德
中国DBA联盟(ACDU)成员,10余年DBA工作经验
擅长主流数据Oracle、MySQL、PG、openGauss运维
备份恢复,安装迁移,性能优化、故障应急处理等

可提供技术业务:
1.DB故障处理/疑难杂症远程支援
2.Mysql/PG/Oracle/openGauss
数据库部署及数仓搭建

•••
公众号:IT邦德


文章目录

  • 前言
  • 📣 1.pg_rman介绍
  • 📣 2.安装部署
  • 📣 3.PG开启归档
  • 📣 4.物理备份
  • ✨ 4.1 初始化
  • ✨ 4.2 全量备份
  • ✨ 4.3 增量备份
  • 📣 5.备份恢复
  • ✨ 5.1 不完全恢复
  • ✨ 5.2 完全恢复
  • 📣 6.删除备份集
  • 📣 7.总结


前言

pg_rman是一款开源的备份恢复软件,支持在线和基于PITR的备份恢复方式

📣 1.pg_rman介绍

pg_rman是一款开源的备份恢复软件,
支持在线和基于PITR的备份恢复方式。
pg_rman类似于oracle的rman,
可以进行全量、增量、归档日志的备份。

pg_rman的用法非常简单,支持以下几种运行模式

掰着脚趾数备份恢复,pg_rman也算一个够牛逼的工具了!!!_备份恢复_02

📣 2.安装部署

https://github.com/ossc-db/pg_rman/releases/tag/V1.3.16

掰着脚趾数备份恢复,pg_rman也算一个够牛逼的工具了!!!_备份恢复_03

1、需要根据PG Server的版本,下载安装不同的版本。
2、需要提前使用编译安装的方式来安装PG Server

cp pg_rman-1.3.16-pg15.tar.gz /home/postgres
chown postgres:postgres -R /home/postgres/pg_rman-1.3.16-pg15.tar.gz
chmod +x /home/postgres/pg_rman-1.3.16-pg15.tar.gz
su - postgres
tar -zxvf pg_rman-1.3.16-pg15.tar.gz
cd pg_rman-1.3.16-pg15/
make && make install

[postgres@centos79 ~]$ which pg_rman
/pgccc/pgsql-15/bin/pg_rman

掰着脚趾数备份恢复,pg_rman也算一个够牛逼的工具了!!!_hive_04

📣 3.PG开启归档

mkdir -p /home/postgres/archive_dir
chown -R postgres.postgres /home/postgres/archive_dir

su - postgres

cat >> $PGDATA/postgresql.conf <<“EOF”
wal_level=‘replica’
archive_mode=‘on’
archive_command=‘test ! -f /home/postgres/archive_dir/%f && cp %p /home/postgres/archive_dir/%f’
restore_command=‘cp /home/postgres/archive_dir/%f %p’
max_wal_senders=10
EOF

–重启PG
pg_ctl restart

–登陆PG
psql -U postgres -h 192.168.6.20 -p 5432
select name,setting from pg_settings where name in (‘wal_level’,‘archive_mode’,‘archive_command’);
– 切换归档
select pg_switch_wal();

掰着脚趾数备份恢复,pg_rman也算一个够牛逼的工具了!!!_hive_05

📣 4.物理备份

✨ 4.1 初始化

初始化,实际上就是需要一个目录,这个目录将用于存放备份的文件
[postgres@centos79 ~]$ pg_rman init -B /home/postgres/backup

掰着脚趾数备份恢复,pg_rman也算一个够牛逼的工具了!!!_数据库_06

✨ 4.2 全量备份

pg_rman backup --backup-mode=full -B /home/postgres/backup
pg_rman show -B /home/postgres/backup
pg_rman validate -B /home/postgres/backup

掰着脚趾数备份恢复,pg_rman也算一个够牛逼的工具了!!!_hive_07

✨ 4.3 增量备份

pg_rman backup --backup-mode=incremental -B /home/postgres/backup
pg_rman show -B /home/postgres/backup
pg_rman validate -B /home/postgres/backup

掰着脚趾数备份恢复,pg_rman也算一个够牛逼的工具了!!!_postgresql_08

📣 5.备份恢复

✨ 5.1 不完全恢复

–不完全恢复
pg_ctl stop
rm -rf /pgccc/pgdata/*
pg_rman restore -B /home/postgres/backup
–recovery-target-time=“2024-04-16 16:23:36”

掰着脚趾数备份恢复,pg_rman也算一个够牛逼的工具了!!!_备份恢复_09

✨ 5.2 完全恢复

pg_ctl stop
rm -rf /pgccc/pgdata/*
pg_rman restore -B /home/postgres/backup

掰着脚趾数备份恢复,pg_rman也算一个够牛逼的工具了!!!_数据库_10

📣 6.删除备份集

–按指定时间从catalog删除备份集
pg_rman -B /home/postgres/backup delete “2024-04-16 16:12:45” -f
[postgres@centos79 ~]$ pg_rman purge -B /home/postgres/backup
INFO: DELETED backup “2024-04-16 16:12:42” is purged

掰着脚趾数备份恢复,pg_rman也算一个够牛逼的工具了!!!_备份恢复_11

📣 7.总结

pg_rman跑的不是流复制协议,而是文件拷贝,希望本篇文章帮助大家更好管理好PG的备份恢复