JavaScriptが無効になっています。
この状態では一部の情報が表示されず、すべての機能を利用することができません。
オラクル・データベースを削除する手順 〜 UNIX 系
データベースを構築してからインスタンス名が気に入らない場合やインストールしても起動しない。なにが悪いかわからない場合、もう再インストールする場合など、データベースファイルが残っていると、その原因の切り分けが困難になることもある。
不要なファイルはディレクトリごとバッサリ削除するか、以下のような手順で不要なインスタンスの情報を削除する方が良い。
Windows 系の場合には UNIX 系と異なり、レジストリにも情報が残っている可能性があるので DBCA(Database Config Assistant)を使用して削除した方がよいと思う。(DBCA がどこまで削除するかまでは調査していません)
DROP DATABASE
Oracle 10g から データベースファイルを削除する DDL が追加された。
データベースファイル、サーバーパラメータファイルが削除することができる。
実行の前提条件として DROP DATABASE を行なうには RESTRICT モード でかつ排他モードで MOUNT 状態であること。
STARTUP RESTRICT MOUNT
DROP DATABASE ;
但し、アーカイブログおよびバックアップは削除されない。
データベースがRAWディスク上に存在する場合はファイルは削除されない。
Oracle 10g でも、この後に記述されている「アーカイブログ位置の特定」 以降は、手作業で行う必要がある。と 完全な削除 までには程遠いものである。
どこにインストールされているかの確認 (Oracle 8i 以後)
インストールした本人が削除する場合にはあまり関係ないが、別人がオラクルを削除する場合、どこにインストールされたのかすらわからない状況があるかもしれない…
/etc/oraInst.loc (Linux 系)
/var/opt/oraInst.loc (Solaris)
のインベントリファイルが存在すればオラクルがインストールされていることがわかり、内容を見ることででリリースやディレクトリ情報もわかる。
削除するデータファイル、テンポラリ、REDO、コントロールファイルの作成(Oracle 9i 以前)
SQLPlus にて以下を実行
SET HEAD OFF
SET FEEDBACK OFF
SET TRIM ON
SET PAGES 0
SPOOL /tmp/deletefile.txt
--
SELECT 'rm -f ' || filename
FROM (
SELECT name filename FROM v$datafile
UNION SELECT member filename FROM v$tempfile
UNION SELECT member filename FROM v$logfile
UNION SELECT name filename FROM v$controlfile
)
--
SPOOL OFF
内容を確認してシェルで一気に実行する。
or 念のため、確認しながら コピー&ペーストで削除。( Oracle を停止してから削除を行う )
データベース・コンフィグレーション・アシスタントを利用していた場合
デフォルト位置は、$ORACLE_BASE/oradata/<DB_NAME>
アーカイブログ位置の特定
SQL*Plusにて以下を実行
ARCHIVE LOG LIST
他のインスタンスと被らないなら、rm -fr 〜 で削除
ダンプ位置の特定
SQL*Plusにて以下を実行 (pfileを見て手動で削除でも可)
SELECT
value
FROM v$parameter
WHERE
name in ('background_dump_dest', 'user_dump_dest', 'core_dump_dest');
トレースファイル、アラートファイルの削除
データベース・コンフィグレーション・アシスタントを利用していた場合
デフォルト位置は、$ORACLE_BASE/admin/<DB_NAME>/{bdump,udump,cdump}
監査ファイル、フラッシュリカバリ領域
SQL*Plusにて以下を実行 (pfileを見て手動で削除でも可)
SELECT
value
FROM v$parameter
WHERE
name in ('db_recovery_file_dest', 'audit_file_dest');
稼動中のインスタンスが1つの場合ならファイル全削除
データベース・コンフィグレーション・アシスタントを利用していた場合
デフォルト位置は、$ORACLE_BASE/flash_recovery_area
リスナー、TNS エントリの削除
以下のファイルの中の該当部を削除
$ORACLE_HOME/network/admin/listener.ora
$ORACLE_HOME/network/admin/tnsnames.ora
[ $TNS_ADMIN/tnsnames.ora ]
oratab エントリの削除
以下の OSファイルの中のインスタンス名が記述されている行を削除
/etc/oratab
(/var/opt/oracle/oratab)
pfile/spfile の削除
spfileは SQL*Plusにて以下を実行
SHOW PARAMETER spfile
データベース・コンフィグレーション・アシスタントを利用していた場合
デフォルト位置は、$ORACLE_HOME/dbs/{spfile<SID>.ora | init<SID>.ora}
パスワードファイルの削除
$ORACLE_HOME/dbs/orapw<SID> を削除
データベース・コンフィグレーション・アシスタントを利用していた場合
デフォルト位置は、$ORACLE_HOME/dbs/orapw<SID>
コントロールファイルのスナップショット、ロックファイル、管理ファイルの削除
$ORACLE_HOME/dbs/sncf<SID>.ora -- SNapshot Control File (RMAN)
$ORACLE_HOME/dbs/lk<SID>
$ORACLE_HOME/dbs/hc_<SID>.dat
$ORACLE_HOME/dbs/core_<SID>〜.log など関連ログを削除
ソフトウェアも削除する場合
$ORACLE_BASE 以下のディレクトリを削除
( /u01/app/oracle )
/tmp のゴミファイルを確認。再インストールする場合に障害になることがある(リブートできる環境ならリブートする)
関連ファイル
/etc/oratab
/etc/oraInst.loc
/usr/local/bin/coreenv
/usr/local/bin/oreenv
/usr/local/bin/dbhome
/tmp/cpuinfo.txt
/tmp/Ora〜