Tratando o erro “Argument list too long” ao tentar limpar logs de determinado diretório

Limpeza de logs antigos e arquivos desnecessários é uma tarefa simples e recorrente para qualquer DBA Oracle.

Um simples comando rm -rf *.trc ou rm -rf *.trm limpa os arquivos antigos dos diretórios de logs do Oracle Database.

É comum acessar essa estrutura de pasta /u01/app/oracle/diag/rdbms/vs05/vs05/trace e se deparar com GBs e mais GBs de dados de trace, logs e afins.

Continue lendo

Corrigindo o warning PL/SQL package RMAN.DBMS_BA version 12.02.00.01.0 in RCVCAT database is too old

Ao logar em um catálogo do RMAN para registrar um novo banco de dados no catálogo, a seguinte mensagem é retornada:
[code lang=”sql”]
PL/SQL package RMAN.DBMS_BA version 12.02.00.01.0 in RCVCAT database is too old
[/code]

A correção é simples, basta fazer o upgrade do catálogo em 2 passos:

[code lang=”sql”]
RMAN> upgrade catalog;
recovery catalog owner is RMAN
enter UPGRADE CATALOG command again to confirm catalog upgrade
[/code]

E incluir o mesmo comando novamente para confirmar o upgrade:
[code lang=”sql”]
RMAN> UPGRADE CATALOG;

recovery catalog upgraded to version 12.02.00.01
DBMS_RCVMAN package upgraded to version 12.02.00.01
DBMS_RCVCAT package upgraded to version 12.02.00.01.

RMAN>
[/code]

Após fazer o upgrade, basta continuar a operação:
[code lang=”sql”]
[oracle@serverprod ~]$ rman target / catalog rman@anvsrepository
Recovery Manager: Release 12.2.0.1.0 – Production on Thu Apr 18 16:11:25 2019
Copyright (c) 1982, 2017, Oracle and/or its affiliates. All rights reserved.
connected to target database: PROD (DBID=197120132014)
recovery catalog database Password:
connected to recovery catalog database

RMAN> register database;

database registered in recovery catalog
starting full resync of recovery catalog
full resync complete
[/code]

Configurar o serviço de MultiPath para servidores Oracle

Olá pessoal,
no post de hoje vamos falar sobre MULTIPATH! O Multipath nada mais é do que um simples recurso para implementar múltiplos caminhos para a LUN. Essa LUN é apresentada ao servidor através das controladoras do storage. Alguns recursos interessantes são possíveis através do multipath, tais como:

  • balanceamento de carga: um dos caminhos somente envia dados e outro só recebe
  • round robin
  • alta disponibilidade: stand by ou ativo ativo

Continue lendo

Corrigindo o erro ORA-22297: warning: Open LOBs exist at transaction commit time

O erro ORA-22297: warning: Open LOBs exist at transaction commit time ocorre quando o usuário faz alguma manipulações colunas do tipo CLOB ou BLOB e por algum motivo não fechou o LOB conforme deveria antes de fazer o commit.

Abaixo segue um exemplo simples que poderia ter evitado o problema:

[code lang="sql"]
DBMS_LOB.CLOSE(myFile);
DBMS_LOB.CLOSE(myBlob);
COMMIT;

Para solucionar o problema precisei fazer um rebuild no CLOB e na PK da tabela em questão. O primeiro passo foi listar os índices da tabela:

[code lang="SQL"]
desc DBUSER.TB_CLOB
select * from dba_indexes where table_name = 'TB_CLOB' and owner='DBCLOB';

Após verificar os índices, fiz o move no CLOB e o rebuild na PK:

[code lang="sql"]
ALTER TABLE DBUSER.TB_CLOB MOVE LOB (CLOB_ARQUIVO) STORE AS (TABLESPACE TD_USER);
alter index DBUSER.PK_CLOB rebuild;

Após realizar esse procedimento conseguimos executar o processo sem retornar o erro:

ORA-22297: warning: Open LOBs exist at transaction commit time

Em alguns blogs e sites de referência, a maioria das pessoas disseram que essa mensagem é apenas informativa, porém só consegui rodar o processo após o reubild no CLOB e na PK da tabela.

Fica a dica.

Carregar mais