Pular para o conteúdo
  • Este tópico contém 7 respostas, 3 vozes e foi atualizado pela última vez 14 anos, 9 meses atrás por CleitonHanzen.
Visualizando 8 posts - 1 até 8 (de 8 do total)
  • Autor
    Posts
  • #99514
    Thiago Vilhena
    Participante

      Pessoal, já aconteceu com alguém, no oracle 11R2 voce executa alguma coisa pesada por exemplo:

      -fazer um add constraint em uma tabela com 802,734,667 de registros que ocupa quase 200gb.

      Logico que a constraint vai demorar pra criar. Mas o problema não é só a criação dela. Mas todo processo pesado depois de um certo tempo ele sai. a SESSAO fica boba la.

      O resource_limit ta ‘FALSE’

      to futucando por aqui ve se acho algo….

      #99515
      CleitonHanzen
      Participante

        Opá…

        Não entendi o que vc quis dizer com “fica boba”….rsrsrs

        Mas, vamos lá:

        • Daonde vc está executando o comando de criação da constraint (servidor ou de uma estação)??
        • Qual o evento de espera da sessão quando você percebe esse tipo de situação?
        • No 11g tem um parâmetro que “permite” que um comando DDL fique “aguardando” a liberação do lock. Qual o valor desse parâmetro (ddl_lock_timeout)??

        abs.

        #99518
        Thiago Vilhena
        Participante

          [quote=”CleitonHanzen”:h3b1lxz1]Opá…

          Não entendi o que vc quis dizer com “fica boba”….rsrsrs

          Mas, vamos lá:

          • Daonde vc está executando o comando de criação da constraint (servidor ou de uma estação)??
          • Qual o evento de espera da sessão quando você percebe esse tipo de situação?
          • No 11g tem um parâmetro que “permite” que um comando DDL fique “aguardando” a liberação do lock. Qual o valor desse parâmetro (ddl_lock_timeout)??

          abs.[/quote]

          Eu falei “boba” no sentido de parece que o servidor termina a transação, mas na sessao ainda ta como se fosse presa ela nao me libera a proxima linha de comando parece que está executando. no entando se eu me logar por alguma ferramenta gráfica ou acompanhar os processos ativos e inativos. nao vejo a sessao lá, como se o oracle do nada desse um kill na sessao, mas a sessao fica ali tentando connectar novamente.

          • Daonde vc está executando o comando de criação da constraint (servidor ou de uma estação)??

          Estação, mas pedi pra executarem no servidor e da o mesmo problema

          • Qual o evento de espera da sessão quando você percebe esse tipo de situação?

          eu deixo a sessao executanto, abro outra sessao e fico acompanhando os processos ativos e inativos, depois de um certo tempo de acompanhamento vejo q o processo “teoricamente terminou” mas a sessao que pus pra criar a constraint ainda continua “presa” parece que perde a comunicação mas nao me retorna nenhum tipo de mensagem.

          • No 11g tem um parâmetro que “permite” que um comando DDL fique “aguardando” a liberação do lock. Qual o valor desse parâmetro (ddl_lock_timeout)??
            Po de cabeça nao sei vou dar uma olhada e ponho aqui
          #99519
          CleitonHanzen
          Participante

            Opá….

            Acho que se você identificar a sessão e depois identificar o evento que a sessão está, aumenta bastante a chance de vc encontrar o problema…. 😉

            #99521
            felipeg
            Participante

              [quote=”CleitonHanzen”:1gwzn2qy]Opá….

              Acho que se você identificar a sessão e depois identificar o evento que a sessão está, aumenta bastante a chance de vc encontrar o problema…. 😉 [/quote]

              Pessoal, boa tarde.

              Desculpem a intromissão mas não seria melhor gerar um trace dessa sessão e verificar o que ela está fazendo depois de um tempo sem resposta?

              Com outras sessões demoradas isso também acontece ou é apenas nesta tarefa?

              Atenciosamente,
              Felipe.

              #99524
              Thiago Vilhena
              Participante

                [quote=”CleitonHanzen”:2yihb4k3]Opá…

                Não entendi o que vc quis dizer com “fica boba”….rsrsrs

                Mas, vamos lá:

                • Daonde vc está executando o comando de criação da constraint (servidor ou de uma estação)??
                • Qual o evento de espera da sessão quando você percebe esse tipo de situação?
                • No 11g tem um parâmetro que “permite” que um comando DDL fique “aguardando” a liberação do lock. Qual o valor desse parâmetro (ddl_lock_timeout)??

                abs.[/quote]

                • No 11g tem um parâmetro que “permite” que um comando DDL fique “aguardando” a liberação do lock. Qual o valor desse parâmetro (ddl_lock_timeout)??

                ddl_lock_timeout integer 0

                #99525
                CleitonHanzen
                Participante

                  [quote=”felipeg”:2t90xmeh]
                  Pessoal, boa tarde.

                  Desculpem a intromissão mas não seria melhor gerar um trace dessa sessão e verificar o que ela está fazendo depois de um tempo sem resposta?
                  [/quote]

                  Fala Felipe, blz?

                  Mas o que o trace “mostraria” que não pode ser obtido “online” consultando a v$session_wait???
                  Sem contar que, dependendo o nível especificado do trace, o arquivo vai ficar gigantesco… 😉

                  #99526
                  CleitonHanzen
                  Participante

                    [quote=”Thiago_est”:3lx5leb5][quote=”CleitonHanzen”:3lx5leb5]Opá…

                    Não entendi o que vc quis dizer com “fica boba”….rsrsrs

                    Mas, vamos lá:

                    • Daonde vc está executando o comando de criação da constraint (servidor ou de uma estação)??
                    • Qual o evento de espera da sessão quando você percebe esse tipo de situação?
                    • No 11g tem um parâmetro que “permite” que um comando DDL fique “aguardando” a liberação do lock. Qual o valor desse parâmetro (ddl_lock_timeout)??

                    abs.[/quote]

                    • No 11g tem um parâmetro que “permite” que um comando DDL fique “aguardando” a liberação do lock. Qual o valor desse parâmetro (ddl_lock_timeout)??

                    ddl_lock_timeout integer 0[/quote]

                    Opá…

                    É cara, acho que o melhor a fazer é :

                    • Voçê mesmo conectar no servidor e executar o comando diretamente no sqlplus (via conexão local, sem passar pelo listener)
                    • Se ainda assim a sessão “travar”, identifique a sessão e veja qual o evento de espera. De duas, uma: ou a tabela e o volume de dados é tão grande que o comando vai demorar horas/dias para executar ou tá dando checkpoint not complete e o processo tá se arrastando mais ainda.

                    Aproveitando a deixa do checkpoint not complete, no alert.log vc não identificou nada de estranho??

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