意外にみつからない Oracle RAC DB手動削除
1-1.oracleユーザにスイッチ
# su - oracle
1-2.クラスタデータベースの起動を確認。起動してなかったら起動させる。
$ srvctl status database -d クラスタデータベース名
Instance XXXXX01 is running on node ホスト1
Instance XXXXX02 is running on node ホスト1
$ srvctl start database -d クラスタデータベース名
1-3.DBに接続
$ sqlplus SYSTEM/SYSTEM@クラスタデータベース名
SQL> select instance_name from v$instance;
INSTANCE_NAME
----------------
XXXXX01 もしくは XXXXX02
1-4.DBを単一インスタンスモードに変更
SQL> alter system set cluster_database=FALSE scope=spfile;
SQL> quit
1-5.DB 停止
$ srvctl stop database -d クラスタデータベース名
$ srvctl status database -d クラスタデータベース名
Instance XXXXX01 is not running on node ホスト1
Instance XXXXX02 is not running on node ホスト2
1-6.排他モードでDB起動
$ export ORACLE_SID=クラスタSID
$ sqlplus / as sysdba
SQL> STARTUP MOUNT EXCLUSIVE RESTRICT;
ORACLEインスタンスが起動しました。
Total System Global Area 1.7180E+10 bytes
Fixed Size 5304248 bytes
Variable Size 2372763720 bytes
Database Buffers 1.4663E+10 bytes
Redo Buffers 138514432 bytes
データベースがマウントされました。
SQL> select instance_name from v$instance;
INSTANCE_NAME
----------------
クラスタデータベース名
1-7.DB削除
SQL> DROP DATABASE;
データベースが削除されました。
Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,
Advanced Analytics and Real Application Testing optionsとの接続が切断されました。
SQL> quit
1-8.DBリソースの削除
$ srvctl status database -d クラスタデータベース名
Instance XXXXX01 is not running on node ホスト1
Instance XXXXX02 is not running on node ホスト2
Instance クラスタデータベース名 is not running on node ホスト1
$ srvctl remove database -d クラスタデータベース名
Remove the database クラスタデータベース名? (y/[n]) y
$ srvctl status database -d クラスタデータベース名
PRCD-1120 : The resource for database クラスタデータベース名 could not be found.
PRCR-1001 : Resource ora.クラスタデータベース名.db does not exist
1-9.ASM上データ削除
$ exit
# su - grid
$ asmcmd -p
ASMCMD [+] > cd DATA
ASMCMD [+] > ls
ASMCMD [+] > rm -r データベースファイル格納ディレクトリ
You may delete multiple files and/or directories.
Are you sure? (y/n)
ASMCMD [+] > ls
1-10.1号機、2号機側データベースサーバ上の不要ファイル削除
$ exit
# find / -name クラスタデータベース名
# find / -name 1号機側インスタンス名 or 2号機側インスタンス名
# rm -fr findで見つけた不要ファイル