Postgresql基础备份与时间点恢复

基础备份

在线数据库备份大致分为两类:逻辑备份和物理备份。

逻辑备份有一个缺点:执行需要花费太多的时间,特别是对于大型数据库而言,这是致命伤。相反的是,物理备份可以在相对较短的时间内备份和恢复大型数据库。

在Postgresql里用的主要是物理备份,整个数据库集簇在运行时的快照称基础备份。

时间点恢复(Point-In-Time Recovery, PITR)

PITR模式下的PostgreSQL会在基础备份上重放归档日志中的WAL数据,从pg_start_backup创建的重做点开始,恢复至你想要的位置为止。在PostgreSQL中,要恢复到的位置,被称为恢复目标(recovery target)。
在这里插入图片描述
PITR是这样工作的,假设你在GMT时间2018-07-16 12:05:00出了错误。那你应该删掉当前的数据库集簇,并使用之前制作的基础备份恢复一个新的出来。然后,创建一个recovery.conf文件,并在其中将参数recovery_target_time参数配置为你犯错误的时间点(在本例中,也就是12:05 GMT) 。recovery.conf文件如下所示:

#Place archive logs under /mnt/server/archivedir directory.
restore_command = ‘cp /mnt/server/archivedir/%f %p’
recovery_target_time = “2018-7-16 12:05 GMT”

时间线与时间线历史文件

PostgreSQL中的时间线用于区分原始数据库集簇和恢复生成的数据库集簇,它是PITR的核心概念。

时间线标识(TimeLineID)

每个时间线都有一个相应的时间线标识,一个四字节的无符号整数,从1开始计数

​每个数据库集簇都会被指定一个时间线标识。由initdb命令创建的原始数据库集簇,其时间线标识为1。每当数据库集簇恢复时,时间线标识都会增加1。例如在前一节的例子中,从原始集簇中恢复得到的集簇,其时间线标识为2。

下图从时间线标识的角度展示了PITR过程。首先,我们删除当前的数据库集簇,并替换为过去的基础备份,以便返回到恢复的起始点,这一步在图中用红色曲线箭头标识。接下来,我们启动PostgreSQL服务器,它通过跟踪初始时间线(时间线标识1),从创建的重做点开始,重放归档日志中的WAL数据,直到恢复目标达成,这一步在图中用蓝色直线箭头标识。接下来,恢复得到的数据库集簇将被分配一个新的时间线标识2,而PostgreSQL将运行在新的时间线上。

在这里插入图片描述

时间线历史文件

​ 当PITR过程完成时,会在归档目录和pg_xlog子目录(10或更高版本为pg_wal子目录)下创建名称为00000002.history的时间线历史文件。该文件记录了当前时间线是从哪条时间线分叉出来的,以及分叉的时间。

时间线历史文件至少包含一行,每行由以下三项组成:

1.时间线标识 —— 曾用于恢复的归档日志的时间线。
2.LSN —— 发生WAL段切换的LSN位置。
3.原因 —— 可读的时间线发生变化的原因解释。

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

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

相关文章

pgadmin备份数据和恢复数据

登录pgAdmin 找到自己想要备份的数据库 右键点击选择Backup 根据提示输入相应的信息 点击备份,完成后会有消息提示 点击查看 可以看到文件保存的位置 恢复数据 选择新建的数据库 右键点击选择restore 选择相应的备份文件和角色,点击确定 数据恢复完成

PostgreSQL的pg_basebackup备份恢复详解

备份 pg_basebackup -D /tmp/pg_backup/ -Ft -Pv -U postgres -h 1.15.57.253 -p5432 -R -D 空文件,没有该目录会自动创建F 格式话t 打包为tar包Pv 显示备份的详细过程-u 用户-p 端口 备份报错: 在配置文件pg_hba.conf增加一行: 备份流程&a…

pg 备份恢复(三)—— 详解完整恢复及基于时间点的恢复

一、 恢复配置详解 1. 归档恢复配置 主库 postgresql.conf archive_mode:是否开启归档,若要用归档方式搭建从库则必须开启archive_command:归档命令,通常是cparchive_timeout:在指定秒数后强制切换一个wal文件&…

postgresql使用pg_basebackup备份与恢复

postgresql可以使用pg_dump,pg_restore等命令来进行备份与恢复,那种情况不用停止pgsql服务,只需要执行备份恢复命令即可。 今天介绍的这种备份方式,类似于文件系统的备份与恢复,它需要使用pg_basebackup命令来进行备份&#xff0c…

使用pgAdmin4备份恢复(爬坑)

使用pgAdmin4备份恢复(爬坑) 1 通过Windows的pg客户端安装后,将会默认安装pgAdmin4 2 开始菜单搜索:pgAdmin4 打开 3 在Windows Server上,可能会出现: pgAdmin4被默认的IE浏览器打开,且IE浏览…

物联网如何为智慧城市提供动力

