UNDOTBS Tablespace é completa e agora?
Pergunta
Eu estive carga testar um aplicativo e quando eu entrei no console empresa notei que o meu espaço de tabela UNDOTBS
está cheio.
Eu sei que o espaço de tabela UNDOTBS
é usado para manter uma cópia dos dados que existe antes de uma transação iniciada. Eu pensei que esses dados seria transitória e expirar uma vez por concluída transação / rolos de volta?
Do I simplesmente excluir o espaço de tabela, expandi-lo, ou se existe uma maneira de purgar-lo?
UPDATE: O db teve nenhuma atividade durante a noite. Alguém pode explicar por que a Oracle ainda precisa esses dados?
Solução
Deixe-o. É assim que deveria ser. Oracle vai gerenciar e re usar-lo como necessário.
Response to update:
The UNDOTBS não se comporta como outros espaços de tabela ... os dados são deixados lá e marcado como não utilizado quando já não é necessário em vez de ser explicitamente excluída.
Você geralmente não precisa se preocupar com isso, a menos que você está fazendo DML bastante considerável e começar a receber erros, momento em que você pode olhar para aumentar o tamanho UNDOTBS, baixando o seu desfazer retenção etc.
Outras dicas
Além do que cagcowboy já postou, se o undo é constantemente cheia e você está recebendo erros. Certifique-se de que o seu desfazer é o tamanho corretamente e que a retenção de undo é fixado em um valor que é apropriado para o tamanho. Se a retenção de undo está situado no alto, você vai precisar de mais espaço alocado para desfazer a reter informações para o limite de tempo especificado na retenção de undo. Apenas transação fora idade com base na retenção de undo será limpo e excluídos.
Tenha um olhar em seu período de retenção de undo - certifique-se ele não é muito grande, oracle otyherwise vai apenas manter buffer de dados até que o espaço de tabela enche. Um período adequado vai depender do seu aplicativo