商城首页欢迎来到中国正版软件门户

您的位置: 首页 > 文章列表 > 编程开发 > lsnrctl如何设置开机自启

lsnrctl如何设置开机自启

  发布于2026-07-18 阅读(0)

扫一扫,手机访问

lsnrctl 是 Oracle 数据库的“门童”——监听器控制工具,负责管理数据库监听器的启动、停止和状态检查。想让这哥们儿在系统开机时自己站起来,就得把它塞进系统的启动流程里。下面按操作系统分门别类讲清楚。

lsnrctl如何设置开机自启

### 在 Linux 上:首选 systemd(现代发行版标配) 如果你用的是 CentOS 7+、Ubuntu 16.04+ 这类主流发行版,那几乎都是 systemd 的天下。操作起来很规范,几步走就行。 **1. 创建 systemd 服务文件** 新建一个文件放在 `/etc/systemd/system/oracle-listener.service`,内容如下:
[Unit]
Description=Oracle Listener Service
After=network.target

[Service]
Type=forking
ExecStart=/path/to/lsnrctl start
ExecStop=/path/to/lsnrctl stop
User=oracle
Group=oracle
Restart=on-failure

[Install]
WantedBy=multi-user.target
注意把 `/path/to/lsnrctl` 替换成你机器上 `lsnrctl` 的实际路径(比如 `/u01/app/oracle/product/19.0.0/dbhome_1/bin/lsnrctl`),`User` 和 `Group` 也要换成运行 Oracle 的实际用户(通常就是 `oracle`)。 **2. 重载 systemd 配置** 告诉 systemd 有新文件来了:
sudo systemctl daemon-reload
**3. 启用开机自启** 相当于给服务挂上“自动启动”标签:
sudo systemctl enable oracle-listener.service
**4. 手动启动一次试试** 没问题的话直接启动,验证功能正常:
sudo systemctl start oracle-listener.service
这样一来,以后每次重启,监听器就会自动起来了。如果中间出问题,还能靠 `Restart=on-failure` 自动恢复,省心不少。 ### 在 Linux 上:传统 init.d 脚本(老系统或特殊环境) 如果你的系统还是 CentOS 6、RHEL 6 甚至更老的版本,或者你偏要用手动管理的方式,那 init.d 脚本也能搞定。 **1. 创建 init.d 脚本** 新建 `/etc/init.d/oracle-listener`,内容如下:
#!/bin/sh
### BEGIN INIT INFO
# Provides:          oracle-listener
# Required-Start:    $network $local_fs
# Required-Stop:
# Default-Start:     2 3 4 5
# Default-Stop:
# Short-Description: Start Oracle Listener at boot time
### END INIT INFO

ORACLE_HOME=/path/to/oracle/home
LSNRCTL=$ORACLE_HOME/bin/lsnrctl

case "$1" in
start)
    su - oracle -c "$LSNRCTL start"
    ;;
stop)
    su - oracle -c "$LSNRCTL stop"
    ;;
status)
    su - oracle -c "$LSNRCTL status"
    ;;
*)
    echo "Usage: /etc/init.d/oracle-listener {start|stop|status}"
    exit 1
    ;;
esac
exit 0
把 `/path/to/oracle/home` 替换成你的 Oracle 主目录路径。 **2. 给脚本执行权限** 让它能被系统调用:
sudo chmod +x /etc/init.d/oracle-listener
**3. 注册到启动序列** 用 `update-rc.d` 把它添加到默认运行级别:
sudo update-rc.d oracle-listener defaults
之后重启系统,监听器就会自动启动了。 ### 在 Windows 上:任务计划搞定 Windows 下的思路有点不一样,得靠“任务计划程序”来扮演启动脚本的角色。 **1. 编写一个批处理文件** 比如在 `C:\oracle\bin\start_listener.bat` 里写入:
@echo off
set ORACLE_HOME=C:\oracle\product\19.0.0\dbhome_1
set PATH=%ORACLE_HOME%\bin;%PATH%
lsnrctl start
请根据实际情况修改 `ORACLE_HOME` 路径。 **2. 创建计划任务** 打开“任务计划程序”,点击“创建基本任务”。触发器选择“计算机启动时”,操作选“启动程序”,然后浏览到你刚才创建的批处理文件。剩下的按提示走完就行。 之后每次 Windows 启动,这个批处理就会跑起来,监听器也就跟着启动了。 --- 以上就是三大主流平台下给 lsnrctl 配置开机自启的方法。注意不同环境下的路径和用户权限细节,实际操作前最好先手动跑一遍 `lsnrctl start` 确认没问题,再配置自动启动。如果有特殊需求(比如监听器配置了多个实例),只要在对应的 ExecStart 或启动命令里加上对应的监听器名就好。
本文转载于:https://www.yisu.com/ask/5110116.html 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注