Re: What is the purpose of segment level checkpoint before DROP/TRUNCATE of a table?

 I think it just comes down to the fact that DROP and TRUNCATE of an object 
removes object metadata blocks (i.e. segment header block for a DROP, 
extent-map blocks in the event of both commands) that must be flushed down to 
disk, because those blocks will be reused by another object eventually. Removal 
of this metadata is relatively unusual, and I imagine that there are failure 
scenarios where chaos may result if object metadata is not flushed to disk 
promptly, perhaps?



-----Original Message-----
From: Saibabu Devabhaktuni [mailto:saibabu_d@xxxxxxxxx]
Sent: Wednesday, July 6, 2011 11:04 AM
To: 'free'
Subject: Re: What is the purpose of segment level checkpoint before 
DROP/TRUNCATE of a table?

Here are the reasons I think why object level checkpoint is needed for Truncate 
or Drop operation:

1) Datafiles on primary and standby need to be same bit by bit and block by 
block. This is fundamentally required for Oracle physical standby and physical 
backups. This will be broken if object level checkpoint wasn't done.


2) Database level flashback can logically corrupt the data, when flashback 
database command is used, if thread level checkpoint wasn't done as part of 
Truncate or Drop operation.


Marking buffers as invalid for writes is only done in Active DataGuard 
environment on physical standby databases in some situations.


Hope it helps.


Thanks,
 Sai
http://sai-oracle.blogspot.com


Other related posts: