日期:2014-05-16  浏览次数:20469 次

如何手工删除oracle数据库和软件

一、手工删库和数据库文件

有时候,有可能在dbca图形界面中找不到要删除的库,特别是standby库,默认没有在/ora/etctab里设置,只有手工删除了。
假设不关心EM和iSQLPLUS相关的文件。

$ lsnrctl stop
$ sqlplus '/as sysdba'
SQL> select * from v$controlfile;??? --确定控制文件所在位置
SQL> select * from v$dbfile;??? --确定数据文件所在位置
SQL> select * from v$logfile;??? --确定日志文件所在位置
SQL> archive log list;??? ??? --确定归档文件所在位置
SQL> shutdown abort;
SQL> startup mount exclusive restrict;
SQL> drop database;??? --会自动删除控制文件、数据文件和日志文件,及其闪存区文件
SQL> exit
$ rm -rf $ORACLE_BASE/admin/$ORACLE_SID
$ rm -rf /orahome/oradata/$ORACLE_SID??? --删除数据库文件所在目录,可能有多个目录
$ rm -rf /orahome/arch1/$ORACLE_SID??? --删除归档文件所在目录和文件,可能有多个目录
$ rm -rf /orahome/flash_recovery_area/$ORACLE_SID??? --删除闪存区目录
$ rm $ORACLE_HOME/dbs/*$ORACLE_SID*??? --删除密码文件和lk等文件
如果有必要,还可以删除listener.ora、tnsnames.ora和sqlnet.ora:
$ rm $TNS_ADMIN/*.ora

$ rm $ORACLE_HOME/network/admin/*.ora
修改oratab文件和.bash_profile(使用bash的情况下)文件:
$ vi /etc/oratab??? --去掉实例相关的设置
$ vi ~/.bash_profile??? --去掉实例相关的设置

现在该库的实例和物理文件都清除干净了,已经和没建库前一样了。

二、手工删oracle软件(Linux下)

1、删除oraInventory目录,目录位置记录在/etc/oraIns.loc文件中
2、删除$ORACLE_HOME目录
3、删除其它oracle文件,包括
/usr/local/bin/oraenv
/usr/local/bin/coraenv
/usr/local/bin/dbhome
/etc/oraInst.loc
/etc/oratab
/var/tmp/.oracle目录