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しとく。