在 Debian(或任何 Linux)上,lsnrctl 是 Oracle Database Listener 的管理工具,修改监听端口本质是修改 listener.ora 配置文件,然后重启监听。
下面按步骤说明:
通常在:
$ORACLE_HOME/network/admin/listener.ora
例如:
/u01/app/oracle/product/19.0.0/dbhome_1/network/admin/listener.ora
vi $ORACLE_HOME/network/admin/listener.ora
示例(默认 1521 → 改为 1522):
修改前
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
)
)
修改后
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1522))
)
)
如果有多个 ADDRESS,只改对应 LISTENER 的即可
su - oracle
lsnrctl stop
lsnrctl start
lsnrctl status
确认端口已变为新端口(如 1522)
如果改了端口,客户端需要同步修改:
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1522))
(CONNECT_DATA =
(SERVICE_NAME = orcl)
)
)
或连接时指定:
sqlplus user/pass@//localhost:1522/orcl
netstat -tunlp | grep 1522 检查sudo ufw allow 1522/tcp
如果你愿意,可以贴出你的 listener.ora 内容,我可以帮你精确改。