Hi Dick...

  Along the lines of your last comments...  Instead of waiting for Oracle,
you can implement a home grown solution...  First, create a external
procedure that removes a file from the OS...  Then, create a procedure
that...

Accepts tablespace name ( and maybe cascade option choice )
Determines all datafiles associated with the tablespace
Drops that tablespace
Executes the external procedure to remove the associated datafile(s) from
the OS

Of course you need to be VERY careful in writing this...

:-)

Tim

-----Original Message-----
Sent: Friday, November 02, 2001 10:06 AM
To: Multiple recipients of list ORACLE-L


Guy,

    Not as problem, I've been called a whole lot worse in the past.  Also,
nice
piece if info on the old monks, and yeah that is one heck of a DB recovery
or
more likely a resurrection.

    Now to your point, when the datafile/tablespace gets dropped Oracle
first
off won't let you simply drop it if there are objects therein.  You've got
to
use the 'cascade' option which does what you should have done in the first
place, namely drop all of those tables/indexes.  Actually one presenter at
the
NorthEast Oracle Users Group once said that we were 'not too bright' if we
used
the 'cascade' option.  In his mind it was much more efficient to drop all of
the
objects/segments manually first and then drop the tablespace.  Whatever,
it's
the same thing.  This being the case you've not only affected the control
files
you've also affected the system tablespace and made a significant change in
the
SCN of the database.  This is because DDL statements, which 'drop
tablespace' is
part of, implicitly commit when they are done.  Now where do you think good
old
Oracle keeps track of the SCN?  In the tablespace header block, datafile
header
block and each affected segment block header.  But since we're 'dropping'
this
tablespace do you think Oracle will update those as well?  NAW, it saves a
pile
of writes, so all they do is flush out any 'pending' DBWR activity and then
release the file.  What happen thereafter is of no concern.  So if you want
to
'reassociate' the file with the database you have to either 'clean and reset
the
files clock' or else recover the database.

    In many ways, I look at a database as a 'living' entity which marks time
like the rest of us.  And just as we could not get along with an arm that
was 5
minutes behind us, so the database has to have all of it's arms, otherwise
known
as tablespaces, all at the same time point.  That being the case, if you
loose
an arm, you can't just pick it back up again, you have to grow a new one.
On
the other hand, Oracle could just as easily issue the 
remove(<datafile>); function on the OS side to clean up the mess.  That
would
also eliminate a number of 'AW SH&&' explosions running around the place
when 1
second after you hit the <enter> key you realize you deleted an inuse
datafile
by mistake.

Dick Goulet
President of the Fat Finger Club

____________________Reply Separator____________________
Author: "Guy Hammond" <[EMAIL PROTECTED]>
Date:       11/2/2001 6:20 AM

Hi Doug,

Thanks for the reply. Incidentally, they did use to use re-cycled
parchments, called palimpsests, in ancient times. There was a magazine
article I read recently about some writings of Aristotle (or one of his
students/descendants) being recovered. His manuscripts had been bleached
and re-used by monks producing illustrated bibles - but his technology
was superior, and he had used an ink that penetrated deeply into the
page whereas the monks' ink just stuck to the surface, so in modern
times, the original writing could be restored. Now *that's* a database
recovery!

So let's say I had a database, created a tablespace with one datafile,
created a user with a default of that tablespace, did a bunch of
transactions, committed them, then dropped the tablespace. I know that
the datafile is "compatible" with the instance, because it came from
there. The datafile contains all the data from the transactions. Is it
just useless now? Can the data be recovered back into the original
instance from this datafile?

I know I could get it back by recovering from the last hotbackup and
rolling forward with archived redo logs, but it just seems a little
strange that datafiles can be "orphaned" like this... Hmmm.

Cheers,

g


-----Original Message-----
Sent: 02 November 2001 14:05
To: Guy Hammond; Multiple recipients of list ORACLE-L


Guy,

    The 'drop tablespace' command does a number of items.  It purges the
data
dictionary of all references to that tablespace, removes the file
information
from the control file, closes the datafile(s) and releases them back to
the
operating system.  All that being said, if you then want to reuse the
datafile
as a new tablespace then you have to wipe it.  The simplest reason being
that
you may be using it in a database with a different block size.  Look at
it this
way, if you were starting to write a new book, would you use a notepad
of erased
paper?  If you did there might end up being some very interesting side
notes
running around.

Dick Goulet

____________________Reply Separator____________________
Author: "Guy Hammond" <[EMAIL PROTECTED]>
Date:       11/2/2001 5:40 AM

Hello all,

When a tablespace is dropped, the datafile is left on the disk. What
exactly is the drop tablespace command doing, and is there a way to get
that datafile and "re-attach" to a new tablespace in some way? For
example, creating a tablespace using that datafile, but without wiping
it, as the "reuse" clause does?

Thanks,

g


--
Guy Hammond
AVT Technologies
Classic House
174-180 Old Street
London EC1V 9BP

Desk: 020 7454 4174
Mobile: 07966 164687
Web: http://www.avt.co.uk/ 



-- 
Please see the official ORACLE-L FAQ: http://www.orafaq.com
-- 
Author: Guy Hammond
  INET: [EMAIL PROTECTED]

Fat City Network Services    -- (858) 538-5051  FAX: (858) 538-5051
San Diego, California        -- Public Internet access / Mailing Lists
--------------------------------------------------------------------
To REMOVE yourself from this mailing list, send an E-Mail message
to: [EMAIL PROTECTED] (note EXACT spelling of 'ListGuru') and in
the message BODY, include a line containing: UNSUB ORACLE-L
(or the name of mailing list you want to be removed from).  You may
also send the HELP command for other information (like subscribing).
-- 
Please see the official ORACLE-L FAQ: http://www.orafaq.com
-- 
Author: Guy Hammond
  INET: [EMAIL PROTECTED]

Fat City Network Services    -- (858) 538-5051  FAX: (858) 538-5051
San Diego, California        -- Public Internet access / Mailing Lists
--------------------------------------------------------------------
To REMOVE yourself from this mailing list, send an E-Mail message
to: [EMAIL PROTECTED] (note EXACT spelling of 'ListGuru') and in
the message BODY, include a line containing: UNSUB ORACLE-L
(or the name of mailing list you want to be removed from).  You may
also send the HELP command for other information (like subscribing).
-- 
Please see the official ORACLE-L FAQ: http://www.orafaq.com
-- 
Author: 
  INET: [EMAIL PROTECTED]

Fat City Network Services    -- (858) 538-5051  FAX: (858) 538-5051
San Diego, California        -- Public Internet access / Mailing Lists
--------------------------------------------------------------------
To REMOVE yourself from this mailing list, send an E-Mail message
to: [EMAIL PROTECTED] (note EXACT spelling of 'ListGuru') and in
the message BODY, include a line containing: UNSUB ORACLE-L
(or the name of mailing list you want to be removed from).  You may
also send the HELP command for other information (like subscribing).
-- 
Please see the official ORACLE-L FAQ: http://www.orafaq.com
-- 
Author: Johnston, Tim
  INET: [EMAIL PROTECTED]

Fat City Network Services    -- (858) 538-5051  FAX: (858) 538-5051
San Diego, California        -- Public Internet access / Mailing Lists
--------------------------------------------------------------------
To REMOVE yourself from this mailing list, send an E-Mail message
to: [EMAIL PROTECTED] (note EXACT spelling of 'ListGuru') and in
the message BODY, include a line containing: UNSUB ORACLE-L
(or the name of mailing list you want to be removed from).  You may
also send the HELP command for other information (like subscribing).

Reply via email to