删除一个oracle实例,正确的方法

Jor*_*hez 10 delete instance oracle-10g

我想删除一个在AIX 6.0 OS中创建的oracle实例(oracle 10.2.0.4.0)。我知道我可以删除终端中的所有 dbf 和 ctl 文件,但我认为这不是最好的方法。我认为必须是一种更清洁的方式来做到这一点。

提前致谢。

Bal*_*app 19

您可以使用 DBCA 删除数据库,它负责处理大部分工作。

或者您可以按以下方式操作,但这与手动删除数据文件、重做日志、控制文件的作用相同。

sqlplus / as sysdba
startup mount exclusive restrict
exit
rman target /
drop database including backups noprompt;
exit
Run Code Online (Sandbox Code Playgroud)

在此之后,您仍然需要从 /etc/oratab 中删除属于数据库的条目,从 $ORACLE_HOME/dbs 中删除 init.ora/spfile 和密码文件,并清理日志目录(adump、bdump、cdump、udump)。


小智 9

如果您决定使用 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
Run Code Online (Sandbox Code Playgroud)

接下来,您需要为要删除的数据库设置环境,例如:

/usr/local/bin/oraenv
ORACLE_SID = [testdb] ? mydb
Run Code Online (Sandbox Code Playgroud)

现在您可以启动数据库配置助手(DBCA):

dbca
Run Code Online (Sandbox Code Playgroud)

然后,选择要删除的数据库(mydb)并单击完成。

您还可以在静默模式下使用 DBCA 删除数据库。例如,对于单实例数据库:

dbca -silent -deleteDatabase -sourceDB <Oracle_Sid>
Run Code Online (Sandbox Code Playgroud)

删除 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
Run Code Online (Sandbox Code Playgroud)

2) oratab中与 mydb 关联的条目

3) listener.oratnsnames.ora中与 mydb 关联的条目

如果要保留此数据,请确保在删除数据库之前备份数据库。

从 Oracle Database 11g 第 2 版 (11.2) 开始,您可以利用deinstall命令。