日志问题

来源:2-4 事务机制(二)

rock221

2021-04-16 10:59:28

1、

。undo日志有几种类型,插入数据、删除数据、更新数据都会产生不同的undo log,记录有一个roll_pointer的指针指向它的undo log,所有关于这条记录的undo log都连成一条链表,称为版本链,根据undo log的事务ID来判断是哪个事务中修改了该记录,事务回滚时找到对应事务ID的undo log恢复数据。


 那这里的undo日志的几种类型是什么意思阿,在开启手动事务之后,如果第一次执行的是查询,那么数据库会把原始数据加载到undo日志中,然后把查询到的数据放到redo中,结果集显示的是redo中查询到的数据吗?;如果第一次是删除数据呢? 是先把原始的数据加载到undo中, 删除的数据在redo中进行操作,然后结果集显示出来,是这样吗?


写回答

1回答

好帮手慕阿园

2021-04-16

同学你好

1、这里的日志类型指的对数据的增删改查产生的undo log是不同的,每个操作都会有自己的对应的日志类型

2、是的,undo日志用于存放数据被修改前的值,如果一个事务做回滚或某种原因执行失败了,需要根据undo日志中记录的原数据做数据恢复;而redo日志是每次操作都先记录到redo日志中,当出现实例故障(像断电),导致数据未能更新到数据文件,则数据库重启时须redo,重新把数据更新到数据文件

祝学习愉快~


0

0 学习 · 16556 问题

查看课程