Pular para o conteúdo
  • Este tópico contém 9 respostas, 2 vozes e foi atualizado pela última vez 11 anos atrás por Avatar de rmanrman.
Visualizando 10 posts - 1 até 10 (de 10 do total)
  • Autor
    Posts
  • #106123
    Avatar de maperesmaperes
    Participante

      Caros(as)

      Estou com um problema no meu ambiente de produção conforme abaixo :

      Tenho dois nós – RAC
      A aplicação usa o load balance e failover nesses dois nós.

      O problema é que, em um dos nós há uma sobrecarga devido ao número de conexões estarem indo mais para esse nó do que pro outro.

      A proporção é de 5 vezes mais conexões nesse nó, considerando que, a média de conexões diárias nessa aplicação é de 800 conexões.

      Meu ambiente hoje é :

      Red Hat 6
      Oracle 11g

      Por favor, alguém tem alguma dica do que pode estar havendo.

      Agradeço

      Marco Aurelio

      #106124
      Avatar de rmanrman
      Participante

        @maperes

        Como está sendo feito a conexão? É via TNSNAMES.ora? Posta o conteúdo.

        Você está usando quantos ips scan? Esses ips estão registrado em um dns?

        #106125
        Avatar de maperesmaperes
        Participante

          @rman

          Obrigado pelo seu retorno.

          A conexão é feita por php, na aplicação, utilizando o serviço abaixo :

          CPQRAC =
          (DESCRIPTION =
          (FAILOVER = ON)
          (LOAD_BALANCE = ON)
          (ADDRESS = (PROTOCOL = TCP)(HOST = 172.21.1.151)(PORT = 1521))
          (ADDRESS = (PROTOCOL = TCP)(HOST = 172.21.1.153)(PORT = 1521))
          (CONNECT_DATA =
          (SERVER = DEDICATED)
          (SERVICE_NAME = CPQ)
          (FAILOVER_MODE =
          (TYPE = SELECT)
          (METHOD = BASIC)
          (RETRIES = 180)
          (DELAY = 5)
          )
          )
          )

          Estão registrados no dns. Usamos dois ips virtuais.

          #106126
          Avatar de maperesmaperes
          Participante

            @rman

            o conteúdo do arquivo hosts.

            Do not remove the following line, or various programs

            that require network functionality will fail.

            127.0.0.1 localhost.localdomain localhost
            #::1 localhost6.localdomain6 localhost6
            #172.21.1.151 nolan.ima.sp.gov.br nolan

            Public

            172.21.1.151 nolan.ima.sp.gov.br nolan nolan.localdomain
            172.21.1.153 nolde.ima.sp.gov.br nolde

            Private

            10.10.10.1 nolan-priv.localdomain nolan-priv
            10.10.10.2 nolde-priv.localdomain nolde-priv

            Virtual

            172.21.1.154 nolan-vip.localdomain nolan-vip
            172.21.1.155 nolde-vip.localdomain nolde-vip

            SCAN

            172.21.1.156 rac-scan.localdomain rac-scan

            #106127
            Avatar de maperesmaperes
            Participante

              @rman

              O conteúdo do serviço definido via aplicação é o abaixo :

              define (“TNS_BANCO”, “(DESCRIPTION =
              (ADDRESS = (PROTOCOL = TCP)(HOST = 172.21.1.151)(PORT = 1521))
              (ADDRESS = (PROTOCOL = TCP)(HOST = 172.21.1.153)(PORT = 1521))
              (LOAD_BALANCE = yes)
              (CONNECT_DATA =
              (SERVER = DEDICATED)
              (SERVICE_NAME = CPQ)
              (FAILOVER_MODE =
              (TYPE = SELECT)
              (METHOD = BASIC)
              (RETRIES = 180)
              (DELAY = 5)
              )
              ))”);

              define (“RACCPQ”,TNS_BANCO);
              ?>

              #106128
              Avatar de rmanrman
              Participante

                @maperes

                Posta o resultado:


                SELECT *
                FROM V$VERSION;

                #106129
                Avatar de maperesmaperes
                Participante

                  @rman

                  segue o resultado:

                  SQL> SELECT *
                  FROM V$VERSION; 2

                  BANNER

                  Oracle Database 11g Release 11.2.0.1.0 – 64bit Production
                  PL/SQL Release 11.2.0.1.0 – Production
                  CORE 11.2.0.1.0 Production
                  TNS for Linux: Version 11.2.0.1.0 – Production
                  NLSRTL Version 11.2.0.1.0 – Production

                  #106130
                  Avatar de rmanrman
                  Participante

                    @maperes

                    Adiantando, no tnsnames.ora a conexão deve ser feita pelo endereço do scan, exemplo: rac-scan.ima.sp.gov.br, não pelos IPS públicos.

                    rac-scan.ima.sp.gov.br é o endereço dos ips scan?

                    Esse endereço deve retornar alternadamente 2 ips. Verifique com:


                    $ nslookup rac-scan.ima.sp.gov.br

                    Repare que ao executar varias vezes a ordem dos ips devem se alternar.

                    Considerando que o endereço seja realmente o rac-scan.ima.sp.gov.br. O seu tnsnames.ora deve ser configurado da seguinte maneira:


                    CPQRAC =
                    (DESCRIPTION =
                    (ADDRESS = (PROTOCOL = TCP)(HOST = rac-scan.ima.sp.gov.br)(PORT = 1521))
                    (CONNECT_DATA =
                    (SERVER = DEDICATED)
                    (SERVICE_NAME = CPQ)
                    )
                    )

                    Aqui está configurado desta maneira, e o balanceamento está ok. Repare que não foi colocado nada de FAILOVER e LOAD_BALANCE.

                    Só lembrando já existe a versão 11.2.0.4.0.

                    Outra coisa, achei estranho no seu /etc/hosts ter:

                    SCAN

                    172.21.1.156 rac-scan.localdomain rac-scan

                    Creio que não deveria estar no /etc/hosts e sim do DNS.

                    #106131
                    Avatar de maperesmaperes
                    Participante

                      @rman

                      O resultado de :

                      nslookup rac-scan.ima.sp.gov.br

                      é :

                      Server: 172.16.100.11
                      Address: 172.16.100.11#53

                      Name: rac-scan.ima.sp.gov.br
                      Address: 172.21.1.156

                      nos dois nós.

                      Pelo que entendi, o serviço a ser utilizado seria :

                      CPQRAC =
                      (DESCRIPTION =
                      (ADDRESS = (PROTOCOL = TCP)(HOST = rac-scan.ima.sp.gov.br)(PORT = 1521))
                      (CONNECT_DATA =
                      (SERVER = DEDICATED)
                      (SERVICE_NAME = CPQ)
                      )
                      )

                      ao inves de :

                      define (“TNS_BANCO”, “(DESCRIPTION =
                      (ADDRESS = (PROTOCOL = TCP)(HOST = 172.21.1.151)(PORT = 1521))
                      (ADDRESS = (PROTOCOL = TCP)(HOST = 172.21.1.153)(PORT = 1521))
                      (LOAD_BALANCE = yes)
                      (CONNECT_DATA =
                      (SERVER = DEDICATED)
                      (SERVICE_NAME = CPQ)
                      (FAILOVER_MODE =
                      (TYPE = SELECT)
                      (METHOD = BASIC)
                      (RETRIES = 180)
                      (DELAY = 5)
                      )
                      ))”);

                      define (“RACCPQ”,TNS_BANCO);
                      ?>

                      Seria, a principio isso?

                      #106132
                      Avatar de rmanrman
                      Participante

                        @maperes

                        O dns está retornando apenas 1 IP. Se você utilizou 2 IPs para scan, falta registrar o segundo IP.

                        Ao registrar o segundo IP do scan no DNS, remova o ip do /etc/hosts.

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