Oracleで監査表領域が云々
アプリケーションからOracleに接続できないというレポート。Oracleのログを参照するとこんなエラーが吐かれていました。
<msg time='2014-11-17T09:21:43.355+09:00' org_id='oracle' comp_id='rdbms' client_id='' type='UNKNOWN' level='16' host_id='dbserver' host_addr='172.16.1.1' module='httpd@apserver (TNS V1-V3)' pid='16236'> <txt>ORA-1653: unable to extend table SYS.AUD$ by 8192 in tablespace SYSTEM </txt> </msg>
SYSTEM表領域のAUDテーブルが拡張できないって。
AUTOEXTENDはONになっているはずなんだが。Oracleの11gから監査機能がデフォルトでonになっていて、自動的になにやらデータを貯めこんでいる模様。
google先生に聞くと、先人たちはそんなのイランってことで監査機能をdiableしているようなのでそれにならうことにする。
alter systemがエラーになるよ。
パラメタを確認。
SQL> show parameter audit_trail NAME TYPE VALUE --------------- ------ --------------- audit_trail string DB
でもってalter systemで変更。
SQL> alter system set AUDIT_TRAIL = none scope = spfile; * ERROR at line 1: ORA-32001: write to SPFILE requested but no SPFILE specified at startup
エラー。
ふーむ、起動時にspfileを指定していないとダメなんだ。
spfileの場所は
$ORACLE_HOME/dbsの下にspfileinstancename.oraってのがそうらしい。該当場所を見てみると、確かにファイルがない。過去に利用したらしいファイルが残っていたのでそのファイルをコピーしてDBを再起動。
再度alter systemを実行。
SQL> alter system set AUDIT_TRAIL = none scope = spfile; system altered.
うまくいきました。
DB再起動
alterができたのでDBをもう一回再起動。
パラメタを確認。
SQL> show parameter audit_trail NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ audit_trail string NONE
これで障害も解消。
その後
aud$に何件くらい入ってるんだろ。
SQL> select count(*) from aud$ ; COUNT(*) ---------- 182424588
うーむ、いらない。あとでtrancしとく。