ITPUB论坛 » Oracle数据库管理 » why the dbwr process write the dirty blocks when dropping or truncating a table


2008-7-5 22:39 blue_or_white
why the dbwr process write the dirty blocks when dropping or truncating a table

Is there any body can give me an answer?
I am really confused about this

welcome discusion!!!

2008-7-6 00:06 ljgfly2007
oracle会将commit的数据通过dbwr写到数据文件当中,至于为什么:为了维护数据的一致性

2008-7-6 11:16 blue_or_white
[quote]原帖由 [i]ljgfly2007[/i] 于 2008-7-6 00:06 发表 [url=http://www.itpub.net/redirect.php?goto=findpost&pid=10868500&ptid=1017376][img]http://www.itpub.net/images/common/back.gif[/img][/url]
oracle会将commit的数据通过dbwr写到数据文件当中,至于为什么:为了维护数据的一致性 [/quote]


You said that dbwr writes the blocks into the datafile, it is for data consistence, I agree with you.
But are you sure that when drop or truncate a table, the dbwr [color=Red]only [/color]write the [color=Red]committed blocks [/color]into the datafiles?

You know, there are a lot of conditions will trigger the dbwr writing blocks (not only the committed blcoks)
such as : tablespace off line , tablespace read only ,  tablespace begin backup ,  no free buffer in the buffer cache, the dirty buffer reach a threshold, a rac ping, timeout(3 mins), checkpoint
and drop or truncate a table.

页: [1]


Powered by ITPUB论坛