[Oracle] 自動アーカイブモードの設定漏れによってOracleの動きが止まる... | Archive Redo Blog

Archive Redo Blog

DBエンジニアのあれこれ備忘録

ある業務の担当者から「Oracleで昨日の晩からジョブを流しているですが、まだ終わらないんです...」とヘルプを求められました。


早速、Oracleにログインしセッション情報を確認すると、確かにACTIVEなセッションがあり、ジョブが実行されています。


でもどうも処理が進行している雰囲気ではありません。


アラートログファイルなどを確認してみてもエラーは出ていないようですし...


うーん、謎だなぁ...


と思いながら、いろいろ見ていると、セッションの統計情報で"redo log space wait time"の値がどんどん増えていることに気がつきました。


システムの統計情報を見ても同じです。


しかもその数値は1万を超えてコンディションレッドになっています!


1万はどう考えても多すぎだろ...とここで気がつきました。


まさか、自動アーカイブモードにしてないんじゃないのか?


アーカイブログの設定を調べてみたら、案の定自動アーカイブモードになっていませんでした...


それでオンラインREDOログファイルが一杯になってもアーカイブされず、手動でアーカイブされるのをOracleが一晩中健気に待っていたというわけです。


担当者曰く、


「そういえば、だいぶ前にアーカイブログモードにしてみたんですけど...」


どうやらその時に自動アーカイブモードにしていなかったようです。


よほど特殊な環境でもない限り、アーカイブログモードといえば自動アーカイブモードなんですが、それはオラクラー的な感覚であって、普通は気づかないのかもしれません。


といいながら、私もよもやそんな設定になっているとは思いもしなかったので、アラートログファイルにさり気なく出力されていた

Thread 1 cannot allocate new log, sequence 5665 All online logs needed archiving

って、メッセージを見逃してしまっていました。


気づけよ...(笑)