ORA-00257の対処

先週金曜日にアーカイブログモードに設定したOracleインスタンスインスタンスに接続できないとのレポート。sqlplusで試してみると、確かに接続できない。

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

などと言われる。ググるとDB_RECOVERY_FILE_DEST_SIZEを拡張するとハッピーらしいので早速やってみる。2013年4月17日の記事と同じですね。今日の場合は、すでにインスタンスは立ち上がっているので(open状態)そのままやってOK。

再発

sqlplusで一般ユーザでの接続を確認してやれやれと思っていると、またエラーになるとのレポート。なんじゃいとおもって以下で使用率を確認。

SQL> select * from v$flash_recovery_area_usage where file_type='ARCHIVED LOG'

むー拡張したのにもう100%になってる。

とりあえず削除

面倒なのでファイルシステム上でアーカイブログを削除。その後rmanでフラッシュ。

# rm * (わあ怖い)
# rman target /
RMAN> crosscheck archivelog all;
RMAN> delete expired archivelog all;

しばらく観察

でもってしばらく観察。うーむ、1分の50Mくらいのファイルが10個くらいできてる(泣)。
そりゃすぐいっぱいになるな。

どうしよう

とりあえずアーカイブログモードでの運用は無理みたいなのでnoarchivelogへ戻す。
crudが激しいDBだとアーカイブログファイルの作成頻度ってどうしようもないのかな。