Pular para o conteúdo
Viewing 5 posts - 1 through 5 (of 5 total)
  • Author
    Posts
  • #107514
    Avatar de ericclauberericclauber
    Participant

      Bom dia a todos! Agradeço ajuda desde já.

      Em um banco de dados Oracle 11g. Reparei que TS_SYSTEM, estava crescendo muito, com o datafile system01.dbf chegando a 17gb. Assim procurei que objetos estavam tomando tanto espaço, e vi que era a tabela de auditoria ‘AUD$’.

      Neste caso também reparei que a era mais create session(com muita quebra de conexao que tem que ser resolvido… rs).

      LIMPEI a tabela com ‘truncate table table_name drop storage’. A tabela foi limpa o datafile diminuiu de 17gb para 800m. Mas quando tento redimensionar a TABLESPACE, nao permite por causa dos dados fragmentados.

      TENTEI REORGANIZAR —
      alter table AUD$ disable row movement;
      alter table AUD$ shrink space compact;
      alter table AUD$ shrink space;
      >>> SENDO QUE SO FUNCIONA COM TABLESPACE COM ASSM.

      Também tentei, ‘reorganizar tabela’uma opçao do ‘Enterprise Manager’, mas nao permite as tabela pertencente ao dícionário de dados.

      ALGUMA SOLUÇÃO??? ESTOU COM 16GB DE ESPAÇO INUTILIZÁVEL E PRECISANDO.

      GRATO!!!

      #107515
      Avatar de C-S-RC-S-R
      Participant

        @ericclauber,

        Sempre que tenho problemas com redimensionamento de tbs eu movo os objetos para uma outra tbs, do o resize e volto os objetos. No seu caso como se trata da system não sei se vai funcionar.

        O shrink geralmente eu uso para liberar espaço após delete de muitos registros. Mas nunca consegui ter muito ganho para o resize.

        Espero ter ajudado.

        #107518
        Avatar de rmanrman
        Participant

          @ericclauber

          O TRUNCATE já baixa a marca d’agua da tabela desta forma os EXTENDS são desalocados liberando espaço, logo não é necessário utilizar o SHRINK.

          Só um parênteses não é permitido realizar SHRINK em objetos da TABLESPACE SYSTEM, você teria que mover o objeto para outra TABLESPACE.

          Voltando ao assunto, utilize ALTER TABLE … MOVE para trazer a TABLE para o inicio do TABLESPACE, desta forma será possível fazer o RESIZE. Identifique através do Enterprise Manager qual é o objeto que está o fim do TABLESPACE, veja o conteúdo do TABLESPACE, existe um mapa de blocos.

          Para falar a verdade eu também estou nessa situação, a TABLE AUD$ cresceu bastante, mas ainda não fiz nada, estou estudando melhor o caso.

          Me diz por que você utilizou a opção DROP STORAGE do TRUNCATE TABLE? O que ele faz em especifico?

          #107519
          Avatar de ericclauberericclauber
          Participant

            Ja tentei o alter table… move e nao deu certo. vou verificar a questao do Mapa de blocos.

            o DROP STORAGE, é default, nao precisava ter usado, onde libera o espaço para outros objetos. Pois a clausula, REUSE STORAGE, permite somente o reuso do espaço pelo mesmo objeto(insert/update). http://docs.oracle.com/cd/E11882_01/server.112/e41084/statements_10007.htm#SQLRF01707

            #107562
            Avatar de Fábio PradoFábio Prado
            Participant

              @EricClauber,

              O ideal, além de fazer um limpeza periódica na tabela de auditoria, é movê-la para um tablespace novo, como no exemplo do script abaixo, que demonstro em meus treinamentos Database Performance Tuning:


              -- CRIANDO tablespace AUDSYS
              create tablespace AUDSYS datafile '/tmp/audsys.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 (maximo de 41,6 dias = 999 horas)
              BEGIN
              DBMS_AUDIT_MGMT.init_cleanup(
              audit_trail_type => DBMS_AUDIT_MGMT.AUDIT_TRAIL_ALL,
              default_cleanup_interval => 999 /* 0-999 horas */);
              END;
              /

              []s

            Viewing 5 posts - 1 through 5 (of 5 total)
            • You must be logged in to reply to this topic.
            plugins premium WordPress