Linux环境下使用lsnrctl恢复监听器配置的通用步骤
在进行任何恢复操作前,务必备份当前监听器配置文件,避免误操作导致配置丢失。监听器主配置文件listener.ora通常位于$ORACLE_HOME/network/admin目录($ORACLE_HOME为Oracle数据库安装根目录)。
执行命令:
cp $ORACLE_HOME/network/admin/listener.ora $ORACLE_HOME/network/admin/listener.ora.bak
若存在tnsnames.ora(客户端连接配置文件)且需要恢复,同样执行备份:
cp $ORACLE_HOME/network/admin/tnsnames.ora $ORACLE_HOME/network/admin/tnsnames.ora.bak
根据是否有可用备份,选择以下方式恢复:
cp $ORACLE_HOME/network/admin/listener.ora.bak $ORACLE_HOME/network/admin/listener.ora
listener.ora.template,路径为$ORACLE_HOME/network/admin/。cp $ORACLE_HOME/network/admin/listener.ora.template $ORACLE_HOME/network/admin/listener.ora
若模板文件不存在,可手动创建listener.ora,基本结构如下(需根据实际环境修改HOST、PORT、ORACLE_HOME等参数):LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = your_hostname)(PORT = 1521))
)
)
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = /u01/app/oracle/product/19c/dbhome_1)
(PROGRAM = extproc)
)
)
修改配置文件后,需重启监听器服务。推荐使用以下命令组合:
lsnrctl stop # 停止监听器
lsnrctl start # 启动监听器
若需重新加载配置而不中断现有连接(适用于生产环境),可使用:
lsnrctl reload
通过lsnrctl status命令检查监听器是否正常运行,并确认配置已生效。执行后,应能看到以下关键信息:
LISTENER)、状态(RUNNING)、监听地址(如TCP:192.168.1.100:1521);PLSExtProc等)。Listener Parameter File : /u01/app/oracle/product/19c/dbhome_1/network/admin/listener.ora
Listener Name : LISTENER
Status : RUNNING
Listening Endpoints Summary:
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.1.100)(PORT=1521)))
Services Summary...
Service "orcl" has 1 instance(s).
Instance "orcl", status READY, has 1 handler(s) for this service...
oracle用户(或拥有Oracle数据库管理权限的用户)执行,避免权限不足导致失败。$ORACLE_HOME环境变量已正确设置(可通过echo $ORACLE_HOME验证),否则无法定位配置文件。