正しい方法でOracleインスタンスを削除する


8

AIX 6.0 OSで作成されたoracleインスタンス(oracle 10.2.0.4.0)を削除したい。ターミナルですべてのdbfファイルとctlファイルを削除できることはわかっていますが、これは最善の方法ではないと思います。私はそれを行うためのよりクリーンな方法である必要があると思います。

前もって感謝します。

回答:


16

ほとんどの処理を行うDBCAを使用してデータベースを削除できます。

または、以下のようにすることもできますが、これはデータファイル、REDOログ、制御ファイルを手動で削除するのと同じです。

sqlplus / as sysdba
startup mount exclusive restrict
exit
rman target /
drop database including backups noprompt;
exit

この後も、データベースに属するエントリを/ etc / oratabから削除し、init.ora / spfile、パスワードファイルを$ ORACLE_HOME / dbsから削除し、ログディレクトリ(adump、bdump、cdump、udump)をクリーンアップする必要があります。


8

DBCAを使用してデータベースを削除する場合は、次のようにします。

Oracle 10.2gインスタンスをOracleホームディレクトリから完全に削除する場合は、最初に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

これで、Database Configuration Assistant(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コマンドを利用できます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.