web-dev-qa-db-ja.com

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

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

前もって感謝します。

8

ほとんどの処理を行う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)をクリーンアップする必要があります。

16
Balazs Papp

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コマンドを利用できます。

8
Shaunyl