Pular para o conteúdo

Fóruns Banco de dados Oracle Fragmentação tablespace SYSTEM Fragmentação tablespace SYSTEM

#106094
Fábio Prado
Participante

    Marcelo,

    Essa é uma ótima pergunta que eu não tenho certeza da resposta. Já pesquisei antes sobre isso e tudo o que encontrei indicava que não havia um caminho simples, como o SHRINK que vc citou, para desfragmentar o tablespace SYSTEM. De qq forma, para evitar a fragmentação excessiva do SYSTEM, é uma boa prática criar um novo tablespace para a tabela AUD$, como no exemplo abaixo, que mostro nos treinamentos Performance Tuning for Oracle DBAs:

    -- CRIANDO tablespace AUDSYS
    create tablespace teste datafile '/tmp/teste.dbf' size 100M
    AUTOEXTEND ON NEXT 1G MAXSIZE UNLIMITED
    extent management local -- Locally managed
    segment space management auto -- ASSM
    ;

    -- movendo AUD$ para tablespace AUSYS
    BEGIN
    DBMS_AUDIT_MGMT.set_audit_trail_location(
    audit_trail_type => DBMS_AUDIT_MGMT.AUDIT_TRAIL_AUD_STD,
    audit_trail_location_value => 'AUDSYS');
    END;
    /

    -- movendo FGA_LOG$ para tablespace AUSYS
    BEGIN
    DBMS_AUDIT_MGMT.set_audit_trail_location(
    audit_trail_type => DBMS_AUDIT_MGMT.AUDIT_TRAIL_FGA_STD,
    audit_trail_location_value => 'AUDSYS');
    END;
    /

    -- limpando registros de auditoria obsoletos,
    BEGIN
    DBMS_AUDIT_MGMT.init_cleanup(
    audit_trail_type => DBMS_AUDIT_MGMT.AUDIT_TRAIL_ALL,
    default_cleanup_interval => 262800 /* 1 ano em horas */);
    END;
    /

    []s

    Fábio Prado
    http://www.fabioprado.net