ubuntu

ubuntu lsnrctl安装步骤详解

小樊
42
2025-09-23 21:16:12
栏目: 智能运维

lsnrctl是Oracle数据库的监听器控制工具,并非Ubuntu系统自带组件,需先安装Oracle数据库软件才能使用。以下是在Ubuntu上安装并配置lsnrctl的详细步骤:

一、前置准备

  1. 系统更新
    运行sudo apt update && sudo apt upgrade -y,确保系统包列表及已安装软件为最新版本。
  2. 安装基础依赖
    Oracle数据库及lsnrctl需要以下依赖包支持,执行sudo apt install -y build-essential libaio1 libgcc1 libstdc++6 libncurses5-dev libssl-dev unixodbc unixodbc-dev安装。

二、安装Oracle数据库软件(含lsnrctl)

lsnrctl属于Oracle数据库的一部分,需通过安装Oracle数据库软件获取。以Oracle 19c为例,步骤如下:

  1. 下载Oracle安装包
    从Oracle官方网站下载适用于Linux的Oracle Database安装包(如oracle-database-ee-19c-1.0-1.x86_64.rpm)。
  2. 转换RPM为DEB格式
    Ubuntu使用DEB包,需通过alien工具转换RPM包:
    sudo apt install -y alien
    sudo alien -d oracle-database-ee-19c-1.0-1.x86_64.rpm
    
  3. 安装转换后的DEB包
    sudo dpkg -i oracle-database-ee-19c-1.0-1.x86_64.deb
    
  4. 完成Oracle安装向导
    运行sudo /etc/init.d/oracle-xe-19c configure,按提示设置数据库SID、密码、监听端口(默认1521)等信息。

三、配置环境变量

为确保lsnrctl能正常运行,需配置Oracle相关环境变量。编辑~/.bashrc(或~/.profile)文件,添加以下内容:

export ORACLE_HOME=/u01/app/oracle/product/19c/dbhome_1  # 替换为实际ORACLE_HOME路径
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
export ORACLE_SID=orcl  # 替换为实际数据库SID

保存后执行source ~/.bashrc使变量生效。

四、配置监听器(listener.ora)

监听器配置文件位于$ORACLE_HOME/network/admin/listener.ora,需根据网络环境修改:

sudo nano $ORACLE_HOME/network/admin/listener.ora

示例配置(按需调整HOSTPORTSID_NAME):

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))  # 主机名或IP地址
    )
  )
SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = orcl)  # 数据库SID
      (ORACLE_HOME = /u01/app/oracle/product/19c/dbhome_1)  # ORACLE_HOME路径
    )
  )

保存退出。

五、配置客户端连接(tnsnames.ora,可选)

若需从客户端通过服务名连接数据库,需配置tnsnames.ora文件(位于$ORACLE_HOME/network/admin/):

sudo nano $ORACLE_HOME/network/admin/tnsnames.ora

示例配置(替换为实际HOSTPORTSERVICE_NAME):

ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)  # 数据库服务名
    )
  )

保存退出。

六、启动与管理lsnrctl

  1. 切换至Oracle用户
    lsnrctl需以Oracle用户身份运行,执行su - oracle切换。
  2. 启动监听器
    lsnrctl start
    
  3. 查看监听器状态
    lsnrctl status
    
    若显示“Listener is ready”则表示启动成功。
  4. 停止监听器
    lsnrctl stop
    
  5. 重启监听器
    lsnrctl restart
    

七、创建systemd服务(可选,实现开机自启)

为方便管理,可将监听器配置为systemd服务:

  1. 创建服务文件
    sudo nano /etc/systemd/system/oracle-listener.service
    
  2. 添加以下内容(替换oracle为用户、oinstall为组,$ORACLE_HOME为实际路径):
    [Unit]
    Description=Oracle Listener Service
    After=network.target
    
    [Service]
    Type=forking
    ExecStart=$ORACLE_HOME/bin/lsnrctl start
    ExecStop=$ORACLE_HOME/bin/lsnrctl stop
    ExecReload=$ORACLE_HOME/bin/lsnrctl reload
    User=oracle
    Group=oinstall
    Restart=on-failure
    
    [Install]
    WantedBy=multi-user.target
    
  3. 重载systemd配置
    sudo systemctl daemon-reload
    
  4. 设置开机自启并启动服务
    sudo systemctl enable oracle-listener
    sudo systemctl start oracle-listener
    
  5. 查看服务状态
    sudo systemctl status oracle-listener
    

注意事项

0
看了该问题的人还看了