- Este tópico contém 32 respostas, 7 vozes e foi atualizado pela última vez 16 anos atrás por
Rodrigo Almeida.
-
AutorPosts
-
4 de março de 2009 às 3:48 pm #85556
Marcio68Almeida
ParticipanteQuando dou o seguinte comando :
drop index inter_admin.idx_tb7_id_a force;
Ocorre o seguinte erro :
The following error has occurred:
ORA-00604: error occurred at recursive SQL level 1
ORA-01426: numeric overflow
O interessante é que o índice aparece no DBA_OBJECTS e não aparece no DBA_INDEXES;Alguma dica ???
4 de março de 2009 às 3:53 pm #85559David Siqueira
ParticipanteMarcião,tu já tentou ver se acha esse indice nas visões de INDEX PARTITION????
Abcs.David
4 de março de 2009 às 4:11 pm #85561Marcio68Almeida
ParticipanteBom…
Pelo que me foi informado é o seguinte…
Existia uma tabela A com o índice IDX_A
Aparentemente houve alguma corrupção de dados na tabela A e o infeliz não nos avisou, apenas renomeou para tabela B, então o IDX_A está apontando sabe-se lá para onde, a tabela B continua corrompida (claro, como se mudar o nome resolvesse alguma coisa), não pode ser removida também…
Não é possível remover a tabela B nem o índice IDX_AAlguma dica ?
4 de março de 2009 às 4:24 pm #85563Regis Araujo
ParticipanteBom dia…
Só uma dúvida..
Via console do Entrerprise Manager não consegue deletar também?
Uma vez (algumas) aqui na empresa foi realizado um pump de um arquivo dbf para o oracle.. e infelizmente uma tabela foi criada com um “espaço” em branco antes do nome e tbm criou um indice.. não consegui deletar nem a tabela nem o indice..
Em um dos casos consegui deletar colocando ” ” (aspas duplas) no nome da tabela e do index…
drop table “TB_CADASTRO”;
drop index “ID_TB_CADASTRO”;e funcionou.. Mas outra vez não funcionou.. e somente via Console do Enterprise Manager que consegui deletar a tabela…
Abraços..
4 de março de 2009 às 4:26 pm #85564Rodrigo Almeida
ParticipanteMarcio,
Poste o resultado do select abaixo:
SQL> select owner, object_name, object_type, status
2 from dba_objects
3 where object_name = ‘NOME_INDEX’;SQL> select owner, segment_name, segment_type, tablespace_name, bytes/1024/1024
2 from dba_segments
3 where segment_name = ‘NOME_INDEX’;SQL> select owner, index_name, index_type, table_owner, table_name, table_type, partitioned
2 from dba_indexes
3 where index_name = ‘NOME_INDEX’;Para ver o que podemos fazer.
Abraços,
Rodrigo Almeida4 de março de 2009 às 5:25 pm #85570Marcio68Almeida
ParticipanteVeja só que obscuro…
SQL> select owner, object_name, object_type, status
2 from dba_objects
3 where object_name = 'IDX_TB7_ID_A';OWNER OBJECT_NAME
------------------ -------------------------
INTER_ADMIN IDX_TB7_ID_A
SQL> select owner, segment_name, segment_type, tablespace_name, bytes/1024/1024
2 from dba_segments
3 where segment_name = 'IDX_TB7_ID_A';não há linhas selecionadas
SQL> select owner, index_name, index_type, table_owner, table_name, table_type, partitioned
2 from dba_indexes
3 where index_name = 'IDX_TB7_ID_A';não há linhas selecionadas
4 de março de 2009 às 5:34 pm #85571David Siqueira
ParticipanteEsse receio de avisar os DBA’s sempre prejudica mesmo..rss
Mais se ele apenas renomeou a tabela e não a dropou o bloco corrompido ainda está lá, você já fez um check pra ver se ele ainda esta na lista de blocos corrompidos ou se não apresenta nenhuma informação por lá, até porque se for isso via BMR é possivel que você consiga recuperar tanto o bloco da tabela de dados original quando esse indice perdido via REBUILD, claro isso tudo estou falando em 10g e via RMAN.Abcs.
David4 de março de 2009 às 5:41 pm #85572Rodrigo Almeida
ParticipanteMarcio,
Tu consegue saber se esse índice foi criado com a opção NO_SEGMENTS.
Existe uma opção do Oracle de criar índices sem segmentos, que agora virou uma feature do 11g, desde a versão 8i tem isso.
Porém, para removar esses tipos de índices, tem uma cláusula especial para isso. Esse índice foi criado com a opção NO_SEGMENTS ou isso pode ser problema no dicionário ou bg PMON.
Abraços,
Rodrigo Almeida
4 de março de 2009 às 5:45 pm #85574Rodrigo Almeida
ParticipanteMarcio,
Outra coisa importante também, veja se gerou algum trace no BDUMP (para os bgs), no UDUMP ou se tiver crítico CDUMP.
Veja se existe algum trace com o comando de DROP INDEX nome_do_seu_indice para saber se é algum BUG ou inconsistência do oracle Server.
Abraços,
Rodrigo Almeida
4 de março de 2009 às 5:51 pm #85575Rodrigo Almeida
Participante… pouco post, é que problemas estranhos são legais … rs rs.
Marcio,
Seguinte velho, tenta essas alternativas no momento:
1) Verifica se é um índice com a opção NO_SEGMENTS.
2) Verifica se é possível realizar um REBUILD no índice e depois DROP.
3) Tenta passar um ANALYZE INDEX VALIDADE STRUCTURE nele.
4) Verificas o alert.log e se gera algum trace no banco nesses comandos.
5) Verifica se a tabela não é uma IOT.
6) Tenta descobrir qual é o tipo do índice, B*Tree ou Bitmap.
7) Qual é a versão do seu banco de dados?Deste modo, vamos eliminando os possíveis problemas.
Abraços,
Rodrigo Almeida4 de março de 2009 às 6:41 pm #85581Marcio68Almeida
Participante1) Verifica se é um índice com a opção NO_SEGMENTS.
Como saber se ele não aparece no DBA_INDEXES ???
2) Verifica se é possível realizar um REBUILD no índice e depois DROP.
Nada de rebuild…
ORA-00604: error occurred at recursive SQL level 1
ORA-01426: numeric overflow
3) Tenta passar um ANALYZE INDEX VALIDADE STRUCTURE nele.
Nada de analyze… Mesmo erro
4) Verificas o alert.log e se gera algum trace no banco nesses comandos.
Nada no alert.log…
5) Verifica se a tabela não é uma IOT.
Não é uma tabela comum…
6) Tenta descobrir qual é o tipo do índice, B*Tree ou Bitmap.
Aqui o pessoal só tem conhecimento básico, não criam anada que não seja oferecido pelas ferramentas gráficas…
7) Qual é a versão do seu banco de dados?
Esta é a primeira informação que eu deveria ter fornecido… risos…
O banco é 9i4 de março de 2009 às 6:50 pm #85583vieri
Participantesinistro…
tente compactar, só pra ver o erro que dá?
alter index “OWNER”.”INDEX_NAME” shrink space ;
4 de março de 2009 às 6:56 pm #85586Marcio68Almeida
ParticipantePara qual versão de banco é esse comando ???
[quote=”vieri”:2wkj2v5w]alter index “OWNER”.”INDEX_NAME” shrink space ;[/quote]
ORA-02243: invalid ALTER INDEX or ALTER MATERIALIZED VIEW option
4 de março de 2009 às 7:28 pm #85589David Siqueira
ParticipanteMarcião desculpa a insistênia meu velho, mais tenta esses passos por favor :
1-
Alter session set tracefile_identifier='';
2-SELECT object_id
FROM user_objects
WHERE object_type='INDEX'
AND object_name=upper('&index_name');3-
ALTER SESSION SET EVENTS 'IMMEDIATE TRACE NAME TREEDUMP LEVEL &object_id';
Veja se pelo menos gera um Trace após esses passos para que lhe dê uma luz do que ocorre realmente.
Achei isso em um forúm, não sei se é o mesmo caso que o seu mais achei bem pertinente, ai vai o link caso queira olhar.http://www.orafaq.com/forum/t/77359/0/
Abração!!
David
4 de março de 2009 às 7:59 pm #85591Marcio68Almeida
ParticipanteDrbs, se disser que acender velas e dar 3 pulinhos ajuda, estou fazendo… risos…
SQL> Alter session set tracefile_identifier='IDX_TB7_ID_A';
Sessão alterada.
SQL> SELECT object_id
2 FROM dba_objects
3 WHERE object_type='INDEX'
4 AND object_name=upper('IDX_TB7_ID_A');OBJECT_ID
----------
216909
SQL> ALTER SESSION SET EVENTS 'IMMEDIATE TRACE NAME TREEDUMP LEVEL 216909';
ERROR:
ORA-00600: internal error code, arguments: [25012], [15], [0], [], [], [], [], []
No Alert encontrei :
Wed Mar 4 12:48:50 2009
Errors in file /apl/oradese/desedb/9.2.0/admin/bdump/snap_s000_10867.trc:
ORA-00600: internal error code, arguments: [25012], [15], [0], [], [], [], [], []
Olhei o arquivo /apl/oradese/desedb/9.2.0/admin/bdump/snap_s000_10867.trc mas não identifiquei nada (é muito grande para postar… -
AutorPosts
- Você deve fazer login para responder a este tópico.