centos

lsnrctl如何设置开机自启

小樊
36
2025-12-25 09:37:18
栏目: 编程语言

lsnrctl 是 Oracle 数据库的监听器控制工具,用于管理数据库监听器的启动、停止和状态检查等操作。要使 lsnrctl 在系统启动时自动运行,您需要将其添加到系统的启动脚本中。以下是在不同操作系统上实现此目的的方法:

在 Linux 上

使用 systemd(适用于大多数现代 Linux 发行版)

  1. 创建 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 数据库的用户。

  2. 重新加载 systemd 配置

    sudo systemctl daemon-reload
    
  3. 启用服务

    sudo systemctl enable oracle-listener.service
    
  4. 启动服务

    sudo systemctl start oracle-listener.service
    

使用 init.d 脚本(适用于较旧的 Linux 发行版)

  1. 创建 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 数据库的实际安装路径。

  2. 设置脚本权限

    sudo chmod +x /etc/init.d/oracle-listener
    
  3. 将脚本添加到启动脚本

    sudo update-rc.d oracle-listener defaults
    

在 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
    

    请将 C:\oracle\product\19.0.0\dbhome_1 替换为 Oracle 数据库的实际安装路径。

  2. 创建任务计划: 打开“任务计划程序”,创建一个新的基本任务,设置触发器为“当计算机启动时”,并选择“启动程序”作为操作,然后浏览并选择您创建的批处理文件。

通过以上步骤,您可以确保 lsnrctl 在系统启动时自动运行,从而管理 Oracle 数据库监听器的生命周期。

0
看了该问题的人还看了