Info2softは、ウェブサイトでより快適で適切な閲覧体験を提供するためにCookieを使用しています。 プライバシーポリシー
Loading...
データベースがライフサイクルを終了し不要となった場合、DROP DATABASEコマンドを使用してサーバーから削除できます。テーブルやユーザーだけでなく、データベースインスタンス全体をサーバーから完全に削除するため、実行後のロールバックは不可能です。
本ガイドでは事前確認事項、2種類の段階的な削除手順、頻出エラーと解決策、安全な代替手段を解説し、トラブルなく作業を完了させる方法を紹介します。
DROP DATABASEを実行すると、OracleはOSレベルで元に戻せない一連の処理を実行します。何が削除され、何が残存するかを正しく把握することで、サーバー環境をクリーンに保てます。
自動削除される物理ファイル
本コマンドはデータベースインスタンスの中核コンポーネントを対象とし、以下のファイルを自動的に消去します。
自動削除されないファイル
DROP実行後に環境が完全にクリーンになると誤認するケースが多発します。Oracleは意図的に複数のファイルを残存させるため、手動で後始末が必要です。
/etc/oratabの記述を手動で削除する必要があるlistener.oraとtnsnames.oraに削除済みSIDの記述が残る類似DROPコマンドとの違い
業務に適したコマンドを選択することが重要です。データベース全体の削除は単一オブジェクトの削除より影響範囲が大幅に広大です。
| コマンド | 削除対象 | データベースは残存するか |
|---|---|---|
| DROP TABLE | 単一テーブルとそのメタデータ | はい |
| DROP USER … CASCADE | スキーマ内の全オブジェクトとユーザー | はい |
| DROP TABLESPACE … INCLUDING CONTENTS AND DATAFILES | 表領域と紐付く物理ファイル | はい |
| DROP DATABASE | インスタンス全体と全物理ファイル | いいえ |
DROP DATABASEを実行するには、インスタンスがマウント状態(オープン不可)である必要があります。また排他制限モードに切り替え、作業中に他ユーザーやプロセスが接続できないようにする必要があります。
SQL*Plusから手動でOracleデータベースを削除するには、事前にインスタンスを必要な状態に起動します。
-- 手順1:必要なモードでインスタンス起動
STARTUP MOUNT EXCLUSIVE RESTRICT;
-- 手順2:削除コマンド実行
DROP DATABASE;
コマンド完了後、Oracleは制御ファイルに記録されたデータファイル、オンラインREDOログ、制御ファイルをすべて削除します。
多くのDBAはRMAN(リカバリマネージャー)を推奨します。データベース本体と紐付くバックアップメタデータを一括削除できるため、リカバリカタログ運用環境では最もクリーンな手法となります。
# 対象データベースに接続
rman target /
# データベースとバックアップを一括削除
RMAN> DROP DATABASE INCLUDING BACKUPS NOPROMPT;
各オプションを理解することで、孤立ファイルの発生を抑え、自動スクリプト化を容易にします。
SYSDBA権限で接続する必要があります。標準のSYSOPERユーザーでは本操作を実行できません。ORACLE_SIDを再確認してください。複数データベース運用環境では環境変数の誤りにより、誤ったDBを削除する事故が発生します。Oracleデータベースの削除は完全不可逆な操作のため、コマンドライン・GUIツールどちらを使用する場合も事前準備が最も重要です。
以下のチェックリスト項目をすべて完了させるまでDROP DATABASEを実行しないでください。確認作業により、誤削除や業務停止リスクを低減できます。
VALIDATE BACKUPコマンドで破損なし・読み取り可能な状態か確認するDBA_DB_LINKSを検索し、他DBが本DBに依存していないか調査SSH接続やターミナル専用環境でデータベースを削除する標準的な手法です。
ORACLE_SID、ORACLE_HOMEを正しく設定SHUTDOWN IMMEDIATE;
STARTUP MOUNT EXCLUSIVE RESTRICT;
SELECT name, open_mode FROM v$database;
DROP DATABASE;
DBCA(データベース構成アシスタント)はGUI経由でデータベースを削除するツールで、Oracle 19c以降の環境で広く使用されています。手動コマンドと比較し、DBファイルの自動削除、OMFのクリーンアップ、Oracle関連設定の更新を一括で実施可能です。
DBCA段階的操作手順:
dbcaと入力しツールを起動SYSのパスワード)を入力自動実行用DBCAサイレントモード:
スクリプトやデプロイフローでDB削除を自動化する場合は、DBCAサイレントモードを使用します。
dbca -silent -deleteDatabase -sourceDB <対象SID> -sysDBAUserName sys -sysDBAPassword <パスワード>
熟練したDBAでもDB削除時にトラブルに遭遇するケースがあります。大半の問題はDBが適切な状態にない、または削除後に設定残骸が残存することが原因です。
| エラー・事象 | 原因 | 解決策 |
|---|---|---|
| ORA-01586: データベースはEXCLUSIVEモードでマウントし、オープンしていない必要があります | DBがオープン状態、または排他制限モードでマウントされていない | DBをシャットダウン後、STARTUP MOUNT EXCLUSIVE RESTRICTで再起動してからDROP DATABASEを実行 |
| RAC環境でORA-01586が発生 | 複数のインスタンスがDBに関連付けられたまま | 1つを残し全RACインスタンスを停止、cluster_database=FALSEを設定し、残ったインスタンスを排他マウントモードで起動 |
| 孤立したDBファイルが残存 | DROP実行時に一部ファイルが自動削除されなかった | ストレージパスを確認し、不要なファイルは手動で削除 |
| リスナーに削除済みDBサービスが表示される | DB削除後もサービス登録情報が残存 | リスナーをリロードまたは再起動し、必要に応じ古いエントリを削除 |
RAC固有のトラブル対応
Oracle RAC環境でDROPを実行する際、複数ノードでDBが起動した状態では実行できません。1インスタンス以外をすべて停止し、初期化パラメータcluster_databaseを一時的にFALSEに設定します。その後残ったインスタンスをMOUNT EXCLUSIVE RESTRICTで起動し、削除コマンドを実行します。
DB削除完了後、srvctlを使用しOracle ClusterwareからDB設定を削除し、不要なリソースが残存しないようにします。
ファイルクリーンアップのトラブル対応
環境によってはDROP完了後もDBファイルが残る場合があります。外部バックアップソフト、スナップショットツール、ストレージ管理ユーティリティ、OSプロセスがファイルを参照し続けることが原因です。関連サービスをすべて停止し、ファイルが不要であることを確認してから手動削除してください。
ASMまたはOMFを使用している場合は、OSのディレクトリ確認だけに頼らず、Oracle専用管理ツールでファイル消去状況を検証します。
多くの場合、データベース全体を削除する必要はありません。DROP DATABASEはDBとファイルを完全消去する不可逆コマンドのため、実行前に以下の代替手段を検討してください。
TRUNCATE TABLEを使用します。テーブル定義、インデックス、権限を残したまま全行データを削除可能です。DROP TABLEを使用します。DROP USER ユーザー名 CASCADEを実行します。対象ユーザーと配下のテーブル、インデックス、ビュー、プロシージャ等を削除し、DB本体には影響を与えません。ALTER PLUGGABLE DATABASE pdb_name CLOSE IMMEDIATE;
DROP PLUGGABLE DATABASE pdb_name INCLUDING DATAFILES;
DROP DATABASE実行前には、検証済みのバックアップを取得することが最優先事項です。コマンド実行完了後はDBファイル、制御ファイル、オンラインREDOログが消去されるため、有効なバックアップがなければ復旧は困難または不可能となります。
複数のOracle環境を管理する企業では、手動によるバックアップ確認は時間を要し、人為的ミスが発生しやすいです。i2Backupは集中型バックアップ・リカバリプラットフォームを提供し、DB廃止、移行、完全削除といった高リスク作業の前にOracleデータを保護する手段をDBAに提供します。
バックアップ保護以外に、復旧要件の厳しい企業は補完ソリューションを活用できます。近ゼロRPOの継続データ保護にはi2CDP、リアルタイムレプリケーションと災害復旧計画にはi2Availabilityをご検討ください。
安全なOracle DB削除とは、必要時に復旧可能な状態を保った作業のことです。DROP DATABASE実行前に、最新かつ検証済みのバックアップと実証済みの復旧計画を用意してください。i2Backupといったソリューションが安全網を構築することで、DBAは安心してDB削除作業を実施できます。
OracleのDROP DATABASEコマンドの記述自体は単純ですが、実行による影響は完全に元に戻せません。DBを削除する前に依存関係を確認し、関係者の承認を取得し、何より有効なバックアップと復旧計画を整備する必要があります。
Oracle標準ツール、またはInfo2softのi2Backupといった集中型バックアップソリューションのいずれを使用する場合でも、実証済みの復旧ポイントを確保することが、安全かつ安心してDB廃止作業を実施する鍵となります。