AIX 6.0 OSで作成されたOracleインスタンス(Oracle 10.2.0.4.0)を削除したい。ターミナルですべてのdbfファイルとctlファイルを削除できることはわかっていますが、これは最善の方法ではないと思います。私はそれを行うためのよりクリーンな方法であるに違いないと思います。
前もって感謝します。
ほとんどの処理を行う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)をクリーンアップする必要があります。
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
これでデータベース構成アシスタント(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コマンドを利用できます。