openGauss学习笔记-145 openGauss 数据库运维-备份与恢复-备份与恢复概述

文章目录

    • openGauss学习笔记-145 openGauss 数据库运维-备份与恢复-备份与恢复概述
      • 145.1 逻辑备份与恢复
      • 145.2 物理备份与恢复
      • 145.3 闪回恢复
      • 145.4 三种备份恢复类型对比
      • 145.5 备份方案与策略

openGauss学习笔记-145 openGauss 数据库运维-备份与恢复-备份与恢复概述

数据备份是保护数据安全的重要手段之一,为了更好的保护数据安全,openGauss数据库支持三种备份恢复类型,以及多种备份恢复方案,备份和恢复过程中提供数据的可靠性保障机制。

备份与恢复类型可分为逻辑备份与恢复、物理备份与恢复、闪回恢复。

145.1 逻辑备份与恢复

通过逻辑导出对数据进行备份,逻辑备份只能基于备份时刻进行数据转储,所以恢复时也只能恢复到备份时保存的数据。对于故障点和备份点之间的数据,逻辑备份无能为力,逻辑备份适合备份那些很少变化的数据,当这些数据因误操作被损坏时,可以通过逻辑备份进行快速恢复。如果通过逻辑备份进行全库恢复,通常需要重建数据库,导入备份数据来完成,对于可用性要求很高的数据库,这种恢复时间太长,通常不被采用。由于逻辑备份具有平台无关性,所以更为常见的是,逻辑备份被作为一个数据迁移及移动的主要手段。

145.2 物理备份与恢复

通过物理文件拷贝的方式对数据库进行备份,以磁盘块为基本单位将数据从主机复制到备机。通过备份的数据文件及归档日志等文件,数据库可以进行完全恢复。物理备份速度快,一般被用作对数据进行备份和恢复,用于全量备份的场景。通过合理规划,可以低成本进行备份与恢复。

145.3 闪回恢复

利用回收站的闪回恢复删除的表。数据库的回收站功能类似于windows系统的回收站,将删除的表信息保存到回收站中。利用MVCC机制闪回恢复到指定时间点或者CSN点。

145.4 三种备份恢复类型对比

以下为openGauss支持的三类数据备份恢复方案,备份方案也决定了当异常发生时该如何恢复。

表 1 三种备份恢复类型对比

备份类型应用场景支持的介质工具名称恢复时间优缺点
逻辑备份与恢复适合于数据量小的场景。可以备份单表和多表,单database和所有database。备份后的数据需要使用gsql或者gs_restore工具恢复。数据量大时,恢复需要较长时间。磁盘SSDgs_dump纯文本格式数据恢复时间长。归档格式数据恢复时间中等。导出数据库相关信息的工具,用户可以自定义导出一个数据库或其中的对象(模式、表、视图等)。支持导出的数据库可以是默认数据库postgres,也可以是自定义数据库。导出的格式可选择纯文本格式或者归档格式。纯文本格式的数据只能通过gsql进行恢复,恢复时间较长。归档格式的数据只能通过gs_restore进行恢复,恢复时间较纯文本格式短。
gs_dumpall数据恢复时间长。导出所有数据库相关信息工具,它可以导出openGauss数据库的所有数据,包括默认数据库postgres的数据、自定义数据库的数据、以及openGauss所有数据库公共的全局对象。只能导出纯文本格式的数据,导出的数据只能通过gsql进行恢复,恢复时间较长。
物理备份与恢复适用于数据量大的场景,主要用于全量数据备份恢复,也可对整个数据库中的WAL归档日志和运行日志进行备份。gs_backup数据量小数据恢复时间快。导出数据库相关信息的OM工具,可以导出数据库参数文件和二进制文件。帮助openGauss备份、恢复重要数据、显示帮助信息和版本号信息。在进行备份时,可以选择备份内容的类型,在进行还原时,需要保证各节点备份目录中存在备份文件。在数据库实例恢复时,通过静态配置文件中的数据库实例信息进行恢复。只恢复参数文件恢复时间较短。
gs_basebackup恢复时可以直接拷贝替换原有的文件, 或者直接在备份的库上启动数据库,恢复时间快。对服务器数据库文件的二进制进行全量拷贝,只能对数据库某一个时间点的时间作备份。结合PITR恢复,可恢复全量备份时间点后的某一时间点。
gs_probackup恢复时可以直接恢复到某个备份点,在备份的库上启动数据库,恢复时间快。gs_probackup是一个用于管理openGauss数据库备份和恢复的工具。它对openGauss 实例进行定期备份。可用于备份单机数据库或者数据库实例主节点,为物理备份。 可备份外部目录的内容,如脚本文件、配置文件、日志文件、dump文件等。 支持增量备份、定期备份和远程备份。增量备份时间相对于全量备份时间比较短,只需要备份修改的文件。当前默认备份是数据目录,如果表空间不在数据目录,需要手动指定备份的表空间目录进行备份。当前只支持在主机上执行备份。
闪回恢复适用于:1)误删除表的场景;2)需要将表中的数据恢复到指定时间点或者CSN。可以将表的状态恢复到指定时间点或者是表结构删除前的状态,恢复时间快。闪回技术能够有选择性的高效撤销一个已提交事务的影响,从人为错误中恢复。在采用闪回技术之前,只能通过备份恢复、PITR等手段找回已提交的数据库修改,恢复时长需要数分钟甚至数小时。采用闪回技术后,恢复已提交的数据库修改前的数据,只需要秒级,而且恢复时间和数据库大小无关。闪回支持两种恢复模式:基于MVCC多版本的数据恢复:适用于误删除、误更新、误插入数据的查询和恢复,用户通过配置旧版本保留时间,并执行相应的查询或恢复命令,查询或恢复到指定的时间点或CSN点。基于类似windows系统回收站的恢复:适用于误DROP、误TRUNCATE的表的恢复。用户通过配置回收站开关,并执行相应的恢复命令,可以将误DROP、误TRUNCATE的表找回。

