资讯专栏INFORMATION COLUMN

PG备份恢复之pg_rman

IT那活儿 / 3778人阅读
PG备份恢复之pg_rman

数据库维护中备份和恢复重要性毋庸置疑,实现的方式也多种多样,各有千秋;参照ORACLE备份恢复工具, Postgresql也具备了类似的备份恢复能力。

现对以下几种备份工具的简单对比:

鉴于长期使用rman的原因,本文主要介绍pg_rman的部署及使用;


1.  安装部署

1)下载对应数据库版本及操作系统的安装包

https://github.com/ossc-db/pg_rman/releases

当前1.3版本是比较稳定的版本,从1.3.9开始支持PG12以上版本,目前最新支持PG13版本;


2)上传安装包并解压安装(postgres用户安装)

# tar vxf pg_rman-1.3.9-pg12.tar.gz
# cd pg_rman-1.3.9-pg12
# make
# make install
# makeinstallcheck

3)开归档

Alter system set wal_level=replica;
Alter system set archive_mode=on;
Alter system set archive_command = cp %p /opt/pg12/arch/%f;

重启数据库,也可直接修改配置文件开启归档

4)初始化环境

——设置备份目录,在用户配置文件里面添加如下:

——重点:备份目录不要放在数据目录下---
export BACKUP_PATH= /opt/pg12 /pg_rman_bk


——让环境变量生效

source .bash_profile


——初始化备份目录,验证归档路径,日志目录,同时在备份路径下产生跟目标数据库相关的文件。

$ pg_rman init
pg_rman init
INFO: ARCLOG_PATH is set to /opt/pg12/arch
INFO: SRVLOG_PATH is set to /opt/pg12/data/pg_log

注:在配置归档路径时,路径不要写成cp %p /opt/pg12/arch/ar_%f,初始化后ARCLOG_PATH后路径显示是/opt/pg12/arch/ar,实际归档文件存在/opt/pg12/arch,清理归档时会报找不到文件;


——查看备份路径下的内容:

[postgres@pg1 pg12]$ ll pg_rman_bk
total 8
drwx------. 5 postgres postgres 48 Jul 7 12:21 20210707
drwx------. 4 postgres postgres 34 Jul 7 11:03 backup
-rw-rw-r--. 1 postgres postgres 69 Jul 7 11:03 pg_rman.ini
-rw-rw-r--. 1 postgres postgres 40 Jul 7 11:03 system_identifier
drwx------. 2 postgres postgres 6 Jul 7 11:03 timeline_history


2. 备份


  • 全备:
$ pg_rman backup --backup-mode=full -B /opt/pg12/pg_rman_bk/ -C -P


  • 验证备份(必须要验证,否则后续无法做增量备份):

$ pg_rman validate
INFO: validate: "2021-07-07 12:23:52" backup and archive log files by CRC
INFO: backup "2021-07-07 12:23:52" is valid


  • 查看备份信息:

$ pg_rman show
=====================================================================
 StartTime EndTime Mode    Size   TLI Status 
=====================================================================
2021-07-03 12:24:02  2021-07-07 12:24:04  FULL    15MB 1  OK


  • 增量备份(对数据库做增量备份前先做full备份):

$ pg_rman backup --backup-mode=incremental
INFO: copying database files
INFO: copying archived WAL files
INFO: backup complete


  • 删除备份:
$ pg_rman delete "2021-07-07 12:39:20"


  • -强制删除指定时间点之前的所有备份:

pg_rman delete "2021-07-07 12:21:15" -f


  • 清除归档,清除指定归档之前的归档日志:
pg_archivecleanup /opt/pg12/arch 000000010000000000000003

——可以在postgresql.conf文件中添加自动清除归档的命令:
archive_cleanup_command = pg_archivecleanup /opt/pg12/arch %r


  • 备份策略文件:pg_rman.ini

可配置备份的环境变量、备份选项、备份集保留期限等信息

默认信息如下:

[postgres@pg1 pg_rman_bk]$ cat pg_rman.ini
ARCLOG_PATH=/opt/pg12/arch
SRVLOG_PATH=/opt/pg12/data/pg_log


3. 恢复

  • 恢复数据库集群:

pg_rman restore
  • 启动数据库:

pg_ctl start
  • 指定恢复到某个时间点:

    pg_rman retore --recovery-target-time="2021-07-07 13:12:26"


END


更多精彩干货分享

点击下方名片关注

IT那活儿

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/129821.html

相关文章

  • pg_rman备份工具(下)

    pg_rman备份工具(下) img{ display:block; margin:0 auto !important; width:100%; } body{ width:75%; marg...

    不知名网友 评论0 收藏1409
  • 私有云搭建-私有云搭建存储虚拟化

    摘要:平台采用分布式存储系统作为虚拟化存储,用于对接虚拟化计算及通用数据存储服务,消除集中式网关,使客户端直接与存储系统进行交互,并以多副本纠删码多级故障域数据重均衡故障数据重建等数据保护机制,确保数据安全性和可用性。云计算平台通过硬件辅助的虚拟化计算技术最大程度上提高资源利用率和业务运维管理的效率,整体降低 IT 基础设施的总拥有成本,并有效提高业务服务的可用性、可靠性及稳定性。在解决计算资源的...

    ernest.wang 评论0 收藏0
  • Postgresql 备份恢复

    摘要:指定要用于查找的口令文件的名称。前四个字段可以是确定的字面值,也可以使用通配符匹配所有。利用环境变量引用的文件权限也要满足这个要求,否则同样会被忽略。在上,该文件被假定存储在一个安全的目录中,因此不会进行特别的权限检查。 pg_dump pg_dump 把一个数据库转储为纯文本文件或者是其它格式. 用法: pg_dump [选项]... [数据库名字] 一般选项: -f, --fi...

    阿罗 评论0 收藏0
  • 新书推荐 |《PostgreSQL实战》出版(提供样章下载)

    摘要:作者谭峰张文升出版日期年月页数页定价元本书特色中国开源软件推进联盟分会特聘专家撰写,国内多位开源数据库专家鼎力推荐。张文升中国开源软件推进联盟分会核心成员之一。 很高兴《PostgreSQL实战》一书终于出版,本书大体上系统总结了笔者 PostgreSQL DBA 职业生涯的经验总结,本书的另一位作者张文升拥有丰富的PostgreSQL运维经验,目前就职于探探科技任首席PostgreS...

    Martin91 评论0 收藏0
  • 阿里云如何打破Oracle迁移上云的壁垒

    摘要:摘要第九届中国数据库技术大会,阿里云数据库产品专家萧少聪带来以阿里云如何打破迁移上云的壁垒为题的演讲。于是,阿里云给出了上面的解决方案。 摘要: 2018第九届中国数据库技术大会,阿里云数据库产品专家萧少聪带来以阿里云如何打破Oracle迁移上云的壁垒为题的演讲。Oracle是指数据库管理系统,面对Oracle迁移上云的壁垒,阿里云如何能够打破它呢?本文提出了Oracle 到云数据库P...

    chavesgu 评论0 收藏0

发表评论

0条评论

IT那活儿

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<