点击上方蓝字关注
介绍
pg_rman是一款专门为postgresql设计的在线备份恢复的工具。其支持在线和基于时间点备份方式,还可以通过创建backupcatalog来维护DBcluster备份信息。
pg_rman使用的是pg_start_backup(),copy, pg_stop_backup()的备份模式。
pg_rman跑的不是流复制协议,而是文件拷贝,所以pg_rman必须和数据库节点跑在一起。如果在standby节点跑pg_rman,pg_rman则需要通过网络连接到主节点执行pg_start_backup和pg_stop_backup。
注意:
pg_rman只从postgresql.conf取log_directory和archive_command参数的值。
如果你的PostgreSQL的配置文件是include的或者配置在postgresql.auto.conf中。
这两个值将不准确。
所以建议你仅仅把参数配置在postgresql.conf中,而不要使用其他配置文件。
一、下载
Postgres版本为:

系统版本为:

网盘下载,选对应PG版本
链接:https://pan.baidu.com/s/1bME8zIY87UU0QN-mwvyUjw
提取码:l8pk
二、安装部署
解压文件

依赖包检查

如遇报错1、请检查,只能在流复制的主库进行安装

如遇报错2、请卸载系统原始postgres版本


编译安装

使用root用户makeinstall,需提前绑定变量

回归测试

三、使用
1、开启pg归档和参数设置(重启生效)(路径可自定义)

2、测试归档生效

3、rman初始化

查看元数据

4、全备
[postgres@postgres2~]$ export BACKUP_PATH=/home/postgres/rmanbackup

5、验证归档

6、查看备份

7、增量备份

四、恢复
将主机的Rmanbackup目录拷贝到恢复机

--对于pg_rman,如果备份的数据库全部丢失,包括pg_xlog目录内的文件,其只能恢复到备份时的时间点
--使用pg_rman进行恢复,注意如果归档目录不存在,则需要手动创建一个归档目录
参考:
[postgres @localhost] $ pg_rman --help
pg_rman管理PostgreSQL数据库的备份/恢复。
用法:
pg_rman OPTION init
pg_rman选项备份
pg_rman选项恢复
pg_rman选项show[DATE]
pg_rman OPTION showdetail [DATE]
pg_rman OPTIONvalidate [DATE]
pg_rman OPTIONdelete DATE
pg_rman选项purge
常用选项:
-D,--pgdata=数据库存储区域的PATH位置
-A,--arclog-path=归档WAL存储区域的PATH位置
-S,--srvlog-path=服务器日志存储区的PATH位置
-B,--backup-path=备份存储区的PATH位置
-c,--check显示会做什么
-v,--verbose显示什么详细消息
-P,--progress显示已处理文件的进度
备份选项(备份参数)
-b,--backup-mode= MODE full,incremental或archive
-s,--with-serverlog也备份服务器日志文件
-Z,--compress-data使用zlib压缩数据备份
-C,--smooth-checkpoint在备份之前做平滑的检查点
-F,--full-backup-on-error切换到完全备份模式
如果pg_rman找不到验证完全备份
当前时间轴
注意:此选项仅在--backup-mode= incremental或archive中使用。
--keep-data-generations= NUM保留NUM代的完整数据备份
--keep-data-days =NUM保留足够的数据备份以恢复到N天前
--keep-arclog-files= NUM保留NUM个归档WAL
--keep-arclog-days =DAY保持在DAY天内修改的归档WAL
--keep-srvlog-files= NUM保留NUM个伺服器记录
--keep-srvlog-days =DAY在DAY天内修改伺服器记录
--standby-host =HOSTNAME从备用数据库进行备份时的备用主机
--standby-port=从备用备份时的PORT备用端口
恢复选项
--recovery-target-time时间戳,恢复将继续进行
--recovery-target-xid事务ID,恢复将继续进行
--recovery-target-inclusive是否在恢复目标之后停止
--recovery-target-timeline恢复到特定的时间线
-硬拷贝复制archivelog不是符号链接
目录选项:
-a,--show-all也显示已删除的备份
删除选项:
-f,--force强制删除早于给定DATE的备份
连接选项:
-d,--dbname=要连接的DBNAME数据库
-h,--host= HOSTNAME数据库服务器主机或套接字目录
-p,--port= PORT数据库服务器端口
-U,--username= USERNAME要连接的用户名
-w,--no-password从不提示输入密码
-W,--password强制口令提示
一般选项:
-q,--quiet不显示任何INFO或DEBUG消息
--debug显示DEBUG消息
--help显示此帮助,然后退出
--version输出版本信息,然后退出
阅读网站了解详情。<http://github.com/ossc-db/pg_rman>
向<http://github.com/ossc-db/pg_rman/issues>报告错误。




