Friday, March 30, 2018

Virtual IP Addresses In Oracle Exadata x6/x7


Virtual IP Addresses In Oracle Exadata

Note: If not able to find VIPs in /etc/hosts, check the below you can find out VIPs in Oracle Exadata :)


$ srvctl status vip -n dbserver01
VIP dbserver01-vip.abc.com is enabled
VIP dbserver01-vip.abc.com is running on node: dbserver01
[ oracle@dbserver01.abc.com : Thu Mar 29, 10:06 AM : /home/oracle ]

$ srvctl status vip -n dbserver02
VIP dbserver02-vip.abc.com is enabled
VIP dbserver02-vip.abc.com is running on node: dbserver02
[ oracle@dbserver01.abc.com : Thu Mar 29, 10:06 AM : /home/oracle ]

$ srvctl status vip -n dbserver03
VIP dbserver03-vip.abc.com is enabled
VIP dbserver03-vip.abc.com is running on node: dbserver03
[ oracle@dbserver01.abc.com : Thu Mar 29, 10:06 AM : /home/oracle ]

$ srvctl status vip -n dbserver04
VIP dbserver04-vip.abc.com is enabled
VIP dbserver04-vip.abc.com is running on node: dbserver04
[ oracle@dbserver01.abc.com : Thu Mar 29, 10:06 AM : /home/oracle ]
$

[ oracle@dbserver01.abc.com : Thu Mar 29, 10:06 AM : /home/oracle ]
$ nslookup dbserver01-vip
Server:         17.2.3.20
Address:        17.2.3.20#53
Name:   dbserver01-vip.abc.com
Address: 10.5.3.77

[ oracle@dbserver01.abc.com : Thu Mar 29, 10:06 AM : /home/oracle ]
$ nslookup dbserver02-vip
Server:         17.2.3.20
Address:        17.2.3.20#53
Name:   dbserver02-vip.abc.com
Address: 10.5.3.78

[ oracle@dbserver01.abc.com : Thu Mar 29, 10:06 AM : /home/oracle ]
$ nslookup dbserver03-vip
Server:         17.2.3.20
Address:        17.2.3.20#53
Name:   dbserver03-vip.abc.com
Address: 10.5.3.79

[ oracle@dbserver01.abc.com : Thu Mar 29, 10:06 AM : /home/oracle ]
$ nslookup dbserver04-vip
Server:         17.2.3.20
Address:        17.2.3.20#53
Name:   dbserver04-vip.abc.com
Address: 10.5.3.80

RAC Service Not Failover during Instance Shutdown Using srvctl stop instance with Abort and Force option in 11.2.0.4/12.1.0.2/12.2.0.1


RAC Service Not Failover during Instance Shutdown Using srvctl stop instance with Abort and 
Force option in 11.2.0.4/12.1.0.2/12.2.0.1

Check the GRID version

[grid@dbserver01 ~]$ crsctl query crs releaseversion
Oracle High Availability Services release version on the local node is [12.2.0.1.0]
[grid@dbserver01 ~]$

[grid@dbserver01 ~]$ crsctl query crs softwareversion
Oracle Clusterware version on node [dbserver01] is [12.2.0.1.0]
[grid@dbserver01 ~]$

$ su - oracle
[oracle@dbserver01 ~]$ ps -ef | grep pmon
oracle    26358      1  0 Mar29 ?        00:00:04 ora_pmon_dbm011
grid      64858      1  0 Feb28 ?        00:01:54 asm_pmon_+ASM1
oracle   289299 289250  0 12:32 pts/1    00:00:00 grep pmon
[oracle@dbserver01 ~]$

[oracle@dbserver01 ~]$ . oraenv
ORACLE_SID = [oracle] ? dbm011
The Oracle base has been set to /u01/app/oracle
[oracle@dbserver01 ~]$ sqlplus / as sysdba
SQL*Plus: Release 12.2.0.1.0 Production on Fri Mar 30 12:32:34 2018
Copyright (c) 1982, 2016, Oracle.  All rights reserved.
Connected to:
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production

SQL> exit
Disconnected from Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production

Creating service with PREFERRED in both the instances. 

[oracle@dbserver01 ~]$ srvctl add service -d dbm01 -s serv5 -r dbm011,dbm012 -tafpolicy BASIC -failovertype SELECT 
-failovermethod BASIC -failoverretry 2 -failoverdelay 5

[oracle@dbserver01 ~]$ srvctl status service -d dbm01
Service serv5 is not running.
[oracle@dbserver01 ~]$

[oracle@dbserver01 ~]$ srvctl start service -d dbm01 -s serv5
[oracle@dbserver01 ~]$

[oracle@dbserver01 ~]$ srvctl status service -d dbm01 -s serv5
Service serv5 is running on instance(s) dbm011,dbm012
[oracle@dbserver01 ~]$

