A tabela SYS.AUD$ guarda os procedimentos auditados no banco de dados e é consultada através da view DBA_AUDIT_TRAIL. Como toda tabela de auditoria, é comum haver uma manutenção para evitar o excesso de informação desnecessária ou o crescimento desordenado da mesma.
Tempos atrás fui incubido de executar a tarefa de mover a tabela de auditoria para fora da tablespace SYSTEM, e buscando no Metalink, encontrei o DocID 1019377.6 que é um script pronto para tal procedimento. Outros documentos foram importantes para dirimir dúvidas que surgiram enquanto estudava a respeito.
Segue os procedimentos para executar essa tarefa.
1. Conectando no banco como usuário SYS
$ sqlplus / as sysdba
2. Criando a nova tablespace
SQL> create bigfile tablespace AUDITORIA datafile '/u01/oradata/auditoria.dbf' size 10M autoextend on next 50M;
3. Criando a nova tabela de auditoria
SQL> create table AUD_NEW tablespace AUDITORIA as select * from AUD$ where 1 = 2;
4. Renomeando as tabelas
SQL> rename AUD$ to AUD_OLD;
SQL> rename AUD_NEW to AUD$;
5. Criando o índice
SQL> create index I_AUD1 on AUD$(sessionid, ses$tid) tablespace AUDITORIA;
É recomendado efetuar esse procedimento em um horário calmo onde não ocorrerá auditoria, evitando erros no procedimento. Um script personalizado para executar o procedimento pode ser criado.
Exemplo de um script (mvaud.sql) utilizando os procedimentos acima:
create bigfile tablespace AUDITORIA
datafile '/u01/oradata/auditoria.dbf'
size 10M autoextend on next 50M
/
create table AUD_NEW tablespace AUDITORIA as select * from AUD$ where 1 = 2
/
rename AUD$ to AUD_OLD
/
rename AUD_NEW to AUD$
/
create index I_AUD1 on AUD$(sessionid, ses$tid) tablespace AUDITORIA
/
Utilizando este script, execute o seguinte comando
$ sqlplus / as sysdba @mvaud.sql
Tarefa concluída.
Marcos Aurélio Braga
OCA - Oracle Database 10g Administrator