Understanding Oracle RAC 12c Internals as presented during Oracle Open World 2013 with Mark Scardina.
This is part two of the Oracle RAC 12c "reindeer series" used for OOW13 Oracle RAC-related presentations.
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
The following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. The development, release, and timing of any features or functionality described for Oracle’s products remains at the sole discretion of Oracle.
[RAC]> srvctl status database -d raccdb1 Instance raccdb1_1 is running on node comet Instance raccdb1_2 is running on node dancer Instance raccdb1_3 is running on node vixen Instance raccdb1_4 is running on node dasher
§ Flex ASM introduces new local resources: – At least one ASM listener
– One “proxy_advm” (per node)
§ Used for ACFS access to Flex ASM instances
§ Connections from a database instance to an ASM instance are based on SQLnet using listeners.
– The listener directs the connection to the least loaded ASM instance based on the load metric it maintains.
– The connection details are fetched from CSS global data
– The ASM instance to which the database instance connects to is listed in the database alert log:
§ NOTE: ASMB connected to ASM instance +ASM1 (Flex mode; client id 0x10004)
– The userid and password supplied are also managed automatically. They are supplied while establishing the session, not while connecting.
[GRID]> crsctl stat res -t ------------------------------------------------------------------------------- Name Target State Server State details ------------------------------------------------------------------------------- Local Resources -------------------------------------------------------------------------------
§ Oracle Flex Cluster – Will be the basis for more uses cases
in future releases (for resource mgmt)
– Can consist of only HUB-nodes
– If a Leaf-node has access to shared storage, it can perform a role change to a HUB-node
– A Standard Cluster can be converted to a Flex Cluster at any time after the installation
– Once a cluster is configured as a Flex Cluster this configuration is irreversible without a re- configuration of the cluster.
§ More Information: – http://docs.oracle.com/cd/E16655_01/rac.121/e17886/
bigcluster.htm#CWADD92560
[GRID]> crsctl get cluster mode config Cluster is configured as "standard" [GRID]> crsctl get cluster mode status Cluster is running in "standard" mode [GRID]> olsnodes -s -a -t dasher Active Hub Unpinned vixen Active Hub Unpinned dancer Active Hub Unpinned comet Active Hub Unpinned
• Not a Flex Cluster yet. • An all-Hub Flex Cluster is
§ More Information: – http://docs.oracle.com/cd/E16655_01/rac.121/e17886/
bigcluster.htm#CHDJGBII
§ Flex Cluster implementations require GNS
§ Converting a Flex Cluster requires a cluster restart – Use “crsctl stop crs” followed by “crsctl start crs” as root
– Hence the difference between “status” and “config”
– Nodes can be restarted in a rolling fashion:
[GRID]> srvctl config gns PRKF-1110 : Neither GNS server nor GNS client is configured on this cluster [GRID]> more /etc/hosts |grep gns 10.1.1.99 mygns mygns.localdomain #Change to root [GRID]> su Password: [GRID]> srvctl add gns -vip mygns [GRID]> srvctl start gns [GRID]> crsctl set cluster mode flex Cluster mode set to "flex » [GRID]> crsctl get cluster mode status Cluster is running in "standard" mode [GRID]> crsctl get cluster mode config Cluster is configured as "flex"
[GRID]> date ; hostname ; crsctl get cluster mode status Sat Sep 14 14:43:45 PDT 2013 dasher Cluster is running in "flex" mode
[GRID]> date ; hostname ; crsctl get cluster mode status Sat Sep 14 14:43:37 PDT 2013 dancer Cluster is running in "standard" mode
dancer srvpool: backoffice dasher srvpool: frontoffice Oracle GI | HUB Oracle GI | HUB
Oracle GI | HUB Oracle GI | HUB
Oracle RAC Oracle RAC
Oracle RAC Oracle RAC
raccdb1
raccdb1_3
raccdb1_4 raccdb1_2
raccdb1_1
[GRID]> crsctl get cluster mode status Cluster is running in "flex" mode [GRID]> olsnodes -a -s -t dasher Active Hub Unpinned vixen Active Hub Unpinned dancer Active Hub Unpinned comet Active Hub Unpinned [RAC]> srvctl status database -d raccdb1 Instance raccdb1_1 is running on node comet Instance raccdb1_2 is running on node dancer Instance raccdb1_3 is running on node vixen Instance raccdb1_4 is running on node dasher
§ Nothing at first glance… – An all-Hub Flex Cluster behaves
like a Standard Cluster
– When converting from Standard Cluster all nodes are converted into HUB-nodes
Oracle Flex Cluster Changing node roles – server vixen becomes a Leaf node
§ More Information: – http://docs.oracle.com/cd/E16655_01/rac.121/e17886/
bigcluster.htm#BABHCEAE
[GRID]> hostname vixen [GRID]> srvctl config vip -node vixen VIP exists: network number 1, hosting node vixen VIP Name: vixen-vip VIP IPv4 Address: 10.1.1.33 VIP IPv6 Address: [GRID]> crsctl get node role config Node 'vixen' configured role is 'hub' #Change to root … [GRID]> su Password: [GRID]> crsctl set node role leaf CRS-4408: Node 'vixen' configured role successfully changed; restart Oracle High Availability Services for new role to take effect.
[GRID]> crsctl stop crs [GRID]> crsctl start crs
[GRID]> crsctl get node role config Node 'vixen' configured role is 'leaf' [GRID]> srvctl config vip -node vixen VIP exists: network number 1, hosting node vixen VIP Name: vixen-vip VIP IPv4 Address: 10.1.1.33 VIP IPv6 Address:
Oracle Flex Cluster Node role change to Leaf – what has changed?
vixen srvpool: FREE comet srvpool: backoffice
dancer srvpool: backoffice dasher srvpool: frontoffice Oracle GI | HUB Oracle GI | HUB
Oracle GI | LEAF Oracle GI | HUB
Oracle RAC Oracle RAC
Oracle RAC Oracle RAC
raccdb1
raccdb1_4 raccdb1_2
raccdb1_1 [RAC]> srvctl status database -d raccdb1 Instance raccdb1_1 is running on node comet Instance raccdb1_2 is running on node dancer Instance raccdb1_4 is running on node dasher [RAC]> srvctl status server -servers vixen -detail Server active pools: Free Server name: vixen Server state: ONLINE Server state details:
§ Server vixen has converted to a Leaf node § Leaf nodes do not host DB instances in 12.1 § Server vixen moved to Server Pool “FREE” as
Server Pool “frontoffice” is a database pool – Note: all nodes in this example have access
to shared storage, which means only the node role changes – storage access is preserved.
Oracle Flex Cluster Revert role change – server vixen becomes a HUB again
comet srvpool: backoffice
dancer srvpool: backoffice dasher srvpool: frontoffice Oracle GI | HUB Oracle GI | HUB
Oracle GI | HUB
Oracle RAC Oracle RAC
Oracle RAC
raccdb1
raccdb1_4 raccdb1_2
raccdb1_1
vixen srvpool: frontoffice Oracle GI | HUB
Oracle RAC
raccdb1_3
#As root [GRID]> crsctl set node role hub CRS-4408: Node 'vixen' configured role successfully changed; restart Oracle High Availability Services for new role to take effect. [GRID]> crsctl stop crs [GRID]> crsctl start crs [RAC]> srvctl status database -d raccdb1 Instance raccdb1_1 is running on node comet Instance raccdb1_2 is running on node dancer Instance raccdb1_3 is running on node vixen Instance raccdb1_4 is running on node dasher
Policy-Managed Databases with Oracle RAC 12c Adding another dimension – Database Services
vixen srvpool: frontoffice
dancer srvpool: backoffice dasher srvpool: frontoffice Oracle GI | HUB Oracle GI | HUB
Oracle GI | HUB
Oracle RAC Oracle RAC
Oracle RAC
raccdb1
raccdb1_3
raccdb1_4 raccdb1_2
[GRID]> srvctl status serverpool Server pool name: frontoffice Active Servers count: 2 Server pool name: backoffice Active Servers count: 2 [RAC]> srvctl status service -d raccdb1 Service crmsvc is running on nodes: dasher,vixen Service hrsvc is running on nodes: comet,dancer
§ Database Services – Ensure that workload is hosted in the respective
server pool with the cardinality defined as part of the policy definition.
Policy-Managed Databases with Oracle RAC 12c Improved HA Management - Startup
raccdb1
[GRID]> srvctl config serverpool Server pool name: frontoffice Importance: 10, Min: 2, Max 2 Server pool name: backoffice Importance: 5, Min: 1, Max 1 Server pool name: Free Importance: 0, Min: 0, Max -1
§ Defining a Service Startup Order – Ensure services are started in specified groups
and specified order.
– Leverages Serverpool Min and Importance properties
Policy-Managed Databases with Oracle RAC 12c Improved HA Management – New Failover Strategy
raccdb1
[GRID]> srvctl config serverpool Server pool name: frontoffice Importance: 10, Min: 2, Max 2 Server pool name: backoffice Importance: 5, Min: 1, Max 1 [GRID]> srvctl status serverpool Server pool name: frontoffice Active Servers count: 2 Server pool name: backoffice Active Servers count: 1
dasher srvpool: frontoffice Oracle GI | HUB
Oracle RAC
raccdb1_4
vixen srvpool: frontoffice Oracle GI | HUB
Oracle RAC
raccdb1_3
comet srvpool: backoffice Oracle GI | HUB
Oracle RAC
raccdb1_1
§ Servers “Move” to Replace Failed node – Protects against cascade failures due to load
– Ensures workload isolation between pools
– Less important workloads shutdown transactionally
Policy-Managed Databases with Oracle RAC 12c Improved HA Management – Manage Last Service Standing
raccdb1
[RAC]> srvctl config serverpool Server pool name: frontoffice Importance: 10, Min: 2, Max 2 Server pool name: backoffice Importance: 5, Min: 1, Max 1 [RAC]> srvctl status service –db Service crmsrv is running on nodes comet,vixen Service hrsvc is not running
dasher srvpool: frontoffice Oracle GI | HUB
Oracle RAC
raccdb1_4
vixen srvpool: frontoffice Oracle GI | HUB
Oracle RAC
raccdb1_3
comet srvpool: backoffice Oracle GI | HUB
Oracle RAC
raccdb1_1
§ Business Critical Services survive multiple failures – Most important pool always gets the servers
– Services preserved across multiple failures
– Less important workloads shutdown transactionally
Policy-Managed Databases with Oracle RAC 12c Improved HA Management – Dynamic Provisioning
vixen srvpool: frontoffice
dancer srvpool: backoffice dasher srvpool: frontoffice Oracle GI | HUB Oracle GI | HUB
Oracle GI | HUB
Oracle RAC Oracle RAC
Oracle RAC
raccdb1
raccdb1_3
raccdb1_4 raccdb1_2
[GRID]> srvctl modify serverpool –serverpool backoffice –max 1 [RAC]> srvctl config serverpool Server pool name: frontoffice Importance: 10, Min: 2, Max 4 Server pool name: backoffice Importance: 5, Min: 1, Max 1 [RAC]> srvctl status service –db Service crmsrv is running on nodes dasher,dancer,vixen Service hrsvc is not running
comet srvpool: backoffice Oracle GI | HUB
Oracle RAC
raccdb1_1
§ Add Servers Just-In Time to meet demand – Server Pools sized via Min and Max properties
– Dynamically controlled by QoS Management
– Planned control via Clusterware or QoSM Policies
Policy-Management with Oracle RAC 12c Support for Multiple Policies tracking business objectives
§ More Information: – http://docs.oracle.com/cd/E16655_01/rac.121/e17886/pbmgmt.htm
§ New in Oracle Grid Infrastructure 12c – Server Categories
§ Server Categories use server attributes to allow for an active use of differently sized servers
– Policy Sets § Policy Sets allow for dynamic adjustment
to demand changes in an atomic transaction
Server Categories • NAME • ACL • EXPRESSION • …
Server Attributes • NAME • MEMORY_SIZE • CPU_COUNT • CPU_CLOCK_RATE • CPU_HYPERTHREADING • CPU_EQUIVALENCY • …
[GRID]> crsctl modify policyset –attr "LAST_ACTIVATED_POLICY=NightTime“ CRS-2673: Attempting to stop 'ora.raccdb1.crmsvc.svc' on 'comet' CRS-2673: Attempting to stop 'ora.raccdb1.crmsvc.svc' on 'dancer' CRS-2677: Stop of 'ora.raccdb1.crmsvc.svc' on 'comet' succeeded CRS-2673: Attempting to start 'ora.raccdb1.backup.svc' on 'comet' CRS-2677: Stop of 'ora.raccdb1.crmsvc.svc' on 'dancer' succeeded CRS-2672: Attempting to start 'ora.raccdb1.hrsvc.svc' on 'dancer‘
Policy-Management with Oracle RAC 12c Setting up policy sets – Provision Server Pools and creating a PolicySet
§ Add another server pool “backup”
§ Set up policy set with 3 server pools & 3 policies as follows: – DayTime:
§ frontoffice uses three servers (MIN_SIZE=3)
§ backoffice uses one server (MIN_SIZE=1)
§ backup does not run during daytime (MIN_SIZE=0)
– NightTime:
§ frontoffice uses one server (MIN_SIZE=1)
§ backoffice uses two servers (MIN_SIZE=2)
§ backup uses only one server (MIN_SIZE=1)
– Weekend:
§ frontoffice uses one server (MIN_SIZE=1)
§ backoffice uses one server (MIN_SIZE=1)
§ backup uses two servers (MIN_SIZE=2)
[GRID]> srvctl add serverpool –serverpool backup –min 0 –max 2 –importance 20 [GRID] srvctl status serverpool Server pool name: frontoffice Active Servers count: 3 Server pool name: backoffice Active Servers count: 1 Server pool name: backup Active Servers count: 0
Policy-Management with Oracle RAC 12c Using Policy Sets – part 2: check the result
vixen srvpool: frontoffice comet srvpool: backup
dancer srvpool: backup dasher srvpool: backoffice Oracle GI | HUB Oracle GI | HUB
Oracle GI | HUB Oracle GI | HUB
Oracle RAC Oracle RAC
Oracle RAC Oracle RAC
raccdb1
raccdb1_3
raccdb1_4 raccdb1_2
raccdb1_1
[RAC]> srvctl status database -d raccdb1 Instance raccdb1_1 is running on node comet Instance raccdb1_2 is running on node dancer Instance raccdb1_3 is running on node vixen Instance raccdb1_4 is running on node dasher [RAC]> srvctl status service -d raccdb1 Service backup is running on nodes: comet,dancer Service crmsvc is running on nodes: vixen Service hrsvc is running on nodes: dasher
Policy-Management with Oracle RAC 12c Adding Server Categories to the picture – part 1
§ Assume you have 2 servers that have better IO – Use these servers for backups whenever possible
§ Here comet and dancer have better IO by definition
§ What you need to do: – Set up a server category that identifies the servers
– Add the use of the server category to the server pool § Define the server pools that utilize the category
and during which policy activation it shall be used.
§ You need to restart the cluster stack on the servers that you modify in this fashion
[GRID]> su Password: [GRID]> crsctl set server label IOplus ... #On dancer [GRID]> crsctl set server label Ioplus [GRID]> crsctl get server label CRS-4972: Current SERVER_LABEL parameter value is Ioplus [GRID]> crsctl status server comet dancer –f Comet Dancer
[GRID]> crsctl modify policyset –attr "LAST_ACTIVATED_POLICY=DayTime“ [GRID] srvctl status serverpool Server pool name: frontoffice Active Servers count: 3 Server pool name: backoffice Active Servers count: 1 Server pool name: backup Active Servers count: 0
[RAC]> srvctl status service -d raccdb1 Service backup is not running. Service crmsvc is running on nodes: dasher,vixen,comet Service hrsvc is running on nodes: dancer
Policy-Management with Oracle RAC 12c Using Policy Sets means changing policies on a push of a button
dancer srvpool: frontoffice dasher srvpool: frontoffice Oracle GI | HUB Oracle GI | HUB
Oracle GI | HUB Oracle GI | HUB
Oracle RAC Oracle RAC
Oracle RAC Oracle RAC
raccdb1
raccdb1_3
raccdb1_4 raccdb1_2
raccdb1_1
[GRID]> date; crsctl modify policyset -attr "LAST_ACTIVATED_POLICY=DayTime"; date Mon Sep 16 19:26:42 PDT 2013 CRS-2673: Attempting to stop 'ora.raccdb1.backup.svc' on 'dancer' CRS-2673: Attempting to stop 'ora.raccdb1.backup.svc' on 'comet' CRS-2677: Stop of 'ora.raccdb1.backup.svc' on 'dancer' succeeded CRS-2677: Stop of 'ora.raccdb1.backup.svc' on 'comet' succeeded CRS-2672: Attempting to start 'ora.raccdb1.crmsvc.svc' on 'dancer' CRS-2672: Attempting to start 'ora.raccdb1.crmsvc.svc' on 'comet' CRS-2676: Start of 'ora.raccdb1.crmsvc.svc' on 'dancer' succeeded CRS-2676: Start of 'ora.raccdb1.crmsvc.svc' on 'comet' succeeded Mon Sep 16 19:26:43 PDT 2013 è Time to execute: 1 second!
Policy-Management with Oracle RAC 12c What-If evaluation of policy changes
[RAC]> srvctl status service -d raccdb1 Service backup is not running. Service crmsvc is running on nodes: dancer,vixen,dasher Service hrsvc is running on nodes: comet [GRID]> crsctl eval activate policy Weekend Stage Group 1: ------------------------------------------------------------------------------- Stage Number Required Action ------------------------------------------------------------------------------- 1 Y Server 'comet' will be moved from pools [ora.frontoffice] to pools [ora.backup] Y Server 'dancer' will be moved from pools [ora.frontoffice] to pools [ora.backup] Y Resource 'ora.raccdb1.crmsvc.svc' (1/1) will be in state [OFFLINE] Y Resource 'ora.raccdb1.crmsvc.svc' (2/1) will be in state [OFFLINE] 2 Y Resource 'ora.raccdb1.backup.svc' (1/1) will be in state [ONLINE|INTERMEDIATE] on server[comet] Y Resource 'ora.raccdb1.backup.svc' (2/1) will be in state [ONLINE|INTERMEDIATE] on server [dancer]
What-If with Oracle RAC 12c What-If evaluation of policy changes – in various levels
[RAC]> srvctl status service -d raccdb1 Service backup is not running. Service crmsvc is running on nodes: dancer,vixen,dasher Service hrsvc is running on nodes: comet [GRID]> crsctl eval activate policy Weekend -admin -l 'serverpools' NAME = Free ACTIVE_SERVERS = NAME = Generic ACTIVE_SERVERS = NAME = ora.backoffice ACTIVE_SERVERS = vixen NAME = ora.backup ACTIVE_SERVERS = comet dancer NAME = ora.frontoffice ACTIVE_SERVERS = dasher
[RAC]> srvctl status service -d raccdb1 Service backup is not running. Service crmsvc is running on nodes: dancer,vixen,dasher Service hrsvc is running on nodes: comet [GRID]> crsctl eval activate policy Weekend -admin -l 'resources' -------------------------------------------------------------------------------- Name Target State Server Effect -------------------------------------------------------------------------------- Cluster Resources -------------------------------------------------------------------------------- ora.mgmtdb 1 ONLINE ONLINE dasher ora.raccdb1.backup.svc 1 ONLINE ONLINE comet Started 2 ONLINE ONLINE dancer Started ora.raccdb1.crmsvc.svc 1 ONLINE OFFLINE Stopped 2 ONLINE OFFLINE Stopped 3 ONLINE ONLINE dasher ora.raccdb1.db 1 ONLINE ONLINE comet 2 ONLINE ONLINE dancer 3 ONLINE ONLINE vixen 4 ONLINE ONLINE dasher ora.raccdb1.hrsvc.svc 1 ONLINE ONLINE vixen 2 ONLINE OFFLINE --------------------------------------------------------------------------------
Policy-Management with Oracle RAC 12c Information on each step on the way
Before After
[GRID]> crsctl modify policyset -attr "LAST_ACTIVATED_POLICY=NightTime“ CRS-2673: Attempting to stop 'ora.raccdb1.crmsvc.svc' on 'dancer' CRS-2673: Attempting to stop 'ora.raccdb1.crmsvc.svc' on 'comet' CRS-2677: Stop of 'ora.raccdb1.crmsvc.svc' on 'dancer' succeeded CRS-2677: Stop of 'ora.raccdb1.crmsvc.svc' on 'comet' succeeded CRS-2672: Attempting to start 'ora.raccdb1.backup.svc' on 'dancer' CRS-2672: Attempting to start 'ora.raccdb1.backup.svc' on 'comet' CRS-2676: Start of 'ora.raccdb1.backup.svc' on 'dancer' succeeded CRS-2676: Start of 'ora.raccdb1.backup.svc' on 'comet' succeeded
[GRID]> crsctl modify policyset -attr "LAST_ACTIVATED_POLICY=DayTime" CRS-2673: Attempting to stop 'ora.raccdb1.backup.svc' on 'dancer' CRS-2673: Attempting to stop 'ora.raccdb1.backup.svc' on 'comet' CRS-2677: Stop of 'ora.raccdb1.backup.svc' on 'dancer' succeeded CRS-2677: Stop of 'ora.raccdb1.backup.svc' on 'comet' succeeded CRS-2672: Attempting to start 'ora.raccdb1.crmsvc.svc' on 'dancer' CRS-2672: Attempting to start 'ora.raccdb1.crmsvc.svc' on 'comet' CRS-2676: Start of 'ora.raccdb1.crmsvc.svc' on 'dancer' succeeded CRS-2676: Start of 'ora.raccdb1.crmsvc.svc' on 'comet' succeeded
Multiple Subnet Support in Oracle RAC 12c Preparing for multiple subnet usage – part 1
§ Multiple subnet support was introduced with Oracle RAC 11g Rel. 2
– Using multiple subnets per cluster can come in handy for various reasons – backups for example.
vixen comet Oracle GI | HUB Oracle GI | HUB
Oracle RAC Oracle RAC
ora.net1.network ora.net1.network
[GRID]> crsctl stat res ora.net1.network -t ------------------------------------------------------------------------ Name Target State Server State details ------------------------------------------------------------------------ Local Resources ------------------------------------------------------------------------ ora.net1.network ONLINE ONLINE comet STABLE ONLINE ONLINE dancer STABLE ONLINE ONLINE dasher STABLE ONLINE ONLINE vixen STABLE ------------------------------------------------------------------------
[GRID]> oifcfg iflist eth0 10.1.1.0 eth1 192.168.7.0 eth1 169.254.128.0 eth2 172.149.2.0 eth2 169.254.0.0 eth3 10.2.2.0 [GRID]> oifcfg getif eth0 10.1.1.0 global public eth1 192.168.7.0 global cluster_interconnect,asm eth2 172.149.2.0 global cluster_interconnect,asm
One more physical interface that can be used for public or
private communication.
Private communication already uses multiple subnets.
Multiple Subnet Support in Oracle RAC 12c Preparing for multiple subnet usage – part 2
§ Multiple subnet support can be activated in two alternative ways:
1. Defining interface name and subnet identifier
2. Defining only a subnet identifier (interface: “*”)
§ Using approach one allows for more consistent management and will be used in this example.
[GRID]> oifcfg setif -global eth3/10.2.2.0:public [GRID]> oifcfg getif eth0 10.1.1.0 global public eth1 192.168.7.0 global cluster_interconnect,asm eth2 172.149.2.0 global cluster_interconnect,asm eth3 10.2.2.0 global public
[GRID]> oifcfg setif -global "*"/10.2.2.0:public [GRID]> oifcfg getif eth0 10.1.1.0 global public eth1 192.168.7.0 global cluster_interconnect,asm eth2 172.149.2.0 global cluster_interconnect,asm * 10.2.2.0 global public PRIF-29: Warning: wildcard in network parameters can cause mismatch among GPnP profile, OCR, and system
[GRID]> srvctl modify listener -h Modifies the configuration for the listener. Usage: srvctl modify listener [-listener <lsnr_name>] [-oraclehome <path>] [-endpoints "[TCP:]<port>[, ...][/IPC:<key>][/NMP:<pipe_name>][/TCPS:<s_port>] [/SDP:<port>]"] [-user <oracle_user>] [-netnum <net_num>] #Example – adding another listener on another port on net 1 [GRID]> srvctl add listener -listener LSNR2NET1 -netnum 1 [GRID]> srvctl config listener -listener LSNR2NET1 Name: LSNR2NET1 Network: 1, Owner: grid Home: <CRS home> End points: TCP:1522 [GRID]> srvctl status listener -listener LSNR2NET1 Listener LSNR2NET1 is enabled Listener LSNR2NET1 is not running [GRID]> srvctl start listener -listener LSNR2NET1 [GRID]> srvctl status listener -listener LSNR2NET1 Listener LSNR2NET1 is enabled Listener LSNR2NET1 is running on node(s): comet,vixen,dasher,dancer
§ Can you define another port? - YES § Can you define another owner? – YES § Can you define another home? – YES, if needed. § Can I add another listener on another port? - YES
[GRID]> srvctl modify listener -listener LSNR2NET1 -endpoints "TCP:1528« [GRID]> lsnrctl status LSNR2NET1 LSNRCTL for Linux: Version 12.1.0.1.0 - Production on 16-SEP-2013 19:34:13 Copyright (c) 1991, 2013, Oracle. All rights reserved. Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=LSNR2NET1))) STATUS of the LISTENER ------------------------ Alias LSNR2NET1 Version TNSLSNR for Linux: Version 12.1.0.1.0 - Production Start Date 16-SEP-2013 16:35:34
Uptime 0 days 2 hr. 58 min. 39 sec Trace Level off Security ON: Local OS Authentication SNMP OFF Listener Parameter File /u01/app/12.1.0/grid/network/admin/listener.ora Listener Log File /u01/app/oracle/diag/tnslsnr/dasher/lsnr2net1/alert/log.xml Listening Endpoints Summary...
Listeners in Oracle RAC 12c Other listeners used as part of the stack
[GRID]> crsctl stat res –t -------------------------------------------------------------------------------- Name Target State Server State details -------------------------------------------------------------------------------- Local Resources --------------------------------------------------------------------------------
§ Can you define another port? - YES § Can I define multiple ports? – YES**
§ Can you define another owner? – NO § Can you define another home? – NO
§ Can I add another listener on another port? – YES
§ See MOS Note 220970.1 – The RAC FAQ:
§ How to use SCAN and node listeners with different ports?
• ** For the purpose of allowing applications to maintain a distinguishable connect string on host / port level using one SCAN as the host or to enable port-based firewall configurations, SCAN can be set up to support more than one port. • It needs to be noticed that different ports are only used for an initial connect. • Once a connection using SCAN on any SCAN port has been established, port assignment is not maintained . • This means that all SCAN ports are treated the same, so that a connection that comes in on any SCAN port can be directed to any registered local listener on any port.