关于重做的几个小知识点

关于重做,可能不了解的小知识点,我也不知道是否总结的就对,不过先总结着吧。
1,主机掉电,会导致实例失败,在重启db时需要实例恢复。
2,在实例恢复时,oracle可以根据重做日志,将系统恢复到实例失败的那个时刻。
3,一般能用撤销的情况也就是我们执行了回滚或者恢复时的回滚。
4,手动管理撤销段是,需要我们手动建立或删除撤销段,而自动管理撤销时,oracle会自动创建或销毁撤销段。
5,在回滚时,oracle会将撤销应用到数据块和索引块上,使数据块和索引块恢复。如果此时数据块和索引块已经被写到磁盘上了(大事务),那oracle会将这些块读入缓存,然后再应用撤销回滚。
6,在回滚时,不需要重做,重做的读只是用在恢复和归档时。
7日提交的开销:
会增加与数据库间的通信。
提交会等待重新写磁盘,等待事件为日志文件同步。
8,当发生事务时,会在SGA中生成块,已经修改的块,生成对于前2项缓存的重做块。
9日每次提交,视交叉上核就会加1。
10,触发器对重做的影响
DML操作,,AFTER ,,,,,,,BEFOR ,,,,AFTER ,,在
, (10 g以前)(10 g以前)(10克),(10克)
DELETE ,不影响,,,,,,,不影响,,,,,不影响,,不影响
INSERT ,增加redo ,,,,增加redo ,,常量重做常量重做
UPDATE ,增加redo ,,,,不影响,,,,,增加重做增加
11日当db是nologg模式的话,ddl几乎是不会被记录重做的。如果生产重做的话,也是为了保护更新数据字典而生成的。
12,我们可以对索引设置nolog模式,那如果在重建索引时,那岂不是就可以缩短时间啦。
13,插入时,临时表几乎不产生重做的,但会产生撤销,而在产生撤销时会产生撤销相应的重做,所以说临时表只是会产生相当少的重做。而删除时,临时表和普通表产生的重做一样多,更新时临时表产生的重做是普通表的一半。

关于重做的几个小知识点