The Listener Supports no Services After Changed IP or Port

APPLIES TO

Operating System - Red Hat Enterprise Linux Server 7.9 / Linux 7
Oracle Database - Enterprise Edition - version 11.2.0.4 / 11g
Oracle Grid Infrastructure - version 11.2.0.4 / 11g

SYMPTOMS

Change listener to uses non-local IP address or non-default port number, and instance cannot register services automatically.

[oracle@sj-node2 admin]$ cat listener.ora
# listener.ora Network Configuration File: /u01/app/oracle/product/11.2.0.4/db_1/network/admin/listener.ora
# Generated by Oracle configuration tools.

LI_COCO =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = vip1)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
)

ADR_BASE_LI_COCO = /u01/app/oracle

[oracle@sj-node2 admin]$ lsnrctl status LI_COCO

LSNRCTL for Linux: Version 11.2.0.4.0 - Production on 10-AUG-2023 10:33:48

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

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=vip1)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias LI_COCO
Version TNSLSNR for Linux: Version 11.2.0.4.0 - Production
Start Date 10-AUG-2023 10:21:28
Uptime 0 days 0 hr. 12 min. 19 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /u01/app/oracle/product/11.2.0.4/db_1/network/admin/listener.ora
Listener Log File /u01/app/oracle/diag/tnslsnr/sj-node2/li_coco/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.3.248)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
The listener supports no services
The command completed successfully

CAUSE

Theoretically, you don't have to configure parameters related to listener in database, neither LOCAL_LISTENER nor REMOTE_LISTENER. A background process, Listener Registration (LREG) of each instance will register services with the default local and remote listener automatically.

For a new listener which uses non-local IP address or non-default port number, you need to explicitly tell LREG to register database services with numerous listeners by ALTER SYSTEM SET LOCAL_LISTENER. Which requires LOCAL_LISTENER to accept more listener addresses in the setting.

SOLUTION

ALTER SYSTEM SET LOCAL_LISTENER='(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.3.248)(PORT=1521))' SCOPE=BOTH;

ALTER SYSTEM REGISTER;