Re: Trying to wrap my head around TAF

From: fairlie rego <fairlie_r_at_yahoo.com>
Date: Wed, 15 Jul 2009 19:36:24 -0700 (PDT)
Message-ID: <976770.1938.qm_at_web45008.mail.sp1.yahoo.com>



When the primary site really, really fails, the VIPs won't be available and that could be a large delay before the client gives up (that's what VIPs were intended to prevent).

To get around this problem we use the outbound_connect_timeout in the client's sqlnet.ora and have set it to 3 seconds. So incase a vip is offline we do not wait forever...
 

Thanks

Fairlie Rego
Senior Oracle Consultant
http://el-caro.blogspot.com/
M: +61 402 792 405
 

  • On Thu, 16/7/09, Dan Norris <dannorris_at_dannorris.com> wrote:

From: Dan Norris <dannorris_at_dannorris.com> Subject: Re: Trying to wrap my head around TAF To: sacrophyte_at_gmail.com
Cc: "ORACLE-L" <oracle-l_at_freelists.org>, "Jeremy Schneider" <jeremy.schneider_at_ardentperf.com> Received: Thursday, 16 July, 2009, 1:19 AM

Charles,

I think LOAD_BALANCE is ON by default when you have multiple ADDRESS lines. You'd have to do some client-side tracing to see for sure (not sure if it requires the DESCRIPTION_LIST to be present or not).

If LOAD_BALANCE is ON, then it may choose one of the standby listeners. Once there, the standby listener will need to have instance registrations from the primary site so that the standby listener can direct the client to one of the primary listeners. Just make sure that remote_listeners on both primary and standby have all 4 listeners listed in them.

What would concern me is the case where the primary site is completely unavailable--isn't it possible that a client would attempt to contact the primary site and experience a tcp timeout (multiple minutes or more possibly)? When the primary site really, really fails, the VIPs won't be available and that could be a large delay before the client gives up (that's what VIPs were intended to prevent).

Dan

On Wed, Jul 15, 2009 at 9:37 AM, Charles Schultz <sacrophyte_at_gmail.com> wrote:

I filed a case with Oracle and did some minor testing - my biggest roadblock is that I do not yet have a test system with both the DG broker and RAC, I have one for each.

So, I will throw this out there and hope that someone with a DG-broker-enabled RAC environment can verify. =) I have yet to find any documents that puts these two concepts together. My ears/eyes are open to recommendations.

I tried with multiple DESCRIPTIONs (ie, in order to have different LOAD_BALANCE or FAILOVER_MODE parameters), but apparently TAF works best with one. Expounding on Jeremy's connection string (as well as the ones mentioned in the metalink notes), one can throw all nodes that provide the listed service in one ADDRESS_LIST, whether they be standby or clustered. The key part is a database trigger that turns off the service for standby instances such that the LOAD_BALANCE option will never even consider the listener on that node since PMON will not communicate anything about the service.

  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS=(PROTOCOL=TCP)(HOST=primary1-vip.your.com)(PORT=1521))
      (ADDRESS=(PROTOCOL=TCP)(HOST=primary2-vip.your.com)(PORT=1521))
      (ADDRESS=(PROTOCOL=TCP)(HOST=standby1-vip.your.com)(PORT=1521))
      (ADDRESS=(PROTOCOL=TCP)(HOST=standby2-vip.your.com)(PORT=1521))
    )
    (CONNECT_DATA =
      (SERVER=DEDICATED)
      (SERVICE_NAME=OMNI-SERVICE)
      (FAILOVER_MODE =  
        (TYPE=session)  
        (METHOD=BASIC)  
        (RETRIES=180)  
        (DELAY=1)  
      )  
    )
   )

References:
Metalink note 461874.1 "Failover Connections for Data Guard Error with ORA-1033" Metalink note 316740.1 "How to configure to let TAF work after Data Guard Switchover or Failover" Client Failover in Data Guard Configurations for Highly Available Oracle Databases 

On Mon, Jun 22, 2009 at 11:52, Jeremy Schneider <jeremy.schneider_at_ardentperf.com> wrote:

"Server-side TAF" is a reference to storing the TAF configuration info in the server, and having the client pull it down at connect-time.  Not well documented, but very interesting.  Look out for surprising rules of precedence - the server configuration always over-rides the client tnsnames.ora!

See also:
http://www.ardentperf.com/2007/03/29/centralized-taf-configuration-in-10g-part-2/

I've configured TAF for automatic failover to a standby (along with dataguard broker automatic failover) -- but I haven't configured TAF for both RAC and DG in the same database.  It would be cool to hear if someone else out there on the list has done this.  :)

-Jeremy

On Fri, Jun 19, 2009 at 3:03 PM, Charles Schultz <sacrophyte_at_gmail.com> wrote:

For #2, I do see table 95-3, but I missed how it specified "server-side TAF". How does a server transparently failover?

On Fri, Jun 19, 2009 at 14:56, Charles Schultz <sacrophyte_at_gmail.com> wrote:

2) Similar to this, I am trying to understand the different TAF parameters used in dbms_service.create_service. The documentation has very little to say about them (just the bare bones - the 11g documentation is exactly the same I think), and when one implicitly creates a service by modifying the SERVICE_NAMES parameter, all the parameters default to null (according to dba_services). Are those TAF parameters actually used, or are they merely place-holders for "future" functionality? If they do play a role in TAF, what and how?

-- 
Jeremy Schneider
Chicago, IL
http://www.ardentperf.com/category/technical




-- 
Charles Schultz




      ____________________________________________________________________________________
Access Yahoo!7 Mail on your mobile. Anytime. Anywhere.
Show me how: http://au.mobile.yahoo.com/mail

--
http://www.freelists.org/webpage/oracle-l
Received on Wed Jul 15 2009 - 21:36:24 CDT

Original text of this message