1.下载对应数据库版本及操作系统的pg_rman源码

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

本例使用的是centos6.9+pg10,因此下载的是pg_rman-1.3.7-pg10.tar.gz

源码是与操作系统无关的,在编译安装的时候会适配对应的操作系统

2.上传安装包并解压安装

# tar vxf pg_rman-1.3.7-pg10.tar.gz
# cd pg_rman-1.3.7-pg10
# export PATH=$PATH:/usr/local/pgsql/bin
# make

make时出现以下错误,提示找不到connect.h

pgut/pgut.c:11:30: error: fe_utils/connect.h: No such file or directory
pgut/pgut.c: In function ‘pgut_connect’:
pgut/pgut.c:949: error: ‘ALWAYS_SECURE_SEARCH_PATH_SQL’ undeclared (first use in this function)
pgut/pgut.c:949: error: (Each undeclared identifier is reported only once
pgut/pgut.c:949: error: for each function it appears in.)
make: *** [pgut/pgut.o] Error 1

解决方法,从其他版本copy一个connect.h过来

# cp /usr/local/pgsql-12.0/include/server/fe_utils/connect.h /usr/local/pgsql/include/server/fe_utils/

之后执行make

# make
# make install

验证rman,使用make installcheck验证

# chown -R postgres.postgres pg_rman-1.3.7-pg10
# su - postgres
$ cd /data/software/pg_rman-1.3.7-pg10
$ make installcheck

3.开启数据库归档

# su - postgres
$ cd /archlog
$ mkdir pg-10.0
$ cd $PGDATA
$ vi postgresql.conf

修改如下部分

# - Archiving -

archive_mode = on           # enables archiving; off, on, or always
# (change requires restart)
archive_command = 'test ! -f /archlog/pg-10.0/%f && cp %p /archlog/pg-10.0/%f' # command to use to archive a logfile segment
# placeholders: %p = path of file to archive
# %f = file name only
# e.g. 'test ! -f /mnt/server/archivedir/%f && cp %p /mnt/server/archivedir/%f'
archive_timeout = 1800 # force a logfile segment switch after this
# number of seconds; 0 disables

修改后,需要重启数据库

$ pg_ctl restart
$ psql
#切换以下redo,测试归档设置是否OK
select pg_switch_wal();

4.配置环境变量

# su - postgres
$ vi .bash_profile

添加如下环境变量

export BACKUP_PATH=/pgdata/pg_rman_backup

5.初始化pg_rman,并全备测试

$ pg_rman init
$ pg_rman backup --backup-mode=full -C -P
$ pg_rman show

6.删除归档的脚本和后台执行全备的脚本

$ pg_archivecleanup -d /archlog/archivedir 000000010000EEF700000060
$ nohup pg_rman backup --backup-mode=full -C -P > /archlog/pg_rman_backup/full_backup.log 2>&1 &

第二个nohub,意思是no hung up,在每一个ssh断开的时候,会向其所有子进程发送hung up信号,子程序会停止,使用nohub后,在ssh退出时,程序会继续执行

&是后台执行的意思,会让这个命令在后台执行,但是在ssh退出后,程序会被退出,两者结合起来可以实现后台执行

  

