11gR2 grid infrastructure uses SCAN, which is a new concept we use for all client connections. SCAN is single client access name and it is a new feature in 11g Release 2 that provides a single name for clients to access an Oracle Database running in a cluster. The benefit is clients using SCAN do not need to change if you add or remove nodes in the cluster.
Prior to 11gR2 , the tnsnames.ora entries are
TESTDB =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = rac01-vip)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = rac02-vip)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = testdb.example.com)
)
)
In 11gR2 , the tnsnames.ora entries look like ....
TESTDB =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = rac-scan.example.com)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = testdb.example.com)
)
)
The only difference is that , we specify the scan name instead of all VIPs in the tnsnames.ora file.
So what is the benifit with it?
Suppose if you are adding any node to the cluster, you need to specify corresponding VIP entry for that node in the tnsnames.ora prior to 11gR2. But with SCAN name, we dont need to do any modifications to the tnsnames.ora file. SCAN name will resolve and load balance the client connections to all the nodes in the RAC.
SCAN configuration in the cluster :
The SCAN is configured during the installation of the grid infrastructure that is distributed with Oracle Database 11g Release2. So in order to configure SCAN, you need to create a single name that resolves to 3 IP addresses using a round robin algorithm. The IP addresses must be on the same subnet as your public network in the cluster.
rac-scan.example.com IN A 133.22.67.194
IN A 133.22.67.193
IN A 133.22.67.192
SCAN Details
[grid@rac01 ~]$ host rac-scan
rac-scan.example.com has address 133.22.67.192
rac-scan.example.com has address 133.22.67.193
rac-scan.example.com has address 133.22.67.194
[grid@rac01 ~]$ nslookup rac-scan
Server: 133.22.5.53
Address: 133.22.5.53#53
Name: rac-scan.example.com
Address: 133.22.67.194
Name: rac-scan.example.com
Address: 133.22.67.193
Name: rac-scan.example.com
Address: 133.22.67.192
[grid@rac01 ~]$ ping rac-scan
PING rac-scan.example.com (133.22.67.193) 56(84) bytes of data.
64 bytes from rac-scan.example.com (133.22.67.193): icmp_seq=1 ttl=64 time=0.187 ms
64 bytes from rac-scan.example.com (133.22.67.193): icmp_seq=2 ttl=64 time=0.144 ms
64 bytes from rac-scan.example.com (133.22.67.193): icmp_seq=3 ttl=64 time=0.152 ms
--- rac-scan.example.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 1999ms
rtt min/avg/max/mdev = 0.144/0.161/0.187/0.018 ms
[grid@rac01 ~]$ ping rac-scan
PING rac-scan.example.com (133.22.67.192) 56(84) bytes of data.
64 bytes from rac-scan.example.com (133.22.67.192): icmp_seq=1 ttl=64 time=0.042 ms
64 bytes from rac-scan.example.com (133.22.67.192): icmp_seq=2 ttl=64 time=0.046 ms
64 bytes from rac-scan.example.com (133.22.67.192): icmp_seq=3 ttl=64 time=0.051 ms
--- rac-scan.example.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 1999ms
rtt min/avg/max/mdev = 0.042/0.046/0.051/0.006 ms
[grid@rac01 ~]$ ping rac-scan
PING rac-scan.example.com (133.22.67.194) 56(84) bytes of data.
64 bytes from rac-scan.example.com (133.22.67.194): icmp_seq=2 ttl=64 time=0.144 ms
64 bytes from rac-scan.example.com (133.22.67.194): icmp_seq=3 ttl=64 time=0.164 ms
--- rac-scan.example.com ping statistics ---
3 packets transmitted, 2 received, 33% packet loss, time 2001ms
rtt min/avg/max/mdev = 0.144/0.154/0.164/0.010 ms
[grid@rac01 ~]$
[root@rac01 network-scripts]# /u01/home/11.2.0/grid/bin/srvctl config scan_listener
SCAN Listener LISTENER_SCAN1 exists. Port: TCP:1521
SCAN Listener LISTENER_SCAN2 exists. Port: TCP:1521
SCAN Listener LISTENER_SCAN3 exists. Port: TCP:1521
[root@rac01 network-scripts]# /u01/home/11.2.0/grid/bin/srvctl config scan
SCAN name: rac-scan, Network: 1/133.22.38.0/255.255.255.0/eth2
SCAN VIP name: scan1, IP: /rac-scan.example.com/133.22.67.192
SCAN VIP name: scan2, IP: /rac-scan.example.com/133.22.67.194
SCAN VIP name: scan3, IP: /rac-scan.example.com/133.22.67.193
[root@rac01 network-scripts]#
[grid@rac01 ~]$ srvctl status scan
SCAN VIP scan1 is enabled
SCAN VIP scan1 is running on node rac01
SCAN VIP scan2 is enabled
SCAN VIP scan2 is running on node rac02
SCAN VIP scan3 is enabled
SCAN VIP scan3 is running on node rac02
[grid@rac01 ~]$ srvctl status scan_listener
SCAN Listener LISTENER_SCAN1 is enabled
SCAN listener LISTENER_SCAN1 is running on node rac01
SCAN Listener LISTENER_SCAN2 is enabled
SCAN listener LISTENER_SCAN2 is running on node rac02
SCAN Listener LISTENER_SCAN3 is enabled
SCAN listener LISTENER_SCAN3 is running on node rac02
[grid@rac01 ~]$
[grid@rac01 ~]$ ps -ef | grep -i tns
grid 9052 1 0 Aug09 ? 00:00:01 /u01/home/11.2.0/grid/bin/tnslsnr LISTENER -inherit
grid 9098 1 0 Aug09 ? 00:00:01 /u01/home/11.2.0/grid/bin/tnslsnr LISTENER_SCAN1 -inherit
grid 21388 20424 0 05:06 pts/1 00:00:00 grep -i tns
[grid@rac01 ~]$
[grid@rac02 ~]$ ps -ef | grep -i tns
grid 1323 1292 0 05:07 pts/0 00:00:00 grep -i tns
grid 9110 1 0 Aug09 ? 00:00:02 /u01/home/11.2.0/grid/bin/tnslsnr LISTENER -inherit
grid 17278 1 0 Aug09 ? 00:00:01 /u01/home/11.2.0/grid/bin/tnslsnr LISTENER_SCAN2 -inherit
grid 17285 1 0 Aug09 ? 00:00:01 /u01/home/11.2.0/grid/bin/tnslsnr LISTENER_SCAN3 -inherit
[grid@rac02 ~]$
[grid@rac02 grid]$ Check_CRS.txt
HA Resource Target State
----------- ------ -----
ora.CRS.dg ONLINE ONLINE on rac01
ora.FRA.dg ONLINE ONLINE on rac01
ora.LISTENER.lsnr ONLINE ONLINE on rac01
ora.LISTENER_SCAN1.lsnr ONLINE ONLINE on rac01
ora.LISTENER_SCAN2.lsnr ONLINE ONLINE on rac02
ora.LISTENER_SCAN3.lsnr ONLINE ONLINE on rac02
ora.RACDB_DATA.dg ONLINE ONLINE on rac01
ora.asm ONLINE ONLINE on rac01
ora.eons ONLINE ONLINE on rac01
ora.gsd OFFLINE OFFLINE
ora.net1.network ONLINE ONLINE on rac01
ora.oc4j OFFLINE OFFLINE
ora.ons ONLINE ONLINE on rac01
ora.rac01.ASM1.asm ONLINE ONLINE on rac01
ora.rac01.LISTENER_ORRCDBTSL01.lsnr ONLINE ONLINE on rac01
ora.rac01.gsd OFFLINE OFFLINE
ora.rac01.ons ONLINE ONLINE on rac01
ora.rac01.vip ONLINE ONLINE on rac01
ora.rac02.ASM2.asm ONLINE ONLINE on rac02
ora.rac02.LISTENER_ORRCDBTSL02.lsnr ONLINE ONLINE on rac02
ora.rac02.gsd OFFLINE OFFLINE
ora.rac02.ons ONLINE ONLINE on rac02
ora.rac02.vip ONLINE ONLINE on rac02
ora.registry.acfs ONLINE ONLINE on rac01
ora.scan1.vip ONLINE ONLINE on rac01
ora.scan2.vip ONLINE ONLINE on rac02
ora.scan3.vip ONLINE ONLINE on rac02
ora.testdb.db ONLINE ONLINE on rac01
[grid@rac02 grid]$
Hope it helps
SRI
Prior to 11gR2 , the tnsnames.ora entries are
TESTDB =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = rac01-vip)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = rac02-vip)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = testdb.example.com)
)
)
In 11gR2 , the tnsnames.ora entries look like ....
TESTDB =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = rac-scan.example.com)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = testdb.example.com)
)
)
The only difference is that , we specify the scan name instead of all VIPs in the tnsnames.ora file.
So what is the benifit with it?
Suppose if you are adding any node to the cluster, you need to specify corresponding VIP entry for that node in the tnsnames.ora prior to 11gR2. But with SCAN name, we dont need to do any modifications to the tnsnames.ora file. SCAN name will resolve and load balance the client connections to all the nodes in the RAC.
SCAN configuration in the cluster :
The SCAN is configured during the installation of the grid infrastructure that is distributed with Oracle Database 11g Release2. So in order to configure SCAN, you need to create a single name that resolves to 3 IP addresses using a round robin algorithm. The IP addresses must be on the same subnet as your public network in the cluster.
rac-scan.example.com IN A 133.22.67.194
IN A 133.22.67.193
IN A 133.22.67.192
SCAN Details
[grid@rac01 ~]$ host rac-scan
rac-scan.example.com has address 133.22.67.192
rac-scan.example.com has address 133.22.67.193
rac-scan.example.com has address 133.22.67.194
[grid@rac01 ~]$ nslookup rac-scan
Server: 133.22.5.53
Address: 133.22.5.53#53
Name: rac-scan.example.com
Address: 133.22.67.194
Name: rac-scan.example.com
Address: 133.22.67.193
Name: rac-scan.example.com
Address: 133.22.67.192
[grid@rac01 ~]$ ping rac-scan
PING rac-scan.example.com (133.22.67.193) 56(84) bytes of data.
64 bytes from rac-scan.example.com (133.22.67.193): icmp_seq=1 ttl=64 time=0.187 ms
64 bytes from rac-scan.example.com (133.22.67.193): icmp_seq=2 ttl=64 time=0.144 ms
64 bytes from rac-scan.example.com (133.22.67.193): icmp_seq=3 ttl=64 time=0.152 ms
--- rac-scan.example.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 1999ms
rtt min/avg/max/mdev = 0.144/0.161/0.187/0.018 ms
[grid@rac01 ~]$ ping rac-scan
PING rac-scan.example.com (133.22.67.192) 56(84) bytes of data.
64 bytes from rac-scan.example.com (133.22.67.192): icmp_seq=1 ttl=64 time=0.042 ms
64 bytes from rac-scan.example.com (133.22.67.192): icmp_seq=2 ttl=64 time=0.046 ms
64 bytes from rac-scan.example.com (133.22.67.192): icmp_seq=3 ttl=64 time=0.051 ms
--- rac-scan.example.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 1999ms
rtt min/avg/max/mdev = 0.042/0.046/0.051/0.006 ms
[grid@rac01 ~]$ ping rac-scan
PING rac-scan.example.com (133.22.67.194) 56(84) bytes of data.
64 bytes from rac-scan.example.com (133.22.67.194): icmp_seq=2 ttl=64 time=0.144 ms
64 bytes from rac-scan.example.com (133.22.67.194): icmp_seq=3 ttl=64 time=0.164 ms
--- rac-scan.example.com ping statistics ---
3 packets transmitted, 2 received, 33% packet loss, time 2001ms
rtt min/avg/max/mdev = 0.144/0.154/0.164/0.010 ms
[grid@rac01 ~]$
[root@rac01 network-scripts]# /u01/home/11.2.0/grid/bin/srvctl config scan_listener
SCAN Listener LISTENER_SCAN1 exists. Port: TCP:1521
SCAN Listener LISTENER_SCAN2 exists. Port: TCP:1521
SCAN Listener LISTENER_SCAN3 exists. Port: TCP:1521
[root@rac01 network-scripts]# /u01/home/11.2.0/grid/bin/srvctl config scan
SCAN name: rac-scan, Network: 1/133.22.38.0/255.255.255.0/eth2
SCAN VIP name: scan1, IP: /rac-scan.example.com/133.22.67.192
SCAN VIP name: scan2, IP: /rac-scan.example.com/133.22.67.194
SCAN VIP name: scan3, IP: /rac-scan.example.com/133.22.67.193
[root@rac01 network-scripts]#
[grid@rac01 ~]$ srvctl status scan
SCAN VIP scan1 is enabled
SCAN VIP scan1 is running on node rac01
SCAN VIP scan2 is enabled
SCAN VIP scan2 is running on node rac02
SCAN VIP scan3 is enabled
SCAN VIP scan3 is running on node rac02
[grid@rac01 ~]$ srvctl status scan_listener
SCAN Listener LISTENER_SCAN1 is enabled
SCAN listener LISTENER_SCAN1 is running on node rac01
SCAN Listener LISTENER_SCAN2 is enabled
SCAN listener LISTENER_SCAN2 is running on node rac02
SCAN Listener LISTENER_SCAN3 is enabled
SCAN listener LISTENER_SCAN3 is running on node rac02
[grid@rac01 ~]$
[grid@rac01 ~]$ ps -ef | grep -i tns
grid 9052 1 0 Aug09 ? 00:00:01 /u01/home/11.2.0/grid/bin/tnslsnr LISTENER -inherit
grid 9098 1 0 Aug09 ? 00:00:01 /u01/home/11.2.0/grid/bin/tnslsnr LISTENER_SCAN1 -inherit
grid 21388 20424 0 05:06 pts/1 00:00:00 grep -i tns
[grid@rac01 ~]$
[grid@rac02 ~]$ ps -ef | grep -i tns
grid 1323 1292 0 05:07 pts/0 00:00:00 grep -i tns
grid 9110 1 0 Aug09 ? 00:00:02 /u01/home/11.2.0/grid/bin/tnslsnr LISTENER -inherit
grid 17278 1 0 Aug09 ? 00:00:01 /u01/home/11.2.0/grid/bin/tnslsnr LISTENER_SCAN2 -inherit
grid 17285 1 0 Aug09 ? 00:00:01 /u01/home/11.2.0/grid/bin/tnslsnr LISTENER_SCAN3 -inherit
[grid@rac02 ~]$
[grid@rac02 grid]$ Check_CRS.txt
HA Resource Target State
----------- ------ -----
ora.CRS.dg ONLINE ONLINE on rac01
ora.FRA.dg ONLINE ONLINE on rac01
ora.LISTENER.lsnr ONLINE ONLINE on rac01
ora.LISTENER_SCAN1.lsnr ONLINE ONLINE on rac01
ora.LISTENER_SCAN2.lsnr ONLINE ONLINE on rac02
ora.LISTENER_SCAN3.lsnr ONLINE ONLINE on rac02
ora.RACDB_DATA.dg ONLINE ONLINE on rac01
ora.asm ONLINE ONLINE on rac01
ora.eons ONLINE ONLINE on rac01
ora.gsd OFFLINE OFFLINE
ora.net1.network ONLINE ONLINE on rac01
ora.oc4j OFFLINE OFFLINE
ora.ons ONLINE ONLINE on rac01
ora.rac01.ASM1.asm ONLINE ONLINE on rac01
ora.rac01.LISTENER_ORRCDBTSL01.lsnr ONLINE ONLINE on rac01
ora.rac01.gsd OFFLINE OFFLINE
ora.rac01.ons ONLINE ONLINE on rac01
ora.rac01.vip ONLINE ONLINE on rac01
ora.rac02.ASM2.asm ONLINE ONLINE on rac02
ora.rac02.LISTENER_ORRCDBTSL02.lsnr ONLINE ONLINE on rac02
ora.rac02.gsd OFFLINE OFFLINE
ora.rac02.ons ONLINE ONLINE on rac02
ora.rac02.vip ONLINE ONLINE on rac02
ora.registry.acfs ONLINE ONLINE on rac01
ora.scan1.vip ONLINE ONLINE on rac01
ora.scan2.vip ONLINE ONLINE on rac02
ora.scan3.vip ONLINE ONLINE on rac02
ora.testdb.db ONLINE ONLINE on rac01
[grid@rac02 grid]$
Hope it helps
SRI
Post a Comment
Thank you for visiting our site and leaving your valuable comment.