lsnrctl 是 Oracle 数据库的监听器控制工具,用于管理数据库监听器的启动、停止和状态检查等操作。要使 lsnrctl 在系统启动时自动运行,您需要将其添加到系统的启动脚本中。以下是在不同操作系统上实现此目的的方法:
创建 systemd 服务文件:
创建一个新的 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 的实际路径,并将 oracle 替换为运行 Oracle 数据库的用户。
重新加载 systemd 配置:
sudo systemctl daemon-reload
启用服务:
sudo systemctl enable oracle-listener.service
启动服务:
sudo systemctl start oracle-listener.service
创建 init.d 脚本:
创建一个新的 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 数据库的实际安装路径。
设置脚本权限:
sudo chmod +x /etc/init.d/oracle-listener
将脚本添加到启动脚本:
sudo update-rc.d oracle-listener defaults
创建批处理文件:
创建一个新的批处理文件,例如 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
请将 C:\oracle\product\19.0.0\dbhome_1 替换为 Oracle 数据库的实际安装路径。
创建任务计划: 打开“任务计划程序”,创建一个新的基本任务,设置触发器为“当计算机启动时”,并选择“启动程序”作为操作,然后浏览并选择您创建的批处理文件。
通过以上步骤,您可以确保 lsnrctl 在系统启动时自动运行,从而管理 Oracle 数据库监听器的生命周期。