ディスク消失時のLinux、Oracleでの対処

仮想環境において、割り当てていた仮想ディスクをOS(Linux)、Oracle上で
構成変更をせずに仮想環境のマネージャー上で削除してしまった場合の対処

1. OS上での対処

起動しようとると、以下で止まる。

An error occurred during the file system check.
Dropping you to a shell; the system will reboot
when you leave the shell.
Give root passwrd for maintenance
(or type Control-D to continue):

1. パスワードを入力してログインしする。
2. /etc/fstabを編集するため、書き込みができるように「/」を再マウント
(読み込み専用でマウントされているため、編集できない。)

mount -o remount ,rw /

3. /etc/fstabを編集し、削除してしまった仮想ディスクの領域をコメントアウト
4. shutdown -r now

2. Oracle上での対処

仮想ディスク上にもデータファイルがあったため、データベースをOPENできない。
(自動起動にしていたが、以下で止まっていた。)

su - oracle
sqlplus / as sysdba

SQL> select status from v$instance;

STATUS
------------------------------------
MOUNTED

1. abortで停止させ、対象のデータファイルをoffline dropし、データベースをopenさせる。

SQL> shutdown abort
ORACLEインスタンスがシャットダウンされました。
SQL> startup
ORACLEインスタンスが起動しました。

Total System Global Area 1043886080 bytes
Fixed Size                  2296280 bytes
Variable Size             654313000 bytes
Database Buffers          381681664 bytes
Redo Buffers                5595136 bytes
データベースがマウントされました。
ORA-01157: データファイル12を識別/ロックできません -
DBWRトレース・ファイルを参照してください ORA-01110:
データファイル12: '/oracle_datafile10/tbs1.dbf'


SQL> alter database datafile '/oracle_datafile10/tbs1.dbf' offline drop;

データベースが変更されました。

SQL> alter database open;

データベースが変更されました。

SQL>
SQL> select status from v$instance;

STATUS
------------------------------------
OPEN

以上。

参考:
http://blog.layer8.sh/ja/2011/12/21/centos%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E8%B5%B7%E5%8B%95%E6%99%82%E3%81%ABrepair-filesystem%E3%81%AB%E3%81%AA%E3%81%A3%E3%81%9F%E3%81%A8%E3%81%8D%E3%81%AE/
http://www2.odn.ne.jp/~cag07740/tech_info/oracle_ans13.html