阅读更多
Oracle提供了drop database命令用来删除数据库,代码如下所示:
SQL> startup mount
ORACLE instance started.
Total System Global Area 264241152 bytes
Fixed Size 2095536 bytes
Variable Size 83887696 bytes
Database Buffers 171966464 bytes
Redo Buffers 6291456 bytes
Database mounted.
SQL> alter system enable restricted session;
System altered.
SQL> drop database;
Database dropped.
该命令会物理级别删除数据库,同时Oracle警告日志会显示如下内容:
Wed Jul 11 15:35:16 CST 2012
drop database
Wed Jul 11 15:35:17 CST 2012
Deleted file /oradata/zhoul/system01.dbf
Deleted file /oradata/zhoul/undotbs01.dbf
Deleted file /oradata/zhoul/sysaux01.dbf
Deleted file /oradata/zhoul/redo01.log
Deleted file /oradata/zhoul/redo02.log
Deleted file /oradata/zhoul/redo03.log
Deleted file /oradata/zhoul/temp01.dbf
Instance terminated by USER, pid = 13136
Deleted file /oradata/zhoul/control01.ctl
Completed: drop database
从以上的警告日志中,可以看到drop database命令仅仅删除了数据库,并没有删除与实例zhoul的相关配置,这会导致不能用DBCA图形化工具创建相同实例名字的数据库。
以下步骤为手工彻底删除数据库的过程:
(1) 关闭实例,删除数据文件、控制文件、日志文件、闪回文件、归档文件。
select name from v$datafile;--查看数据文件位置
select name from v$controlfile;--查看控制文件位置
select name from v$archived_log;—查看归档文件位置
select name from v$flashback_database_logfile;—查看闪回文件位置
注意 在数据库open状态下删除数据文件,数据文件的句柄(handle)还会存在。
(2) 删除日志文件目录,如$ORACLE_BASE/admin/$ORACLE_SID下的所有目录。
(3) 删除$ORACLE_HOME/dbs目录下与所删除实例相关的信息,如lk$ORACLE_SID、orapw$ORACLE_SID及参数文件。
(4) 删除配置文件listener.ora、tnsnames.ora中的相关内容。
(5) 删除配置文件/var/opt/oracle/oratab或者/etc/oratab中的相关内容。
(6) 检查$ORACLE_HOME目录下与所删除实例相关的文件,确认之后删除。假如实例名为zhoul,则删除zhoul相关的文件。