Pular para o conteúdo
  • Este tópico contém 1 resposta, 2 vozes e foi atualizado pela última vez 11 anos, 5 meses atrás por Avatar de Fábio PradoFábio Prado.
Visualizando 2 posts - 1 até 2 (de 2 do total)
  • Autor
    Posts
  • #105505
    Avatar de Gustavo Geovanne Duia VieiraGustavo Geovanne Duia Vieira
    Participante

      Bom dia!

      Fiz a exclusão de dois schemas no meu banco de dados, porém não liberou espaço no disco do servidor. Os dois schemas somados totalizam 14GB, fiz a exclusão através do comando DROP usando o TOAD 8.6.

      Também já verifiquei o RECYCLEBIN, fazendo a limpeza do diretório porém mesmo assim o espaço no meu disco continua como se os dois schemas continuassem no meu banco de dados.

      Alguém ai já viu um problema parecido?

      #105506
      Avatar de Fábio PradoFábio Prado
      Participante

        gustvogdv,

        Isso não é problema. Vc apagou um usuário e seus objetos, mas o datafile não sofre redimensionamento automático para diminuir e liberar o espaço destes objetos.

        Sugiro que vc estude antes o que são tablespaces e sua relação com os datafiles (no blog do Eduardo Legatti que tbém é articulista do GPO vc encontrará bons artigos sobre tablespaces), depois descubra se o seu usuário usava um tablespace só dele, se sim, vc conseguirá fazer um resize executando o script abaixo (conectado com usuário c/ privs. de DBA) que eu utilizo normalmente para redimensionar o(s) datafile(s) do tablespace desejado. Se o tablespace era compartilhado com outros usuários, provavelmente vc não conseguirá reduzir muito o tamanho do(s) datafile(s). O porquê envolve muitos conceitos, que não dá para eu explicar aqui agora…

        set serveroutput on
        declare
        v_txtCmd VARCHAR2(4000);
        BEGIN
        dbms_output.enable(null);

        FOR CUR IN (SELECT FILE_NAME,
        ceil( (nvl(hwm,1)t.block_size)/1024/1024 ) smallest,
        ceil( blocks
        t.block_size/1024/1024) currsize,
        ceil( blockst.block_size/1024/1024) –
        ceil( (nvl(hwm,1)
        t.block_size)/1024/1024 ) savings
        FROM DBA_DATA_FILES A
        INNER JOIN DBA_TABLESPACES T
        on T.TABLESPACE_NAME = a.TABLESPACE_NAME
        left join ( select file_id,
        max(block_id+blocks-1) hwm
        from dba_extents
        group by file_id ) b
        ON A.FILE_ID = B.FILE_ID
        WHERE a.TABLESPACE_NAME=’&TABLESPACE_NAME’
        )

        LOOP
        if cur.savings > 0 then
        v_txtCmd:=”;

              select      'alter database datafile '''|| cur.file_name||''' resize ' || cur.smallest || 'm'
              INTO        v_txtCmd
              from        dual;
        
              execute immediate v_txtCmd;
              DBMS_OUTPUT.PUT_LINE(V_TXTCMD);
          ELSE
              DBMS_OUTPUT.PUT_LINE('Não há espaço para reduzir o datafile ' || cur.file_name || ' acima de HWM');
          end if;  
        

        END LOOP;
        END;

        []s

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