pitr 原理_PostgreSQL基于时间点恢复(PITR)

OS 环境:CentOS 6.2

数据库 :PostgreSQL 9.1.3

pg_home=/home/postgres/

pg_data=/database/pgdata/

一、前期工作既要恢复,肯定是需要一个备份基础的,否则再怎么的巧妇也难为无米之炊。

1.修改数据库参数,修改postgresql.conf:

archive_mode = on

archive_timeout = 300 --单位是秒,此处以5分钟为限强制归档,仅作测试

archive_command = 'cp -i %p /home/postgres/archive/%f'

wal_level = archive

修改完重启下reload,DB

2.基于文件级别的持续备份,

a.基础备份

postgres=# select pg_start_backup('backup_2012_05_20_14:22:10');

b.打包备份pg_data

# cd /database

# tar -cvzf pgdata.tar ./pgdata

c.结束基础备份并切换归档

postgres=# select pg_stop_backup();

postgres=# select pg_switch_xlog();

pg_switch_xlog

----------------

0/C000020

(1 row)

postgres=# select pg_current_xlog_location();

pg_current_xlog_location

--------------------------

0/C000020

(1 row)

postgres=# create table test_1(id int,name varchar(50));

postgres=# insert into test_1 values (1,'kenyon');

INSERT 0 1

此时在pg_data路径下会产生一个label,可以查看内容有checkpoint时间,基础备份的开始和结束时间,以及标签名称等。因为之前已经设置了archive的三个参数,可以在archive的备份路径pg_home/archive下看到归档的文件会定时传过来。

二、恢复过程

停数据库

# pg_stop

假定数据库的崩溃场景,将pgdata数据删除

# rm -rf /database/pgdata

恢复之前备份的tar文件

# tar xvf pgdata.tar

删除pg_xlog文件夹并重建

# rm -rf pg_xlog # mkdir -p pg_xlog/archive_status

拷贝recovery.conf文件并修改

# cp $PG_HOME/recovery.conf.sample /database/pgdata/

# vi /database/pgdata/recovery.conf

--新增内容,指定恢复文件和路径,%f,%p见上面说明

restore_command = 'cp /home/postgres/archive/%f "%p"'

启动数据库

# pg_start

[postgres@localhost archive]$ psql

spsql (9.1.3)

Type "help" for help.

postgres=# select * from test_1;

id | name

----+--------

1 | kenyon

(1 rows) --恢复成功,会恢复到之前接收到的最后一个归档文件。另外recovery.conf会改名变成recovery.done

日志内容:

LOG: shutting down

LOG: database system is shut down

LOG: database system was interrupted; last known up at 2012-05-20 22:23:15 CST

LOG: starting archive recovery

LOG: restored log file "000000010000000000000002" from archive

LOG: redo starts at 0/8000078

LOG: consistent recovery state reached at 0/C000000

LOG: restored log file "000000010000000000000003" from archive

LOG: restored log file "000000010000000000000004" from archive

LOG: restored log file "000000010000000000000005" from archive

LOG: restored log file "000000010000000000000006" from archive

LOG: restored log file "000000010000000000000007" from archive

cp: cannot stat `/home/postgres/archive/000000010000000000000008': No such file or directory

LOG: could not open file "pg_xlog/000000010000000000000008" (log file 0, segment 8): No such file or directory

LOG: redo done at 0/1C000078

LOG: last completed transaction was at log time 2012-05-20 23:01:22.960591+08

LOG: restored log file "000000010000000000000007" from archive

cp: cannot stat `/home/postgres/archive/00000002.history': No such file or directory

LOG: selected new timeline ID: 2

