关闭

redo、dirty data、commit、checkpoint理解

527人阅读 评论(0) 收藏 举报
分类:

redo到底是什么东西;重做

是对数据库修改的一个描述信息;

比如修改了一个数据块;在redo中会记录什么时间,修改了第几个文件的哪个数据块,修改了什么东西。就是一条特定格式的记录。注意:不是记录SQL语句。


什么是脏数据块啊?内存中的数据和文件中的数据不一致的。

commit会不会触发DBWriter?不会;

dbwriter是一个很底层的进程,由oracle自己决定什么时候启用。

commit会不会触发logwriter?会。只要commit肯定会刷新logwriter,会把redo logbuffer中的数据写到redo log files

commit会不会唤醒ckpt?不会。

chkpt:要么发生日志切换,要么超过3秒,要么shutdownnormal,要么alter system checkpoint



.checkpoint由ckpt进程触发oracle进行checkpoint动作,将data buffer中的脏块(已经写在redo里记录但是没有写到datafile里的)的内容写入到data file里并释放站用的空间,由dbw后台进程完成,并修改controlfile和datafile的scn.

一般手工执行是由于要删除某个日志但是该日志里还有没有同步到datafile里的内容,就需要手工check point来同步数据,然后就可以drop logfile group n.

 

checkpoint主要是用于去刷新data buffer中脏数据到数据文件中的。通过checkpoint来控制脏数据队列的长度,从而来缩小下一次启动数据库所花费的时间。

 


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:195649次
    • 积分:4223
    • 等级:
    • 排名:第7212名
    • 原创:209篇
    • 转载:110篇
    • 译文:8篇
    • 评论:11条
    最新评论