我想删除在AIX 6.0 OS中创建的oracle实例(oracle 10.2.0.4.0)。我知道我可以删除终端中的所有dbf和ctl文件,但是我认为这不是最好的方法。我认为这一定是一种更清洁的方法。
提前致谢。
我想删除在AIX 6.0 OS中创建的oracle实例(oracle 10.2.0.4.0)。我知道我可以删除终端中的所有dbf和ctl文件,但是我认为这不是最好的方法。我认为这一定是一种更清洁的方法。
提前致谢。
Answers:
您可以使用DBCA删除数据库,这可以完成大部分工作。
或者,您可以执行以下操作,但这与手动删除数据文件,重做日志,控制文件的操作相同。
sqlplus / as sysdba
startup mount exclusive restrict
exit
rman target /
drop database including backups noprompt;
exit
之后,您仍然必须从/ etc / oratab中删除属于该数据库的条目,从$ ORACLE_HOME / dbs中删除init.ora / spfile,密码文件,并清除日志目录(adump,bdump,cdump,udump)。
如果决定使用DBCA删除数据库,则可以执行以下操作:
如果要从Oracle主目录中完全删除Oracle 10.2g实例,则首先需要在oratab文件中标识该实例。例如,此条目显示testdb Oracle数据库实例与以下ORACLE_HOME相关联:
testdb:/u01/app/oracle/product/11.2.0/db_1:Y
mydb:/u01/app/oracle/product/10.2.0/db_1:N
接下来,您需要为要删除的数据库设置环境,例如:
/usr/local/bin/oraenv
ORACLE_SID = [testdb] ? mydb
现在,您可以启动数据库配置助手(DBCA):
dbca
然后,选择要删除的数据库(mydb),然后单击完成。
您还可以在静默模式下使用DBCA删除数据库。例如,对于单实例数据库:
dbca -silent -deleteDatabase -sourceDB <Oracle_Sid>
删除Oracle数据库将删除数据库中的所有数据。例如,除其他外,此操作将删除:
1)此查询产生的所有文件(对于mydb):
SELECT name FROM v$datafile
UNION
SELECT name FROM v$controlfile
UNION
SELECT name FROM v$tempfile
UNION
SELECT member FROM v$logfile
2)与oratab中的 mydb相关的条目
3)在listener.ora和tnsnames.ora中与mydb关联的条目
如果要保留此数据,请确保在删除数据库之前先备份数据库。
从Oracle Database 11g第2版(11.2)开始,您可以利用deinstall命令。