Oracle数据库完全恢复研究
2022-05-09张云琦张景波杨中雨
张云琦 张景波 杨中雨
摘要:现数据在我们的日常生活中扮演着重要的角色,Oracle数据库数年来不断发展成为全球领先的企业,在数据库不断地优化和完善。越来越注重于理论学习和实践操作相结合。其次在Oracle数据备份恢复中,理论和实践相结合也显得十分重要。在公司的实践操作中,如果数据库中的数据丢失,可通过在提前的备份,使其恢复到错误前的状态下,让企业在数据的故障中尽可能把损失减少。通过研究数据库的闪回技术和Oracle数据库的基础架构理论研究其在数据库的恢复中的作用,并且通过数据库的备份完全恢复的实验模拟进行操作进行理论和实践相结合,使其数据丢失后能恢复到错误状态前的效果。
关键词: 体系架构;备份恢复;RMAN完全恢复
中图分类号:TP311 文献标识码:A
文章编号:1009-3044(2022)07-0024-02
1 概述
通过数据库闪回技术做恢复以及由体系理论基础和Oracle数据库的基本组成,其中的体系理论基础和架构在数据库备份中运用和联系,就可以更加深入一步地对其数据库的数据进行备份恢复实践操作。最后通过手工备份做完全恢复和RMAN完全恢复研究和实验模拟从而更好地研究数据库的完全备份恢复技术。把Oracle数据库备份恢复技术熟练地运用起来,这就大大地减少了企业的数据损失。其次Oracle数据库处理数据时是一种分布式的处理模式,在管理上面具有完整的处理功能,Oracle数据库越来越被企业去使用,特别是规模比较大的企业在使用中稳定性的体现较为突出。
2 研究的主要内容
2.1 闪回数据库
闪回技术是用来闪回数据库的,它可以用来闪回数据归档,或者闪回数据库中的表。而其中的闪回数据库,用闪回技术把数据库中日志使数据库回退到某个时间点上。前提条件是在用闪回之前先要把数据库启动到mount的状态下,配置相关的参数,开启用到的日志,下一步的操作是打开数据库,闪回图如图1所示:
闪回表的情况通常是利用以前的时间点和SCN把表的状态回退到以前,表在前向后都可以闪回。
用实验操作如下:选取当前的SCN用到的操作系统命令
SYS@prod> select current_scn from v$database;
删除数据中的一个用户操作
SYS@prod> drop user scott cascade;
然后到數据库的mount状态下做闪回数据库操作:
SYS@prod> shutdown immediate;
SYS@prod> startup mount exclusive ;
SYS@prod> flashback database to scn 7248690;
只读方式打开,确认scott用户已经被闪回:
SYS@prod> alter database open read only;
SYS@prod> select * from scott.emp;
确认没有错误后,重新以resetlogs 方式打开数据库
SYS@prod>startup force;SYS@prod>alter database open resetlogs;
SYS@prod>flashback database to timestamp to_char('2021-04-11 19:11:11','yyyy-mm-dd hh24:mi:ss');SYS@prod>flashback database to scn 1264788;
至此完成闪回数据库操作,通过上述的闪回数据库和闪回数据归档以及闪回数据库中的表示例模拟,深一步地研究了闪回表的技术。再进一步地了解SGA的基本组件,它是由数据库buffer cache和日志buffer组成。在其中的large pool为大型后台处理作业分配的内存空间主要用于共享出服务器的会话内存也就是减少了共享池的碎片。Stream pool处理分配的内存空间,它只有一个工作进程。ckpt创建检查点和局部检查点,以及Database中包含数据文件,控制文件。
2.2 增量检查点与实例恢复
数据库实例恢复与增量检查点有着紧密的联系,当实例数据库发生崩溃的时候,数据造成了丢失。增量检查点在这种状态下发挥出了作用,触发检查点之后,一部分脏的数据刷新到了磁盘上。它重要的是记录了最后检查点的位置,而数据库的实例恢复就需要用到这个记录的位置来完成实例恢复,增量检查点与实例恢复的流程关系如下图2所示。
用smon监控下的一系列动作,回滚roll forward,redo日志把检查点位置之后包括commit和uncommit的都前滚出来了,然后统统写到磁盘的数据文件里。打开数据库用户可以连接进来,访问数据库,回滚roll back。完上述之后,还需要我们来了解数据库中的控制文件,控制文件它就像一个记事本一样,起到了记录当前数据库的物理状态以及在RMAN数据备份的元数据。除此之外呢,控制文件的作用还可以来保持数据库的一致性,所以在数据库中控制文件扮演了一个非常重要的角色,它使用于数据块的恢复,日志组及切换。在两种情况下,归档模式保存一路记录下来的日志和非归档模式历史日志被覆盖,最少两个组,在一个组中可以有两个成员在写满日志组时可以自动进行切换。还有一种是在归档的模式下,日志完成的归档,并且把其中相关的信息写入到控制文件中。
Undo技术它的作用在数据库的恢复中也显得比较关键,它是回滚撤销或者更改的数据库信息。也就是可以运用undo功能把之前记录的数据进行回滚,进而来提供数据的一致性,用Oracle数据库闪回查询分析上一个时间点的数据使用闪回在任何时间点查询和分析数据使用Oracle闪回功能修复逻辑损坏执行rollabck语句时,在数据库恢复过程中,撤销记录不会根据重做日志中的记录提交到数据文件。恢复更新。如果一个用户在另一个用户修改数据时查询数据,则撤销记录会在更改之前维护数据镜像的副本,以确保读取一致。
2.3 数据备份恢复
数据库的备份恢复操作,我们知道数据库的备份恢复操作技术是非常的实用和关键的,当数据库发生故障,造成数据库的数据丢失,这时候的我们就想起了数据库的备份恢复技术。备份备什么就是要备份上面谈到的数据库架构中核心的文件,比如说,数据,控制文件或者完全备份文件,而恢复的理解是什么,它是利用打开数据文件中的SCN与控制文件末尾的SCN相匹配,根据是否相匹配来进行有效的恢复或者不恢复。当然,所有备份实际上都是为了加快恢复速度,因此在制定备份策略时需要考虑很多方面。这里进行总结了数据库常见的故障类型,User process:用户进程失败,instance实例失败,user errors 用户错误,media失败,知道备份的分类是什么它可以分为是,一致的备份中可以是逻辑和物理备份,冷备份和不一致的热备份。完全的备份策略物理备份为主要,逻辑备份为辅助,用来备份一些重要的表。
其次要了解数据用来备份的规模,有两种形式。完全备份和另一种方式的备份,研究完全备份,它的归档模式可以是两种,备份的文件是什么备份表空间,需要拷贝的文件是,数据,控制和归档的日志文件。了解恢复的分类,也就是完全恢复,完全恢复的原理是什么,它是数据库的一个整体操作,也就是当完全恢复时,使用完全或部分备份的数据将数据文件还原到失败之前的最后一次提交,而不会丢失数据。
在操作的过程中就要求我们会利用上面介绍的知识中的实践操作,比如说操作系统的命令,文件的传输等,以及我们知道需要知道什么是控制文件以及数据文件,表空间等,它们背后的原理是什么。所以有了上面了解的基础,下面的实践操作也就有了底气。下面我们按照这个流程思路,来进行一一的展开。它的核心是图片先restore备份,再恢复recover,再进行恢复到最后一次提交。
通过检查点的研究和实例恢复的流程图深入地了解到增量检查点在实例恢复中的作用以及用到的回滚和监控,来完成实例恢复,流程如图3所示。
3 结论
综上通过对Oracle数据库的研究和实验的模拟,对数据库控制,数据,日志文件以及进程的归档日志和管理undo表空间的建立和数据库的检查点进行了充分论证,达到了预期,使得备份恢复过程更加有依据有规则。
参考文献:
[1] 陈伟明.Oracle闪回技術的应用与实践分析[J].中阿科技论坛(中英文),2020(10):93-96.
[2] 程鲁明,肖菊香.Oracle数据库容灾技术研究与实现[J].电子元器件与信息技术,2020,4(1):80-82.
【通联编辑:王力】
收稿日期:2021-05-10
基金项目:教育部2018年第二批产学合作协同育人项目( 201802076023)( 201802076011)
作者简介:张云琦(1981—),女,吉林人,副教授,研究生,主要研究方向为通信工程;通讯作者:张景波(1982—),男(回族),黑龙江人,副教授,研究生,主要研究方向为软件工程、信息安全与数据理论。