在10g以前,要徹底刪除數(shù)據(jù)庫,只有兩個(gè)方法,一個(gè)是利用DBCA圖形化工具刪除數(shù)據(jù)庫,另外一個(gè)就是關(guān)閉數(shù)據(jù)庫后,手工刪除數(shù)據(jù)文件、控制文件以及日志文件的方法。
從10g開始,Oracle提供了DROP DATABASE的語法,使得數(shù)據(jù)庫的刪除變得非常的簡單。
不過DROP DATABASE還是有一定的限制條件的:
SQL> conn / as sysdba
Connected.
SQL> drop database;
drop database
*
ERROR at line 1:
ORA-01586: database must be mounted EXCLUSIVE and not open for this operation
SQL> alter database close;
Database altered.
SQL> drop database;
drop database
*
ERROR at line 1:
ORA-12719: operation requires database is in RESTRICTED mode
SQL> alter system enable restricted session;
System altered.
SQL> drop database;
Database dropped.
Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bit Production
With the Partitioning, OLAP and Data Mining options
SQL> exit
[oracle@bjtest ~]$ ps -ef|grep test102
oracle 15805 14913 0 06:13 pts/1 00:00:00 grep test102
數(shù)據(jù)庫必須處于MOUNT狀態(tài),且設(shè)置了RESTRICTED SESSION。執(zhí)行了DROP DATABASE命令后,Oracle自動(dòng)刪除控制文件,已經(jīng)控制文件中記錄的數(shù)據(jù)文件和在線重做日志文件,如果數(shù)據(jù)庫使用了SPFILE,那么SPFILE文件也會(huì)刪除。這個(gè)命令不會(huì)刪除歸檔文件和備份文件。
在alert文件中,可以看到drop database對應(yīng)的操作:
drop database
Mon May 18 06:13:01 2009
Deleted file /data/oradata/test102/system01.dbf
Deleted file /data/oradata/test102/undotbs1.dbf
Deleted file /data/oradata/test102/sysaux01.dbf
Deleted file /data/oradata/test102/redo01.log
Deleted file /data/oradata/test102/redo02.log
Deleted file /data/oradata/test102/redo03.log
Deleted file /data/oradata/test102/redo04.log
Deleted file /data/oradata/test102/redo05.log
Deleted file /data/oradata/test102/redo06.log
Deleted file /data/oradata/test102/redo07.log
Deleted file /data/oradata/test102/temp01.dbf
Instance terminated by USER, pid = 15795
Deleted file /data/oradata/test102/control01.ctl
Completed: drop database
Mon May 18 06:13:08 2009
Shutting down instance (abort)
License high water mark = 1
從10g開始,Oracle提供了DROP DATABASE的語法,使得數(shù)據(jù)庫的刪除變得非常的簡單。
不過DROP DATABASE還是有一定的限制條件的:
SQL> conn / as sysdba
Connected.
SQL> drop database;
drop database
*
ERROR at line 1:
ORA-01586: database must be mounted EXCLUSIVE and not open for this operation
SQL> alter database close;
Database altered.
SQL> drop database;
drop database
*
ERROR at line 1:
ORA-12719: operation requires database is in RESTRICTED mode
SQL> alter system enable restricted session;
System altered.
SQL> drop database;
Database dropped.
Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bit Production
With the Partitioning, OLAP and Data Mining options
SQL> exit
[oracle@bjtest ~]$ ps -ef|grep test102
oracle 15805 14913 0 06:13 pts/1 00:00:00 grep test102
數(shù)據(jù)庫必須處于MOUNT狀態(tài),且設(shè)置了RESTRICTED SESSION。執(zhí)行了DROP DATABASE命令后,Oracle自動(dòng)刪除控制文件,已經(jīng)控制文件中記錄的數(shù)據(jù)文件和在線重做日志文件,如果數(shù)據(jù)庫使用了SPFILE,那么SPFILE文件也會(huì)刪除。這個(gè)命令不會(huì)刪除歸檔文件和備份文件。
在alert文件中,可以看到drop database對應(yīng)的操作:
drop database
Mon May 18 06:13:01 2009
Deleted file /data/oradata/test102/system01.dbf
Deleted file /data/oradata/test102/undotbs1.dbf
Deleted file /data/oradata/test102/sysaux01.dbf
Deleted file /data/oradata/test102/redo01.log
Deleted file /data/oradata/test102/redo02.log
Deleted file /data/oradata/test102/redo03.log
Deleted file /data/oradata/test102/redo04.log
Deleted file /data/oradata/test102/redo05.log
Deleted file /data/oradata/test102/redo06.log
Deleted file /data/oradata/test102/redo07.log
Deleted file /data/oradata/test102/temp01.dbf
Instance terminated by USER, pid = 15795
Deleted file /data/oradata/test102/control01.ctl
Completed: drop database
Mon May 18 06:13:08 2009
Shutting down instance (abort)
License high water mark = 1