JavaScriptが無効になっています。
この状態では一部の情報が表示されず、すべての機能を利用することができません。
運用時に発生するエラー
ORA-00257: アーカイブ・エラーです。解除されるまで内部接続のみにしてください。
REDOログ を アーカイブログに書き出せないために停止した状態。
原因
一般的には DISKFULL でアーカイブが行えない場合に発生する。
稀に 手動アーカイブモードの状態を忘れて放置した場合にも発生する。
対応
アーカイブ先のディスクの空き容量を確保する、不要なアーカイブログを削除する。(念のため直近のアーカイブファイルには手を出さないこと)
手動アーカイブ状態になっている場合は、自動アーカイブモードにするか、コマンドでアーカイブする。
以下の手順、参照
アーカイブ先の確認
SQL> ARCHIVE LOG LIST
アーカイブ先のディスクが一杯なら不要なファイルを削除する。
アーカイブ先が USE_DB_RECOVERY_FILE_DEST の場合には DB_RECOVERY_FILE_DEST 初期化パラメータと DB_RECOVERY_FILE_DEST_SIZE による制限を受ける
その上限値を超えるとサーバーのコンソール(Windows ならイベントビューア)に以下のエラーメッセージが出力される。
デフォルトアーカイブ先は $ORACLE_BASE /flash_recovery_area/<SID>/archive/
ORA-16014: ログ x、順序番号 y がアーカイブされていません。使用可能な宛先がありません。
ORA-16038: ログ x 、順序番号 y をアーカイブできません。
ORA-19809: リカバリ・ファイルの制限を超えています
なおリカバリ領域の使用率は Oracle 内部で管理されているので OS から物理的ファイルを移動しても効果がない。
ダウンタイムは短くしたいはずなので、現在値を確認して初期化パラメータを変更する。あとで RMAN を使用してファイルを論理、物理的に削除する。(今のところ RMAN でしか論理が削除できない : 10g)
即時反映する初期化パラメータであるので、停止状態から直ぐに回復することができる。
SQL> SHOW PARAMETER db_recovery_file_dest
SQL> SELECT * FROM V$RECOVERY_FILE_DEST;
SQL> ALTER SYSTEM SET db_recovery_file_dest_size='n{K|M|G}' SCOPE=BOTH;
参考: アーカイブログ モード運用への移行
手動アーカイブ モードの確認
SQL> SELECT LOG_MODE FROM V$DATABASE ;
ARCHIVELOG | MANUAL | NOARCHIVELOG
MANUAL 状態だと 手動でアーカイブするモードになっている。
( 注意 ARCHIVE LOG LIST での'自動アーカイブ' の有効/無効の表示は、現状をあらわすものではなく、
可能/不可能を表示しているので自動になっていると限らない (Oracle 10g 時点))
ALTER SYSTEM ARCHIVE LOG ALL ;
にて手動でアーカイブし、アーカイブログ モード運用へ正しく移行する。
関連事項
一覧ページへ戻る
OTN (Oracle Technology Network)によるエラーメッセージによる情報だけでは、対処に困ったエラーについてのプラクティスです。
ベスト・プラクティスというわけではないので、書いてあることに固執しないで広い視野でエラー対応してください。