【赵渝强老师】Oracle的还原数据

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云原生数据库 PolarDB 分布式版,标准版 2核8GB
云数据库 RDS SQL Server,基础系列 2核4GB
简介: Oracle数据库中的还原数据(也称为undo数据或撤销数据)存储在还原表空间中,主要用于支持查询的一致性读取、实现闪回技术和恢复失败的事务。文章通过示例详细介绍了还原数据的工作原理和应用场景。

b021.png


Oracle数据库的还原数据都是存储在还原表空间中,其作用主要体现在以下3个方面:


  • 首先,还原数据用于支持查询的一致性读取。为了保证在同一个事务中前后读取数据的一致性,原始信息必须作为还原数据存在。只要保留的还原数据,Oracle数据库就能通过重建数据来满足读取一致性查询的要求。
  • 其次,闪回技术也是基于还原数据的。例如,闪回查询可以查找过去某个时间存在的某个版本的数据。只要在还原数据中过去那个时间的还原信息仍存在,闪回查询就能成功完成。
  • 最后,还原数据也可用于从失败的事务处理中进行恢复。


简单来说还原数据就是历史数据,也叫做undo数据。在有些文档中也叫做撤销数据。


视频讲解如下:


下图解释了还原数据的工作原理。从图中可以看出当会话2读取表中数据的时候,发现数据已经被更改,但对于的事务还未提交。这时候服务器进程就不会将表中新的数据返回给会话2,而从还原表空间中读取旧值,并将其返回给会话2。



在Oracle数据库中,还原数据分为以下三种不同的类型。如下表所示。




下面通过一个简单的例子来说明什么是Oracle数据库的还原数据。

(1)使用scott用户登录数据库。

sqlplus scott/tiger


(2)查询员工号为7839的薪水。

SQL> select sal from emp where empno=7839;
# 输出的信息如下:
       SAL
----------
      5000


(3)更新员工号为7839的薪水为6000元。

SQL> update emp set sal=6000 where empno=7839;

由于Oracle数据库默认情况下是自动开启事务的。因此,这里执行的update语句将会自动开启一个事务。


(4)重新查询员工号为7839的薪水。

SQL> select sal from emp where empno=7839;
# 输出的信息如下:
       SAL
----------
      6000


(5)执行事务的回滚操作。

SQL> rollback;


(6)重新查询员工号为7839的薪水。

SQL> select sal from emp where empno=7839;
# 输出的信息如下:
       SAL
----------
      5000

当这里的第(5)步执行完成后,员工的薪水又恢复回了5000块钱。因此,作为历史数据的5000元钱在第(3)步的update语句之后,而在第(5)步的rollback语句之前就是保存在了还原表空间的数据文件中。



相关文章
|
16小时前
|
SQL Oracle 关系型数据库
【赵渝强老师】Oracle的数据文件
在Oracle数据库中,数据库由多个表空间组成,每个表空间包含多个数据文件。数据文件存储实际的数据库数据。查询时,如果内存中没有所需数据,Oracle会从数据文件中读取并加载到内存。可通过SQL语句查看和管理数据文件。附有视频讲解及示例。
|
20小时前
|
Oracle 关系型数据库 数据库
【赵渝强老师】Oracle的数据字典
数据字典是Oracle数据库的核心组成部分,包含几乎所有数据库信息。它由一组表和视图组成,供只读访问。数据字典有四种命名前缀,分别代表不同类型的元数据。通过示例展示了如何查询用户表空间、角色、表空间信息及用户创建的表。视频讲解进一步帮助理解。
|
15小时前
|
SQL Oracle 关系型数据库
【赵渝强老师】Oracle的联机重做日志文件与数据写入过程
在Oracle数据库中,联机重做日志文件记录了数据库的变化,用于实例恢复。每个数据库有多组联机重做日志,每组建议至少有两个成员。通过SQL语句可查看日志文件信息。视频讲解和示意图进一步解释了这一过程。
|
18小时前
|
存储 Oracle 关系型数据库
【赵渝强老师】执行Oracle的冷备份与冷恢复
本文介绍了数据库的冷备份与冷恢复技术,包括其定义、优缺点及操作步骤。通过Oracle RMAN工具,详细演示了如何执行冷备份和冷恢复,确保数据库在关闭状态下完成备份,并能快速恢复到指定时间点。文中还提供了具体的操作示例和代码,帮助读者更好地理解和实践。
|
6月前
|
存储 Oracle 安全
Oracle控制文件:数据王国的导航仪
【4月更文挑战第19天】Oracle控制文件是数据库的关键组件,存储结构信息和元数据,用于数据库启动、恢复。它指引数据库找到所需文件,保证数据完整性。控制文件的多重备份和定期更新确保其安全可靠。作为数据库导航仪,它对管理员理解和维护数据库至关重要,为数据存储和恢复提供关键支持。
|
Oracle 关系型数据库
oracle学习17-命令学习5
oracle学习17-命令学习5
94 0
oracle学习17-命令学习5
|
Oracle 关系型数据库
oracle学习13-命令学习1
oracle学习13-命令学习1
111 0
oracle学习13-命令学习1
|
Oracle 关系型数据库
oracle学习15-命令学习3
oracle学习15-命令学习3
92 0
oracle学习15-命令学习3
|
Oracle 关系型数据库
oracle学习14-命令学习2
oracle学习14-命令学习2
121 0
oracle学习14-命令学习2
|
Oracle 关系型数据库 数据库
oracle学习46-图解oracle数据库
oracle学习46-图解oracle数据库
84 0
oracle学习46-图解oracle数据库