智慧城市可以创造一个基础设施顺畅、效率提升的乌托邦,改善城市地区的生活质量,促进当地经济发展。 其影响意义重大,预计到 2024 年智慧城市基础设施的收入将超过 1000 亿美元。 从改善公共交通到解决犯罪问题和提高能源效率——应有尽有&am…

爱的魔力转圈圈

题目链接: https://nuoyanli.com/contest/19/problem/B 题面: 题意:给定r和R,求最小的R数量在r外面围一圈包围住r球 思路: 首先:得知道相切的时候数量最小 其次:我们只需要算每一个R最大能占360的多少…

Discord一直连不上,转圈圈打不开——解决办法

首先更新下你的梯子服务器订阅,如果出现端口1080被占用的错误,则很有可能可以通过以下方法解决该问题。【如果不可以,可以先卸载掉你的discord软件再来一遍】 查看你的1080端口被哪个程序占用了? 1. windr打开命令窗口 2. cd …

win10状态栏一直转圈圈(重装系统后出问题)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、方法二、步骤总结 前言 记录一下个人经历: 昨天在给同学重装系统,重装好后出现了桌面操作无问题,但状态栏出现了假死现…

新建springboot项目一直转圈圈

哎,可能是我好久没有创建过后端springboot项目了,一直再搞前端,今天新建项目的时候就死活一直转圈圈,我一直以为网络不好,从头到尾换了三次网络,idea关了开,开了关,看还不行电脑都重启了&#x…

Qt+百度API实现人脸对比寻找明星脸

一、要求 1、使用百度人脸识别库 2、识别对比图片,获取图片相似度 3、显示最相似的明星照片、显示本人照片 4、调用摄像头拍照、比对查找最相似的明星脸 5、录入明星照片、查看照片列表、修改、删除照片 二、实现方式 2.1百度API封装 1、获取Token 鉴权认证参考…

根据姓名判断性别-人工智能

本帖训练一个可以根据姓名判断性别的CNN模型;我使用自己爬取的35万中文姓名进行训练。 使用同样的数据集还可以训练起名字模型,参看: TensorFlow练习7: 基于RNN生成古诗词https://github.com/tensorflow/models/tree/master/namignizerTensor…

一个很强大的人脸识别库face_recognition

官方网址:https://github.com/ageitgey/face_recognition 在图片中查找面孔: import face_recognition image face_recognition.load_image_file("your_file.jpg") face_locations face_recognition.face_locations(image) 查找和操作图片中…

人脸性别识别与表情识别代码——基于python深度学习的人脸属性识别

最近又到了毕业设计开题阶段了,想起当年毕业的时候因为不懂深度学习,做了很多功课,翻阅论文、Github,查找各类资源网站去学习,最后在公开资源的基础上调试了无数次,成功实现了基于深度学习的人脸属性识别课…

Java使用百度AI实现识别图片文字信息、身份证信息

百度AI识别API http://ai.baidu.com/docs#/OCR-API/top 这个官网里有丰富的识别示例文档、本文以识别身份证信息作为例子讲解 1、首先登录自己的 “百度智能云-管理中心” 创建应用获取app账号密码等信息 网址:https://console.bce.baidu.com 找到 “人工智能-文字…

Python实现AI图像识别-身份证识别

图像识别说白了就是把一张照片上面的文字进行提取,提供工作效率 需求分析 身份证识别主要是把一张身份证照片上面的文字信息进行提取,不用再使用人工去手动抄写了,下面给大家说的这个身份识别主要是使用pythonflask华为云OCR进行实现的。 …

QT对接百度云实现人脸注册和识别

文章目录 目录 一.UI界面设计 1.获取Access Token 二 http协议头构造 三.对接百度云人脸注册和识别 四.json数据处理 五,数据----->UI界面 六,效果 ​编辑 总结: 一.UI界面设计 左上lineedit是处理后的解析的json数据 下方的linee…

基于MobileNetv3实现人脸面部表情识别

前言 大家好,我是阿光。 本专栏整理了《PyTorch深度学习项目实战100例》,内包含了各种不同的深度学习项目,包含项目原理以及源码,每一个项目实例都附带有完整的代码+数据集。 正在更新中~ ✨ 🚨 我的项目环境: 平台:Windows10语言环境:python3.7编译器:PyCharmPy…

Qt+百度AI实现人脸识别之人脸检测

文章目录 简单需求Demo运行结果百度AI人脸识别接入为什么使用百度AI接口接入步骤如何获取Access Token Qt软件开发人脸检测Qt编程步骤知识点网络编程get、put、post请求方式的区别简述POST 提交数据方式如何对图片进行BASE64编码JSON数据解析 核心代码数据上传请求反馈数据解析…

眼见不为“实”,人们更信任人工智能合成的假脸

常言道,耳听为虚,眼见为实。但是现在随着人工智能技术的发展,眼见可不一定为实。而造成这一结果的全都是因为深度伪造技术,简称深伪技术或者深度伪造。是Deep Learing(深度学习)和Fake(伪造&…