- Este tópico contém 1 resposta, 2 vozes e foi atualizado pela última vez 11 anos, 5 meses atrás por Fábio Prado.
-
AutorPosts
-
3 de junho de 2013 às 2:58 pm #105505Gustavo Geovanne Duia VieiraParticipante
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?
3 de junho de 2013 às 7:04 pm #105506Fábio PradoParticipantegustvogdv,
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( blockst.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
-
AutorPosts
- Você deve fazer login para responder a este tópico.