Pular para o conteúdo
  • Este tópico contém 32 respostas, 7 vozes e foi atualizado pela última vez 16 anos atrás por Rodrigo Almeida.
Visualizando 15 posts - 1 até 15 (de 33 do total)
  • Autor
    Posts
  • #85556
    Marcio68Almeida
    Participante

      Quando 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 ???

      #85559
      David Siqueira
      Participante

        Marcião,tu já tentou ver se acha esse indice nas visões de INDEX PARTITION????
        Abcs.

        David

        #85561
        Marcio68Almeida
        Participante

          Bom…

          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_A

          Alguma dica ?

          #85563
          Avatar photoRegis Araujo
          Participante

            Bom 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..

            #85564
            Rodrigo Almeida
            Participante

              Marcio,

              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 Almeida

              #85570
              Marcio68Almeida
              Participante

                Veja 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

                #85571
                David Siqueira
                Participante

                  Esse 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.
                  David

                  #85572
                  Rodrigo Almeida
                  Participante

                    Marcio,

                    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

                    #85574
                    Rodrigo Almeida
                    Participante

                      Marcio,

                      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

                      #85575
                      Rodrigo 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 Almeida

                        #85581
                        Marcio68Almeida
                        Participante

                          1) 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 é 9i

                          #85583
                          vieri
                          Participante

                            sinistro…

                            tente compactar, só pra ver o erro que dá?

                            alter index “OWNER”.”INDEX_NAME” shrink space ;

                            #85586
                            Marcio68Almeida
                            Participante

                              Para 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

                              #85589
                              David Siqueira
                              Participante

                                Marciã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

                                #85591
                                Marcio68Almeida
                                Participante

                                  Drbs, 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…

                                Visualizando 15 posts - 1 até 15 (de 33 do total)
                                • Você deve fazer login para responder a este tópico.
                                plugins premium WordPress