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