Re: Trying to wrap my head around TAF

  • From: Charles Schultz <sacrophyte@xxxxxxxxx>
  • To: ORACLE-L <oracle-l@xxxxxxxxxxxxx>, Jeremy Schneider <jeremy.schneider@xxxxxxxxxxxxxx>
  • Date: Wed, 15 Jul 2009 09:37:58 -0500

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<https://metalink2.oracle.com/metalink/plsql/f?p=130:14:2134483772446290257::::p14_database_id,p14_docid,p14_show_header,p14_show_help,p14_black_frame,p14_font:NOT,461874.1,1,1,1,helvetica>"Failover
Connections for Data Guard Error with ORA-1033"
Metalink note 
316740.1<https://metalink2.oracle.com/metalink/plsql/f?p=130:14:2134483772446290257::::p14_database_id,p14_docid,p14_show_header,p14_show_help,p14_black_frame,p14_font:NOT,316740.1,1,1,1,helvetica>"How
to configure to let TAF work after Data Guard Switchover or Failover"
Client Failover in Data Guard Configurations for Highly Available Oracle
Databases 
<http://www.oracle.com/technology/deploy/availability/pdf/MAA_WP_10gR2_ClientFailoverBestPractices.pdf>



On Mon, Jun 22, 2009 at 11:52, Jeremy Schneider <
jeremy.schneider@xxxxxxxxxxxxxx> 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@xxxxxxxxx>wrote:
>
>> For #2, I do see table 
>> 95-3<http://download.oracle.com/docs/cd/B28359_01/appdev.111/b28419/d_serv.htm#sthref5797>,
>> 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@xxxxxxxxx>wrote:
>>
>>>
>>> 2) Similar to this, I am trying to understand the different TAF
>>> parameters used in 
>>> dbms_service.create_service<http://download.oracle.com/docs/cd/B19306_01/appdev.102/b14258/d_serv.htm#i1001480>.
>>> The documentation has very little to say about them (just the bare bones -
>>> the 11g 
>>> documentation<http://download.oracle.com/docs/cd/B28359_01/appdev.111/b28419/d_serv.htm#sthref7056>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

Other related posts: