百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术教程 > 正文

深度干货 | 如何借助云原生搞定Oracle备份快速恢复?

mhr18 2024-09-20 20:48 22 浏览 0 评论

Oracle备份面临的挑战

在传统企业里,经常会用Oracle数据库去承载业务重要核心数据,同时Oracle针对不同的恢复场景提供了灵活多样的恢复操作方法,灵活的设计给备份和恢复带来了更多的复杂性,因此Oracle的备份管理相比于MySQL而言,对DBA在专业性上有更高的要求。


比如说,Oracle环境有多种:

Standalone,Standalone+DataGuard,RAC,RAC+DataGuard,双机Oracle等,其中DataGuard还有多种运行模式,不同的Oracle环境的备份有一些细微差别,一个备份脚本很难同时满足这些场景,如果业务系统有多套Oracle环境,备份将会非常复杂,例如如何确保全量备份集总是有效的(可恢复的)等等。我们现在以一个具体的案例来说明这个问题:一致性全量备份。


一致性全量备份


何为一致性全量备份


在我们这篇文章里"一致性全量备份"的定义如下:


  • 条件1:备份集中存在一个连续完整的归档日志序列,其开始SCN和结束SCN能够覆盖备份开始时的最小的数据文件checkpoint SCN和备份结束时最大数据文件SCN(只读和离线数据文件除外)。
  • 条件2:备份集中包含恢复所用的全部数据文件,控制文件和参数文件。
  • 条件3:备份集中包含尽可能新的归档日志。


条件1和2确保全量备份集的完整性,使得备份集可以独立的被恢复(恢复出一致的状态)。条件3可以确保全量备份集始终是最新的,不会出现“丢数据”的场景。满足上述条件的备份集叫做一致性全量备份集。


一致性全量备份的好处


一致性全量备份集有哪些好处呢?


  • 方便转储:通常一个备份集是一个存储目录,简单的打包就可以转储到磁带,异地转储。
  • 简化恢复:恢复时不依赖其他备份集,例如定时归档日志备份产生的备份集失效了不会影响全量备份集的有效性,一致性全量备份集总是可以独立的恢复。


一致性全量备份的难点



下面我们看一下在哪些场景中,我们有可能得不到一致性全量备份集,图1 中的case2-case5就是典型的非一致性全量备份。


  • 在【case2】中缺失了部分的归档日志,违反了【条件1】中连续完整的归档日志序列这个条件。如 图2 所示,如果Primary和Standby之间网络出现了异常,此时主库可以正常地生成新的归档日志,但是Standby上将无法生成新的归档日志,当网络恢复后,DataGuard会从Primary上自动同步最新的归档日志,同时也会同步这部分缺失的归档日志,但是如果在执行全量备份期间,缺失的归档日志还没有被同步到Standby上,那么此时的全量备份集中的归档日志将会包含空洞,导致无法恢复。
  • 在【case3】中归档日志的的最小SCN和数据文件最小SCN之间存在gap。图2 中的所有运行模式都有可能出现这个问题,例如用户在清理Standby上的归档日志时执行了delete force就会导致RMAN将那些还没有被应用的归档日志删除掉。
  • 在【case4】中最新的归档日志SCN和最大的数据文件SCN存在gap。图2 中的【模式三】有可能出现这个问题,因为它是先同步redo到Standby的redo log file中,当主库执行Switch log之后,Standby上才会将redo log file归档到归档日志。如果Primary和Standby之间网络出现了问题,那么Primary依然能够正常生成归档日志,但是备库却不能执行redo log file的切换,不能生成新的归档日志,导致归档日志的SCN小于数据文件的最大SCN。相反,【模式一】和【模式二】则一定不会出现这种case,因为他们是先产生归档日志,然后再应用归档日志到数据文件,因此其归档日志最大SCN一定是大于等于数据文件最大SCN的。
  • 在【case5】中备份集中丢失了部分的数据文件,例如,用户开启了(backup optimization)配置,此时RMAN会开启备份优化功能,如果某些文件或者归档日志被其他人备份过了,那么将不会再次备份。
  • 在【条件2】中, 如果Primary上的归档日志或者Redo长时间无法同步到Standby上,此时可能能够得到满足【case1】的全量备份,既此时的备份是成功的,也能够独立的恢复,但是该全量备份没有包含主库最新的归档日志,导致我们的备份不是最新有效的全量备份。



