Pular para o conteúdo
  • Este tópico contém 3 respostas, 4 vozes e foi atualizado pela última vez 12 anos, 2 meses atrás por Rodrigo Almeida.
Visualizando 4 posts - 1 até 4 (de 4 do total)
  • Autor
    Posts
  • #106082
    Luislivelli
    Participante

      Boa tarde pessoal,
      Estava vendo o tamanho dos tablespaces e me depare que o tablespace SYSTEM estaba muito grande tinha 27G de espaço ocupado e revisando as tabelas deste tablespace vi que a tabla SYS.AUD$ (auditoria) tinha 25G, pelo qual realizei um truncate nesta tabela AUD$, então o tablespace SYSTEM diminui de tamanho de espaço utilizado para 950M, então quando quero redimensionar o tablespace SYSTEM, me sale o seguinte erro:
      ALTER DATABASE DATAFILE ‘/u01/home/oracle/oracle/oradata/base01/system01.dbf’
      RESIZE 6144M
      ORA-3297 signalled during: ALTER DATABASE DATAFILE ‘/u01/home/oracle/oracle/orad
      ata/base01/system01.dbf’ RESIZE 6144M …

      Entendo que essa mensagem é pq existe fragmentação de tabelas, sei que para usar o shrink el Gerenciamento do Espaço de Segmentos do tablespace debe estar configurado como automático, mas el tablespace system esta configurado como Gerenciamento do Espaço de Segmentos manual. Por favor alguem poderia indicar-me como posso fazer para redimensionar o tablesace SYSTEM com sucesso?

      Agradeço pelo ajuda!!

      #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

        #106154
        David Siqueira
        Participante

          Luis, tudo bem?

          Primeiro, antes de mais nada, será que não há objetos de outros schemas sendo armazenados na tablespace SYSTEM? Você usa controle de QUOTAS para os schemas criados em seu banco de dados.

          Faça uma consulta para ver quais objetos estão armazenados na sua Tablespace SYSTEM primeiro.

          Abraço

          #106213
          Rodrigo Almeida
          Participante

            Já que você deu o truncate da AUD$, agora é baixar a Marca D´àgua do datafile SYSTEM para liberar o espaço…

            Abraços,
            Rodrigo Almeida

          Visualizando 4 posts - 1 até 4 (de 4 do total)
          • Você deve fazer login para responder a este tópico.