cp: cannot stat `/home/postgres/archive/00000001.history': No such file or directory

LOG: archive recovery complete

LOG: database system is ready to accept connections

LOG: autovacuum launcher started

PS:若要恢复到指定时间,还需要再recovery.conf中设置recovrey_target_time,recovery_target_timeline等参数

总结:pitr技术对于7*24小时支撑是至关重要的,但是如果数据库非常小,增大pg_dump备份的频率可能更方便,但对于大数据库就需要了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/560958.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

c++类和对象初步

程序设计与算法(三)C面向对象程序设计-郭炜 第二周 总结整理: 目录: 1.类成员的可访问范围2.成员函数的 重载及参数缺省3.构造函数 (constructor)4.复制构造函数 copy constructor5.类型转换构造函数6.析构函数 destructors 1…

imx6ull用video4linux,CB140(imx6ull)使用Openwrt系统

主机平台: UBUNTU14.04硬件平台:明远智睿MY-IMX6-EK140P (其他平台也是)编译器: gcc-linaro-5.3-2016.02-x86_64_arm-linux-gnueabihf.tar.xz内核版本 linux-4.1.15文件系统: openwrt_last_rootfs.tar.bz2 (附件有)简介:…

分步表单_表单设计-掌握表单设计方法(表单体验篇)

全篇阅读大概需要15min,对表单设计不熟悉的同学看完后肯定会有不少的收获~~~说到表单其实在生活中可以接触到各种各样的表单,比如:驾照申请表、体检表、银行开户需要填写的表等等,这些都是表单,主要目的就是让用户填写…

类和对象提高

程序设计与算法(三)C面向对象程序设计-郭炜 第三周 总结整理: 目录: 1.this指针2.静态成员3.成员对象和封闭类4.友元 (friends)5.常量成员函数 1.this指针 C程序到C程序的翻译 class CCar { public: int price;…

4)lsof linux命令,***Linux命令实时监测系统(top,htop,iotop,lsof,tcpdump,netstat,vmstat,iostat)...

摘要:本文总结了8个非常实用的Linux命令行性能监测工具,这些命令支持所有的Linux系统,不仅可以用于监控系统,还可以发现导致性能问题的原因所在。对每个系统/网络管理员来说,每天监测Linux系统性能是一项非常艰巨的任务…

算法竞赛入门经典 第七章 总结

目录: 7.1 简单枚举7.2 枚举排列7.3 子集生成 7.1 简单枚举 例题7-1 除法(Division, UVa 725) 输入正整数n,按从小到大的顺序输出所有形如abcde/fghij n的表达式,其中a~j恰好 为数字0&#xff5e…

bootstraptable 列隐藏_bootstrap中table如何隐藏列?

Bootstrap如何隐藏table中的某一列?下面本篇文章给大家介绍一下。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。Bootstrap隐藏table中的某一列1、利用bootstrapTable来设置要隐藏和显示的列$(function () {//初始化tableL…

华为android强刷系统下载地址,华为强刷救砖卡刷包合集下载(一)共707GB

(High Level Repair Center is forbidden)Berlin-AL10AC00B381_Android7.0_EMUI5.0_05014NVD.zip(High Level Repair Center is forbidden)GRA-CL00_C92B370_Android6.0_EMUI4.0.2_05012QKC.zipMLA-AL10C00B360_Android7.0_EMUI5.0.1_05014DHN.zipMLA-UL00_C17B170_China_联通…

线性表总结

线性表及其实现多项式的表示什么是线性表线性表的抽象数据类型描述线性表的顺序存储实现线性表的链式存储实现 线性表及其实现 多项式的表示 [例] 一元多项式及其运算 一元多项式 : 主要运算:多项式相加、相减、相乘等 【分析】如何表示多项式?…

md 生成目录 码云_搭建简易博客方案

现在大家都喜欢用markdown来写技术博客,这篇文章将阐述搭建支持markdown的简易博客方法。我的写作需求通过阅读本文,您将学会搭建满足以下条件的博客:博客只用书写markdown文件能支持版本控制免费,不需要租服务器或主机编写、部署…

mix2s android p功能,已升安卓P!网友:MIX2S才是亲儿子

原标题:已升安卓P!网友:MIX2S才是亲儿子一直以来,小米在手机系统更新上都有着非常明显的优势,MIUI经过了多年的更新迭代,如今已经达到了非常不错的易用性,而且流畅度方面的表现更是优秀。如今小…

python爬取图片的步骤_Python爬取图片的过程分析

一、获取网页源码二、数据解析,得到图片的地址、部分文字作为文件名三、返回图片的二进制字节码四、保存图片文件到本地import requestsfrom lxml import etreeimport osheaders {User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_0) AppleWebKit/537.36…

堆栈总结

堆栈什么是堆栈堆栈的抽象数据类型描述栈的顺序存储实现 堆栈 什么是堆栈 计算机如何进行表达式求值? 算术表达式56/2-3*4。 正确理解: 56/2-3*4 53-3*4 8-3*4 8-12 -4 由两类对象构成的: 运算数,如2、3、4 运算符号…

nfc sim android8,Android NFC相关资料之MifareClassic卡(读写)

from: http://wszf.net/archives/2012/11/07/80510.html一般来说,给予MifareClassic的射频卡,一般内存大小有3种:1K: 16个分区(sector),每个分区4个块(block),每个块(block) 16个byte数据2K: 32个分区,每个…

android8 通知呼吸灯_Android8.0及以上的Notification

这篇文章上次修改于 702 天前,可能其部分内容已经发生变化,如有疑问可询问作者。在新版本上(Android8.0及以上)开发时,会遇到一些问题,比如,不显示通知,Notification 声音不可控,删除 channel 删…

harmonyos公测招募,nova为主 HarmonyOS 2.0开发者Beta公测再招募

原标题:nova为主 HarmonyOS 2.0开发者Beta公测再招募HarmonyOS 2.0开发者Beta公测招募将开启第二期,本次公测活动主要针对的机型是华为nova系列。活动报名时间为5月9日-5月17日。【PChome手机频道资讯报道】华为方面在4月份开启了HarmonyOS 2.0开发者Bet…

队列总结

什么是队列 队列(Queue):具有一定操作约束的线性表 插入和删除操作:只能在一端插入,而在另一端删除 数据插入:入队列(AddQ) 数据删除:出队列(DeleteQ) 先来先服务 先…

python连接mongodb进行查询_Python中的MongoDB基本操作:连接、查询实例

这篇文章主要介绍了Python中的MongoDB基本操作:连接、查询实例,本文直接给出操作示例代码,需要的朋友可以参考下MongoDB是一个基于分布式文件存储的数据库。由C语言编写。旨在为WEB应用提供可护展的高性能数据存储解决方案。它的特点是高性能、易部署、易使用&#…

D P- 免费馅饼

题目 都说天上不会掉馅饼,但有一天gameboy正走在回家的小径上,忽然天上掉下大把大把的馅饼。说来gameboy的人品实在是太好了,这馅饼别处都不掉,就掉落在他身旁的10米范围内。馅饼如果掉在了地上当然就不能吃了,所以ga…

android+录像中截图软件下载,录屏截图大师app

录屏截图大师app是一款专业录屏软件,不少用户可能会有使用手机录屏的需求,尤其是在手机内置没有录屏功能的时候,这款软件就非常值得大家考虑,支持自定义设置录屏的大小和画质,还没有水印,还支持后期的简单编…