当前位置: 首页 > news >正文

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

1

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

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

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

image.png
点击这里查看视频讲解:【赵渝强老师】Oracle的还原数据

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

2

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

3

下面通过一个简单的例子来说明什么是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语句之前就是保存在了还原表空间的数据文件中。

http://www.jsqmd.com/news/100525/

相关文章:

  • Oracle EBS BOM 通过ECO批量新增或者更新资源
  • ffmpeg 下载地址
  • java使用Redison自旋锁和mysql生成唯一编号
  • Dify AI 结合ZeroNews 实现公网快速访问
  • LobeChat能否获得ISO认证?国际标准认可路径
  • typora快捷键
  • 10 个专科生论文写作工具,AI降重查重率推荐
  • Docker Compose健康检查失效的7个隐藏原因(运维专家亲授排查法)
  • 【Dify Tesseract 运维必修课】:深入理解增量更新与回滚机制的黄金法则
  • 环信em_chat_uikit(Flutter)适配鸿蒙
  • 大连艾森诺铸件浇道击断器,铸造降本增效核心装备​
  • 10 个专科生开题报告工具,AI 写作降重软件推荐
  • 【扫盲】什么是API
  • Dify相关性评估技术深度解析(企业级搜索优化必备)
  • 【金融风险分析必备技能】:掌握R语言相关性矩阵的5大核心应用
  • 生物信息分析高手私藏代码(R语言代谢组完整流程大公开)
  • 提升GAN可控性:精确操控合成图像的属性
  • 详细介绍:基于YOLOv5-AUX的棕熊目标检测与识别系统实现
  • 简单大数据分析测试
  • IDEA/pycharm快捷键
  • 状态丢失问题
  • 【权威指南】Dify集成Tesseract 5.3语言包的7个关键步骤
  • 【Agent工具调用Dify参数校验全解析】:掌握高效接口验证的5大核心策略
  • 2025年底,我们用什么框架来开发智能体?
  • R语言处理临床数据缺失值的7种武器(附真实病例数据代码实战)
  • 美国降息,日本加息,为何让币圈交易员紧张不安?
  • 在算家云搭建Linly-Talker数字人语音模型
  • 10 个继续教育课堂汇报工具,AI 工具推荐与对比总结
  • EmotiVoice开源TTS引擎使用教程
  • LobeChat能否支持GraphQL查询?接口灵活性分析