Email: service@parnassusdata.com 7 x 24 online support!

    You are here

    • You are here:
    • Home > Blogs > PDSERVICE's blog > 表領域のデータファイルが失われた時の対応方法(SYSTEM及びRBS以外の表領域について)

表領域のデータファイルが失われた時の対応方法(SYSTEM及びRBS以外の表領域について)

表領域のデータファイルが失われた時の対応方法(SYSTEM及びRBS以外の表領域について)

[Problem]
表領域のデータファイルに障害が発生し、
Oracleのstartup時にORA-1157、ORA-1110が発生しました。


[Cause]
Oracleのstartup時にORA-1157,ORA-1110が発生した原因として以下のようなことが
考えられます。
・誤ってデータファイルをOSレベルで削除してしまった
・ディスク障害等によって消失してしまった
・OS等の書き込みエラーにより不整合が発生した


[Action]

※重要※ リカバリを行う前に、以下の点について御確認ください。

[問題となっている表領域に格納されているオブジェクトについて]
・失われても構わないデータを格納する表領域や、索引のための表領域であれば、表領域を削除して
 再作成するという対処が可能かどうかご検討ください。
・損失できない表データが格納されている表領域でも、EXPORTダンプファイルやSQL*Loader用の
 データによって復旧できたり、他のデータベースに同じデータが格納されている場合があります。
 表領域を再作成してこれらの手段による復旧が可能かどうかご検討ください。

バックアップからの復旧が必須であると判断された場合には、以下を御確認ください。

[アーカイブログモードでバックアップが存在する場合]
バックアップしておいた表領域のデータファイルをリストアしてリカバリを行なって下さい。

データファイルリストア後のリカバリ例:
SVRMGR> startup mount
SVRMGR> recover database
SVRMGR> alter database open;

[ノーアーカイブログモード、もしくはアーカイブログモードだがバックアップが
 存在しない場合]

データファイルをoffline dropしてデータベースをopenし、表領域を再作成します。
一時表領域には実データが含まれないため、リカバリには問題ありません。
INDEX、表のデータが存在している表領域については、残念ながらなくなってしまいます。


一時表領域のリカバリ例:

SVRMGR> startup mount
SVRMGR> alter database datafile '<full_path_file_name>' offline drop;
SVRMGR> alter database open;
SVRMGR> drop tablespace <temporary_tablespace_name> including contents;
この後で一時表領域を再作成します。

PERMANENT属性の一時表領域には表などのユーザオブジェクトを作成することが
可能ですが、上記のような状況でのリカバリの際に支障となる可能性がありますので、
PERMANENT属性の一時表領域にはユーザオブジェクトは作成しないで下さい。
TEMPORARY属性の一時表領域には仕様上、ユーザオブジェクトの作成はできません。

通常の表領域リカバリ例:
SVRMGR> startup mount
SVRMGR> alter database datafile '<full_path_file_name>' offline drop;
SVRMGR> alter database open;
SVRMGR> drop tablespace <tablespace_name> including contents;
この後で表領域を再作成します。