Re: RAC design question

From: Martin Bach <development_at_the-playground.de>
Date: Wed, 17 Aug 2011 09:34:46 +0100
Message-ID: <4E4B7D26.8090306_at_the-playground.de>



Hi Freek,

you are right-TAF can work if you don't shut the instance down via srvctl. I have tested this quickly, the environment is the same as before.

[oracle_at_rac11gr2drnode1 ~]$ srvctl stop service -d orcl -s oraclel
[oracle_at_rac11gr2drnode1 ~]$ srvctl remove service -d orcl -s oraclel
[oracle_at_rac11gr2drnode1 ~]$ srvctl add service -d orcl -s oraclel -r 
orcl1 -a orcl2
[oracle_at_rac11gr2drnode1 ~]$ srvctl start service -d orcl -s oraclel [oracle_at_rac11gr2drnode1 ~]$ srvctl config service -d orcl -s oraclel Service name: oraclel
Service is enabled
Server pool: orcl_oraclel
Cardinality: 1
Disconnect: false
Service role: PRIMARY
Management policy: AUTOMATIC
DTP transaction: false
AQ HA notifications: false
Failover type: NONE
Failover method: NONE
TAF failover retries: 0
TAF failover delay: 0
Connection Load Balancing Goal: LONG
Runtime Load Balancing Goal: NONE
TAF policy specification: NONE
Edition:
Preferred instances: orcl1
Available instances: orcl2

[oracle_at_rac11gr2drnode1 oracle-l]$ sqlplus martin_at_oraclel

SQL*Plus: Release 11.2.0.2.0 Production on Wed Aug 17 09:21:43 2011

Copyright (c) 1982, 2010, Oracle. All rights reserved.

Enter password:

Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bit Production With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,
Data Mining and Real Application Testing options

SQL> select inst_id,sid,serial#,FAILOVER_TYPE, failover_method, failed_over

   2 from gv$session where sid=(select distinct sid from v$mystat)    3 and inst_id = sys_context('userenv','instance');

    INST_ID SID SERIAL# FAILOVER_TYPE FAILOVER_M FAI ---------- ---------- ---------- ------------- ---------- ---

          1 157 10015 SESSION BASIC NO Killed the instance:

[oracle_at_rac11gr2drnode1 ~]$ ps -ef | grep smon_orcl oracle 14311 14144 0 09:23 pts/2 00:00:00 grep smon_orcl oracle 17291 1 0 Aug16 ? 00:00:04 ora_smon_orcl1 [oracle_at_rac11gr2drnode1 ~]$ kill -9 17291 [oracle_at_rac11gr2drnode1 ~]$ ps -ef | grep smon_orcl oracle 14350 14144 0 09:24 pts/2 00:00:00 grep smon_orcl

[oracle_at_rac11gr2drnode1 ~]$ srvctl status database -d orcl Instance orcl1 is not running on node rac11gr2drnode1 Instance orcl2 is running on node rac11gr2drnode3 Instance orcl3 is running on node rac11gr2drnode4 [oracle_at_rac11gr2drnode1 ~]$

In the same session as before:

SQL> /
select inst_id,sid,serial#,FAILOVER_TYPE, failover_method, failed_over *
ERROR at line 1:
ORA-25408: can not safely replay call

SQL> /     INST_ID SID SERIAL# FAILOVER_TYPE FAILOVER_M FAI ---------- ---------- ---------- ------------- ---------- ---

          2 153 15 SESSION BASIC YES And it worked, nice.

Martin

On 17/08/2011 09:09, D'Hooge Freek wrote:
> Martin,
>
> There is an error in your post.
> When shutting down an oracle instance using srvctl, the session will no longer failover in 11.2 but instead will be stopped (unless you use the -f flag).
>
> See the update on the end of the following blog post: https://freekdhooge.wordpress.com/2011/08/11/rac-investigations-part-i/
>
>
> Normally your (select) session will correctly failover with a preferred / available config and TAF.
> I hope to be able to create a test case this afternoon.
>
> Regards,
>
>
> Freek D'Hooge
> Uptime
>

--
http://www.freelists.org/webpage/oracle-l
Received on Wed Aug 17 2011 - 03:34:46 CDT

Original text of this message