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

From: Tim Gorman <tim_at_evdbt.com>
Date: Wed, 06 Jul 2011 17:41:38 +0000
Message-ID: <W73817780105201309974098_at_webmail60>



 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_at_yahoo.com] 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

--

http://www.freelists.org/webpage/oracle-l Received on Wed Jul 06 2011 - 12:41:38 CDT

Original text of this message