Monday, November 17, 2014

How to Change Default Listener and SCAN Listener Port in RAC

Some sites require using a different port than 1521 for the listener. When initially installing Grid
Infrastructure, the administrator is not given the choice of which port she wants to use. This means that
changing the listener port must happen after the installation has completed successfully.

Here are the steps:

  1. Verify status of the traditional and SCAN listener from Grid Infrastructure Home:
# Display status and port number
[oracle@rac1 admin]$ srvctl  status listener
Listener LISTENER is enabled
Listener LISTENER is running on node(s): rac2,rac1

[oracle@rac1 admin]$ srvctl config listener
Name: LISTENER
Network: 1, Owner: oracle
Home: <CRS home>
End points: TCP:1521

[oracle@rac1 admin]$ srvctl status scan_listener
SCAN Listener LISTENER_SCAN1 is enabled
SCAN listener LISTENER_SCAN1 is running on node rac2
SCAN Listener LISTENER_SCAN2 is enabled
SCAN listener LISTENER_SCAN2 is running on node rac1
SCAN Listener LISTENER_SCAN3 is enabled
SCAN listener LISTENER_SCAN3 is running on node rac1

[oracle@rac1 admin]$  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

  1. Change port number of the traditional  listener:
srvctl modify listener -l LISTENER -p 1523

  1. Change port number of the SCAN listener:
srvctl modify scan_listener -p TCP:1523

  1. Restart both listeners:
# Traditional listener
srvctl stop listener
srvctl start listener

# Scan listener
srvctl stop scan_listener
srvctl start scan_listener

  1. Modify remote_listener parameter:
alter system set remote_listener ='scan:1523' scope=both;

  1. Modify tnsnames.ora file in Oracle database home::
dbName =
 (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = scan)(PORT = 1523))
    (CONNECT_DATA =
     (SERVER = DEDICATED)
     (SERVICE_NAME = dbName)
    )
 )

  1. Restart database:
srvctl stop database -d dbName

srvctl start database -d dbName

  1. Test connection to the database::
# Test using sqlplus
[oracle@rac1 ~]$ sqlplus system/manager@dbName

# Display status and port number
[oracle@rac1 admin]$ srvctl config listener
Name: LISTENER
Network: 1, Owner: oracle
Home: <CRS home>
End points: TCP:1523

[oracle@rac1 admin]$ srvctl config scan_listener
SCAN Listener LISTENER_SCAN1 exists. Port: TCP:1523
SCAN Listener LISTENER_SCAN2 exists. Port: TCP:1523
SCAN Listener LISTENER_SCAN3 exists. Port: TCP:1523


For more information see:

I hope this helps.

Please feel free to leave your questions or suggest improvements to this section.

1 comment: