PostgreSQL 增量备份详解以及相关示例
PostgreSQL 没有类似MySQL 的二进制日志, 但是有和MySQL 类似的REDO LOG,并且有MySQL 没有的REDO 归档功能。当然REDO 的归档已经MariaDB 和Percona-MySQL 已经实现。
那我们就利用PGSQL的REDO 归档,也叫WAL来实现增量备份。
假设我们已经做了一个物理的全备,并且相应的参数都已经设置完毕,比如以下:
- /home/full_backup 保存全备的目录。
- /home/increment_log 保存增备的目录。
- 进入postgresql.conf
- 开启WAL.
- wal_level = archive
- wal_keep_segments=1
- 开启WAL 的归档模式.
- archive_mode = on
- archive_command = 'test ! -f /home/increment_log/%f && cp %p /home/increment_log/%f' (归档,也就是增量)
那么关于WAL归档日志要注意的一点是,如果CRASH 掉了,那么没有归档的XLOG也可能没有提交到数据文件,所以有可能这部分数据会丢失掉。所以在之后恢复的时候我们要把这部分XLOG拷贝到全备的对应目录。
恢复方法:
- 1. 确保没有任何业务对PG服务进行访问。(有可能这个时候PG已经CRASH掉了。)
- 2. 先停掉POSTGRESQL 服务。
- 3. cd /home/pgsql;
- 4. mv data data_old
- 6. cp -rfp /home/full_backup/* /home/pgsql (拷贝全备)
- 7. cp -rfp data_old/pg_xlog/000* data/pg_xlog/ (这里是拷贝自从最后一个增量和系统CRASH之间的XLOG到对应的目录。)
- 8. cd data
- 9. vi recovery.conf (添加recovery.conf文件,让PG认为这次是在恢复。)
- restore_command='test ! -f /home/increment_log/%f && cp /home/increment_log/%f %p'
- recovery_target_timeline = 'latest'
- 10. chown -R postgres.postgres recovery.conf
- 11. 启动postgresql 服务即可。
如果正确恢复了,那么recovery.conf 会自动更名为recovery.done.
以我的机器为例,我的版本是9.3,PG_XLOG中看到的BACKUP 信息:
- [root@postgresql-instance pg_xlog]# cat 000000010000000000000003.00000028.backup
- START WAL LOCATION: 0/3000028 (file 000000010000000000000003)
- STOP WAL LOCATION: 0/30000B8 (file 000000010000000000000003)
- CHECKPOINT LOCATION: 0/3000028
- BACKUP METHOD: pg_start_backup
- BACKUP FROM: master
- START TIME: 2014-01-07 03:35:02 EST
- LABEL: ytt
- STOP TIME: 2014-01-07 03:36:27 EST
日志中会看到恢复如下恢复信息:
- < 2014-01-07 05:02:47.361 EST >LOG: 00000: starting archive recovery
- < 2014-01-07 05:02:47.361 EST >LOCATION: StartupXLOG, xlog.c:4983
- < 2014-01-07 05:02:47.369 EST >LOG: 00000: redo starts at 0/3000028
- < 2014-01-07 05:02:47.369 EST >LOCATION: StartupXLOG, xlog.c:5531
- < 2014-01-07 05:02:47.371 EST >LOG: 00000: consistent recovery state reached at 0/303FC88
PostgreSQL 增量备份详解以及相关示例的更多相关文章
- mysql全量和增量备份详解(带脚本)
在日常运维工作中,对mysql数据库的备份是万分重要的,以防在数据库表丢失或损坏情况出现,可以及时恢复数据. 下面对这种备份方案详细说明下:1.MySQLdump增量备份配置执行增量备份的前提条件是M ...
- Xtrabackup全量 增量备份详解
xtrabackup是Percona公司CTO Vadim参与开发的一款基于InnoDB的在线热备工具,具有开源,免费,支持在线热备,备份恢复速度快,占用磁盘空间小等特点,并且支持不同情况下的多种备份 ...
- MySQL系列详解五: xtrabackup实现完全备份及增量备份详解-技术流ken
xtrabackup简介 xtrabackup是一个用来对mysql做备份的工具,它可以对innodb引擎的数据库做热备.xtrabackup备份和还原速度快,备份操作不会中断正在执行的事务,备份完成 ...
- Linux lsof命令详解和使用示例【转】
所以如传输控制协议 (TCP) 和用户数据报协议 (UDP) 套接字等,系统在后台都为该应用程序分配了一个文件描述符,无论这个文件的本质如何,该文件描述符为应用程序与基础操作系统之间的交互提供了通用接 ...
- MySQL数据库备份详解
原文:MySQL数据库备份详解 对于任何数据库来说,备份都是非常重要的 数据库复制不能取代备份的作用 比如我们由于误操作,在主数据库上删除了一些数据,由于主从复制的时间很短,在发现时,从数据库上的数据 ...
- slf4j log4j logback关系详解和相关用法
slf4j log4j logback关系详解和相关用法 写java也有一段时间了,一直都有用slf4j log4j输出日志的习惯.但是始终都是抱着"拿来主义"的态度,复制粘贴下配 ...
- WebService核心文件【server-config.wsdd】详解及调用示例
WebService核心文件[server-config.wsdd]详解及调用示例 作者:Vashon 一.准备工作 导入需要的jar包: 二.配置web.xml 在web工程的web.xml中添加如 ...
- slf4j log4j logback log4j2关系详解和相关用法
来源:slf4j log4j logback关系详解和相关用法https://www.cnblogs.com/Sinte-Beuve/p/5758971.html The Simple Logging ...
- php为什么需要异步编程?php异步编程的详解(附示例)
本篇文章给大家带来的内容是关于php为什么需要异步编程?php异步编程的详解(附示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 我对 php 异步的知识还比较混乱,写这篇是为了 ...
随机推荐
- ..\USER\stm32f10x.h(428): error: #67: expected a "}" ADC1_2_IRQn = 18, /*!
MDK软件编译,出现如下错误: ..\USER\stm32f10x.h(428): error: #67: expected a "}" ADC1_2_IRQn = 18, /*! ...
- 尚硅谷韩顺平Linux教程学习笔记
目录 尚硅谷韩顺平Linux教程学习笔记 写在前面 虚拟机 Linux目录结构 远程登录Linux系统 vi和vim编辑器 关机.重启和用户登录注销 用户管理 实用指令 组管理和权限管理 定时任务调度 ...
- python(类的封装调用/继承/多态)
一.类的定义 类:用来描述具有相同的属性和方法的对象的集合.它定义了该集合中每个对象所共有的属性和方法.对象是类的实例 对象:类实例化出来的叫做对象 对象和类的关系:类和对象的关系就像模具和铸 ...
- c# 搜索字符串
- 2013.5.21 - KDD第三十三天
实验室例会,上到一半之后发现今天下午第二节课是Android,上次两节Android都没跟中秋碰头,这次又不能碰头了,然 后就赶紧给中秋发了个短信,说我在开会,晚上约个时间再谈.正好也称这一下午加一晚 ...
- 《你说对就队》第八次团队作业:Alpha冲刺 第四天
<你说对就队>第八次团队作业:Alpha冲刺 第四天 项目 内容 这个作业属于哪个课程 [教师博客主页链接] 这个作业的要求在哪里 [作业链接地址] 团队名称 <你说对就队> ...
- jemeter 查看结果树 分析
查看结果树,可以看到测试通过,通过 的测试通常为绿色.红色则代表失败了.可以查看到取样器结果,请求,响应数据 取样器结果中可以查看到响应头,响应数据大小,响应时间等信息. Thread Name: 线 ...
- 一次完整的HTTP请求与响应
本篇介绍的是一次完成的http请求都经过了那些步骤,这些步骤相应的作用又是什么 1.在浏览器端输入网站的url地址 只有知道了一个网站的url地址才能访问到这个网站 2.浏览器查找缓存 浏览器会查找浏 ...
- *.net框架 - IEnumerable类 & IQueryable类
什么使用IQueryable<T> 查询返回类型为什么用IQueryable<T>,而不用 IEnumerable<T>类型? IQueryable接口实现IEnu ...
- stm32自带的flash分布图
缘由是要用到flash来保存数据,因此查阅了数据手册与参考手册,一般情况下,将要保存的数据存放到比较靠后的地方,page254,page255,4k字节,已经相当多的了,