1. 准备工作
ORACLE_HOME(如/u01/app/oracle/product/19.0.0/dbhome_1)、ORACLE_SID(如orcl)环境变量已正确配置(可通过echo $ORACLE_HOME、echo $ORACLE_SID验证)。su - oracle。2. 找到监听器配置文件
listener.ora的默认路径为$ORACLE_HOME/network/admin/listener.ora(如/u01/app/oracle/product/19.0.0/dbhome_1/network/admin/listener.ora)。find / -name listener.ora命令全局查找文件位置(若路径非默认)。3. 编辑listener.ora文件
vi)打开文件:vi $ORACLE_HOME/network/admin/listener.ora。LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = your_hostname_or_ip)(PORT = 1521)) # 监听地址及端口(默认1521)
)
)
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = your_sid) # 数据库实例SID(如orcl)
(ORACLE_HOME = /u01/app/oracle/product/19.0.0/dbhome_1) # Oracle主目录
)
)
vi中按:wq)。4. 重启监听器使配置生效
lsnrctl stop。lsnrctl start。reload命令重新加载配置(无需重启):lsnrctl reload。5. 验证监听器状态
lsnrctl status命令,查看以下关键信息:
LISTENER)、状态(RUNNING表示运行中)。TCP: your_hostname_or_ip:1521)。Service "orcl")及SID列表。6. (可选)配置自动启动
CentOS 7/8(Systemd系统):
sudo vi /etc/systemd/system/oracle-listener.service。[Unit]
Description=Oracle Listener Service
After=network.target
[Service]
Type=forking
User=oracle
Group=oinstall
ExecStart=/u01/app/oracle/product/19.0.0/dbhome_1/bin/lsnrctl start
ExecStop=/u01/app/oracle/product/19.0.0/dbhome_1/bin/lsnrctl stop
Restart=on-failure
[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload。sudo systemctl enable oracle-listener。sudo systemctl start oracle-listener。CentOS 6(SysVinit系统):
sudo vi /etc/init.d/oracle-listener。#!/bin/bash
# chkconfig: 345 99 10
# description: Oracle Listener Service
ORACLE_HOME=/u01/app/oracle/product/19.0.0/dbhome_1
LSNRCTL=$ORACLE_HOME/bin/lsnrctl
USER=oracle
case "$1" in
start)
su - $USER -c "$LSNRCTL start"
;;
stop)
su - $USER -c "$LSNRCTL stop"
;;
restart)
su - $USER -c "$LSNRCTL stop"
su - $USER -c "$LSNRCTL start"
;;
status)
su - $USER -c "$LSNRCTL status"
;;
*)
echo "Usage: $0 {start|stop|restart|status}"
exit 1
;;
esac
exit 0
sudo chmod +x /etc/init.d/oracle-listener。sudo chkconfig --add oracle-listener。sudo chkconfig oracle-listener on。