Pular para o conteúdo

Como Usar Resumable Space no Oracle para Gerenciar Grandes Cargas de Dados e Evitar Erros de Tablespace

Utilizando Resumable Space

Olá, hoje iremos falar um pouco sobre um recurso do Oracle muito interessante para rotina de inserção dos dados. Resumable Space. O que fazer quando você tem que rodar uma grande carga DML e não correr o risco de perder tudo com o estouro de Tablespace?

Uma solução seria utilizar Resumable Space, que ao rodar um DML (Insert) com inserção de milhões de registros caso venha estourar a Tablespace, não ocorrerá problema de alocação de espaço(Tablespace). Com isso não finalizará sua sessão ocorrendo rollback, apenas irá travar em segundos esperando uma  ação do DBA.

Podemos ativar Resumable Space de duas formas:

1-Por Parametro do Banco resumable_timeout:

SQL
SQL> Alter system set resumable_timeout=900 scope=both;

2- Por Sessão inserindo o seguinte commando:

Para utilizar o commando abaixo é necessário privilégio RESUMABLE:

SQL
SQL> GRANT RESUMABLE TO NOME_DO_USUARIO;
SQL> Alter session enable resumable timeout 900;

Quando o usuario inserir o commando o DBA deve ficar atento monitorando com SQL e Enterprise Manager pois caso trave a rotina por estouro de Tablespace será necessário extender um datafile.Para monitoramento via SQL temos a seguinte view:

SQL
SQL> SELECT name, SQL_TEXT, STATUS, TIMEOUT FROM dba_resumable;

Poderá visualizar o problema de Alocação de Espaço em Tablespace utilizando RESUMABLE SPACE no arquivo ALERTLOG.

Exemplo:

SQL
statement in resumable session User HR(62), Session 131, Instance 1 was suspended due to
ORA-01653: não é possível estender a tabela HR.T_TESTE em 1024 no tablespace USERS.

Abraço

Bruno Murassaki

Bruno Murassaki

Bruno Murassaki

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

plugins premium WordPress