如果数据库carsh,low cache rba是恢复的起点,on disk rba是恢复的终点。
dbwr成功写完后并不把此刻scn信息写到控制文件中,只有CKPT才更新控制文件和数据文件头,dbwr只要成功将dirty data写入数据文件就是成功, CKPT只要能将最新DBWR写完的SCN更新到控制 文件和数据文件头就算成功。但是由于CKPT进程不是实时更新dbwr写完的scn到控制文件中,而是采用每3妙更新一次的策略,因此最后有ckpt进程写进控制文件的scn信息有可能不是当前dbwr刚刚写完的scn值。这点应该注意,也就是说dbwr写的进度与ckpt进程更新控制文件的进度是不同的。
想问一下。既然是3秒一次的更新,如果dbwn在3秒钟内将某些dirty data写进数据文件的,而CKPT还没有更新scn,系统crash了,然后恢复的时候,这个已经由dbwn写进数据文件的dirty data将如何做呢?
再问一个关于延迟清楚的delayed block cleanout事,当transaction还未commit或rollback时modified block已经被写回磁盘,我想问我要是rollback那oracle该如何做的啊?
dbwr成功写完后并不把此刻scn信息写到控制文件中,只有CKPT才更新控制文件和数据文件头,dbwr只要成功将dirty data写入数据文件就是成功, CKPT只要能将最新DBWR写完的SCN更新到控制 文件和数据文件头就算成功。但是由于CKPT进程不是实时更新dbwr写完的scn到控制文件中,而是采用每3妙更新一次的策略,因此最后有ckpt进程写进控制文件的scn信息有可能不是当前dbwr刚刚写完的scn值。这点应该注意,也就是说dbwr写的进度与ckpt进程更新控制文件的进度是不同的。
想问一下。既然是3秒一次的更新,如果dbwn在3秒钟内将某些dirty data写进数据文件的,而CKPT还没有更新scn,系统crash了,然后恢复的时候,这个已经由dbwn写进数据文件的dirty data将如何做呢?
再问一个关于延迟清楚的delayed block cleanout事,当transaction还未commit或rollback时modified block已经被写回磁盘,我想问我要是rollback那oracle该如何做的啊?
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/8497396/viewspace-748634/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/8497396/viewspace-748634/