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

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

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

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

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

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

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

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

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

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

之后执行make

  1. # make
  2. # make install

验证rman,使用make installcheck验证

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

3.开启数据库归档

  1. # su - postgres
  2. $ cd /archlog
  3. $ mkdir pg-10.0
  4. $ cd $PGDATA
  5. $ vi postgresql.conf

修改如下部分

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

修改后,需要重启数据库

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

4.配置环境变量

  1. # su - postgres
  2. $ vi .bash_profile

添加如下环境变量

  1. export BACKUP_PATH=/pgdata/pg_rman_backup

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

  1. $ pg_rman init
  2. $ pg_rman backup --backup-mode=full -C -P
  3. $ pg_rman show

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

  1. $ pg_archivecleanup -d /archlog/archivedir 000000010000EEF700000060
  2. $ 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. Kubernetes【K8S】(四):资源控制器

    什么是控制器 ​ Kubernetes中内建了很多controller(控制器),这些相当于一个状态机,用来控制Pod的具体状态和行为. 控制器类型 ReplicationController和Rep ...

  2. c预处理和宏

    文件的预处理 #include "xxx.h" 1 首先查找当前源文件所在的路径 2 查找工程的头文件搜索路径 #include <xxxx.h> 查找工程的头文件搜索 ...

  3. Eureka系列(二) 服务注册Server端具体实现

    服务注册 Server端流程   我们先看下面这张图片,这张图片简单描述了下我们EurekaClient 在调用EurekaServer 提供的服务注册Http接口,Server端实现接口执行的大致流 ...

  4. 某毒霸网站存在信息泄露和sql注入

    通过钟馗之眼搜索目标网站的证书使用者找到信息泄露的网站, 点击上图中的edit会跳转 手工注入sql发现有效 that's all

  5. LINQ to Entities 不识别方法“System.String ToString(“yyyy-MM-dd”)”

    将Queryable转化为IEnumerable或者直接Tolist()

  6. Core3.0返回的Json数据大小写格式问题

    前言 测试发现,CoreWebAPI返回的Json数据,会将字段的首字母转换为小写, 经百度得,返回数据会默认驼峰命名,导致的. 随即百度, https://www.cnblogs.com/cdone ...

  7. 【磁盘/文件系统】第二篇:标准磁盘分区流程针对fdisk(硬盘容量小于2T且分区数不能大于15个分区)

    前奏:先插上一块磁盘(做了RAID的磁盘才能分区) 查看磁盘连上服务器没有,或者说是可以进行分区前奏 [root@PandaLi ~]# ll /dev/sd sda sda1 sda2 sda3 s ...

  8. 检验实时3D像素流送平台好坏的七个标准!(上)

    将交互式3D像素流送技术作为有价值的企业工具之后,就该寻找像素流送服务供应商了.问题在于交互式3D像素流送是一种新兴技术,因此很难知道要问供应商的正确问题.在开始使用之前,这里有7个问题,您应该从候选 ...

  9. idea 【Maven Projects # Profiles】问题记录

    今天启动接一个新项目,然后项目启动后发现启动的环境和预想的不一致,查看 pom 文件确认自己是 dev 无误之后,但是启动的就是 test 环境. 问题 发现了启动环境不对不对之后,自己试了一种解决办 ...

  10. [Deep Learning] 神经网络编程基础 (Basics of Neural Network Programming) - 逻辑回归-梯度下降-计算图

    在神经网络中,假如有m个训练集,我们想把他们加入训练,第一个想到得就是用一个for循环来遍历训练集,从而开始训练.但是在神经网络中,我们换一个计算方法,这就是 前向传播和反向传播. 对于逻辑回归,就是 ...