1.简介
pg_rman 是类似于 oracle 的 rman 备份工具,它实现了全量、增量、归档等类型的备份,可以很灵活的管理 PostgreSQL 数据库的备份。pg_rman 是一款开源的 PostgreSQL 的备份恢复插件,支持在线备份和基于 PITR 的恢复方式。
2.pg_rman特点
使用简单,一个命令即可完成备份和恢复.
支持在线全备,增量备份,归档备份.
支持备份压缩,通过 gzip 工具实现页内压缩.
自动备份维护,自动删除过期的 WAL 备份文件.
支持备份验证.
恢复期间无事务丢失,支持基于 PITR 的恢复
pg_rman 注意事项:
pg_rman 基于 pg_start_backup,copy,pg_stop_backup()的备份模式,因为是文
件拷贝模式,而不是流复制协议,所以 pg_rman 必须在数据库节点上运行。
pg_rman 需要在本地安装,不能远程备份
pg_rman 需要下载对应的版本
3.pg_rman命令选项
命令选项:
-D, --pgdata=PATH # 数据目录
-A, --arclog-path=PATH # 归档 wal 目录
-S, --srvlog-path=PATH # 数据库服务器日志路径
-B, --backup-path=PATH # 备份目录
-c, --check # 检查
-v, --verbose # 显示详细消息
-P, --progress # 显示处理进度
备份选项:
-b, --backup-mode=MODE # 备份模式:全备,增备,归档
-s, --with-serverlog # 备份服务器日志文件
-Z, --compress-data # 使用 zlib 压缩数据备份
-C, --smooth-checkpoint # 在备份前做平滑检查点
-F, --full-backup-on-error # 切换到完全备份模式,注意:此选项仅用于--backupmode = incremental 或 archive
--keep-data-generations=2 # 保留 2 份全备
--keep-data-days=15 # 备份保留 15 天
--keep-arclog-files=NUM # 保留 NUM 个归档日志
--keep-arclog-days=DAY # 归档 WAL 保留多久
--keep-srvlog-files=NUM # 保留 NUM 个服务器日志
--keep-srvlog-days=DAY # 服务器日志保留多久
--standby-host=HOSTNAME # 指定备库 IP
--standby-port=PORT # 指定备库端口
还原选项:
--recovery-target-time # 恢复到指定时间戳
--recovery-target-xid # 恢复到指定事务 ID
--recovery-target-inclusive # 是否包含恢复目标
--recovery-target-timeline # 恢复到特定的时间线
--hard-copy # 复制 archivelog 而不是符号链接
目录选项:
-a # 显示已删除的备份
删除选项:
-f # 强制删除比规定日期更旧的备份
连接选项:
-d, --dbname=DBNAME # 连接指定库
-h, --host=HOSTNAME # 数据库主机名/IP 地址
-p, --port=PORT # 数据库端口
-U, --username=USERNAME # 数据库用户名
-w, --no-password # 不提示密码
-W, --password # 强制密码提示
通用选项:
-q, --quiet # 不显示任何 INFO 或者 DEBUG 信息。
--debug # 查看 debug 信息。
4.安装pg_rman
软件下载:
https://github.com/ossc-db/pg_rman
文档地址:
http://ossc-db.github.io/pg_rman/index.html
源码安装:
wget -c https://github.com/ossc-db/pg_rman/archive/refs/heads/master.zip
cd pg_rman
export PATH=/usr/local/pgsql/bin:$PATH
make
make install
pg_rman 会默认安装在/usr/local/pgsql/bin/目录下