スポンサーリンク

Oracle 10g が「ORA-00257」エラーで止まったので

いろいろ忘れていて対処に手間取ってしまったので、自分用にメモメモ。

とりあえず詳しいエラー内容を確認すると、

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

原因:
ARCHプロセスがREDOログをアーカイブしようとして、エラーを受け取りました。問題がすぐに解決されない場合、データベースはトランザクションの実行を停止します。アーカイブ先のデバイスで、REDOログ・ファイルを格納する領域が不足している可能性があります。

処置:
アーカイバ・トレース・ファイルを確認して、問題の詳細な説明を調べてください。また、初期化パラメータARCHIVE_LOG_DESTに指定されたデバイスが、アーカイブに対して適切に設定されていることを検証してください。

ORA-00000~ORA-00830 より引用

とのことだったので、とりあえず下記のSQLで現在のログモードを確認。

SQL> SELECT LOG_MODE FROM V$DATABASE ;

結果は ARCHIVELOG でしたので、とりあえずはアーカイブログモードで動いているようです。ちなみに上記SQLの結果は、ARCHIVELOG | MANUAL | NOARCHIVELOG のいずれかになります。

次に、フラッシュリカバリ領域の空き状況(使用率)を確認します。

SQL> SELECT * FROM V$RECOVERY_FILE_DEST;

NAME           SPACE_LIMIT SPACE_USED SPACE_RECLAIMABLE NUMBER_OF_FILES
-------------- ----------- ---------- ----------------- ---------------
L:/oracle/log   4294967296 4119674880                 0              63

上記SQLの結果から、領域の最大サイズを示す SPACE_LIMIT と、使用済みの領域サイズを示す SPACE_USED を比べます。と、ここで空き容量がほとんど無くなっていることが判明・・・orz

ここからは RMAN で接続して作業です。ちなみに RMAN で接続するためのコマンドは以下の通り(いや、自分が忘れてたので)。また、USER/PASS の部分は、お使いの環境に合わせて置き換えてください。

rman target USER/PASS nocatalog

とりあえず、Oracle が認識しているファイルで、既に無くなっているファイルが無いか確認してみます。

RMAN> CROSSCHECK ARCHIVELOG ALL;

もしそんなファイルがあった場合は、上記コマンドの後で

RMAN> DELETE EXPIRED ARCHIVELOG ALL;

としてやると、無くなっていたファイル分の領域が未使用分として認識されます。ここまでやって問題がなければ、古いアーカイブログを削除するか、フラッシュリカバリ領域を拡張するしかありません。

古いアーカイブログを削除する場合は、OSのコマンド(もしくは操作)で削除するのではなく、やっぱり RMAN から行います。そうしないと、Oracle がファイルが無くなったことを認識できないので、消えたファイルのサイズが空き容量として認識されません。

もし、OSから直にアーカイブログファイルを削除してしまった場合は、上の 「CROSSCHECK ~」 と、「DELETE EXPIRED ~」 のコマンドで、Oracle に空き容量を再認識させてください。

というわけで、7日前より古いログを削除する場合のサンプルは以下の通り。

RMAN> DELETE ARCHIVELOG UNTIL TIME 'SYSDATE-7' ;

また、フラッシュリカバリ領域を拡張する場合は、SQLで

SQL> ALTER SYSTEM SET DB_RECOVERY_FILE_DEST_SIZE=4G SCOPE=BOTH ;

とすると、合計で 4G のサイズを割り当ててくれます。

今回は、最終的にフラッシュリカバリ領域を拡張する事で対応しました。それにしても、ドライブに空き容量があって本当によかった。

参照リンク
 ・ORA-00000~ORA-00830
 ・ORA-00257 - オラクル・Oracle エラー FAQ
 ・Oracle / フラッシュリカバリ領域-ARCHIVELOGモード | WEBレシピ
 ・フラッシュバックリカバリの基礎知識 (1/3) - @IT
 ・アーカイブログの削除 (OSTL)

スポンサーリンク
コメント

参考になりました。ありがとう><!

コメントありがとうございます。

お役に立てたのなら何よりです!

Verify your Comment
Previewing your Comment

This is only a preview. Your comment has not yet been posted.

Working...
Your comment could not be posted. Error type:
Your comment has been posted. Post another comment

The letters and numbers you entered did not match the image. Please try again.

As a final step before posting your comment, enter the letters and numbers you see in the image below. This prevents automated programs from posting comments.

Having trouble reading this image? View an alternate.

Working...

コメントを投稿

プロフィール


  • 書いてる人:夢界 陸

    名古屋在住のおっさん。
    プログラミングやガジェットの話など、 日々の興味を徒然と綴っています。



    Twitterやってます @mukairiku

    運営サイト
    www.mukairiku.net

ブログ内検索

Licenses

  • Creative Commons License

OTHER

  • このブログのはてなブックマーク数

Blog powered by TypePad

スポンサーリンク