Example: listener on RAC (10g)

Refer Note: 342419.1

-> In listener.ora

RAC01:

LISTENER_RAC01 =

  (DESCRIPTION_LIST =

    (DESCRIPTION =

      (ADDRESS_LIST =

        (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))

      )

      (ADDRESS_LIST =

        (ADDRESS = (PROTOCOL = TCP)(HOST = RAC01-vip)(PORT = 1521)(IP = FIRST))

      )

      (ADDRESS_LIST =

        (ADDRESS = (PROTOCOL = TCP)(HOST = 10.10.10.1)(PORT = 1521)(IP = FIRST))

      )

    )

  )

PREFER_LEAST_LOADED_NODE_LISTENER_RAC01=OFF

INBOUND_CONNECT_TIMEOUT_LISTENER_RAC01=180

RAC02:

LISTENER_RAC02 =

  (DESCRIPTION_LIST =

    (DESCRIPTION =

      (ADDRESS_LIST =

        (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))

      )

      (ADDRESS_LIST =

        (ADDRESS = (PROTOCOL = TCP)(HOST = RAC02-vip)(PORT = 1521)(IP = FIRST))

      )

      (ADDRESS_LIST =

        (ADDRESS = (PROTOCOL = TCP)(HOST = 10.10.10.2)(PORT = 1521)(IP = FIRST))

      )

    )

  )

PREFER_LEAST_LOADED_NODE_LISTENER_RAC02=OFF

INBOUND_CONNECT_TIMEOUT_LISTENER_RAC02=180

-> In tnsnames.ora on Both Nodes

[oracle@RAC01 admin]$ cat tnsnames.ora 

LISTENERS_RACDB =

  (ADDRESS_LIST =

    (ADDRESS = (PROTOCOL = TCP)(HOST = RAC01-vip)(PORT = 1521))

    (ADDRESS = (PROTOCOL = TCP)(HOST = RAC02-vip)(PORT = 1521))

  )

LISTENERS_RAC01 =

  (ADDRESS_LIST =

    (ADDRESS = (PROTOCOL = TCP)(HOST = RAC01-vip)(PORT = 1521))

  )

LISTENERS_RAC02 =

  (ADDRESS_LIST =

    (ADDRESS = (PROTOCOL = TCP)(HOST = RAC02-vip)(PORT = 1521))

  )

[oracle@RAC02 admin]$ cat tnsnames.ora

LISTENERS_RACDB =

  (ADDRESS_LIST =

    (ADDRESS = (PROTOCOL = TCP)(HOST = RAC01-vip)(PORT = 1521))

    (ADDRESS = (PROTOCOL = TCP)(HOST = RAC02-vip)(PORT = 1521))

  )

LISTENERS_RAC01 =

  (ADDRESS_LIST =

    (ADDRESS = (PROTOCOL = TCP)(HOST = RAC01-vip)(PORT = 1521))

  )

LISTENERS_RAC02 =

  (ADDRESS_LIST =

    (ADDRESS = (PROTOCOL = TCP)(HOST = RAC02-vip)(PORT = 1521))

  )

-> In sqlnet.ora on Both nodes 

SQLNET.INBOUND_CONNECT_TIMEOUT = 180

-> DATABASE Configuration

RAC01:

SQL> alter system set local_listener=LISTENERS_RAC01 sid='RACDB1;

SQL> alter system register;

SQL> show parameter listener

NAME                                 TYPE        VALUE

------------------------------------ ----------- ------------------------------

local_listener                       string      LISTENERS_RAC01

remote_listener                      string      LISTENERS_RACDB

----Or----

SQL> alter system set local_listener='(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=RAC01-vip)(PORT=1521)))' sid='RACDB1;

SQL> alter system register;

RAC02:

SQL> alter system set local_listener=LISTENERS_RAC02 sid='RACDB2;

SQL> alter system register;

SQL> show parameter listener

NAME                                 TYPE        VALUE

------------------------------------ ----------- ------------------------------

local_listener                       string      LISTENERS_RAC02

remote_listener                      string      LISTENERS_RACDB

----Or----

SQL> alter system set local_listener='(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=RAC02-vip)(PORT=1521)))' sid='RACDB2;

SQL> alter system register;

$ lsnrctl service

.

.

.

Service "racdb" has 2 instance(s).

  Instance "racdb1", status READY, has 2 handler(s) for this service...

    Handler(s):

      "DEDICATED" established:0 refused:0 state:ready

         REMOTE SERVER

         (ADDRESS=(PROTOCOL=TCP)(HOST=RAC01-vip)(PORT=1521))

      "DEDICATED" established:0 refused:0 state:ready

         LOCAL SERVER

  Instance "racdb2", status READY, has 1 handler(s) for this service...

    Handler(s):

      "DEDICATED" established:0 refused:0 state:ready

         REMOTE SERVER

         (ADDRESS=(PROTOCOL=TCP)(HOST=RAC02-vip)(PORT=1521))

The command completed successfully