Pular para o conteúdo
Visualizando 10 posts - 1 até 10 (de 10 do total)
  • Autor
    Posts
  • #98646
    Anakim
    Participante

      O Oracle 10G limita o número de conexões? Se sim aonde eu posso ver esse limite?

      #98647
      marlontk
      Participante

        Até onde sei todo o banco de dados Oracle possui um limite de conexões(process), o default do Oracle é 150 podendo ser dimensionado na criação da base ou posteriormente.

        sql para ver o limite de conexões

        select name,value from v$parameter where upper(name) like ‘PROCESS%’;
        ou
        show parameter process

        SQL> select name,value from v$parameter where upper(name) like ‘PROCESS%’;

        NAME

        VALUE

        processes
        150

        Segue comando para alterar
        alter system set PROCESSES=numero de conexoes scope=spfile;
        shutdown immediate;
        startup;
        Atenção isso irá fazer com que o banco seja reiniciado.

        #98649
        Peterson
        Participante

          Aqui na empresa mesmo o número de processos default dos bancos era 500 e recentemente tive de aumentar para 800…

          #98652
          Anakim
          Participante

            Rodei o seguinte comando:

            show parameter process;

            E vi que o número de process é 150, como foi falado.

            O bom que o marlontk respondeu o que eu iria perguntar em seguida, mas fiquei com algumas dúvidas:

            1- Tem como aumentar o número de porcess só para um usuário ou essa alteração é para toda instância?

            2- Quando eu aumento o número de process eu não preciso alterar outro parâmetro como memória? Pergunto isso porque eu uso muito o postgresql e quando eu preciso aumentar o número de conexão dele eu preciso modificar 3 parâmetros.

            #98654
            hudsona
            Participante

              Galera é preciso prestar atenção também aos parâmetros derivados do process, nesse caso o mais importante é o sessions.

              A Definição do parametro já diz tudo :

              “… SESSIONS specifies the maximum number of sessions that can be created in the system…”

              O parametro sessions geralmente é calculado da seguinte forma :

              SESSIONS= (1.1 * PROCESSES) + 5

              E posteriormente o sessions também tem alguns parâmetros derivados:

              Observe na documentação:
              http://download.oracle.com/docs/cd/B105 … REFRN10197

              E respondendo a primeira pergunta, sim é possivel limitar o numero de sessoes de um usuario, basta alterar o resource_limit da sua instância para true e criar um profile com limit sessions_per_user = (numero que voce precisa)

              E setar esse profile criado para o usuário.

              #98659
              Anakim
              Participante

                Fiz uma busca sobre assunto como sugerido pelo hudsona.

                Pela documentação do oracle quando eu aumento o PROCESS eu tenho que aumentar as SESSIONS e quando eu aumento as SESSIONS eu tenho que aumentar a ENQUEUE_RESOURCES e as TRANSACTIONS.

                No Oracle 10gR2, que é a versão que eu estou usando, o ENQUEUE_RESOURCES ficou obsoleto, conforme pode ser visto no trecho abaixo, retirado da documentação:

                Note that ENQUEUE_RESOURCES is obsolete as of Oracle Database 10g release 2 (10.2).

                Ficaram faltando verificar os seguintes parâmetros SESSION e TRANSACTION.

                Para verificar os mesmos eu usei duas queries, uma foi dada pelo marlontk, que acabaram me gerando uma dúvida, segue a mesma.

                Quando executo a query sugerida pelo marlontk:


                select * from v$parameter where name = 'sessions' or name like '%enqueue_resources%' or name = 'processes' or name = 'transactions';

                Eu obtenho os seguintes valores:

                processes = 150;
                sessions = 170;
                transactions = 187;

                E quando eu executo a seguinte query:

                select * from v$resource_limit;

                Eu obtenho os seguintes valores:

                process = 150;
                sessions = 170;
                transactions = unlimited;

                A dúvida é: qual o limite real de transactions? 187 ou unlimited?

                #98661
                burga
                Participante

                  Só acrescentando, o que vai limitar o número de processos é a memória do servidor… Se você tiver memória disponível, pode ter quantos processos quiser. Com exceção do XE, que se limita somente a 1GB.

                  #98668
                  fsitja
                  Participante

                    Geralmente se o banco está com problema de recursos com excesso de conexões, a aplicação está abrindo conexões acima do que seria necessário. Talvez valha a pena avaliar como a aplicação utiliza as conexões.

                    Por exemplo… no pior caso, ela pode estar abrindo uma conexão por requisição enviada no frontend, e isso não vai ter limite que corrija. Ideal é usar um connection pool aí e otimizar os recursos, o que vai melhorar muito a performance da aplicação.

                    #98677
                    Anakim
                    Participante

                      A aplicação já usa um connection pool, justamente para limitar o número de conexões que a aplicação abre com o banco. Ao meu ver toda aplicação teria que usar um pool de conexão. 😀

                      Em relação a memória da máquina, ela está tranquila tenho 16 gigas livre de um total de 24 gigas.

                      Voltando a dúvida, eu achei a resposta da mesma. Quando eu executo a seguinte query:

                      select * from v$resource_limit

                      Eu tenho o seguinte campo MAX_UTILIZATION no retorno, ou seja, o total já usado em um determinado momento. E em transactions eu tenho o seguinte valor 1585, com isso posso concluir que o que está configurado em TRANSACTIONS é UNLIMITED.

                      Agora vou partir para alguns testes e ir mudando os parâmetros discutidos aqui.

                      #98684
                      Peterson
                      Participante

                        Essa view vai ajudá-lo a encontrar quais parâmetros precisam ser alterados. Tive um problema com overhead de processos e foi pesquisando nessa view que resolvi.

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