5 Replies Latest reply: Mar 12, 2014 8:42 AM by Tom321 RSS

    Accessing 11gR2 RAC databases with a mixture of client versions.

    TOK

      We have a couple of 4 node RAC clusters running 11.2.0.2 GI and database.  All databases are 11.2.0.2.  These databases are accessed by applications using a mixture of 9i, 10g and 11gR2 client software. Because the application environment is so large and complex, it's going to take a long, long time to get all applications using current client software. We are using SCAN on the clusters and our goal is to provide all applications with as many SCAN features as possible and yet not limit the features available to apps using the 11gR2 client software. Currently our client tnsnames.ora file contains only the SCAN host name, the local_listener is set to the node VIP and the remote_listener is set to the SCAN host name. The pre-11gR2 apps are able to connect, but receive little of the SCAN advantages.  Is there any 'best compromise' configuration for tnsnames.ora, local_listener, remote_listener that will provide SCAN features to pre-11gR2 clients and not penalize 11gR2 clients?  Thanks.

       

      Terry

        • 1. Re: Accessing 11gR2 RAC databases with a mixture of client versions.
          Tom321

          Hi,

           

          the most simple option would be to have different tnsnames.ora on your clients. Create one tnsnames.ora with the new scan connect string for the applications with 11g client and another one with the old connect strings.

          When you update the client software simply replace the old tnsnames.ora with the new one during the update, without any need to change something in the application.

           

          pre-11g:

          XXX=

            (DESCRIPTION =

              (ADDRESS = (PROTOCOL = TCP)(HOST = XXX1-vip.manroland-web.com)(PORT = 1234))

              (ADDRESS = (PROTOCOL = TCP)(HOST = XXX2-vip.manroland-web.com)(PORT = 1234))

          ...

              (LOAD_BALANCE = yes)

              (CONNECT_DATA =

                (SERVER = DEDICATED)

                (SERVICE_NAME = XXX_prod)

                (FAILOVER_MODE =

                  (TYPE = SELECT)

                  (METHOD = BASIC)

                  (RETRIES = 25)

                  (DELAY = 5)

                )

              )

            ) 

           

          Your listener config is as 11g expects for scan use and should be good for all client types, except for the missing server load balancing. Load balancing for old clients will happen only on the client side.

          If you give your old clients the new scan connect, they will always try to connect to the first scan ip they get from dns. That will result in a much worse load situation.

           

          Regards

          Thomas

          • 2. Re: Accessing 11gR2 RAC databases with a mixture of client versions.
            TOK

            Thanks for the input Thomas.  Unfortunately (or fortunately) we have a single networked tnsnames.ora file used by hundreds of PC clients scattered over the eastern part of the US.  We don't support 'local' tnsnames files. I was hoping to keep a single tnsnames alias for each database in the global tnsnames.ora file but code it in such a way that 9i and 10g clients could take advantage of some of the same SCAN features that the 11gR2 clients do.

             

            Terry

            • 3. Re: Accessing 11gR2 RAC databases with a mixture of client versions.
              Tom321

              Hi Terry,

               

              if you need a single name you can try to make a tnsnames.ora entry like the one i proposed. But instead of holding the vip adresses provide the 3 scan ips directly not the scan name. That way your old clients should be able to use the scan listener in a random fashion without your dns system and load balancing should work.

               

              Regards

              Thomas

              • 4. Re: Accessing 11gR2 RAC databases with a mixture of client versions.
                TOK

                Thanks Thomas.  I'm going to code the 3 SCAN IPs and do some testing on our test cluster.  Currently the remote_listener parm in the databases is set to the SCAN host name.  Do you think I will have to replace that host name with the 3 SCAN IPs in remote_listener ?

                 

                Terry

                • 5. Re: Accessing 11gR2 RAC databases with a mixture of client versions.
                  Tom321

                  No leave the remote_listener parameter as it is, the db will use the 3 IPs from the dns entry for the scan-name and all instances should register successfully with the 3 scan listeners.

                  You should find all 4 instances registered at every scan listener, and only the local instance on the node listener.

                   

                  Thomas