pg_rman的安装与使用的更多相关文章

  1. PostgreSQL 使用PG_Rman进行物理备份

    背景 在Oracle下我们可以使用rman进行物理备份,支持数据库的全量.增量.归档的备份模式而PostgreSQL作为开源数据库,近些时间来也一直向商业版数据库看齐,也推出了开源功工具pg_rman ...

  2. 记录一次编译安装Pg_rman缺少依赖包的问题

    系统版本:CentOS版本6.10(最终版) pg_rman:https://github.com/ossc-db/pg_rman -bash-4.1$ makegcc -Wall -Wmissing ...

  3. POSTGRESQL9.5之pg_rman工具

    pg_rman是一款专门为postgresql设计的在线备份恢复的工具.其支持在线和基于时间点备份方式,还可以通过创建backup catalog来维护DB cluster备份信息. 看起来好像是模仿 ...

  4. docker——容器安装tomcat

    写在前面: 继续docker的学习,学习了docker的基本常用命令之后,我在docker上安装jdk,tomcat两个基本的java web工具,这里对操作流程记录一下. 软件准备: 1.jdk-7 ...

  5. 网络原因导致 npm 软件包 node-sass / gulp-sass 安装失败的处理办法

    如果你正在构建一个基于 gulp 的前端自动化开发环境,那么极有可能会用到 gulp-sass ,由于网络原因你可能会安装失败,因为安装过程中部分细节会到亚马逊云服务器上获取文件.本文主要讨论在不变更 ...

  6. Sublime Text3安装JsHint

    介绍 Sublime Text3使用jshint依赖Nodejs,SublimeLinter和Sublimelinter-jshint. NodeJs的安装省略. 安装SublimeLinter Su ...

  7. Fabio 安装和简单使用

    Fabio(Go 语言):https://github.com/eBay/fabio Fabio 是一个快速.现代.zero-conf 负载均衡 HTTP(S) 路由器,用于部署 Consul 管理的 ...

  8. gentoo 安装

    加载完光驱后 1进行ping命令查看网络是否通畅 2设置硬盘的标识为GPT(主要用于64位且启动模式为UEFI,还有一个是MBR,主要用于32位且启动模式为bois) parted -a optima ...

  9. Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part3:db安装和升级

    Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part3:db安装和升级 环境:OEL 5.7 + Oracle 10.2.0.5 RAC 5.安装Database软件 5. ...

随机推荐

  1. PHP代码审计学习-PHP-Audit-Labs-day2

    filter_var()函数 filter_var() 函数通过指定的过滤器过滤一个变量.如果成功,则返回被过滤的数据.如果失败,则返回 FALSE. filter_var(variable, fil ...

  2. zookeeper集群&伪集群模式部署

    1.什么是单机部署 一台服务器上面部署一个单机版本的zookeeper服务,用于提供服务. 2.什么是集群部署? 集群部署就是多台服务器上面各部署单独的一个zookeeper服务,然后组建一个集群 3 ...

  3. 2020-2021-1 20209307《Linux内核原理与分析》第四周作业

    一.Linux内核源代码简介 1.计算机三大法宝 存储程序计算机 函数调用堆栈 中断机制 2.操作系统两把宝剑 中断上下文的切换 进程上下文的切换 3.函数目录 Linux-3.18.6/arch/x ...

  4. 浅入 AutoMapper

    目录 浅入 AutoMapper AutoMapper 基本使用 映射配置 映射检查 性能 Profile 配置 依赖注入 表达式与 DTO 浅入 AutoMapper 在 Nuget 搜索即可安装, ...

  5. 工具-Redis-介绍(99.6.1)

    @ 目录 1.nosql介绍 2.Redis特性 3.redis应用场景 关于作者 1.nosql介绍 not only sql,不支持SQL语法.存储结构跟传统关系型数据库中的那种关系表完全不同,n ...

  6. pandas的学习1-基本介绍

    ''' Numpy 和 Pandas 有什么不同 如果用 python 的列表和字典来作比较, 那么可以说 Numpy 是列表形式的,没有数值标签,而 Pandas 就是字典形式.Pandas是基于N ...

  7. ​grafana 的主体架构是如何设计的?

    ​grafana 的主体架构是如何设计的? grafana 是非常强大的可视化项目,它最早从 kibana 生成出来,渐渐也已经形成了自己的生态了.研究完 grafana 生态之后,只有一句话:可视化 ...

  8. Python进阶——什么是上下文管理器?

    在 Python 开发中,我们经常会使用到 with 语法块,例如在读写文件时,保证文件描述符的正确关闭,避免资源泄露问题. 你有没有思考过, with 背后是如何实现的?我们常常听到的上下文管理器究 ...

  9. 初接触matplotlib

    1,绘制简单的折线图. 1 import matplotlib.pyplot as plt 2 3 square = [1,4,9,16,25] 4 5 plt.plot(square) 6 plt. ...

  10. Asp.Net Core仓储模式+工作单元

    仓储模式+工作单元 仓储模式 仓储(Repository)模式自2004年首次作为领域驱动模型DDD设计的一部分引入,仓储本质上是提供提供数据的抽象,以便应用程序可以使用具有接口的相似的简单抽象集合. ...