温馨提示:文本由机器自动转译,部分词句存在误差,以视频为准
00:00
本节课我们来讨论一下Oracle的还原数据。还原数据也可以叫做回滚数据,或者叫做undo数据,它保存的是Oracle数据库表中的历史记录。换句话说,当某个SQL语句更改了数据库中的数据时,Oracle数据库会保存就值,这个就职就是还原数据。还原数据的作用主要体现在三个方面,首先,用于支持查询的一致性读取。为了保证在同一个事物中前后读取数据的一致性,就数据必须作为还原数据存在,只要保留的还原数据没有丢失,就能通过重建数据来满足读取一致性查询的要求。其次,实现orac code的闪回操作。闪回是Oracle的一种恢复方式。例如闪回查询可以查找过去某个时间存在的旧版本数据,只要在还原数据中,过去那个时间的还原数据仍存在闪回,查询就能成功完成。最后,还原数据也可用于从失败的事物处理中进行恢复,了解到了基本的知识。
01:00
后下面讨论一下还原数据的工作原理。第一步,绘画易执行update语句,修改表中的数据,服务器进程会执行该条语句,到会画1执行完成后并未提交事务操作。第二步,由服务器进程将表中的旧数据写入还原表空间中。第三步,服务器进程用第一步中的新数据更新表中的值,并标识该行数据已经修改,但对应的事物还没有提交。第4步,服务器进程将表中新数据的地址与还原表空间中旧数据的地址写入it TL列表中it TL式transaction list的缩写。第5步,会画2发起读取表中数据的操作。第6步,服务器进程执行会画2的读操作,但发现表中的数据已经被修改,但对应的事物还未提交,此时,服务器进程就不会将读取到的数据返回给会画2,而转向继续执行第7步操作。第7步,服务器进程根据第4步记录的地址信息访问还原。
02:00
表空间得到表中的旧数据,并将旧数据返回给会话。2、经过以上7步的操作,Oracle最终使用还原数据支持了读一致性。现在你已经知道Oracle的还原数据了,那你知道Oracle的重做数据也就是redo数据吗?你清楚redo和undo的区别吗?欢迎评论区留言讨论好了,记得点加号关注赵玉强老师。
我来说两句