LoginSignup
14
16

More than 5 years have passed since last update.

OracleでORA-00257が出た時のリカバリ

Last updated at Posted at 2014-12-24

アーカイブログでパンクするとき

開発環境などで、何もしてないとアーカイブログが溜まりに溜まったせいで、
高速リカバリ領域として使用可能な最大ディスク領域を越えてしまった際にエラーが発生して接続も出来なくなっちゃう

ORA-00257: アーカイブ・エラーです。解除されるまで内部接続のみにしてください。

これはアーカイブログをOSから削除してもエラーは直らない
そこで、リカバリ方法
※アーカイブログを削除するので、本番環境でやるときはそれなりに注意

リカバリ方法

RMANコマンドで当日分のアーカイブログまで削除

cmd
set ORACLE_SID=HOGE
RMAN TARGET /
RMAN> DELETE ARCHIVELOG UNTIL TIME 'sysdate';

このオブジェクトを削除しますか
と聞かれるので[YES]

先にOSからファイルを消している場合

先にOSからファイルを削除していると上記のコマンドでは領域が開放されないので
以下の手順を実行

cmd
set ORACLE_SID=HOGE
RMAN TARGET /
RMAN> CROSSCHECK ARCHIVELOG ALL;
RMAN> DELETE EXPIRED ARCHIVELOG ALL;

このオブジェクトを削除しますか
と聞かれるので[YES]

補足:高速リカバリ領域の使用率確認クエリ

V$RECOVERY_FILE_DESTを見るだけ
これが100%になるとパンクする

sqlplus
select
    name,
    round(space_limit/1024/1024/1024,2)||'GB' space_limit,
    round(space_used/1024/1024/1024,2)||'GB' space_used,
    round((space_limit - space_used)/1024/1024/1024,2)||'GB' space_available,
    NUMBER_OF_FILES,
    round(space_used/space_limit ,3)*100 used_percent
from 
    v$recovery_file_dest
;
14
16
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
14
16