成为MySQL DBA后,再看ORACLE数据库(十一、闪回技术)

news/2024/9/28 5:52:48

前文说到ORACLE通过undo实现数据的多版本模型,同样的道理ORACLE还通过undo实现了闪回查询的特性,本文将总结ORACLE的几种闪回技术。闪回技术是Oracle数据库独有的特性,支持各级恢复,包括行、事务、表、表空间和数据库范围。采用闪回技术,可以针对行级和事务级发生过变化的数据进行恢复,减少了数据恢复的时间,而且操作简单,通过SQL语句就可以实现数据的恢复,大大提升了数据库恢复的效率。按照闪回的原理ORACLE的闪回技术可以分为以下三类:

1.基于undo表空间:闪回查询、闪回版本查询、闪回事务查询、闪回表;

2.基于回收站(Recycle Bin):闪回删除;

3.基于闪回恢复区(Flash Recovery Area)中的闪回日志:闪回数据库;

一、闪回查询(Flashback Query)

闪回查询是指查询过去某个时间点或某个SCN值对应的表中的数据信息,即可以从回滚段中读取一定时间内对表进行操作的数据,从而恢复错误的DML操作。闪回查询的语句和实验步骤如下所示,可以通过scn或时间点闪回查询到过去某个时间的数据。

select * from xxx as of scn|timestamp xxx;

 

二、闪回版本查询(Flashback Version Query)

闪回版本查询是指查询过去某个时间段或某个SCN段内表中数据的变化情况。通过以下SQL可以看到表中ID,ADDR两列的数据随着事务的变化情况。

select versions_xid,versions_operation,versions_startscn,versions_endscn from xxx versions between scn minvalue and maxvalue;

三、闪回事务查询(Flashback Transaction Query)

闪回事务查询是指查看某个事务或所有事务在过去一段时间对数据进行的修改。通常需要先通过闪回版本查询获取事务的xid号,然后再通过闪回事务查询获取undo_sql,这样就可以执行undo_sql对已提交的事务进行撤销。使用闪回事务查询需要开启补充日志,并且给应用用户授予select any transaction权限。

select undo_sql from flashback_transaction_query where xid='versions_xid';

四、闪回表(Flashback TABLE)

闪回表是指将表恢复到过去的某个时间点或某个SCN值时的状态。闪回表的前提是需要先对表开启行迁移alter table enable row movement。闪回表可以直接将表恢复到过去的状态,所以应该谨慎操作,生产环境最好先通过闪回查询确认好数据再进行闪回操作。

flashback table xxxx to scn|timestamp

五、闪回删除(Flashback DROP)

闪回删除是指将已经删除的表及表上的索引恢复到删除前的状态,但索引名不会恢复到删除前的状态。闪回删除是基于回收站完成的,据库每个用户都有一个回收站,但这个回收站并不实际开辟空间(只是个逻辑标记),当drop table时(非 purge),原来的表所使用的段中的数据并没有真正的删除,实际上是以回收站方式重命名。该段所在表空间不足时,回收站中的信息会被自动清除。

flashback table xxx to before drop;

 

六、闪回数据库(Flashback Database)

闪回数据库是指将数据库恢复到过去某个时间点或某个SCN值时的状态。当数据库发生逻辑错误比如误删除用户时,可以快速将数据库恢复到过去的某个时间点从而找回被删除的用户。当数据库开启了闪回,发生变化的数据块会不断从数据库缓冲区缓存中复制到闪回缓冲区,然后,称为恢复写入器(Recovery Writer)的后台进程会将这些数据刷新到磁盘中的闪回日志文件中。闪回的过程,是一个提取闪回日志,然后将之前某个时间点的块映像复制回数据文件的过程,由于只需要物理地恢复变化的数据块,所以这个过程非常快。除了需要闪回日志,还需要重做日志来完成闪回到一致的数据库版本,因此数据库要处于归档模式。由于是相当于数据库的不完整恢复,闪回点之后的所有工作就丢失了,所以只能以resetlogs模式打开数据库重置redo log。闪回数据库的前提是需要先配置好快速恢复区,并在mount状态开启闪回数据库。

闪回数据库的语法和实验如下所示,展示了如何通过闪回数据库到具体的SCN从而找回了被删除的用户。

flashback database to scn|timestamp xxx;

 

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

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

相关文章

KD散件组装的几种形式

介绍 KD指散件组装,英文全称为:knockdown。 KD有三种形式: CKD 、 SKD 、 DKD 。 CKD (Complete Knockdown)为全散件组装, SKD(Semi-Knockdown) 则是半散件组装,一部分总成是现成的。 DKD(Direct Knockdown) 直接组装或成品组装,如手机组装生产中,单机头整体进口,安装配…

面经梳理-计算机网络

梳理计算机网络相关面经前言 整理计算机网络的相关面试题,计算机网络在我看来挺复杂的,想要完全精通应该是不可能的,毕竟后端开发的知识点那么多,不过掌握面试的常考知识点是由必要的。建议系统学习计算机网络课本再进行知识点的整理记忆。 题目 OSI七层协议有了解么?Ip协…

手机gmail/qq邮箱添加西工大邮箱

为使gmail/qq邮箱可以收发西工大教育邮箱的邮件,我们需要进行以下设置:在电脑网页端登录西工大邮箱 https://mail.nwpu.edu.cn/ 登录后按如下步骤创建密码。和个人邮箱密码不同,该新建密码仅用于在gmail/qq邮箱上登录西工大邮箱账号时使用,且可生成多个。 在gmail中选择添加…

定积分几何意义

如下图所示,有一个由三条直线与一条曲线围成的特殊四边形,现在想求这个特殊四边形的面积(设为\(S\))如下图所示,用\(n\)个矩形去拟合特殊四边形,然后算出这些矩形的面积之和。若\(n \to +\infin\),那么\(n\)个矩形的面积之和就无限趋近于\(S\) 用数学语言表达即为: 已知曲…

MySQL数据库初体验

目录1.数据库的基本概念(1)关系型数据库(SQL)(2)非关系型数据库(NoSQL)(3)主流的数据库介绍2.MySQL安装方法 1.数据库的基本概念 数据库分两大类:关系型数据库 SQL 、非关系型数据库 NoSQL。 (1)关系型数据库(SQL) 典型代表:MySQL、MariaDB、PostgreSQL、SQL、…

Maven依赖版本更新踩坑

问题描述 项目xx基于Spring Boot框架,其<parent>配置如下: <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.4.2</version><relativePath /> &l…

c#自定义Winfrom飞机仪表控件-第一个

先看下效果,这是客户定制的飞机仪表控件中的一个。 我们来分析下这个这种控件要怎么开发,开发思路是什么。背景边框,这个你可以用gdi+画,或者让美工做背景图,我这里直接让美工做背景图了,中间部分留黑。刻度盘有左中右下总计5个左侧的刻度盘又有一个放大盘右侧刻度盘也有…

explorer 资源管理器 win10 剪切大量文件 最终99%卡死好几个小时

用Process Explorerthreads栏 可以看到 shcore.dll占用最多 不过光看这个dll没啥用,这个dll有很多功能 再点stack 看调用栈 ntdll.dll!NtReadFile+0x14KERNELBASE.dll!ReadFile+0x73windows.storage.dll!SHGetKnownFolderItem+0x1a6coml2.dll!StgOpenStorageOnILockBytes+0x99…