Changing the grid listener port of an Oracle Database Appliance X8-2M

oracleoracle-asm

I need to add an extra Port: 1522

Listener Parameter File   /u01/app/19.0.0.0/grid/network/admin/listener.ora
Listener Log File         /u01/app/grid/diag/tnslsnr/xxxx/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=LISTENER)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=xxxx)(PORT=1521)))
Services Summary...
Service "xxxx" has 1 instance(s).

/u01/app/19.0.0.0/grid/network/admin/listener.ora->

LISTENER=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=ipc)(KEY=LISTENER))))            # line added by Agent
ASMNET1LSNR_ASM=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=IPC)(KEY=ASMNET1LSNR_ASM))))              # line added by Agent
ENABLE_GLOBAL_DYNAMIC_ENDPOINT_ASMNET1LSNR_ASM=ON               # line added by Agent
VALID_NODE_CHECKING_REGISTRATION_ASMNET1LSNR_ASM=SUBNET         # line added by Agent
ENABLE_GLOBAL_DYNAMIC_ENDPOINT_LISTENER=ON              # line added by Agent
VALID_NODE_CHECKING_REGISTRATION_LISTENER=SUBNET                # 

Every time I edit the listener.ora The listener fails to start:

I tried:

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = LISTENER))
      (ADDRESS = (PROTOCOL = TCP)(HOST = xxxx)(PORT = 1521))
      (ADDRESS = (PROTOCOL = TCP)(HOST = xxxx)(PORT = 1522))
    )
  )
ASMNET1LSNR_ASM=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=IPC)(KEY=ASMNET1LSNR_ASM))))              # line added by Agent
ENABLE_GLOBAL_DYNAMIC_ENDPOINT_ASMNET1LSNR_ASM=ON               # line added by Agent
VALID_NODE_CHECKING_REGISTRATION_ASMNET1LSNR_ASM=SUBNET         # line added by Agent
ENABLE_GLOBAL_DYNAMIC_ENDPOINT_LISTENER=ON              # line added by Agent
VALID_NODE_CHECKING_REGISTRATION_LISTENER=SUBNET                # line added by Agent

srvctl start listener
PRCR-1079 : Failed to start resource ora.LISTENER.lsnr
CRS-5016: Process "/u01/app/19.0.0.0/grid/bin/lsnrctl" spawned by agent "ORAAGENT" for action "start" failed: details at "(:CLSN00010:)" in "/u01/app/grid/diag/crs/xxxx/crs/trace/crsd_oraagent_grid.trc"

Listener failed to start. See the error message(s) above…

2021-02-17 15:32:19.462 :CLSDYNAM:2613040896: [ora.LISTENER.lsnr]{1:35727:65428} [start] (:CLSN00010:)Utils:execCmd scls_process_join() uret 1

2021-02-17 15:32:19.462 :CLSDYNAM:2613040896: [ora.LISTENER.lsnr]{1:35727:65428} [start] clsnUtils::error Exception type=2 string=
CRS-5016: Process "/u01/app/19.0.0.0/grid/bin/lsnrctl" spawned by agent "ORAAGENT" for action "start" failed: details at "(:CLSN00010:)" in "/u01/app/grid/diag/crs/etabonxrdbs0010/crs/trace/crsd_oraagent_grid.trc"

2021-02-17 15:32:19.463 : AGFW:2610939648: [ INFO] {1:35727:65428} Agent sending reply for: RESOURCE_START[ora.LISTENER.lsnr etabonxrdbs0010 1] ID 4098:1355034
2021-02-17 15:32:19.463 :CLSDYNAM:2613040896: [ora.LISTENER.lsnr]{1:35727:65428} [start] LsnrAgent::Lsnrctl::start lsnrctl start complete lsnrname:LISTENER output:
LSNRCTL for Linux: Version 19.0.0.0.0 – Production on 17-FEB-2021 15:32:19

Copyright (c) 1991, 2020, Oracle. All rights reserved.

2021-02-17 18:19:34.200 :CLSDYNAM:2606737152: [ora.LISTENER.lsnr]{1:35727:1260} [check] clsnUtils::error Exception type=2 string=
CRS-5020: Not all endpoints are registered for listener LISTENER

I tried: srvctl modify listener -p "TCP:1521/TCP:1522"; 

srvctl config listener
Name: LISTENER
Type: Database Listener
Network: 1, Owner: grid
Home: <CRS home>
End points: TCP:1521, 1522
Listener is enabled.
Listener is individually enabled on nodes:
Listener is individually disabled on nodes:

Best Answer

The command is definitely (user grid):

srvctl modify listener listener -p "TCP:1522,4444,nnnn"

Our issue was that the port we wanted to use, was used by another service on the ODA (e.g. ONS). The command completes but the listener ignores the port than. This explains the log above maybe.

We also needed to enter the local_listener on the ODA CDBs/ASM:

alter system set local_listener='(ADDRESS = (PROTOCOL = TCP)(HOST = hostname)(PORT = 1522))';

We opened a SR at Oracle support and got a feedback:

Right now the dcs agent on ODA does not handle multiple listener port. We can configure listener to use multiple ports on ODA. But we face issues during create-database, register-database. Enhancement has been logged for such issues which will be fixed in future release Enh 30095060 - ODACLI CANNOT REGISTER DATABASE At present I would not recommend to add multiple ports to listener.