如何手工删除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目录