[oracle@dbserver01 ~]$ srvctl config service -d dbm01 -s serv5
Service name: serv5
Server pool:
Cardinality: 2
Service role: PRIMARY
Management policy: AUTOMATIC
DTP transaction: false
AQ HA notifications: false
Global: false
Commit Outcome: false
Failover type: SELECT
Failover method: BASIC
TAF failover retries: 2
TAF failover delay: 5
Failover restore: NONE
Connection Load Balancing Goal: LONG
Runtime Load Balancing Goal: NONE
TAF policy specification: BASIC
Edition:
Pluggable database name:
Maximum lag time: ANY
SQL Translation Profile:
Retention: 86400 seconds
Replay Initiation Time: 300 seconds
Drain timeout:
Stop option:
Session State Consistency: DYNAMIC
GSM Flags: 0
Service is enabled
Preferred instances: dbm011,dbm012
Available instances:
CSS critical: no
[oracle@dbserver01 ~]$

[oracle@dbserver01 ~]$ srvctl stop instance -d dbm01 -i dbm011 -f
[oracle@dbserver01 ~]$

[oracle@dbserver01 ~]$ srvctl status service -d dbm01
Service serv5 is running on instance(s) dbm012
[oracle@dbserver01 ~]$

[oracle@dbserver01 ~]$ srvctl config service -d dbm01 -s serv5
Service name: serv5
Server pool:
Cardinality: 2
Service role: PRIMARY
Management policy: AUTOMATIC
DTP transaction: false
AQ HA notifications: false
Global: false
Commit Outcome: false
Failover type: SELECT
Failover method: BASIC
TAF failover retries: 2
TAF failover delay: 5
Failover restore: NONE
Connection Load Balancing Goal: LONG
Runtime Load Balancing Goal: NONE
TAF policy specification: BASIC
Edition:
Pluggable database name:
Maximum lag time: ANY
SQL Translation Profile:
Retention: 86400 seconds
Replay Initiation Time: 300 seconds
Drain timeout:
Stop option:
Session State Consistency: DYNAMIC
GSM Flags: 0
Service is enabled
Preferred instances: dbm011,dbm012
Available instances:
CSS critical: no

[oracle@dbserver01 ~]$ srvctl start instance -d dbm01 -i dbm011

[oracle@dbserver01 ~]$ srvctl status service -d dbm01
Service serv5 is running on instance(s) dbm011,dbm012
[oracle@dbserver01 ~]$

[oracle@dbserver01 ~]$ srvctl status service -d dbm01 -s serv5
Service serv5 is running on instance(s) dbm011,dbm012
[oracle@dbserver01 ~]$

Creating service with PREFERRED and AVAILABLE in the instances. 

[oracle@dbserver01 ~]$ srvctl add service -d dbm01 -s serv6 -r dbm011 -a dbm012 -tafpolicy BASIC -failovertype SELECT 
-failovermethod BASIC -failoverretry 2 -failoverdelay 5
[oracle@dbserver01 ~]$

[oracle@dbserver01 ~]$ srvctl status service -d dbm01 -s serv6
Service serv6 is not running.
[oracle@dbserver01 ~]$

[oracle@dbserver01 ~]$ srvctl start service -d dbm01 -s serv6
[oracle@dbserver01 ~]$

[oracle@dbserver01 ~]$ srvctl status service -d dbm01 -s serv6
Service serv6 is running on instance(s) dbm011
[oracle@dbserver01 ~]$

[oracle@dbserver01 ~]$ srvctl status service -d dbm01 -s serv6
Service serv6 is running on instance(s) dbm011

[oracle@dbserver01 ~]$ srvctl config service -d dbm01 -s serv6
Service name: serv6
Server pool:
Cardinality: 1
Service role: PRIMARY
Management policy: AUTOMATIC
DTP transaction: false
AQ HA notifications: false
Global: false
Commit Outcome: false
Failover type: SELECT
Failover method: BASIC
TAF failover retries: 2
TAF failover delay: 5
Failover restore: NONE
Connection Load Balancing Goal: LONG
Runtime Load Balancing Goal: NONE
TAF policy specification: BASIC
Edition:
Pluggable database name:
Maximum lag time: ANY
SQL Translation Profile:
Retention: 86400 seconds
Replay Initiation Time: 300 seconds
Drain timeout:
Stop option:
Session State Consistency: DYNAMIC
GSM Flags: 0
Service is enabled
Preferred instances: dbm011
Available instances: dbm012
CSS critical: no
[oracle@dbserver01 ~]$

[oracle@dbserver01 ~]$ srvctl stop instance -d dbm01 -i dbm011 -f

[oracle@dbserver01 ~]$ srvctl status service -d dbm01 -s serv6
Service serv6 is not running.

[oracle@dbserver01 ~]$ srvctl start instance -d dbm01 -i dbm011

[oracle@dbserver01 ~]$ srvctl status service -d dbm01 -s serv6
Service serv6 is running on instance(s) dbm011

Please refer MOS: 

1. Services Are Not Failing Over To Node2 Automatically When First Node1 Is Down And Vice Versa (Doc ID 2177143.1)
2. The Bug 22472054 is seen fixed in GI 12.2 version
3. Apply the patch for bug 22472054.