Starting with Oracle10g Release 1, Oracle provides a method to completely drop a database with one simple statement. This method makes use of the DROP DATABASE command in RMAN.
NOTE: Although this should be obvious from the title of the article, the following will completely drop the target database including all datafiles, controlfiles, redo log files, SPFILE, and if you want all backups and archived redo log files associated with the database. Consider yourself warned.
The DROP DATABASE Command
NOTE: Before the target database can be dropped, it must be mounted in EXCLUSIVE mode with RESTRICTED SESSION enabled.
Before dropping the database, let's take a look at the complete syntax for the RMAN DROP DATABASE command:
DROP DATABASE;
DROP DATABASE NOPROMPT;
DROP DATABASE INCLUDING BACKUPS;
DROP DATABASE INCLUDING BACKUPS NOPROMPT;
When "NOPROMPT" is specified, RMAN will not prompt for confirmation before deleting the database. The default for RMAN is to prompt for confirmation.
Restrictions and Usage Notes
- This command can only be run from RMAN.
- You must be connected to the target database from RMAN while the database is mounted in EXCLUSIVE mode with RESTRICTED SESSION enabled.
- When using the "DROP DATABASE" command, RMAN drops the target
database including the following files at the operating system level:
- Datafiles
- Online Redo Log Files
- Controlfiles
- SPFILE (if it exists)
· When including the "INCLUDING BACKUPS" clause, RMAN will delete the files listed above as well as the following files at the operating system level:
- Archive Redo Logs
- Backup pieces generated by RMAN for the target database
· When using the "DROP DATABASE" command with RMAN connected to a recovery catalog, RMAN will unregister the target database.
- The "DROP DATABASE" command does not delete the following files:
- init.ora (text version of the Oracle initialization file)
- password file
· If the operating system is Windows NT/2000, then it does not delete the Windows NT service for the target database instance.
DROP DATABASE EXAMPLE
In this article, I will be dropping a database named orcl. The orcl database is in archive log mode and has several backups included in the Flash Recovery Area. I want to drop the target database along with all backup files.
$ sqlplus "/ as sysdba"
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup mount exclusive
ORACLE instance started.
Total System Global Area 285212672 bytes
Fixed Size 1218992 bytes
Variable Size 100664912 bytes
Database Buffers 180355072 bytes
Redo Buffers 2973696 bytes
Database mounted.
SQL> alter system enable restricted session;
System altered.
SQL> exit
$ rman target /
Recovery Manager: Release 10.2.0.1.0 - Production on Mon Aug 7 17:33:25 2006
Copyright (c) 1982, 2005, Oracle. All rights reserved.
connected to target database: ORCL (DBID=1123903688, not open)
RMAN> drop database including backups;
database name is "ORCL" and DBID is 1123903688
Do you really want to drop all backups and the database (enter YES or NO)? YES
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=156 devtype=DISK
List of Backup Pieces
BP Key BS Key Pc# Cp# Status Device Type Piece Name
------- ------- --- --- ----------- ----------- ----------
51 31 1 1 AVAILABLE DISK /u02/flash_recovery_area/ORCL/backupset/2006_08_07/o1_mf_annnn_TAG20060807T164635_2fh9of4s_.bkp
52 32 1 1 AVAILABLE DISK /u02/flash_recovery_area/ORCL/backupset/2006_08_07/o1_mf_nnndf_TAG20060807T164638_2fh9ogvf_.bkp
53 33 1 1 AVAILABLE DISK /u02/flash_recovery_area/ORCL/backupset/2006_08_07/o1_mf_ncsnf_TAG20060807T164638_2fh9vzo0_.bkp
54 34 1 1 AVAILABLE DISK /u02/flash_recovery_area/ORCL/backupset/2006_08_07/o1_mf_annnn_TAG20060807T165009_2fh9w2lm_.bkp
deleted backup piece
backup piece handle=/u02/flash_recovery_area/ORCL/backupset/2006_08_07/o1_mf_annnn_TAG20060807T164635_2fh9of4s_.bkp recid=51 stamp=597861997
deleted backup piece
backup piece handle=/u02/flash_recovery_area/ORCL/backupset/2006_08_07/o1_mf_nnndf_TAG20060807T164638_2fh9ogvf_.bkp recid=52 stamp=597861998
deleted backup piece
backup piece handle=/u02/flash_recovery_area/ORCL/backupset/2006_08_07/o1_mf_ncsnf_TAG20060807T164638_2fh9vzo0_.bkp recid=53 stamp=597862207
deleted backup piece
backup piece handle=/u02/flash_recovery_area/ORCL/backupset/2006_08_07/o1_mf_annnn_TAG20060807T165009_2fh9w2lm_.bkp recid=54 stamp=597862210
Deleted 4 objects
released channel: ORA_DISK_1
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=156 devtype=DISK
specification does not match any archive log in the recovery catalog
database name is "ORCL" and DBID is 1123903688
database dropped
Copyright - GNU General Public License
(C) June 2008, manivelcode