在10G之前我们如果要删除一个DB的方法:
1) 通过DBCA图形界面,去Delete DB
2)用命令行在操作系统级别删除掉数据库的所有物理文件。
但是从10g开始ORACLE提供DROP DATABASE语法用来删除数据库。
在RAC上不过DROP DATABASE还是有一定的限制条件的:
-
停掉非第一节点上的DB instance
-
在第一节点:
关闭数据库
SQL> shutdown immediate;
以exclusive模式mount第二个实例,并enable restricted
SQL> startup mount exclusive;
SQL> alter system enable restricted session;
SQL> alter system set cluster_database=FALSE scope=spfile;
SQL> shutdown abort;
SQL> startup mount exclusive;
SQL> alter system enable restricted session;
SQL> drop database;
否则会遇到:
SQL> startup mount exclusive;
SQL> alter system enable restricted session;
System altered.
SQL> drop database;
drop database
*
ERROR at line 1:
ORA-01586: database must be mounted EXCLUSIVE and not open for this operation
分析:我们以exclusive模式mount的数据库实例,怎么还会报这个错误呢?
但是在我们来看看alert日志看看会有什么发现,虽然我们在mount的时候指定了exclusive,但是因为CLUSTER_DATABASE=TRUE,所以数据库还是会以Shared 模式被mount
Reference:
What Is The Best Way To Remove A Database If Using Oracle 10.x And Higher (Doc ID 362047.1)