netvault oracleリストア後、データファイルがmountできなくなった

事象

netvault oracle apmでデータファイルごとにバックアップを取得していたが、リストア後、データファイルが読めなくてmountできない状態となった。

startupすると以下のようになる。

SQL> startup
ORACLE instance started.

Total System Global Area 1068937216 bytes
Fixed Size                  2220200 bytes
Variable Size             616566616 bytes
Database Buffers          444596224 bytes
Redo Buffers                5554176 bytes
Database mounted.
ORA-01113: file 1 needs media recovery
ORA-01110: data file 1: '/opt/oracle/app/oradata/orcl/system01.dbf'

どうやらディスククラッシュ状態のようだ
以下情報を元にリカバリを行った。
http://8.pro.tok2.com/~coredump/tech/oracle/recovery/oracle_recovery_contents.html

解決

データファイルのパスを出力

SQL> COL NAME FORMAT A20
SQL> select DF.FILE#,DF.NAME,TS.NAME,BU.STATUS from v$backup BU, v$datafile DF,
  2  v$tablespace TS where DF.TS#=TS.TS# and DF.FILE#=BU.FILE#;

     FILE# NAME                 NAME                 STATUS
---------- -------------------- -------------------- ------------------
         1 /opt/oracle/app/orad SYSTEM               UNKNOWN ERROR
           ata/orcl/system01.db
           f

         2 /opt/oracle/app/orad SYSAUX               ACTIVE
           ata/orcl/sysaux01.db
           f

         3 /opt/oracle/app/orad UNDOTBS1             ACTIVE
           ata/orcl/undotbs01.d
           bf

     FILE# NAME                 NAME                 STATUS
---------- -------------------- -------------------- ------------------

         4 /opt/oracle/app/orad USERS                ACTIVE
           ata/orcl/users01.dbf

         5 /opt/oracle/app/orad EXAMPLE              ACTIVE
           ata/orcl/example01.d
           bf

         6 /opt/oracle/app/orad TEST1                ACTIVE
           ata/orcl/userstset01
           .dbf

     FILE# NAME                 NAME                 STATUS
---------- -------------------- -------------------- ------------------

         7 /opt/oracle/app/orad TEST2                ACTIVE
           ata/orcl/userstset02
           .dbf


7 rows selected.

修復作業を行う。
※マウント状態としておくこと。

-- オフライン
> ALTER DATABASE DATAFILE '/opt/oracle/app/oradata/orcl/system01.dbf' OFFLINE;
-- リカバリ
> RECOVER DATAFILE '/opt/oracle/app/oradata/orcl/system01.dbf'
Media recovery complete.
-- オンラインライン
> ALTER DATABASE DATAFILE '/opt/oracle/app/oradata/orcl/system01.dbf' ONLINE;

上記以外にすべてのデータファイルがマウントできないため、すべて実施した。

その後、インスタンスの再起動

> startup
ORACLE instance started.

Total System Global Area 1068937216 bytes
Fixed Size                  2220200 bytes
Variable Size             616566616 bytes
Database Buffers          444596224 bytes
Redo Buffers                5554176 bytes
Database mounted.
Database opened.

なんとか無事に復旧できたっぽい

備考

netvault oracle apmのリストアページを参照すると、リストア前にデータファイルはオフラインにしないといけないようだ。
今回はオンライン状態で実施したため、このような事態がおきたのかもしれない。
http://www.bakbone.co.jp/support/netvault_lesson/nvls200812.html

おすすめの記事