Sunday, May 1, 2016

Changing SCAN Setting

The post lists steps for changing the SCAN setting in a cluster. This is a test system where the SCAN is currently resolved via the /etc/hosts file with a single IP.
$ srvctl config scan
SCAN name: rhel6m-scan, Network: 1/192.168.0.0/255.255.255.0/eth0
SCAN VIP name: scan1, IP: /rhel6m-scan/192.168.0.91

$ srvctl config scan_listener
SCAN Listener MYSCANLISTENER_SCAN1 exists. Port: TCP:9120
It uses a non-default scan listener name and non-default port.
This setup will be changed so that a new SCAN setting that resolves SCAN through DNS is used by the cluster. Ideally the scan name should remain the same so that application connecting doesn't have to change any connection strings after the change but in this case the new SCAN name is different to the currently used scan name.
1. Make the changes to /etc/resovle.conf and /etc/nsswitch.conf so that new SCAN look up works on all cluster nodes. Below shows nslookup working on one of the nodes
[grid@rhel6m1 admin]$ nslookup rac-scan.domain.net
Server:         192.168.0.66
Address:        192.168.0.66#53

Name:   rac-scan.domain.net
Address: 192.168.0.93
Name:   rac-scan.domain.net
Address: 192.168.0.94
Name:   rac-scan.domain.net
Address: 192.168.0.92

[grid@rhel6m1 admin]$ nslookup rac-scan.domain.net
Server:         192.168.0.66
Address:        192.168.0.66#53

Name:   rac-scan.domain.net
Address: 192.168.0.92
Name:   rac-scan.domain.net
Address: 192.168.0.93
Name:   rac-scan.domain.net
Address: 192.168.0.94

[grid@rhel6m1 admin]$ nslookup rac-scan.domain.net
Server:         192.168.0.66
Address:        192.168.0.66#53

Name:   rac-scan.domain.net
Address: 192.168.0.94
Name:   rac-scan.domain.net
Address: 192.168.0.92
Name:   rac-scan.domain.net
Address: 192.168.0.93
2. Stop the scan and scan listeners
$ srvctl stop scan_listener
$ srvctl stop scan
3. Modify the scan setting by specifying the new SCAN name.
# srvctl modify scan -n rac-scan.domain.net

# srvctl config scan
SCAN name: rac-scan.domain.net, Network: 1/192.168.0.0/255.255.255.0/eth0
SCAN VIP name: scan1, IP: /rac-scan.domain.net/192.168.0.93
SCAN VIP name: scan2, IP: /rac-scan.domain.net/192.168.0.94
SCAN VIP name: scan3, IP: /rac-scan.domain.net/192.168.0.92


4. Change the remote_listener parameter to reflect the new SCAN
SQL> alter system set remote_listener='rac-scan.domain.net:9120' scope=both sid='*';
5. Update the scan listener
$ srvctl modify scan_listener -u

$ srvctl config scan_listener
SCAN Listener MYSCANLISTENER_SCAN1 exists. Port: TCP:9120
SCAN Listener MYSCANLISTENER_SCAN2 exists. Port: TCP:9120
SCAN Listener MYSCANLISTENER_SCAN3 exists. Port: TCP:9120
6. Finally start the scan and the scan listener
$ srvctl start scan
$ srvctl start scan_listener
Useful metalink notes
How to Modify SCAN Setting or SCAN Listener Port after Installation [ID 972500.1]
How To Convert an 11gR2 GNS Configuration To A Standard Configuration Using DNS Only [ID 1489121.1]
How to Modify Public Network Information including VIP in Oracle Clusterware [ID 276434.1]

Related Posts
Changing Listener and SCAN Listener Port in 11gR2 RAC
Changing Listener and SCAN Listener Name in 11gR2 RAC
GNS Setup for RAC
SCAN (Single Client Access Name) Set Up Using DNS