10.基础备份与时间点恢复

news2025/7/5 1:08:24

目录

基础备份

时间点恢复

时间线


基础备份与时间线都是为了时间点恢复。

  1. 基础备份

基础备份的目的是备份当前的数据库集簇的快照,结合归档日志一起可以恢复至任意的时间点。

  1. 基础备份通过pg_start_backup命令开始为基础备份做准备,它会:
    1. 强制进行整页写入模式、
    2. 切换到当前的WAL段文件、
    3. 执行检查点,以便在制作基础备份的开始时刻显式创建一个重做点(那么后面就可以从该重做点开始,重放WAL归档日志,以恢复到该重做点之后的任意时间),该检查点的位置保存在非pg_control文件中。
    4. 新建backup_label文件,保存检查点位置、WAL开始位置(流复制用)、备份方法(如pg_start_backup)、备份来源(主/备库)、时间戳、开始时间线等。

在恢复时,从backup_label文件中,获取检查点位置,在归档日志中读取检查点,从检查点中获取重做点,并从重做点开始重放日志。

  1. 使用任意归档命令获取数据库集簇的快照,可以备份到远程机器上。
  2. 执行pg_stop_backup命令完成备份,该命令执行以下步骤:
    1. 关闭整页写入模式
    2. 写入一条备份结束的XLOG记录
    3. 切换WAL段文件
    4. 创建一个备份历史记录文件,将backup_label的内容复制进来,并加上当前的时间戳,删除原来的backup_label文件。
  3. 时间点恢复

当pg启动时,如果数据库集簇中存在recovery.conf文件和backup_label文件时,进入恢复模式,与常规恢复模式的区别是:1.时间点恢复从archive_command中设置的归档目录中获取归档日志进行恢复;2.检查点位置从backup_label中获取。

当重放的xlog日志中的时间戳超过目标时间戳时,则时间点恢复完成。并在pg_wal目录与归档目录下生成时间线历史文件。

  1. 时间线

pg使用不同的时间线来区分原始数据库与恢复生成的数据库(就像word异常关闭,会生成多个版本的word让你选)。

第九章中的WAL段文件名的前8位就是该WAL所属的时间线标识。

时间线历史文件至少包含一行,该行包括:原时间线标识(本时间线标识体现在文件名上)、发生WAL段切换的LSN、恢复目标等。对于多次恢复,会生成多个时间线历史文件,尽管后面的文件包含了前面文件中的数据。

在跨时间线进行恢复时,系统会依据不同的时间线历史文件,读取各条时间线上发生WAL段切换的LSN到恢复目标之间的合适的归档日志中读取XLOG并重放。如下:

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

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

相关文章

[附源码]java毕业设计基于web的停车收费管理系统

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

dot net 杂谈之一

文章目录一、使用vscode开发.net core程序二、创建解决方案三、反射3.1 反射应用场景一3.2 反射应用场景二一、使用vscode开发.net core程序 安装如下插件: 1、vscode-solution-explorer 2、.NET Core Extension Pack 3、搜索nuget工具包并安装 二、创建解决方案…

股票l2数据接口中的逐单跟逐笔是什么意思?

股票l2数据接口中的逐单跟逐笔是什么意思? 【逐单统计】是按成交委托单资金流转情况来统计,特大资金买卖差大单资金买卖差中单资金买卖差小单资金买卖差0。是双向统计,对于每单交易同时统计买卖双方,一定程度上反应了资金在不同类…

Redis+AOP实现一个可通用的分布式锁——改进

目录前言方案改进思考与总结前言 上一次利用Redis分布式锁解决了一个并发问题: 上篇:利用Redis分布式锁解决集群服务器定时任务重复执行问题 代码可以直接从上篇文章中拿到,本篇文章仅对上次文章内容做进一步改进 主要思想是:利…

一篇读懂|Linux系统平均负载

我们经常会使用 top 命令来查看系统的性能情况,在 top 命令的第一行可以看到 load average 这个数据,如下图所示: load average 包含 3 列,分别表示 1 分钟、5 分钟和 15 分钟的 系统平均负载。 对于系统平均负载这个数值&#x…

红杉官网已删长文:伴随SBF一路走来的救世主情结(上)

每个创业公司都有一个创业故事。苹果是洛斯阿尔托斯车库里的两个黑客。谷歌是斯坦福大学宿舍里的两个研究生。而Alameda Research是伯克利公寓里做着加密货币交易的一个人。这个人叫山姆班克曼弗里德,朋友们都叫他SBF。然而,他所做的交易——最终催生了加…

