悩ましきアーカイブログ
ユーザーにOracle10G導入時アーカイブログモードの設定をしている私。2ヶ月ほど前に導入したユーザーから16日の夕方19時前に「システムが突然動かんようになった。。」との連絡あり。ユーザーにとっても超多忙なこの時期、この時間に。。ひええええええ!!!急いで遠隔操作でユーザーのサーバーに接続しOracleのアラートログを確認。「ORA-16014:ログ:1 順序番号:70がアーカイブされていません。使用可能なあて先がありません。..」そして他に「ORA-00257」「ORA-19815」「ORA-19809」「ORA-19804」のエラーあり。原因はアーカイブログ出力先にしているフラッシュリカバリ領域のディスク領域が不足していること。というのは比較的すぐに判明。ここで私は単純にOS上からアーカイブログファイルを消してしまったのですが。。Oracle上は認識されないんっすよね。今回の場合の対処方法としては1.DB_RECOVERY_FILE_DEST_SIZEの値を大きくする。か2.フラッシュリカバリ領域にある不要なファイルを削除する。で、今回はディスク容量の都合もあり2.を実行。1.の場合はsqlplusでsql>alter system set db_recovery_file_dest_size=500M;(500Mに変更する場合)2.の場合コマンドプロンプトでまずRMANを起動。rman target /次にアーカイブログファイルを削除。LISTで確認しスレッド1、ログ60までを消すことにしました。RMAN>LIST ARCHIVELOG ALL;で内容を確認しRMAN>delete archivelog until sequence 60 tread 1;で削除。削除されるかどうか聞かれるので「YES」を入力。これで問題は解消したはずが、WINDOWSで削除したのでさらにRMAN>crosscheck archivelog all;でチェックをつけRMAN>delete expired archivelog all;でOS上から既に削除されているファイルを削除する必要ありました。ここまで原因を追究し解決するのに21時ごろまで掛かってしまい。。ユーザーに大変ご迷惑をかけたのでした。。archiveLOGモードにすると、領域を食っていくのは認識していたので定期的にフォローするつもりが予想外に早くリカバリ領域が使用されてしまい。。ただarchiveLOGモードのメリットも捨てがたく。。現にとあるユーザーで別の業者が導入したSYMANTECのBACKUP.EXECがOracle起動中に実行されてしまい使用中の表領域にロックが掛かってしまい破損。すぐにリカバリでき、archiveLOGモードの有難味を痛感したのでした。。うむむ。。まだまだ修業が足りません。。