在进行lsnrctl配置恢复前,务必先备份当前配置文件,避免误操作导致配置丢失。常见的配置文件路径包括:
$ORACLE_HOME/network/admin/listener.ora(Oracle安装目录下的网络配置目录)/etc/oracle/network/admin/listener.ora(部分Debian系统的默认路径)$ORACLE_HOME/network/admin/tnsnames.ora(若需恢复tnsnames.ora文件)备份命令示例:
sudo cp $ORACLE_HOME/network/admin/listener.ora $ORACLE_HOME/network/admin/listener.ora.bak
sudo cp $ORACLE_HOME/network/admin/tnsnames.ora $ORACLE_HOME/network/admin/tnsnames.ora.bak
若之前备份过配置文件,可直接将备份文件复制回原位置,覆盖当前配置:
sudo cp $ORACLE_HOME/network/admin/listener.ora.bak $ORACLE_HOME/network/admin/listener.ora
sudo cp $ORACLE_HOME/network/admin/tnsnames.ora.bak $ORACLE_HOME/network/admin/tnsnames.ora
若有相同Oracle版本的数据库环境(如测试环境),且其配置文件未被修改,可直接复制对应的listener.ora和tnsnames.ora文件到当前环境的对应目录,再根据实际环境修改HOST、PORT、ORACLE_HOME等参数。
Oracle安装目录中通常包含默认的配置文件模板(如listener.ora.template、tnsnames.ora.template),可将其复制到网络配置目录并重命名为正式文件名,然后编辑以匹配实际环境:
sudo cp $ORACLE_HOME/network/admin/listener.ora.template $ORACLE_HOME/network/admin/listener.ora
sudo cp $ORACLE_HOME/network/admin/tnsnames.ora.template $ORACLE_HOME/network/admin/tnsnames.ora
编辑文件时,需重点修改以下内容:
LISTENER部分的HOST(监听的主机名或IP地址,如your_hostname或0.0.0.0表示监听所有IP)、PORT(监听端口,默认1521);SID_LIST_LISTENER部分的ORACLE_HOME(Oracle安装目录,如/u01/app/oracle/product/19c/dbhome_1)、SID_NAME(数据库实例名)。恢复配置文件后,需重启lsnrctl服务以应用更改:
sudo lsnrctl stop # 停止监听器
sudo lsnrctl start # 启动监听器
使用以下命令检查监听器是否正常运行及配置是否正确:
sudo lsnrctl status
若输出显示监听器处于RUNNING状态,且Services Summary中包含预期的数据库服务,则说明恢复成功。
ORACLE_HOME、PATH)已正确设置(可通过source ~/.bash_profile或source ~/.bashrc加载);lsnrctl reload命令重新加载配置(无需重启监听器);