GPO ( Grupo de Profissionais Oracle )
A maior comunidade Oracle do Brasil !

Movendo AUD$ para fora da tablespace System

A tabela SYS.AUD$ guarda os procedimentos auditados no banco de dados e é consultada através da view DBA_AUDIT_TRAIL. E como toda tabela de auditoria, é comum haver uma manutenção para evitar o excesso de informação desnecessária ou o crescimento desordenado.

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 DocID1019377.6 que é um script pronto para tal procedimento. Outros documentos foram importantes para dirimir dúvidas que surgiram enquanto estudava a respeito.

Procedimentos para executar essa tarefa

  1. Conectar no banco como usuário SYS
  2. Criar a nova tablespace
  3. Criar a nova tabela de auditoria
  4. Renomear as tabelas
  5. Criar o índice

Executando os procedimentos

  1. Conectar no banco como usuário SYS
sqlplus "/ as sysdba"
  1. Criar a nova tablespace
SQL> create bigfile tablespace AUDITORIA

  2  datafile '/u01/oradata/auditoria.dbf'

  3  size 10M autoextend on next 50M;
  1. Criar a nova tabela de auditoria
SQL> create table AUD_NEW tablespace AUDITORIA as

  2  select * from AUD$ where 1 = 2;
  1. Renomear as tabelas
SQL> rename AUD$ to AUD_OLD;
SQL> rename AUD_NEW to AUD$;
  1. Criar o índice
SQL> create index I_AUD1 on AUD$(sessionid, ses$tid) tablespace AUDITORIA;

Exemplo de um script

Este é um exemplo de um script chamado 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
 /

Para usar este script, executa o seguinte:

sqlplus "/ as sysdba" @mvaud.sql

Concluindo

É recomendado agendar uma janela, pequena, para efetuar essa tarefa, para evitar que registros de auditoria sejam executados enquanto o processo está em execução, evitando possíveis erros.

Tarefa concluída

[]s

Share

You may also like...

2 Responses

  1. Victor disse:

    Eae Braga,
    Legal o artigo cara, só não esquece de citar essa parte aqui:

    —Restart the database with audit_trail=NONE before running the script —

    Achei legal esse note tb, vale citar..
    Can’t Move Table SYS.AUD$ To Another Tablespace [ID 1327214.1]

    Ficou legal, valew por compartilhar

    Abs
    Victor

  2. Olá Victor,

    Valeu pela dica. Está registrada!

    []s
    Braga

Deixe um comentário

O seu endereço de e-mail não será publicado.