Oracle Database 12c RELEASED… Download Available

After a long wait, finally the Oracle released the commercial version of Oracle Database 12c.


Oracle Database Products are:

  • Oracle Database 12c Release 1
  • Oracle Database 12c Release 1 Grid Infrastructure (12.1.0.1.0)
    Contains the Grid Infrastructure Software including Oracle Clusterware, Automated Storage Management (ASM), and ASM Cluster File System. Download and install prior to installing Oracle Real Application Clusters, Oracle Real Application Clusters One Node, or other application software in a Grid Environment

  • Oracle Database 12c Release 1 Global Service Manager (GSM/GDS) (12.1.0.1.0)
  • Oracle Database Gateways 12c Release 1 (12.1.0.1.0)
    Contains the Oracle Database Gateways to non-Oracle Databases. Download if you want to set up a heterogeneous data integration environment

  • Oracle Database 12c Release 1 Examples
    Contains examples of how to use the Oracle Database. Download if you are new to Oracle and want to try some of the examples presented in the Documentation

  • Oracle Database 12c Release 1 Client (12.1.0.1.0)
    Contains the Oracle Client Libraries for Linux. Download if you want the client libraries only


    Major New Oracle Database 12c Features and Products

    • Adaptive Execution Plans
    • Application Continuity
    • Automatic Data Optimization (ADO)
    • Data Guard Far Sync
    • Data Redaction
    • Global Data Services
    • Heat Map
    • Multitenant (Pluggable Databases)
    • Pattern Matching
    • SQL Translation Framework

    http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html

    Download Available only to:

  • Linux x86-64
    Linux Download

  • Solaris Sparc64
    Solaris Sparc64 Download

  • Solaris (x86-64)
    Solaris x64 Download

    Plug into the Cloud with Oracle Database 12c

    Enjoy…


  • How configure Multiples Public Network in a Grid Infrastructure 11g R2 (11.2) environment

    Introduction

    Using earlier versions of RAC Oracle 11.2 is not possible to create more than one public subnet to serve different database clients in different sites/network, to get the routing of connections we should have help from a software/hardware from third parties.

    Now it’s possible configure multiples network segment (i.e different subnet) with GI/RAC 11.2.
    Oracle GI/RAC 11.2 works like a router managing connections of multiple network, routing connections to the correct network/endpoint.

    During the Grid Infrastructure installation, it’s not possible configure more than one public/vip network. So, the other networks should be configured manually after installation.

    Purpose

    The purpose of this post is to explain how to create  multipe network/listener/services on multiple public network in an 11.2 Grid Infrastructure environment.

    No downtime is required to perform this task. All tasks can be done with Clusterware and RAC online.

    Concept before Starting

    Please Note – Limitations of Grid Infrastructure 11g R2:

    SCAN feature will work only in one public network, because we can configure only one SCAN for entire Clusterware Stack and SCAN must be associated whith only one public network. So, only one  public network  we can use all feature  of GI 11.2 the others public networks will be required use the VIP in our Oracle Clients  like in version 11g R1 and 10g.

    I believe that Oracle will solve this issue in later versions.

    Before start configuration you must learn how things work to know to properly configure our RAC.  You need to know how they work to understand how to configure your Oracle RAC.


    Basic Concept:

    The listener is a server-side process that listens for incoming client connection requests and manages traffic to the database. When a database instance starts, and at various times during its life, the instance contacts a listener and establishes a communication pathway to this instance.

    Service registration enables the listener to determine whether a database service and its service handlers are available. A service handler is a dedicated server process or dispatcher that acts as a connection point to a database. During registration, the PMON process provides the listener with the instance name, database service names, and the type and addresses of service handlers. This information enables the listener to start a service handler when a client request arrives.

    A service name is a logical representation of a service used for client connections.

    When a client connects to a listener, it requests a connection to a service.Thus, the listener acts as a mediator between the client and instances and routes the connection request to the right place.

    To ensure service registration works properly,  the initialization parameter file should contain the following parameters:

    • LOCAL_LISTENER for the local listener
    • REMOTE_LISTENER for the remote listener

    LOCAL_LISTENER: To have PMON register with a local listener in RAC env we must configure the LOCAL_LISTENER parameter in the initialization parameter file to locate the local listener. Multiple addresses are supported, but connect-time failover and client load balancing features are not supported.

    REMOTE_LISTENER: A remote listener is a listener residing on one computer that redirects connections to a database instance on another computer. In a dedicated server RAC environment, we must enable the PMON background process to register with a remote listener. You do this by configuring the REMOTE_LISTENER parameter.

    Each network must have a dedicated LISTENER.  It would be necessary to configure multiple addresses (Listener) in the parameter  LOCAL_LISTENER from all instances  to serve NET1 and NET2. Multiple addresses are supported, but connect-time failover and client load balancing features are not supported. (first problem) 😦

    If we use  only parameter LOCAL_LISTENER and REMOTE_LISTENER the connections can be redirected by REMOTE_LISTENER to LOCAL_LISTENER  from others network. (second problem) 😦 😦

    To ensure that connections to the remote listener are only redirected to the local listener on the same network Oracle create new Parameter LISTENER_NETWORKS :-), this parameter is avaliable only in version 11g R2.

    • LISTENER_NETWORKS specifies one or more sets of local & remote listeners for cross-registration. All listeners within the same network_name will cross-register.

    Using parameter LISTENER_NETWORKS we can configure multipes LOCAL & REMOTE Listener in your own network.  It ensure wich connections incoming by network net1 will be redirected over RAC Database only on network net1.

    This tasks will be done in 2 steps:

    1. Create New Network and Listener in Oracle Clusterware

    2. Configure RAC to support multipe Network and Create Service

    Creating  New Network and Listener in Oracle Clusterware

    The Clusterware must be configured and online in all nodes.

    Overview of Environment

    1. First Public network is called North.
    2. Second Public network is called South.
    3. Third Network is called East.
    Infrastructure:
    
    Servers Hostname
    1° northora01
    2° northora02
    3° northora03
    
    North - eth0 - 192.168.217.0
    # Public Hostnames/IP North
    northora01 - 192.168.217.60
    northora02 - 192.168.217.45
    northora03 - 192.168.217.68
    
    # Virtual Hostnames/IP North
    northora01-vip - 192.168.217.52
    northora02-vip - 192.168.217.53
    northora02-vip - 192.168.217.69
    
    South - eth2 - 140.120.120.0
    # Public Hostnames/IP South
    southora01 - 140.120.120.200
    southora02 - 140.120.120.201
    southora03 - 140.120.120.202
    # Virtual Hostnames/IP South
    southora01-vip - 140.120.120.100
    southora02-vip - 140.120.120.101
    southora03-vip - 140.120.120.102
    
    East - eth3 - 154.120.120.0
    # Public Hostnames/IP East
    eastora01 - 154.120.120.200
    eastora02 - 154.120.120.201
    eastora03 - 154.120.120.202
    # Virtual Hostnames/IP East
    eastora01-vip - 154.120.120.100
    eastora02-vip - 154.120.120.101
    eastora03-vip - 154.120.120.102
    

    Before start the New Interfaces (eth2 and eth3) must be configured with IP,Mask and Gateway.

    After setting up the new interfaces you must set VIP hostnames from new networks in hosts files (e.g /etc/hosts) from all nodes and add VIP-hostnames in your DNS.

    # /etc/hosts
    # Do not remove the following line, or various programs
    # that require network functionality will fail.
    127.0.0.1               localhost.localdomain localhost
    ::1             localhost6.localdomain6 localhost6
    # Public North
    192.168.217.60          northora01.north.com		northora01
    192.168.217.45          northora02.north.com		northora02
    192.168.217.68          northora03.north.com		northora03
    
    # VIP North
    192.168.217.52          northora01-vip.north.com		northora01-vip
    192.168.217.53          northora02-vip.north.com		northora02-vip
    192.168.217.69          northora03-vip.north.com		northora03-vip
    
    # Public South
    140.120.120.200         southora01.south.com            southora01
    140.120.120.201         southora02.south.com            southora02
    140.120.120.202         southora03.south.com            southora03
    
    # VIP South
    140.120.120.100         southora01-vip.south.com	southora01-vip
    140.120.120.101         southora02-vip.south.com	southora02-vip
    140.120.120.102        	southora03-vip.south.com	southora03-vip
    
    # Public East
    154.120.120.200		eastora01.east.com		eastora01
    154.120.120.201		eastora02.east.com		eastora02
    154.120.120.202		eastora03.east.com		eastora03
    
    # Vip East
    154.120.120.100		eastora01-vip.east.com		eastora01-vip
    154.120.120.101		eastora02-vip.east.com		eastora02-vip
    154.120.120.102		eastora03-vip.east.com		eastora03-vip
    


    Ensure Public and VIP address is defined for the 2nd and 3nd public network

    Creating the CRS resource (network/vip) using srvctl

    A new network and new vip resources for the new network are created by using the ‘-k’ switch.
    The-k option indicates to which network it is. The public network has automatically installed the first number.

    Using Oracle Grid Infrastucture 11.2.0.1 you can’t create network resource explicitly, when we create a new vip resource the network resource will be created implicitly and a dependency between resources (vip and network) will be configured.

    Retrieving information about the environment

    # Actual Network
    # Network Info
    crsctl status resource -f |grep NAME=ora.net -A 3
    NAME=ora.net1.network
    TYPE=ora.network.type
    STATE=ONLINE
    TARGET=ONLINE
    
    # VIP Info
    crsctl status resource -f |grep NAME=ora.northora -A 3 |grep .vip -A 3
    NAME=ora.northora01.vip
    TYPE=ora.cluster_vip_net1.type
    STATE=ONLINE
    TARGET=ONLINE
    --
    NAME=ora.northora02.vip
    TYPE=ora.cluster_vip_net1.type
    STATE=ONLINE
    TARGET=ONLINE
    --
    NAME=ora.northora03.vip
    TYPE=ora.cluster_vip_net1.type
    STATE=ONLINE
    TARGET=ONLINE
    
    # Getting Nodes Information
    olsnodes -n -s
    northora01	1       Active
    northora02  	2       Active
    northora03   	3       Active
    

    Adding Network/VIP Resources using Clusterware 11.2.0.1

    as root user:
    
    # srvctl add vip -n  -k  -A //[if1[|if2...]] [-v]
    
    srvctl add vip -n northora01 -A southora01-vip/255.255.255.0/eth2 -k 2
    srvctl add vip -n northora02 -A southora02-vip/255.255.255.0/eth2 -k 2
    srvctl add vip -n northora03 -A southora03-vip/255.255.255.0/eth2 -k 2
    
    srvctl start vip -i southora01-vip
    srvctl start vip -i southora02-vip
    srvctl start vip -i southora03-vip
    
    # Checking Status Network 2
    crsctl status resource -f |grep NAME=ora.net2 -A 3
    NAME=ora.net2.network
    TYPE=ora.network.type
    STATE=ONLINE
    TARGET=ONLINE
    
    crsctl status resource -f |grep NAME=ora.south -A 3 |grep .vip -A 3
    NAME=ora.southora01-vip.vip
    TYPE=ora.cluster_vip_net2.type
    STATE=ONLINE
    TARGET=ONLINE
    --
    NAME=ora.ora.southora02-vip.vip.vip
    TYPE=ora.cluster_vip_net2.type
    STATE=ONLINE
    TARGET=ONLINE
    --
    NAME=ora.ora.southora03-vip.vip.vip
    TYPE=ora.cluster_vip_net2.type
    STATE=ONLINE
    TARGET=ONLINE
    

    From 11.2.0.2+, network resource can be created explicitly:

    as root user:
    # srvctl add network [-k ] -S //[if1[|if2...]] [-w ] [-v]
    
    srvctl add network -k 3 -S 154.120.120.0/255.255.255.0/eth3
    
    crsctl status resource -f |grep NAME=ora.net3 -A 3
    NAME=ora.net3.network
    TYPE=ora.network.type
    STATE=OFFLINE
    TARGET=OFFLINE
    
    Then add vip resource for the 3nd network:
    srvctl add vip -n northora01 -A eastora01-vip/255.255.255.0/eth3 -k 3
    srvctl add vip -n northora02 -A eastora02-vip/255.255.255.0/eth3 -k 3
    srvctl add vip -n northora03 -A eastora03-vip/255.255.255.0/eth3 -k 3
    
    And starting vip resource
    srvctl start vip -i eastora01-vip
    srvctl start vip -i eastora02-vip
    srvctl start vip -i eastora03-vip
    
     crsctl status resource -f |grep NAME=ora.east -A 3 |grep .vip -A 3
    NAME=ora.eastora01-vip.vip
    TYPE=ora.cluster_vip_net3.type
    STATE=ONLINE
    TARGET=ONLINE
    --
    NAME=ora.eastora02-vip.vip
    TYPE=ora.cluster_vip_net3.type
    STATE=ONLINE
    TARGET=ONLINE
    --
    NAME=ora.eastora03-vip.vip
    TYPE=ora.cluster_vip_net3.type
    STATE=ONLINE
    TARGET=ONLINE
    

    Creating New Listener  for each network.

    You can create new listener using srvctl, but I recommend create Listener using NETCA.
    As the grid user invoke “netca” from the 11.2 GRID_HOME, the select “Cluster configuration” -> “Listener configuration” -> “Add”, enter Listener name as required.

    Repeat the procedure above to create the Listener on the network South.

    Validating Clusterware Configuration

    Checking Listeners created

    srvctl config listener -a
    Name: LISTENER
    Network: 1, Owner: oracle
    Home:
      /u01/app/11.2.0/grid on node(s) northora01,northora02,northora03
    End points: TCP:1521
    Name: LISTENER_SOUTH
    Network: 2, Owner: oracle
    Home:
      /u01/app/11.2.0/grid on node(s) northora01,northora02,northora03
    End points: TCP:1522
    Name: LISTENER_EAST
    Network: 3, Owner: oracle
    Home:
      /u01/app/11.2.0/grid on node(s) northora01,northora02,northora03
    End points: TCP:1523
    
    srvctl status listener
    Listener LISTENER is enabled
    Listener LISTENER is running on node(s): northora01,northora02,northora03
    Listener LISTENER_EAST is enabled
    Listener LISTENER_EAST is running on node(s): northora01,northora02,northora03
    Listener LISTENER_SOUTH is enabled
    Listener LISTENER_SOUTH is running on node(s): northora01,northora02,northora03
    
    srvctl status scan_listener
    SCAN Listener LISTENER_SCAN1 is enabled
    SCAN listener LISTENER_SCAN1 is running on node northora01
    SCAN Listener LISTENER_SCAN2 is enabled
    SCAN listener LISTENER_SCAN2 is running on node northora02
    SCAN Listener LISTENER_SCAN3 is enabled
    SCAN listener LISTENER_SCAN3 is running on node northora03
    
    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
    
    

    The Configuration of  network and listener on Cluster-Wide is finished.

    Configuring RAC Database “db11g”  to support multipe Network and Creating Service

    Now we need configure Oracle RAC Database (11.2) to provide service on all networks (network 1,2 and 3).

     Prepare the database instance for the new listener

    To ensure that connections to the remote listener are only redirected to the local listener on the same network, LISTENER_NETWORKS parameter needs to be set in the pfile or spfile for the database instance.

    Use tnsnames.ora from Oracle Home (RAC)  to resolve listener name alias for LISTENER_NETWORKS.  All alias must be in tnsnames.ora from all nodes of RAC Database.

    # tnsnames.ora Network Configuration File: /u01/app/oracle/product/11.2.0/dbhome_1/network/admin/tnsnames.ora
    # Generated by Oracle configuration tools.
    LISTENER_NORTH1=
     (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = northora01-vip.oracle.com)(PORT = 1521))
      )
    
    LISTENER_NORTH2=
     (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = northora02-vip.oracle.com)(PORT = 1521))
      )
    
    LISTENER_NORTH3=
     (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = northora03-vip.oracle.com)(PORT = 1521))
      )
    
    LISTENER_SOUTH1 =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = southora01-vip.oracle.com)(PORT = 1522))
      )
    
    LISTENER_SOUTH2 =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = southora02-vip.oracle.com)(PORT = 1522))
      )
    
    LISTENER_SOUTH3 =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = southora03-vip.oracle.com)(PORT = 1522))
      )
    
    REMOTE_SOUTH =
       (DESCRIPTION_LIST =
         (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = southora01-vip.oracle.com)(PORT = 1522)))
         (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = southora02-vip.oracle.com)(PORT = 1522)))
         (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = southora03-vip.oracle.com)(PORT = 1522)))
       )
    
    LISTENER_EAST1 =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = eastora01-vip.east.com)(PORT = 1523))
      )
    
    LISTENER_EAST2 =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = eastora02-vip.east.com)(PORT = 1523))
      )
    
    LISTENER_EAST3 =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = eastora03-vip.east.com)(PORT = 1523))
      )
    
    REMOTE_EAST =
       (DESCRIPTION_LIST =
         (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = eastora01-vip.east.com)(PORT = 1523)))
         (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = eastora02-vip.east.com)(PORT = 1523)))
         (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = eastora03-vip.east.com)(PORT = 1523)))
       )
    
    

    Don’t forget configure sqlnet.ora.

    # sqlnet.ora Network Configuration File: /u01/app/oracle/product/11.2.0/dbhome_1/network/admin/sqlnet.ora
    # Generated by Oracle configuration tools.
    
    NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)
    
    ADR_BASE = /u01/app/oracle
    

    Testing connectivity of all entries in TNSNAMES.ora using utility tnsping

    This step is very important, all of listener alias name must be validated in all nodes.

    e.g

    tnsping LISTENER_SOUTH1
    
    TNS Ping Utility for Linux: Version 11.2.0.2.0 - Production on 18-OCT-2011 17:31:12
    
    Copyright (c) 1997, 2010, Oracle.  All rights reserved.
    
    Used parameter files:
    /u01/app/oracle/product/11.2.0/dbhome_1/network/admin/sqlnet.ora
    
    Used TNSNAMES adapter to resolve the alias
    Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = southora1-vip.oracle.com)(PORT = 1522)))
    OK (0 msec)
    
    # Testing REMOTE
    
    tnsping REMOTE_EAST
    
    TNS Ping Utility for Linux: Version 11.2.0.2.0 - Production on 18-OCT-2011 17:31:55
    
    Copyright (c) 1997, 2010, Oracle.  All rights reserved.
    
    Used parameter files:
    /u01/app/oracle/product/11.2.0/dbhome_1/network/admin/sqlnet.ora
    
    Used TNSNAMES adapter to resolve the alias
    Attempting to contact (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = eastora01-vip.east.com)(PORT = 1523))) (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = eastora02-vip.east.com)(PORT = 1523))) (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = eastora03-vip.east.com)(PORT = 1523))))
    OK (0 msec)
    

    Configuring Oracle RAC to support multiples network

    Please, don’t change  current parameter of LOCAL_LISTENER and REMOTE_LISTENER of your spfile/pfile.

    Setting  LISTENER_NETWORKS is enough to RAC to work properly.

    Recommendation : Set parameter using scope=both, it’s will validade if the all Listener alias is working. If you use scope=spfile, it will not validaded and if not was configured properly the error will be raised at moment of startup of database instance.

    ####### Instance 1 #############
    ALTER SYSTEM
     SET LISTENER_NETWORKS = '((NAME=NORTH_NET)(LOCAL_LISTENER=LISTENER_NORTH1)(REMOTE_LISTENER=global-scan.north.com:1521))',
                             '((NAME=SOUTH_NET)(LOCAL_LISTENER=LISTENER_SOUTH1)(REMOTE_LISTENER=REMOTE_SOUTH))',
                             '((NAME=EAST_NET)(LOCAL_LISTENER=LISTENER_EAST1)(REMOTE_LISTENER=REMOTE_EAST))'
     SCOPE=BOTH SID='db11g1';
    ####### Instance 2 #############
    System altered.
    
    ALTER SYSTEM
     SET LISTENER_NETWORKS='((NAME=NORTH_NET)(LOCAL_LISTENER=LISTENER_NORTH2)(REMOTE_LISTENER=global-scan.north.com:1521))',
                           '((NAME=SOUTH_NET)(LOCAL_LISTENER=LISTENER_SOUTH2)(REMOTE_LISTENER=REMOTE_SOUTH))',
                           '((NAME=EAST_NET)(LOCAL_LISTENER=LISTENER_EAST2)(REMOTE_LISTENER=REMOTE_EAST))'
    SCOPE=BOTH SID='db11g2';
    
    System altered.
    
    ####### Instance 3 #############
    ALTER SYSTEM
     SET LISTENER_NETWORKS='((NAME=NORTH_NET)(LOCAL_LISTENER=LISTENER_NORTH3)(REMOTE_LISTENER=global-scan.north.com:1521))',
                           '((NAME=SOUTH_NET)(LOCAL_LISTENER=LISTENER_SOUTH3)(REMOTE_LISTENER=REMOTE_SOUTH))',
                           '((NAME=EAST_NET)(LOCAL_LISTENER=LISTENER_EAST3)(REMOTE_LISTENER=REMOTE_EAST))'
    SCOPE=BOTH SID='db11g3';
    
    System altered.
    

    Checking if default database service db11g was registered proprely

    #################### Network 1 #####################
    
    lsnrctl status LISTENER
    ..
    .
    Listening Endpoints Summary...
      (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=LISTENER)))
      (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.217.52)(PORT=1521)))
      (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.217.60)(PORT=1521)))
    Services Summary...
    ..
    .
    Service "db11g" has 1 instance(s).
      Instance "db11g2", status READY, has 1 handler(s) for this service...
    ..
    .
    The command completed successfully
    
    # In network 1 the remote_listener is registered in Listener SCAN
    lsnrctl status LISTENER_SCAN3
    ..
    .
    Listening Endpoints Summary...
      (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=LISTENER_SCAN3)))
      (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.217.62)(PORT=1521)))
    Services Summary...
    ..
    .
    Service "db11g" has 3 instance(s).
      Instance "db11g1", status READY, has 2 handler(s) for this service...
      Instance "db11g2", status READY, has 2 handler(s) for this service...
      Instance "db11g3", status READY, has 2 handler(s) for this service...
    ..
    .
    The command completed successfully
    
    #################### Network 2 #####################
    
    lsnrctl status LISTENER_SOUTH
    ..
    .
    Listening Endpoints Summary...
      (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=LISTENER_SOUTH)))
      (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=140.120.120.101)(PORT=1522)))
    Services Summary...
    ..
    .
    Service "db11g" has 3 instance(s).
      Instance "db11g1", status READY, has 1 handler(s) for this service...
      Instance "db11g2", status READY, has 2 handler(s) for this service...
      Instance "db11g3", status READY, has 1 handler(s) for this service...
    The command completed successfully
    
    #################### Network 2 #####################
    
    lsnrctl status LISTENER_EAST
    ..
    .
    Listening Endpoints Summary...
      (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=LISTENER_EAST)))
      (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=154.120.120.101)(PORT=1523)))
    Services Summary...
    ..
    .
    Service "db11g" has 3 instance(s).
      Instance "db11g1", status READY, has 1 handler(s) for this service...
      Instance "db11g2", status READY, has 2 handler(s) for this service...
      Instance "db11g3", status READY, has 1 handler(s) for this service...
    The command completed successfully
    

    Creating Service “db11g_inbound”

    Using “srvctl add service” with option -k it’s possible create a dependency specifying the number of network. However, this has no effect on listeners which is registered with the service, the service will be registered in all listener configured in RAC (LOCAL,REMOTE and NETWORK Listener). It rather serves only to ensure that the service is started, when the corresponding subnet, or the corresponding ora.netX.network resource is present and started.
    Bad news, each service can be configure with  dependency  to only one network. We can not specify multiple networks numbers.

    I created a workaround to fix it. (It’s not supported by Oracle)

    Creating new Service DB11G_INBOUND

    In example below a dependency will be created with ora.net2.network

    srvctl add service -s db11g_inbound -m BASIC -e SELECT -d db11g -k 2 -r "db11g1,db11g2,db11g3"
    

    Solution not supported by Oracle. Creating dependency of resource manually.

    # Create service without specifying flag "-k" srvctl will use default network 1
    srvctl add service -s db11g_inbound -m BASIC -e SELECT -d db11g  -r "db11g1,db11g2,db11g3"
    
    # Getting current START and STOP Dependencies.
    
    crsctl status resource ora.db11g.db11g_inbound.svc -f |grep -E 'START_DEPENDENCIES|STOP_DEPENDENCIES'
    START_DEPENDENCIES=
    hard(ora.db11g.db,type:ora.cluster_vip_net1.type)
    weak(type:ora.listener.type)
    pullup(type:ora.cluster_vip_net1.type)
    pullup:always(ora.db11g.db)
    
    STOP_DEPENDENCIES=hard(intermediate:ora.db11g.db,intermediate:type:ora.cluster_vip_net1.type)
    
    # Modifying START Dependencies adding type cluster_vip_net (cluster_vip_net2 and cluster_vip_net3)
    crsctl modify resource ora.db11g.db11g_inbound.svc -attr\
     "START_DEPENDENCIES='hard(\
    ora.db11g.db,\
    type:ora.cluster_vip_net1.type,\
    type:ora.cluster_vip_net2.type,\
    type:ora.cluster_vip_net3.type)\
    weak(type:ora.listener.type) \
    pullup(type:ora.cluster_vip_net1.type) \
    pullup(type:ora.cluster_vip_net2.type) \
    pullup(type:ora.cluster_vip_net3.type) \
    pullup:always(ora.db11g.db)'"
    
    # Modifying STOP Dependencies adding type cluster_vip_net (cluster_vip_net2 and cluster_vip_net3)
    crsctl modify resource ora.db11g.db11g_inbound.svc -attr\
    "STOP_DEPENDENCIES='hard(\
    intermediate:ora.db11g.db,\
    intermediate:type:ora.cluster_vip_net1.type,\
    intermediate:type:ora.cluster_vip_net2.type,\
    intermediate:type:ora.cluster_vip_net3.type)'"
    
    # P.S The service db11g_inbound will not start if network (VIP IP) 1,2 and 3 is not avaliable, and you cannot stop network 1,2 and 3 if sevice db11g_inbound is online.
    # Starting Service Created
    srvctl start service -d db11g -s db11g_inbound
    
    

    You must understand your environment and see if  is better to create a service for each network or create a service to all networks.
    Remember that the service created always will be available in all networks (listeners), but in network maintenance may affect services if you manually created dependency.
    Checking if Service was registered in all Listeners

    
    ############### Network 1 #########################
     lsnrctl status listener_scan1
    ..
    .
    Listening Endpoints Summary...
      (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=LISTENER_SCAN1)))
      (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.217.63)(PORT=1521)))
    ..
    .
    Service "db11g_inbound" has 3 instance(s).
      Instance "db11g1", status READY, has 1 handler(s) for this service...
      Instance "db11g2", status READY, has 1 handler(s) for this service...
      Instance "db11g3", status READY, has 1 handler(s) for this service...
    ..
    .
    
     lsnrctl status listener
    ..
    .
    Listening Endpoints Summary...
      (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=LISTENER)))
      (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.217.60)(PORT=1521)))
      (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.217.52)(PORT=1521)))
    ..
    .
    Service "db11g_inbound" has 1 instance(s).
      Instance "db11g2", status READY, has 2 handler(s) for this service...
    ..
    .
    ############### Network 2 #########################
    lsnrctl status listener_south
    ..
    .
    Listening Endpoints Summary...
      (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=LISTENER_SOUTH)))
      (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=140.120.120.101)(PORT=1522)))
    ..
    .
    Service "db11g_inbound" has 3 instance(s).
      Instance "db11g1", status READY, has 1 handler(s) for this service...
      Instance "db11g2", status READY, has 2 handler(s) for this service...
      Instance "db11g3", status READY, has 1 handler(s) for this service...
    ..
    .
    ############### Network 3 #########################
    lsnrctl status listener_east
    ..
    .
    Listening Endpoints Summary...
      (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=LISTENER_EAST)))
      (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=154.120.120.101)(PORT=1523)))
    ..
    .
    Service "db11g_inbound" has 3 instance(s).
      Instance "db11g1", status READY, has 1 handler(s) for this service...
      Instance "db11g2", status READY, has 2 handler(s) for this service...
      Instance "db11g3", status READY, has 1 handler(s) for this service...
    ..
    .
    

    Use the connect string above to connect  your clients on RAC Database 11.2

    
    ########### Connection String to Network 1 #####################
    ### Using SCAN ###########
    db11g_inbound =
     (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = global-scan.north.com)(PORT = 1521))
      (LOAD_BALANCE = YES)
      (CONNECT_DATA =
       (SERVER = DEDICATED)
       (SERVICE_NAME = db11g_inbound)
       (FAILOVER_MODE =
       (TYPE = SELECT)(METHOD = BASIC)(RETRIES = 180)(DELAY = 5)
       )
      )
    
    ### Or Using VIP ###########
    db11g_inbound =
     (DESCRIPTION =
        (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = TCP)(HOST = northora01-vip.north.com)(PORT = 1521))
          (ADDRESS = (PROTOCOL = TCP)(HOST = northora02-vip.north.com)(PORT = 1521))
          (ADDRESS = (PROTOCOL = TCP)(HOST = northora03-vip.north.com)(PORT = 1521))
        )
      (LOAD_BALANCE = YES)
      (CONNECT_DATA =
       (SERVER = DEDICATED)
       (SERVICE_NAME = db11g_inbound)
       (FAILOVER_MODE =
       (TYPE = SELECT)(METHOD = BASIC)(RETRIES = 180)(DELAY = 5)
       )
      )
    
    ########### Connection String to Network 2 #####################
    db11g_inbound =
     (DESCRIPTION =
        (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = TCP)(HOST = southora01-vip.north.com)(PORT = 1522))
          (ADDRESS = (PROTOCOL = TCP)(HOST = southora02-vip.north.com)(PORT = 1522))
          (ADDRESS = (PROTOCOL = TCP)(HOST = southora03-vip.north.com)(PORT = 1522))
        )
      (LOAD_BALANCE = YES)
      (CONNECT_DATA =
       (SERVER = DEDICATED)
       (SERVICE_NAME = db11g_inbound)
       (FAILOVER_MODE =
       (TYPE = SELECT)(METHOD = BASIC)(RETRIES = 180)(DELAY = 5)
       )
      )
    
    ########### Connection String to Network 3 #####################
    db11g_inbound =
     (DESCRIPTION =
        (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = TCP)(HOST = eastora01-vip.north.com)(PORT = 1523))
          (ADDRESS = (PROTOCOL = TCP)(HOST = eastora02-vip.north.com)(PORT = 1523))
          (ADDRESS = (PROTOCOL = TCP)(HOST = eastora03-vip.north.com)(PORT = 1523))
        )
      (LOAD_BALANCE = YES)
      (CONNECT_DATA =
       (SERVER = DEDICATED)
       (SERVICE_NAME = db11g_inbound)
       (FAILOVER_MODE =
       (TYPE = SELECT)(METHOD = BASIC)(RETRIES = 180)(DELAY = 5)
       )
      )
    
    

    Useful docs about how configure multiple network an RAC env.

    Data Guard: Redo Transport Services – How to use a separate network in a RAC environment. [ID 1210153.1] (11.1 or above)

    How to Configure A Second Listener on a Separate Network in 11.2 Grid Infrastructure [ID 1063571.1] (11.2)

    Data Guard Physical Standby 11.2 RAC Primary to RAC Standby using a second network [ID 1349977.1] (11.2)

    Hope this helps.

    Enjoy


    Oracle Database 11gR2 certified on AIX 7. 1

    Oracle certified the most current version of its database, 11g Release 2, on IBM’s AIX 7.1. This version was initially released, and continues to be supported on AIX 6.1 and AIX 5.3.

    The certification is approved for Oracle database running as a single instance and also with RAC (Real Application Clusters). At the time of this publication, only 11.2.0.1 is certified. We expect the most recent patch set, 11.2.0.2, to be certified soon.

    This is a major announcement since it allows IBM and Oracle customers to fully exploit the latest IBM POWER7 technology running the most current Oracle Database and AIX operating system versions.

    Customer may still choose to run POWER7 with the previous version of AIX.

    Please note that previous versions of the Oracle DB are not currently planned to be available on AIX 7.1.

    Special note for Subsystems – Oracle requires separate tests to be completed for RAC support of VIOS, GPFS, OCFS2, PowerHA, LPM, WPAR and 3rd party Cluster File Systems. Please check Certify on MyOracleSupport for current information. Oracle patch set 11.2.0.2 adds support for ACFS, Oracle’s new cluster file system. Technical requirements for ACFS mandate use of AIX 6.1 so V 5.3 is not supported. AIX 7.1 support will be added in future releases.

    See link below
    Oracle 11GR2 on AIX7 2010 12 01

    Enjoy


    Create Oracle RAC and Oracle RAC ONE Node Database using dbca in Oracle 11g R2 (11.2.0.2)

    Very Useful..

    Create Oracle RAC and Oracle RAC ONE Node Database using dbca in Oracle  11g R2 (11.2.0.2) Create Oracle RAC and Oracle RAC ONE Node Database using dbca in Oracle 11g R2 (11.2.0.2)    In this article we will look at creating Oracle RAC and RAC ONE Node database using dbca. For install/upgrade to Oracle 11.2.0.2 look here.    Create Oracle RAC ONE Node database using dbca    Start dbca and select Oracle RAC One Node database and press Next to continue.       Select ‘Create a Database’ and press Next to continue.       Select Custom Data … Read More

    via Guenadi N Jilevski’s Oracle BLOG


    Managing and administering Oracle ONE NODE RAC configurations with racone and Omotion utilities

    Very Useful…

    Managing and administering Oracle ONE NODE RAC configurations with racone and Omotion utilities In previous posts related to “RAC installation” we looked at installing RAC ONE Node database 11gR2. Alternatively we can have the cluster up and running and we will install the Oracle Grid infrastructure and Oracle Real application cluster binaries on all nodes of the cluster without creating a database. Complete a software only install of Oracle Real … Read More

    via Guenadi N Jilevski’s Oracle BLOG


    Oracle 11g R2 (11.2.0.2) RAC One Node management

    Very useful…

    Oracle 11g R2 11.2.0.2 RAC One Node management In Oracle 11gR2 11.2.0.2 RAC One Node database creation and management is simplified. The traditional srvctl utility used to manage RAC databases now can natively manage RAC One Node databases as well. Another enhancement in 11.2.0.2 is the ability to easy create RAC One Node database using dbca utility as specified here. To recount, prior to Oracle 11gR2 11.2.0.2 patch 9004119 had to be applied to p … Read More

    via Guenadi N Jilevski’s Oracle BLOG