暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Postgresql 备份与恢复工具 PG_RMAN

DB从业者 2021-04-19
967

点击上方蓝字关注

介绍

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>报告错误。

文章转载自DB从业者,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论