由于Primary和Standby的运行原理不一样,在实际业务实现时,会遇到更多的稳定性问题,实现一致性全量备份需要解决如下几个问题:


  • 如何防止Standby上的备份获取不到最新的Primary的Redo日志。
  • 当Primary和Standby之间网络延迟较大或者出现网络分区,导致Redo传输太慢或者长时间无法传输时,备份如何解决。
  • 如何发现Primary或者Standby上的归档日志出现了gap,以及如何解决gap。
  • 如何避免备份的数据文件或者归档日志出现损坏的数据块。


此外,在备份的过程中,您可能还要考虑如下一些问题:


  • 定时的清理已经备份过的归档日志。
  • 防止备份数据中毒/恶意删除,确保任何时候都至少有一个可用的备份集用来做恢复。
  • 为了满足监管要求,实现备份数据的多地域存储。


DBS Oracle 备份


上述的两个举例展示了Oracle备份的复杂性和较高的技术难度。而对于以上提出的问题,DBS结合阿里巴巴之前多年的Oracle生产和运维经验通过完全自主研发,打造了DBS Oracle备份产品,帮助阿里云客户方便低成本地备份和保护Oracle数据资产。



如图3,DBS Oracle 备份与恢复采用 Oracle 内置的 RMAN 技术,实现 Oracle 数据库的热备份和恢复。备份管理员在 DBS控制台 简单配置备份策略,系统会根据用户配置的备份策略自动地创建数据备份任务,DBS系统向Oracle宿主机DBS备份客户端发送备份命令,DBS备份客户端执行RMAN备份脚本,流式无入侵地读取备份数据,并对数据执行压缩/加密等处理,最后将备份数据写入到云上加密的备份存储。整个备份过程不侵占用户本地磁盘空间和IO,对数据库完全无入侵。而对于数据恢复任务,备份管理员在 DBS控制台 点击发起恢复任务,此时DBS调度会向在Oracle宿主机上的 DBS备份客户端 发送恢复命令,DBS备份客户端 执行对应的RMAN脚本进行数据恢复。


基础能力


它在当前版本具备的技术特点如下:

  • 完全自研:阿里巴巴之前是Oracle的使用大户,结合之前阿里集团对Oracle生产运维的经验完全自研打造Oracle备份恢复产品,以帮助用户实现低成本探索数据库及数据库备份国产化演进路径。
  • 兼容的平台:支持Linux平台下的Oracle保护。
  • 支持的数据库版本:10g/11g/12c/18c/19c。
  • 支持的备份类型:全量备份和事务日志备份。
  • 支持的备份粒度:实例。
  • 备份对象:日志文件,控制文件,参数文件,数据文件。
  • 加密情况:传输过程支持HTTPS加密,存储支持AES256,BYOK加密
  • 支持的恢复粒度:Oracle单机恢复粒度包括:数据库实例(全库恢复)。
  • 支持的恢复方式:支持原机异实例,异机原位置的指定任意时间点的恢复。
  • RAC 恢复到单机:当 Oracle RAC 环境损坏时,支持将 Oracle RAC 恢复到单机环境中。
  • 归档日志删除策略:基于备份成功次数,支持自动删除指定时间段内已备份的Oracle 归档日志,避免因归档日志过满影响数据库运行。
  • 多通道:开启多通道备份可提高备份效率。用户可为根据数据文件和日志文件的存储量以及业务压力情况分别自定义通道数量,并行读取传输数据,从而充分利用磁盘 I/O。
  • 数据库高级压缩:开启数据库高级压缩后,可以在备份过程中对备份数据进行压缩, 节省磁盘空间,提升传输效率。
  • 无入侵:整个备份恢复过程,对源库无入侵,不依赖本地磁盘做中转。


