Monitor and administer undo data

O undo é gerenciado automaticamente pelo Oracle por padrão sem que exista muita a necessidade de alguma intervenção. Para verificar se o gerenciamento esta automático, e ele tem que estar, é verificar o valor do parâmetro undo_management, ele tem que estar com o valor AUTO.

Os outros parâmetros são:

  • UNDO_TABLESPACE – O tablespace ativo que será utilizado. Podemos ter apenas um por instância.
  • UNDO_RETENTION – Quantidade de segundos em que um undo passará do status unexpired para expired.
  • TEMP_UNDO_ENABLED – Se as operações de DML irão salvar o UNDO na tablespace temporária ao invés da undo tablespace, gerando menos redo.

Esses são todos os parâmetros relativos ao undo, dos quais já discutimos em posts anteriores. Mas, devemos sempre estar atento ao tamanho do undo tablespace, se tem espaço o suficiente para armazenar todo o undo necessário. Se não tiver, podemos encarar alguns erros bem críticos, como o ORA-30036 – unable to extend segment in undo tablespace, em que não existe mais espaço livre para completar uma operação de DML. Ou por falta de espaço também podemos ter o erro ORA-1555 snapshot too old, pois o undo necessário para completar o SELECT já foi sobrescrito.

Então, devemos ter espaço o suficiente, principalmente para que as nossas transações possam completar e depois para que as nossas querys não falhem por não ter mais disponível o undo. Para calcular o espaço necessário para o undo utilizando as métricas atuais do sistema, podemos usar as informações da view v$undostat e também o undo advisor vistos nos posts: https://oraclepress.wordpress.com/2019/07/15/changing-an-undo-tablespace-to-a-fixed-size/ e https://oraclepress.wordpress.com/2019/07/12/undo-retention/ .

Para verificar todos os undo extents, seus tamanhos e os status, pode verificar na view DBA_UNDO_EXTENTS. Os segmentos fica na view dba_rollback_segs. E a view v$transaction tem mais algumas informações do undo de cada transação.

Para criar um undo tablespace é bem simples:

CREATE UNDO TABLESPACE undotbs_02
     DATAFILE '/u01/oracle/rbdb1/undo0201.dbf' SIZE 2M REUSE AUTOEXTEND ON;

Podemos adicionar mais datafiles.

ALTER TABLESPACE undotbs_01
     ADD DATAFILE '/u01/oracle/rbdb1/undo0102.dbf' AUTOEXTEND ON NEXT 1M 
         MAXSIZE UNLIMITED;

E até mesmo dropar, desde que não esteja ativo.

DROP TABLESPACE undotbs_01;

Como já foi dito, só podemos ter um único undo tablespace ativo. Você pode criar um novo tablespace e então fazer com que ele seja o ativo com o seguinte comando:

ALTER SYSTEM SET UNDO_TABLESPACE = undotbs_02;

Após isso, as novas transações começam a utilizar o novo undo tablespace. As transações que estavam em andamento elas continuam utilizando os segmentos que estão no antigo tablespace, e assim o tablespace fica com o status PENDING OFFLINE. Depois que todas as transações finalizarem, o antigo tablespace ficará offline, podendo ser dropado.

Meu nome é Tércio Costa, sou formado em Ciências da Computação pela UFPB, tenho a certificação OCA 12c, Oracle SQL Expert e OCP PL/SQL, mantendo um blog reconhecido pela OTN(oraclepress.wordpress.com), no qual também publico artigos técnicos no portal OTN, no portal http://www.profissionaloracle.com.br/gpo e na revista SQL Magazine. Além de tudo isto sou um Oracle ACE por estar sempre contribuindo para a comunidade com um bom nível de expertise.

Marcado com: , , ,
Publicado em Administração, Undo

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google

Você está comentando utilizando sua conta Google. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s

Este site utiliza o Akismet para reduzir spam. Saiba como seus dados em comentários são processados.

Esse Blog é reconhecido pela
Sou um
Certificações
Sou articulista

Clique para seguir este blog e receber notificações via email de novos posts.

Tércio Costa

Tércio Costa

Meu nome é Tércio Costa, sou formado em Ciências da Computação pela UFPB, tenho a certificação OCA 12c, Oracle SQL Expert e OCP PL/SQL, mantendo um blog reconhecido pela OTN(oraclepress.wordpress.com), no qual também publico artigos técnicos no portal OTN, no portal http://www.profissionaloracle.com.br/gpo e na revista SQL Magazine. Além de tudo isto sou um Oracle ACE por estar sempre contribuindo para a comunidade com um bom nível de expertise.

Links Pessoais

Serviços verificados

Visualizar Perfil Completo →

Total de Visualizações da Página
  • 166.540 Visualizações
%d blogueiros gostam disto: