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

读书笔记:白话Oracle重做与撤销:数据库的后悔药和时光机

我们的文章会在微信公众号IT民工的龙马人生和博客网站( www.htz.pw )同步更新 ,欢迎关注收藏,也欢迎大家转载,但是请在文章开始地方标注文章出处,谢谢!
由于博客中有大量代码,通过页面浏览效果更佳。

本文为个人学习《Expert Oracle Database Architecture Techniques and Solutions for High Performance and Productivity(第四版本》一书过程中的笔记与理解分享,仅用于学习与交流,部分内容参考原书观点并结合>实际经验进行整理。若涉及版权问题,请联系删除或沟通处理。也请大家支持购买原版书籍。

白话Oracle重做与撤销:数据库的"后悔药"和"时光机"

大家好!今天咱们来聊聊Oracle数据库里两个特别重要的功能——重做(redo)和撤销(undo)。这俩就像是数据库的"后悔药"和"时光机",保证数据安全的同时还能让你反悔操作。

一、重做日志:数据库的"时光机"

想象一下重做日志就像飞机的黑匣子,记录着数据库所有的操作。它分两种:

  1. 在线重做日志:相当于实时录音笔,正在记录当前发生的事
  2. 归档重做日志:就是把录满的录音笔存档保管

它能干啥?

  • 突然断电:就像你正写作业突然停电,来电后可以根据记录接着写,不会丢数据
  • 硬盘坏了:好比笔记本被水泡了,用备份本+录音记录能恢复所有内容
  • 手滑删库:像不小心删了重要文件,用备份+记录能回到删除前的状态

现代Oracle还有个更厉害的"时间倒流"功能(闪回技术),可以直接查看过去某个时间点的数据,或者把表恢复到之前的样子。

特别提醒:对DBA来说,数据恢复是最重要的技能,绝对不能出错!

二、撤销数据:数据库的"后悔药"

撤销功能就像word里的撤销键,但更智能。它会把你的每一步操作都记下来,这样:

  • 写错可以回退(CTRL+Z)
  • 事务出错自动回滚
  • 不同人同时查数据时互不干扰

有趣的现象

很多人以为撤销是把数据"原样退回",其实不是。举个例子:

  1. 你新建个空表(就像买个新本子)
  2. 往里面狂写数据(写满100页)
  3. 突然反悔,选择撤销

你以为本子会变回全新的?其实不是!本子还是那个写过的本子,只是内容被清空了。下次再用时,系统需要翻遍所有页确认是否为空,所以会变慢。

三、实际应用小贴士

  1. 新建表的小秘密:用默认方式建表时,实际还没分配空间(就像买了本子但还没拆包装),只有第一次写入时才真正"拆封"

  2. 撤销不释放空间:就像你写了又擦掉,本子页数不会减少,只是内容空了

  3. 多人协作时:你的撤销不会影响别人正在写的内容,非常智能

总结

  • 重做日志 = 黑匣子:保证数据安全,出问题能恢复
  • 撤销数据 = 智能撤销键:支持回滚和多用户同时工作

理解这两个机制,就像知道了数据库的"生存法则",能帮你更好地设计系统,出了问题也知道怎么应对。记住,在数据库世界里,"后悔药"和"时光机"都是真实存在的!

------------------作者介绍-----------------------
姓名:黄廷忠
现就职:Oracle中国高级服务团队
曾就职:OceanBase、云和恩墨、东方龙马等
电话、微信、QQ:18081072613
个人博客: (http://www.htz.pw)
CSDN地址: (https://blog.csdn.net/wwwhtzpw)
博客园地址: (https://www.cnblogs.com/www-htz-pw)

http://www.aitangshan.cn/news/898.html

相关文章:

  • Java面向对象
  • 智能台灯离线语音控制芯片方案与应用场景
  • Luogu P3287 [SCOI2014] 方伯伯的玉米田 题解 [ 紫 ] [ 多维 DP ] [ 贪心 ] [ 树状数组 ] [ 状态设计优化 ]
  • VSCode添加到右键菜单中
  • css 红包打开静态效果
  • 厂商官网
  • Java基础学习的一些小细节
  • 2025.8.12 java课堂笔记
  • 记录---高效前端开发:使用 unplugin-auto-import 实现依赖自动导入
  • 【IT转码 Day02】
  • 锐捷
  • 思科
  • 华三
  • 竞速之渊
  • 注册 JVM 关闭钩子(Shutdown Hook)的方法
  • 2025.7.28 CSP-S模拟赛28
  • 服务器如何配置防火墙管理端口访问?
  • 【做题记录】数论(马思博)
  • 渗透测试十年回忆录:从漏洞扫描到社会工程的艺术
  • xx-准备工作
  • 月份选择每个月不能重复
  • 基于MATLAB实现的随机森林算法对共享单车签入签出数量进行预测
  • 8 月考试
  • .net MVC4中提示Newtonsoft.Json, Version=4.5.0.0
  • MySQL 并发控制和日志
  • 基于幅度的和差测角程序
  • ZR 25 summer D7T1 题解 | 树上问题,dp
  • EditText如何设置
  • 关于 git reset --hard 引发的代码故障(附故障原因及解决方案)
  • 【典型案例】利用高光谱遥感技术进行稀有矿产勘探 - ENVI