它还在持续迭代中,欢迎持续关注。


差异点


为什么要备份上云?


DBS Oracle备份是云技术和备份技术的结合,它不仅实现了传统的Oracle备份的能力(如上所述),而且在使用DBS云备份时:


  • 天然实现6个9的备份存储稳定性:备份数据存储在阿里云OSS对象存储上,SLA达到6个9
  • 天然实现同地域多机房容灾:备份数据按照多机房高可用容灾
  • 低成本实现异地备份:
    • 网络带宽:阿里云内部网络更高的带宽,更低的网络延迟,费用更低,可以实现更低的异地灾备RPO
    • 恢复机器:相比于传统的数据备份保护方案,需要提前额外购买恢复用的机器资源。在DBS只需要在恢复时只需要按量付费通过DBS一键恢复到RDS,或者是通过DBS沙箱实例秒级拉齐临时恢复实例即可


云备份带来更多


上云之后,DBS和云上众多云产品深度结合,提供了以下等能力,帮用户盘活沉寂的备份数据,降低用户TCO:


  • 数据湖分析:相比于传统备份备份数据只能在恢复时使用而言,DBS与云上产品DLA(数据湖分析)深度结合,无需恢复则能提供逻辑备份数据的数据湖分析能力;
  • 副本数据管理CDM:DBS与DAS、DMS,RDS等数据库产品深度整合,对 备份数据 提供 CDM(副本数据管理)能力,可以实现对物理备份秒级恢复,可以让用户基于备份数据实现devops及分析能力,大大提高数据资产的使用效率,降低TCO。


Oracle副本数据管理(CDM)


传统的数据恢复时间主要取决于数据的下载时间以及归档日志应用时间。恢复时间通常在小时级别。DBS Oracle 备份利用DBS存储的快照克隆挂载等技术,以及云实例的弹性生产能力,可以实现Oracle副本数据管理,让用户可以在几秒钟之内恢复出一个1TB的Oracle实例,帮助用户快速实现应急容灾,恢复演练,DevOps等需求。


为实现Oracle CDM能力,需要以下的技术能力,如图4:


全量备份+镜像复制:DBS用流式挂载备份的方式,结合RMAN Image Copy备份方式实现byte by byte的数据文件无入侵拷贝。在恢复时,通过流式挂载恢复的方式,可以直接用这份备份数据拉起Oracle数据库,无需再做大量的数据拷贝。


快照+克隆:DBS备份存储的快速打快照的能力,帮助用户打造不同时间点的Oracle备份数据的黄金副本。基于这些黄金副本以及对黄金副本的秒级克隆能力,可以帮助用户在非常短的时间内(秒级)创建同一个时间点的Oracle沙箱实例,不同沙箱实例之间无干扰,帮助用户实现DevOps,比如在Oracle沙箱实例上实现业务变更验证,业务压测,业务发布测试等等。



总结


DBS Oracle备份产品是阿里云自研的,结合阿里集团之前多年Oracle数据库的生产使用经验打造的云备份产品。它不仅提供了传统备份所提供的Oracle备份能力外,还实现了无入侵流式备份能力,同时和云以及众多云产品深度结合,在备份数据上提供数据湖分析,并通过副本数据管理(CDM)技术提供Oracle秒级恢复及devops能力。现DBS Oracle备份已经上线,欢迎大家来试用。




直播预告


11月18日 14:00-15:00

邀您一起见证

云原生数据库备份DBS新版本发布

点击 了解更多

预约观看直播发布会



点击“了解更多”预约观看直播发布会

相关推荐

甲骨文签署多项大型云协议,其一未来可贡献超300亿美元年收入

IT之家7月1日消息,根据甲骨文Oracle当地时间6月30日向美国证券交易委员会(SEC)递交的FORM8-K文件,该企业在始于2025年6月1日的202...

甲骨文获TEMU巨额合同,后者大部分基础设施将迁移至Oracle云

IT之家6月23日消息,Oracle甲骨文创始人、董事长兼首席技术官LarryEllison(拉里埃里森)在本月早些时候的2025财年第四财季和全财年财报电话会议上表示,Oracle...

