Dica: Descobrir objetos inválidos no Oracle

1 Comentário

Select simples para descobrir objetos inválidos em um banco de dados Oracle:

SELECT owner, object_type, object_name, status
  FROM dba_objects
 WHERE status != 'VALID'
   AND upper(owner) = 'SEU_OWNER_EM_MAIUSCULO'
 ORDER BY owner, object_type, object_name;

Caso queira saber os objetos lockados, veja este post.

Anúncios

Dica: Descobrir a(s) tablespace(s) alocada(s) para um banco Oracle

1 Comentário

O select abaixo permite descobrir quais as tablespaces que estão relacionadas a um owner no oracle:

SELECT DISTINCT
       T.OWNER,
       T.TABLESPACE_NAME,
       TS.STATUS,
       DF.FILE_NAME,
       DF.BYTES,
       DF.STATUS
  FROM DBA_TABLES T
 INNER JOIN DBA_TABLESPACES TS
    ON TS.TABLESPACE_NAME = T.TABLESPACE_NAME
 INNER JOIN DBA_DATA_FILES DF
    ON DF.TABLESPACE_NAME = TS.TABLESPACE_NAME
 WHERE T.TABLESPACE_NAME IS NOT NULL
   AND UPPER(T.OWNER) = 'SEU_OWNER'
 ORDER BY T.OWNER

Dica: resolver erro ORA-12638: Falha na recuperação de credencial

30 comentários

Ao tentar instalar o ORACLE 10g em um notebook com Windows 8, recebi o seguinte erro durante a instalação:

ORA-12638: Falha na recuperação de credencial

Em uma breve procura pelo Google, encontrei uma solução que no meu caso deu certo! Veja:

Alterar no arquivo sqlnet.ora o parâmetro “SQLNET.AUTHENTICATION_SERVICES= (NTS)” para “SQLNET.AUTHENTICATION_SERVICES= (NONE)”

O caminho deste arquivo depente da instalação do oracle, e no meu caso está no seguinte:

E:\oracle\product\10.2.0\db_1\network\ADMIN

O importante é saber que geralmente fica dentro da pasta “NETWORK\ADMIN”.

É isso! Valeu!

Fonte: http://adamainformatica.blogspot.com.br/2009/11/ora-12638.html

Dica: Descobrir objetos lockados no Oracle

1 Comentário

Select para descobrir os objetos lockados no Oracle

SELECT c.owner,
       c.object_name,
       c.object_type,
       b.SID,
       b.serial#,
       b.status,
       b.osuser,
       b.machine
  FROM v$locked_object a, v$session b, dba_objects c
 WHERE b.SID = a.session_id
   AND a.object_id = c.object_id
   AND upper(c.owner) = 'SEU_OWNER_EM_MAIUSCULO'
 ORDER BY c.owner, c.object_name;

Post recomendado: Exportanto tabelas vazias no Oracle 11 através do ‘exp’

1 Comentário

Já precisei deste conteúdo várias vezes, então não custa nada recomendar o post:

EXPORTANDO TABELAS VAZIAS COM O EXP NO ORACLE 11

No Oracle 11 tem um parâmetro (deferred_segment_creation) que indica ao SGBD para não alocar segmentos no banco de dados enquanto uma tabela está vazia. A configuração padrão de instalação é ativo (TRUE).
Desta forma, quem utiliza o utilitário “exp” para exportar as informações do banco de dados, observa que todas as tabelas vazias não são geradas no arquivo de exportação, e em alguns casos isto é um problema.
Para resolver esta situação existem algumas procedimentos que podem ser feitos. O primeiro é trocar a exportação do “exp” pelo utilitário “expdp”.
Outra forma é desativar esta opção através dos comandos ALTER SESSION e ALTER SYSTEM, deixando este parâmetro com o valor FALSE.

ALTER SYSTEM SET deferred_segment_creation=FALSE;

Entretanto, esta segunda opção somente irá valer para as tabelas criadas após a execução do comando.
Para resolver esta situação nas tabelas já criadas e vazias podemos utilizar a seguinte instrução:

ALTER TABLE nome_da_tabela ALLOCATE EXTENT;

Fonte: SQL Brasil

A minha dica vai para o caso de você querer realizar o ALTER TABLE em todas as tabelas do seu OWNER. Para isso, basta executar o select abaixo, copiar o resultado completo e executar:

SELECT 'ALTER TABLE ' || TABLE_NAME || ' ALLOCATE EXTENT;'
  FROM DBA_TABLES
 WHERE UPPER(OWNER) = 'SEU_OWNER'
 ORDER BY TABLE_NAME

O resultado deverá ser algo deste tipo:

Dica: Descobrir CONSTRAINTS desabilitadas no Oracle

Deixe um comentário

Select para descobrir os objetos desabilitados no Oracle

SELECT CONS.INDEX_NAME,
       CONS.CONSTRAINT_NAME,
       CONS.CONSTRAINT_TYPE,
       COLS.TABLE_NAME,
       COLS.COLUMN_NAME,
       COLS.POSITION,
       CONS.STATUS,
       CONS.OWNER
  FROM ALL_CONSTRAINTS CONS
 INNER JOIN ALL_CONS_COLUMNS COLS
    ON CONS.CONSTRAINT_NAME = COLS.CONSTRAINT_NAME
   AND CONS.OWNER = COLS.OWNER
 WHERE UPPER(CONS.STATUS) != 'ENABLED'
   AND UPPER(CONS.OWNER) = 'SEU_OWNER'
   -- A LINHA ACIMA PODE SER ELIMINADA PARA
   -- QUE TODOS OS OBJETOS INVÁLIDOS SEJAM
   -- LISTADOS, INDEPENDENTE DO OWNER
  ORDER BY COLS.TABLE_NAME, COLS.POSITION;

Dica: Descobrir objetos inválidos no Oracle

Deixe um comentário

Select para descobrir os objetos inválidos no Oracle

select owner "Owner",
       object_name "Objeto",
       status "Estado"
  from dba_objects
 where lower(status) != 'valid'
   and lower(owner) = '{nome_do_owner}'
   -- a linha acima pode ser eliminada para
   -- que todos os objetos inválidos sejam
   -- listados, independente do owner
 order by owner, object_name;

 

Older Entries