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

看起来好像是模仿oracle的RMAN工具。
pg_rman特点:
- 使用简单.一个命令即可完成备份和恢复.
- 支持在线全备,增量备份,归档备份.
- 支持备份压缩.通过gzip工具实现页内压缩.
- 自动备份维护.自动删除过期的WAL备份文件.
- 支持备份验证.
- 恢复期间无事务丢失.支持基于PITR的配置文件生成器.
包:pg_rman-1.3.2-1.pg95.rhel6.x86_64.rpm
[root@sdserver40_210 software]# rpm -ivh postgresql95-libs--1PGDG.rhel6.x86_64.rpm warning: postgresql95-libs--1PGDG.rhel6.x86_64.rpm: Header V4 DSA/SHA1 Signature, key ID 442df0f8: NOKEY Preparing... ########################################### [%] :postgresql95-libs ########################################### [%] [root@sdserver40_210 software]# rpm -ivh pg_rman--.pg95.rhel6.x86_64.rpm Preparing... ########################################### [%] :pg_rman ########################################### [%]
2. 配置环境变量
3.初始化备份目录
[postgres@sdserver40_210 ~]$ pg_rman init -B /data/pg_rman INFO: ARCLOG_PATH is set to '/home/postgres/archive' INFO: SRVLOG_PATH is set to '/data/pgdata/pg_log'
[postgres@sdserver40_210 ~]$ pg_rman backup --backup-mode=full --progress INFO: copying database files Processed of files, skipped NOTICE: pg_stop_backup complete, all required WAL segments have been archived INFO: copying archived WAL files Processed of files, skipped INFO: backup complete HINT: Please execute 'pg_rman validate' to verify the files are correctly copied.
--pg_rman 的备份必须都是经过验证过的,否则不能进行恢复和增量备份
Backups without validation cannot be used forrestoreand incremental backup--执行完备份要执行一次validate,因为备份后的状态是done,还不能进行恢复
[postgres@sdserver40_210 ~]$ pg_rman show ========================================================== StartTime Mode Duration Size TLI Status ========================================================== -- :: FULL 0m 343MB DONE [postgres@sdserver40_210 ~]$ pg_rman validate INFO: validate: "2016-05-31 16:36:45" backup and archive log files by CRC INFO: backup "2016-05-31 16:36:45" is valid [postgres@sdserver40_210 ~]$ pg_rman show ========================================================== StartTime Mode Duration Size TLI Status ========================================================== -- :: FULL 0m 343MB OK
[postgres@sdserver40_210 ~]$ ll
total
drwxrwxr-x postgres postgres May : archive
drwxrwxr-x postgres postgres May : backup
drwx------ postgres postgres May : data
drwxrwxr-x postgres postgres May : log
-rw-rw-r-- postgres postgres May : out_file
-rw-rw-r-- postgres postgres May : out.txt
drwxrwxr-x postgres postgres May : scripts
-rw-r--r-- postgres postgres May : test.sql
[postgres@sdserver40_210 ~]$ rm -rf data
[postgres@sdserver40_210 ~]$ ll
total
drwxrwxr-x postgres postgres May : archive
drwxrwxr-x postgres postgres May : backup
drwxrwxr-x postgres postgres May : log
-rw-rw-r-- postgres postgres May : out_file
-rw-rw-r-- postgres postgres May : out.txt
drwxrwxr-x postgres postgres May : scripts
-rw-r--r-- postgres postgres May : test.sql
[postgres@sdserver40_210 ~]$ pg_stop
waiting for server to shut down.... done
server stopped
[postgres@sdserver40_210 ~]$ pg_rman restore --recovery-target-time "2016-05-31 17:30:00"
INFO: the recovery target timeline ID is not given
INFO: use timeline ID of current database cluster
INFO: calculating timeline branches to be used to recovery target point
INFO: searching latest full backup which can be used as restore start point
INFO: found the full backup can be used as base in recovery: "2016-05-31 16:36:45"
INFO: copying online WAL files and server log files
INFO: clearing restore destination
INFO: validate: "2016-05-31 16:36:45" backup and archive log files by SIZE
INFO: backup "2016-05-31 16:36:45" is valid
INFO: restoring database files from the full mode backup "2016-05-31 16:36:45"
INFO: searching incremental backup to be restored
INFO: searching backup which contained archived WAL files to be restored
INFO: backup "2016-05-31 16:36:45" is valid
INFO: restoring WAL files from backup "2016-05-31 16:36:45"
INFO: restoring online WAL files and server log files
INFO: generating recovery.conf
INFO: restore complete
HINT: Recovery will start automatically when the PostgreSQL server is started.
[postgres@sdserver40_210 ~]$ pg_start
server starting
[postgres@sdserver40_210 ~]$ psql mydb lottu
psql ()
Type "help" for help.
mydb=> \d
List of relations
Schema | Name | Type | Owner
--------+------+-------+-------
public | test | table | lottu
( row)
mydb=> select * from test;
id | name
------+--------
| lottu
| rax
| xuan
| li0924
( rows)
mydb=> \q
[postgres@sdserver40_210 ~]$ ll
total
drwxrwxr-x postgres postgres May : archive
drwxrwxr-x postgres postgres May : backup
drwx------ postgres postgres May : data
drwxrwxr-x postgres postgres May : log
-rw-rw-r-- postgres postgres May : out_file
-rw-rw-r-- postgres postgres May : out.txt
drwxrwxr-x postgres postgres May : scripts
-rw-r--r-- postgres postgres May : test.sql
【参考文献】
POSTGRESQL9.5之pg_rman工具的更多相关文章
- PostgreSQL配置优化
硬件和系统配置 操作系统 Ubuntu13.04 系统位数 64 CPU Intel(R) Core(TM)2 Duo CPU 内存 4G 硬盘 Seagate ST2000DM001-1CH164 ...
- windows下源码安装调试postgresql
环境:windows 10 postgresql版本:postgresql-9.6.5 使用工具:vs2017社区版 辅助工具:perl.diff.flex.bison 相关工具下载地址: perl下 ...
- PostgreSQL 优势,MySQL 数据库自身的特性并不十分丰富,触发器和存储过程的支持较弱,Greenplum、AWS 的 Redshift 等都是基于 PostgreSQL 开发的
PostgreSQL 优势 2016-10-20 21:36 686人阅读 评论(0) 收藏 举报 分类: MYSQL数据库(5) PostgreSQL 是一个自由的对象-关系数据库服务器(数据库 ...
- 调试postgresql9.5.2最新源码
最近在考量数据库的选型,考虑后期把数据切换到postgresql ,postgresql源码用c实现,代码很精炼完美,值得学习下 首先去pgsql官网下载最新的源码 ,然后还需要perl,bison ...
- 基于数据库的自动化生成工具,自动生成JavaBean、自动生成数据库文档等(v4.1.2版)
目录: 第1版:http://blog.csdn.net/vipbooks/article/details/51912143 第2版:htt ...
- 使用pg_upgrade工具为PostgreSQL进行版本升级
公司的测试环境和生产环境都是9.2.4版本,而开发环境是9.0.18版本. PS: 不知道公司里的其它同事,是如何做数据库迁移的,利用第三方可视化工具备份数据库,然后恢复到其它高版本的环境?反正我没成 ...
- linux下Postgresql-9.2安装及数据库的创建过程
公司写部署手册需要,现总结一些linux下postgresql的安装及数据库创建的详细步骤吧! 1.1.1 软件安装 1.设置用户组和用户级别 Postgresql不能以root身份运行,要以其 ...
- PostgreSQL 使用PG_Rman进行物理备份
背景 在Oracle下我们可以使用rman进行物理备份,支持数据库的全量.增量.归档的备份模式而PostgreSQL作为开源数据库,近些时间来也一直向商业版数据库看齐,也推出了开源功工具pg_rman ...
- win7 编译postgresql9.6.8
一.环境 windows7 postgresql9.6.8 vs2010 perl5.24.3 二.编译安装 1.安装perl,安装到C:\Perl64路径下,安装完成后设置环境变量PATH和Perl ...
随机推荐
- python判断key是否在字典用in不用has_key
小测试 in del.py import datetime cur = datetime.datetime.now() num = 1 a_list = {"a":1, " ...
- MagicNotes:自我管理中的破窗效应
MagicNotes,思绪随风飞扬,偶尔在这里停留. 在<程序员修炼之道——从小工到专家>这本书里,有这么一段描述: 在市区,有些建筑漂亮而整洁,而另一些却是破败不堪的“废弃船只”.为什么 ...
- Linux服务和运行级别科普
在Linux中,列出所有的系统服务 chkconfig --list 输入以上命令可以看到类似以下的结果 sysstat :关闭 :关闭 :启用 :启用 :关闭 :启用 :关闭 tcsd :关闭 :关 ...
- 用get方式提交请求的url带有中文参数
又碰到JSP页面中文乱码问题,经过一次encodeURI处理后仍旧是乱码,后来经过两次encodeURI后正常显示中文 以前也碰到过同样的问题,没深究,这次网上搜集了一些资料,记录下来留做备份 ___ ...
- Java基础之写文件——将素数写入文件中(PrimesToFile)
控制台程序,计算素数.创建文件路径.写文件. import static java.lang.Math.ceil; import static java.lang.Math.sqrt; import ...
- Java 类型转换以及Object转成其他类型
Object转int int count=(int)map.get("count") int count=Integer.parseInt((String)map.get(&quo ...
- 转:Curl详解
用途说明 curl命令是一个功能强大的网络工具,它能够通过http.ftp等方式下载文件,也能够上传文件.其实curl远不止前面所说的那些功能,大家可以通过man curl阅读手册页获取更多的信息.类 ...
- Java基础(54):java四种内部类详解(转)
一般来说,有4中内部类:常规内部类.静态内部类.局部内部类.匿名内部类. 一.常规内部类:常规内部类没有用static修饰且定义在在外部类类体中. 1.常规内部类中的方法可以直接使用外部类的实例变量 ...
- sql where 1=1
这段代码应该是由程序(例如Java)中生成的,where条件中 = 之后的条件是通过 if 块动态变化的.例如: String sql="select * from table_name w ...
- 夺命雷公狗—angularjs—3—表单验证的高级用法
其实我们的angularjs都是是块状代码,其实是可以在实际开发中保存下来以后就可以达到重复利用的目的了.. 废话不多说,直接上代码: <!doctype html> <html l ...