Spring Boot 自定义数据源设置,这些坑你踩过吗?

你在使用SpringBoot进行后端开发的过程中,是不是也遇到过这样的问题:项目上线后,数据库连接总是不稳定,偶尔还会出现数据读取缓慢的情况,严重影响了用户体验。经过排查,发现很大一部分原因竟然...

一个开箱即用的代码生成器(一个开箱即用的代码生成器是什么)

今天给大家推荐一个好用的代码生成器,名为renren-generator,该项目附带前端页面,可以很方便的选择我们所需要生成代码的表。首先我们通过git工具克隆下来代码(地址见文末),导入idea。...

低代码建模平台-数据挖掘平台(低代码平台的实现方式)

现在来看一下数据连接。·这里是管理数据连接的空间,点击这里可以新增一个数据连接。·输入连接名称,然后输入url,是通过gdbc的方式去连接的数据库,目前是支持mysql、oracle以及国产数据库达梦...

navicat 17.2.7连接oracle数据库提示加载oracle库失败

系统:macOS15.5navicat版本:navicatpremiumlite17.2.7连接oracle测试报错:加载oracle库失败【解决办法】:放达里面找到程序,显示简介里面勾选“使...

开源“Windows”ReactOS更新:支持全屏应用

IT之家6月17日消息,ReactOS团队昨日(6月16日)在X平台发布系列推文,公布了该系统的最新进展,包括升级Explorer组件,支持全屏应用,从Wine项目引入了...

SSL 推出采用全模拟内置混音技术的模拟调音台Oracle

英国调音台传奇品牌SolidStateLogic宣布推出Oracle——一款采用全模拟内置混音技术的调音台,在紧凑的AWS尺寸机箱内集成了大型调音台的功能。该调音台提供24输入和...

47道网络工程师常见面试题,看看有没有你不会的!

你们好,我的网工朋友。网络工程师面试的时候,都会被问到什么?这个问题其实很泛,一般来说,你肯定要先看明白岗位需求写的是什么。基本上都是围绕公司需要的业务去问的。但不可否认的是,那些最基础的概念,多少也...

汉得信息:发布EBS系统安装启用JWS的高效解决方案

e公司讯,从汉得信息获悉,近日,微软官方宣布InternetExplorer桌面应用程序将于2022年6月15日正式停用。目前大部分客户都是使用IE浏览器打开EBS的Form界面,IE停用后,只能使...

36.9K star ! 推荐一个酷炫低代码开发平台!功能太强!

前言最近在逛github,看看能不能搜罗到一些对自己有帮助的开源软件。不经意间看到一个高star的java开源项目:jeecg-boot。进入在线演示版一看,感叹实在是太牛了!此开源项目不管是给来学习...

Linux新手入门系列:Linux下jdk安装配置

本系列文章是把作者刚接触和学习Linux时候的实操记录分享出来,内容主要包括Linux入门的一些理论概念知识、Web程序、mysql数据库的简单安装部署,希望能够帮到一些初学者,少走一些弯路。注意:L...

手把手教你在嵌入式设备中使用SQLite3

摘要:数据库是用来存储和管理数据的专用软件,使得管理数据更加安全,方便和高效。数据库对数据的管理的基本单位是表(table),在嵌入式linux中有时候它也需要用到数据库,听起来好难,其实就是几个函数...

JAVA语言基础(java语言基础知识)

一、计算机的基本概念什么是计算机?计算机(Computer)全称:电子计算机,俗称电脑。是一种能够按照程序运行、自动高速处理海量数据的现代化智能电子设备。由硬件和软件组成、没有安装过任何软件的计算机称...

再见 Navicat!一款开源的 Web 数据库管理工具!

大家好,我是Java陈序员。在日常的开发工作中,常常需要与各种数据库打交道。而为了提高工作效率,常常会使用一些可视化工具进行操作数据库。今天,给大家介绍一款开源的数据库管理工具,无需下载安装软件,基...

取消回复欢迎 发表评论: