O banco de dados está cheio; qual deve ser a estratégia?

1

E se meu banco de dados estiver cheio e eu não tiver nenhum disco rígido ou espaço de memória sobrando. Qual deve ser minha estratégia para liberar o espaço?

    
por Hennes 14.09.2010 / 10:05

2 respostas

1

"Meu banco de dados está cheio" pode significar coisas muito diferentes no Oracle

1 Cada byte do meu disco rígido é preenchido com dados "úteis".

A compactação / desduplicação de dados / normalização pode ajudar, mas é mais barato comprar mais disco.

2 Eu tenho espaço no arquivo para o espaço de tabela X, mas preciso disso para tabelas no espaço de tabela Y

Se o espaço estiver no final do arquivo, você poderá reduzir o espaço de tabela. Se não é melhor mover as tabelas de Y para X. É muito difícil recuperar espaço no meio de um arquivo de espaço de tabela

3 Eu deletei muitos registros do TABLE A, mas ele não recuperou o espaço no tablespace

ALTER TABLE ... MOVE; vai arrumar tudo, mas você precisará reconstruir os índices depois.

Provavelmente existem outros cenários, por isso vou usar a wiki da comunidade com esta resposta /

    
por 15.09.2010 / 01:48
1

Os registros de transações manterão crescendo indefinidamente até consumirem todo o espaço disponível. É provável que esta seja uma das causas de você ficar sem espaço.

Você pode truncar o Logs de transação para liberar espaço, mas esteja ciente de que isso removerá sua capacidade de restaurar para o ponto no tempo ou reverter as alterações no banco de dados.

Para truncar os logs, execute

BACKUP LOG [DatabaseName] WITH TRUNCATE_ONLY

reduza o arquivo de log para liberar espaço na unidade. Note que assumi o MS SQL.

Você precisará de uma estratégia contínua para impedir que isso aconteça novamente. Dependendo da sua aplicação e nível de laissez-faire, você pode querer:

  • Faça backup dos logs de transação em um servidor ou unidade externa (e reduza o arquivo de log). Esta é a solução recomendada pelo MS que suspeito e preserva coisas legais como restaurar.
  • Ative o registro simples. Isso significa que você perde a funcionalidade de restauração, mas também significa que o seu log do banco de dados não ficará fora de controle como ocorreu neste momento.
por 15.09.2010 / 03:37