145.5 备份方案与策略

当需要进行备份恢复操作时,主要从以下四个方面考虑数据备份方案。

  • 备份对业务的影响在可接受范围。

  • 数据库恢复效率。

    为尽量减小数据库故障的影响,要使恢复时间减到最少,从而使恢复的效率达到最高。

  • 数据可恢复程度。

    当数据库失效后,要尽量减少数据损失。

  • 数据库恢复成本。

在现网选择备份策略时参考的因素比较多,如备份对象、数据大小、网络配置等,表2列出了可用的备份策略和每个备份策略的适用场景。

表 2 备份策略典型场景

备份策略关键性能因素典型数据量性能规格
数据库实例备份数据大小网络配置数据:PB级对象:约100万个备份:每个主机80 Mbit/s(NBU/EISOO+磁盘)约90%磁盘I/O速率(SSD/HDD)
表备份表所在模式网络配置(NBU)数据:10 TB级备份:基于查询性能速度+I/O速度说明:多表备份时,备份耗时计算方式:总时间 = 表数量 x 起步时间 + 数据总量 / 数据备份速度其中:磁盘起步时间为5s左右,NBU起步时间比DISK长(取决于NBU部署方案)。数据备份速度为单节点50MB/s左右(基于1GB大小的表,物理机备份到本地磁盘得出此速率)。表越小,备份性能更低。

👍 点赞,你的认可是我创作的动力!

⭐️ 收藏,你的青睐是我努力的方向!

✏️ 评论,你的意见是我进步的财富!

图片

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Webgis学习总结

前言: 作者跟随视频学习了webgis内容进行如下学习复习总结 参考:新中地学习笔记 WebGIS第一课:测试高德API并通过: 注册申请高德API成为开发者,创建自己的项目和key进行项目初始化,可以使用JS API官方文…

DateTimePicker之禁用当前日期时间之前的数据以及校验函数

1、禁用当前日期时间功能效果 2、需要用到的属性 disabledDate: 禁用日期。disabledTime: 禁用时间。 3、相关代码 fieldProps{{disabledDate(date) {return date && date < moment().startOf(day);},disabledTime: (date: any) > disabledTime(date),}}//相关…

【微服务】spring循环依赖深度解析

目录 一、循环依赖概述 1.2 spring中的循环依赖 二、循环依赖问题模拟 2.1 循环依赖代码演示 2.2 问题分析与解决 2.2.1 使用反射中间容器 三、spring循环依赖问题解析 3.1 spring中的依赖注入 3.1.1 field属性注入 3.1.2 setter方法注入 3.1.3 构造器注入 3.2 spri…

Allure生成测试报告这样生成,阿里p10都直呼牛逼

Allure是一个开源的测试报告生成框架&#xff0c;提供了测试报告定制化功能&#xff0c;相较于我们之前使用过pytest-html插件生成的html格式的测试报告&#xff0c;通过Allure生成的报告更加规范、清晰、美观。 pytest框架支持使用Allure生成测试报告&#xff0c;接下来让介绍…

Vue3 Element-Plus 一站式生成动态表单:简化前端开发流程

文章目录 1. 引言2. Vue3 和 Element-Plus 简介2.1 Vue32.2 Element-Plus 3. 动态表单的需求与挑战4. Vue3 和 Element-Plus 动态表单的优势4.1 Vue3的组合式API4.2 Element-Plus的表单组件 5. 一站式生成动态表单的实现5.1 准备工作5.2 创建动态表单组件5.3 使用动态表单组件 …

ELK实现日志收集

1.介绍 ELK是三个开源软件的缩写&#xff0c;分别表示&#xff1a;Elasticsearch , Logstash, Kibana , 它们都是开源软件。 Elasticsearch是个开源分布式搜索引擎&#xff0c;提供搜集、分析、存储数据三大功能。它的特点有&#xff1a;分布式&#xff0c;零配置&#xff0c…

Sprite Editor图片编辑器的使用_unity基础开发教程

Sprite Editor图片编辑器的使用 什么是Sprite Editor安装插件&#xff08;3D项目&#xff09;切片方式Automatic&#xff1a;自动切片Grid By Cell Size&#xff1a;按照像素大小进行切片Grid By Cell Count&#xff1a;按照个数进行切片Isometric Grid&#xff1a;等距网格切片…