ERP系统如何改善企业的业务?

ERP代表 "企业资源计划",指的是企业用来计划和管理日常活动的一种软件或系统,如供应链、制造、服务、财务和其他流程。ERP系统可用于自动化和简化整个企业或组织的个别活动,如会计和采购、项目管理、客户关系管理、风险管理、合规和…

springboot常用组件的集成

目录 springboot常用组件的集成 1.创建项目 2. web服务器配置 3. 配置数据库 4. 配置mybatis 5. 开启事务 6.aop配置 7. pagehelper分页 3. druid数据库连接池 4. 集成redis 编写一个controller用于测试 2.手动装配redis 1.创建项目 1.idea创建项目 创建步骤 &am…

PDF文档编辑Acrobat Pro DC

acrobat dc2022不仅可以轻松的帮助用户打开任意的PDF格式文件,还能随意的对其进行编辑、压缩、合并、剪裁、旋转。删除、分割、重新排序页面等操作。全新的统一分享体验使您能够跨桌面,移动和Web进行文档协作。共享PDF链接以查看或评论。在任何设备上的任…

初识jQuery

jQuery简介 What is jQuery? jQuery is a fast, small, and feature-rich JavaScript library. It makes things like HTML document traversal and manipulation, event handling, animation, and Ajax much simpler with an easy-to-use API that works across a multitud…

【附源码】计算机毕业设计JAVA宠物医院管理

【附源码】计算机毕业设计JAVA宠物医院管理 目运行 环境项配置: Jdk1.8 Tomcat8.5 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: JAVA mybati…

经典动画库 animate.css 的应用

一、animate.css animate.css::Animate.css 就像嗑水那么简单的CSS动画。 官网:Redirecting to Animate.css Animate.css是一个纯CSS动画库,其核心技术使用了 CSS3 里的 keyframes 和 animation。 不兼容IE10以下的 IE 浏览器。…

SpringMVC基于注解使用:异常处理

SpringMVC基于注解使用:异常处理 1、内置异常处理解析器 2、统一异常处理 ControllerAdvice 是Spring3.2提供的新注解,它是对Controller的增强,可对 controller中被 RequestMapping注解的方法加一些逻辑处理: 全局异常处理(较为常用)全局数据绑定全局…

基于PSO的UAV三维路径规划(Matlab代码实现)

🍒🍒🍒欢迎关注🌈🌈🌈 📝个人主页:我爱Matlab 👍点赞➕评论➕收藏 养成习惯(一键三连)🌻🌻🌻 🍌希…

ArcGIS计算地形湿度指数

TWI是区域地形对径流流向和蓄积影响的物理指标,有助于识别降雨径流模式、潜在土壤含水量增加区域和积水区域。 计算方法:TWI是通过细尺度地形与上梯度对地表面积的贡献相互作用,根据以下关系得到的(Beven et al.,1979) [1] : TWI ln [CA/…

行深智能亮相乌镇互联网大会,荣获直通乌镇全球互联网大赛一等奖

11月9-11日,2022年世界互联网大会在浙江乌镇举行,本届大会以“共建网络世界、共创数字未来——携手构建网络空间命运共同体”为主题,吸引了来自世界各地的政府、国际组织、企业参加。 行深智能携系列无人车及解决方案在乌镇运河智能汽车文化…

react-hooks的节流与闭包,以及useCallback的用处

目录 useThrottle: 封装了一个节流的hook useCallback的作用(性能优化) 不用Hook封装节流方法的情况,看是怎么形成闭包的: useThrottle: 封装了一个节流的hook import { useEffect, useCallback, useRef } from react;function…

2023年软件测试的发展如何?

近些年,自动化测试在很多软件公司已经成为一种必备的测试方式。即使那些还没运用自动化测试手段的公司,也正开始着手筹划了。每年,我们从举办的各种测试论坛和峰会上可以发现,自动化测试和敏捷测试必定是会议的主角。再看看最具有…

IPV6地址详解

♥️作者:小刘在C站 ♥️每天分享课堂笔记,一起努力,共赴美好人生! ♥️夕阳下,是最美的,绽放。 目录 一.为什么要使用IPv6 二. ipv4 三. ipv6 地址, 四 ipv6与 ipv4 地址相比 1.v4…

MySQL数据库 -- 表的增删查改

今天来讲MySQL数据库的表增删查改操作。今天主要是通过栗子来演示语法使用的,话不多说,直奔主题~ 表的增删查改: CRUD : Create(创建), Retrieve(读取),Update(更新),Delete(删除) 目录 Cre…