两种删除Oracle单实例数据库的方法,各有利弊,可看情况使用。

方法一: 用drop命令删除数据库
          startup mount
          alter system enable restricted session;
          drop database;
     但这种做法仅删除数据库,没删除相关配置,没法用dbca创建同名的数据库了。

方法二:手工删除数据库
 手工删能比较干净
 1.通过SQL,找出数据库相关的数据文件,归档,控制文件将其删除
  a. 查出路径     

SELECT 'rm -f '||name as rf FROM v$datafile
union
SELECT 'rm -f '||name as rf FROM v$controlfile
union
SELECT 'rm -f '||name as rf FROM v$archived_log
union
SELECT 'rm -f '||name as rf FROM v$flashback_database_logfile;


    b. shutdown immediate;


    c. rm -f ......


 2.将存放这个数据库系统日志的目录删除


    即删除$ORACLE_BASE/admin/$ORACLE_SID下的所有目录如adump,cdump...


 3.删除dbs下的配置文件


    将orapw$ORACLE_SID.ora及参数文件(spfile),lk$ORACLE_SID等文件删除


 4.清除配置文件中这个数据库的信息


     将tnsnames.ora和listener.ora中关于这个数据库的配置信息给清了。


 5. 删除系统目录下的配置文件


    /var/opt/oracle/oratab 或 /etc/oratab 中关于这个数据库的相关内容


 6.  到$ORACLE_HOME目录下,删除所有和这个数据库相关的文件,

最后将数据库所在目录(通常为$ORACLE_HOME/oradata/$ORACLE_SID)删除。

 7.如果有设成服务,清掉服务

    例子: 

       chkconfig --del oracle

rm -f /etc/rc.d/rc0.d/K01oracle
  rm -f /etc/rc.d/rc6.d/K01oracle
       rm -f /etc/init.d/oracle /etc/rc.d/rc3.d/S99oracle
       rm -f /etc/init.d/oracle /etc/rc.d/rc5.d/S99oracle

       rm -f /etc/rc.d/init.d/oracle

  全部清除完成。