Java---线程讲解(一)

文章目录 1. 进程和线程2. 多线程实现方式3. 设置和获取线程名称4. 线程优先级5. 线程控制6. 线程的生命周期 1. 进程和线程 1. 进程&#xff1a;是正在运行的程序&#xff0c;是系统进行资源分配和调用的基本单位。每一个进程都有它自己的内存空间和系统资源。 2. 线程&#x…

7.上传project到服务器及拉取服务器project到本地、更新代码冲突解决

1.上传project到SVN服务器 1.在eclipse中&#xff0c;从show view里调出SVN资源库视图 2.在SVN资源库窗口的空白位置右键选择新建资源库位置 3.填好服务器的地址 4.资源库导入成功,SVN资源库视图下出现导入的资源库 5.新建project 6.写好project的初始版本 7.右键project --&…

如何摆脱你是一个葡萄酒新手的身份?

刚接触葡萄酒的人可能会有一种模糊的感觉&#xff0c;即他们喜欢白葡萄酒、红葡萄酒或玫瑰红葡萄酒&#xff0c;但他们可能不知道如何描述为什么&#xff0c;也不理解必要的术语。 把葡萄酒词汇想象成类似于讨论食物是很有用的&#xff0c;它是甜的、酸的还是辣的&#xff1f;对…

Jmeter接口测试:jmeter导入和导出接口的处理

JMeter测试导入接口 利用Jmeter测试上传文件&#xff0c;首先可根据接口文档或者fiddler抓包分析文件上传的接口&#xff1b;如下图&#xff1a; 以下是我通过fiddler所截取的文件上传的接口 1、填写导入接口的信息 查看文件上传栏下的填写信息&#xff1a; 文件名称&#x…

Elasticsearch,Kibana集成,x-pack鉴权配置

Elasticsearch,Kibana集成 Java8环境部署[CentOS7] cd /usr/local/src wget https://repo.huaweicloud.com/java/jdk/8u201-b09/jdk-8u201-linux-x64.tar.gztar -xzvf jdk-8u201-linux-x64.tar.gz -C /usr/local#配置环境变量 vim /etc/profile #文末添加 export JAVA_HOME/us…

docker安装及简单使用(Linux版本)

文章目录 前言一、docker安装二、docker命令pull&#xff08;安装镜像&#xff09;images&#xff08;查看镜像&#xff09;run&#xff08;创建容器&#xff09;删除容器exec&#xff08;进入运行中的容器&#xff09;常用命令 总结如有启发&#xff0c;可点赞收藏哟~ 前言 ht…

路由跳转添加进度条

根据npm官网的步骤&#xff1a; 1.先安装nprogress npm install nprogress 2.引入nprogress和样式文件 import nprogress from nprogress import nprogress/nprogress.css 3.在前置守卫添加进度条的展示 //全局前置守卫 router.beforeEach((to: any, from: any, next: an…

算法训练 第十周

二、 删除有序数组中的重复项 II 1.双指针 我们在遍历整个数组的时候如果发现某个元素出现的次数超过了两次&#xff0c;就先记录下它出现的第三个位置&#xff0c;然后找到下一个与它不同的元素&#xff0c;从这个元素开始将其和其后面的所有元素都复制到之前记录的位置之后&…

C++ IO库

IO类 IO对象不能拷贝和赋值 iostream 表示形式的变化&#xff1a; 将100转换成二进制序列 然后格式化输出 x,y共用一块内存 输出的时候用不同的方式解析同一块内存 操作 格式化&#xff1a;内部表示转换为相应字节序列 缓存&#xff1a;要输出的内容放到缓存 编码转换&…

python爬虫-某公开数据网站实例小记

注意&#xff01;&#xff01;&#xff01;&#xff01;某XX网站逆向实例仅作为学习案例&#xff0c;禁止其他个人以及团体做谋利用途&#xff01;&#xff01;&#xff01; 第一步&#xff1a;分析页面和请求方式 此网站没有技巧的加密&#xff0c;仅是需要携带cookie和请求…

IntelliJ IDE 插件开发 | (二)UI 界面与数据持久化

系列文章 IntelliJ IDE 插件开发 |&#xff08;一&#xff09;快速入门 前言 在上一篇文章中介绍了在IDEA下开发、运行和安装插件的基本步骤&#xff0c;因此创建项目等基础步骤不再赘述&#xff0c;本文则开始介绍如何进行 UI 界面的开发以及相关数据的持久化存储&#xff…

安全测试工具,自动发现网站所有URL!

作为一个安全测试人员来说&#xff0c;首先要拿到网站所有url&#xff0c;然后根据拿到的url进行渗透测试进行漏洞挖掘。本文给大家介绍的是如何拿到一个网站所有的url。 深度爬取层级控制 现在我也找了很多测试的朋友&#xff0c;做了一个分享技术的交流群&#xff0c;共享了很…

集成开发环境 PyCharm 的安装【侯小啾python基础领航计划 系列(二)】

集成开发环境PyCharm的安装【侯小啾python基础领航计划 系列(二)】 大家好,我是博主侯小啾, 🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔…