本文演示了如何使用DBCA工具删除Oracle RAC数据库的一个实例。示例使用了一个2节点的RAC,配置如下:
Oracle Version : 11.2.0.3.0
Database : RAC
Instances : RAC1, RAC2
Nodes : ol5-112-rac1, ol5-112-rac2
交互方式
在一个保留的节点上,本文为“ol5-112-rac1”,启动DBCA工具:
$ dbca
选择“Oracle Real Application Cluster (RAC) database”选项,点击“Next”按钮。
选择“Instance Management”选项,点击“Next”按钮。
选择“Delete an instance”选项,点击“Next”按钮。
确认选定了正确的集群数据库,输入一个拥有SYSDBA权限的用户认证,点击“Next”按钮。
选择要删除的实例,点击“Next”按钮。
再次显示该界面,但是包含一个“Finish”按钮。点击“Finish”按钮。
点击确认对话框中的“OK”按钮。
等待实例删除。
提示是否执行其他操作,点击“No”按钮退出DBCA。
静默方式
可以使用DBCA的静默方式,通过以下命令获得相同的结果:
$ dbca -silent -deleteInstance -nodeList ol5-112-rac2 -gdbName RAC -instanceName RAC2 -sysDBAUserName sys -sysDBAPassword myPassword
Deleting instance
20% complete
21% complete
22% complete
26% complete
33% complete
40% complete
46% complete
53% complete
60% complete
66% complete
Completing instance management.
100% complete
Look at the log file "/u01/app/oracle/cfgtoollogs/dbca/RAC.log" for further details.
删除后检查
确认与被删除节点关联的重做线程已经被禁用。本文删除了实例“RAC2”,即线程2。
SQL> select distinct thread# from v$log;
THREAD#
----------
1
如果重做线程没有被禁用,可以手动禁用:
SQL> ALTER DATABASE DISABLE THREAD 2;
确认该实例信息已经从OCR中删除:
$ srvctl config database -d RAC
Database unique name: RAC
Database name: RAC
Oracle home: /u01/app/oracle/product/11.2.0/db_1
Oracle user: oracle
Spfile: +DATA/RAC/spfileRAC.ora
Domain: localdomain
Start options: open
Stop options: immediate
Database role: PRIMARY
Management policy: AUTOMATIC
Server pools: RAC
Database instances: RAC1
Disk Groups: DATA
Mount point paths:
Services: BATCH_SERVICE,OLTP_SERVICE
Type: RAC
Database is administrator managed
记得编辑任何与被删除节点关联的服务定义。
更多信息参考: