温馨提示×

Debian系统中lsnrctl配置步骤

小樊
55
2025-09-18 07:19:38
栏目: 智能运维

1. 安装Oracle数据库软件
在Debian系统上配置lsnrctl前,需先安装Oracle Database软件(如19c、21c版本)。可从Oracle官方网站下载适用于Linux的Oracle Database安装包(如.deb格式),并按照官方文档完成安装。安装过程中需指定Oracle Home目录(如/opt/oracle/product/19.0.0/dbhome_1)、数据库SID等参数。

2. 配置Oracle环境变量
编辑用户shell配置文件(如~/.bashrc~/.bash_profile),添加以下Oracle环境变量:

export ORACLE_HOME=/path/to/oracle/home  # 替换为实际Oracle Home路径(如/opt/oracle/product/19.0.0/dbhome_1)
export PATH=$PATH:$ORACLE_HOME/bin       # 将Oracle bin目录加入PATH
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib  # 添加Oracle库路径

保存文件后,运行source ~/.bashrc(或source ~/.bash_profile)使配置立即生效。

3. 创建/编辑监听器配置文件(listener.ora)
监听器配置文件默认位于$ORACLE_HOME/network/admin目录下。使用文本编辑器(如nanovim)打开或创建listener.ora文件:

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

添加以下基本配置(根据实际情况修改占位符):

LISTENER = 
  (DESCRIPTION_LIST = 
    (DESCRIPTION = 
      (ADDRESS = (PROTOCOL = TCP)(HOST = your_host_name)(PORT = 1521))  # HOST为服务器主机名或IP,PORT为监听端口(默认1521)
    )
  )

SID_LIST_LISTENER = 
  (SID_LIST = 
    (SID_DESC = 
      (SID_NAME = your_sid)                # 替换为数据库SID(如ORCL)
      (ORACLE_HOME = /path/to/oracle/home) # 替换为实际Oracle Home路径
    )
  )

保存并关闭文件。

4. 启动Oracle监听器
在终端中运行以下命令启动监听器:

lsnrctl start

若启动成功,将显示类似以下信息:

Starting listener (TNSLSNR)... 
TNSLSNR for Linux: Version x.x.x.x - Production
Starting the Listener... 
The Command Prompt window closes automatically.

5. 验证监听器状态
使用以下命令检查监听器是否正常运行:

lsnrctl status

输出应包含监听器的版本、监听地址(如TCP:1521)、绑定的SID等信息。若状态显示“RUNNING”,则表示监听器已成功启动。

6. 可选:配置客户端连接文件(tnsnames.ora)
若需从客户端连接数据库,需编辑tnsnames.ora文件(同样位于$ORACLE_HOME/network/admin目录下):

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

添加以下配置(替换占位符):

YOUR_DB = 
  (DESCRIPTION = 
    (ADDRESS = (PROTOCOL = TCP)(HOST = your_host_name)(PORT = 1521))  # 与listener.ora中的HOST、PORT一致
    (CONNECT_DATA = 
      (SID = your_sid)  # 与listener.ora中的SID_NAME一致
    )
  )

保存后,可使用sqlplus username/password@YOUR_DB命令测试客户端连接。

7. 可选:设置监听器为系统服务(自动启动)
为确保系统重启后监听器自动启动,可创建systemd服务文件:

sudo nano /etc/systemd/system/oracle-lsnrctl.service

添加以下内容(替换占位符):

[Unit]
Description=Oracle Listener Service
After=network.target

[Service]
Type=forking
ExecStart=/path/to/oracle/home/bin/lsnrctl start
ExecStop=/path/to/oracle/home/bin/lsnrctl stop
User=oracle                            # 运行Oracle的用户(通常为oracle)
Group=oinstall                         # 运行Oracle的组(通常为oinstall)
Restart=on-failure                     # 失败时自动重启

[Install]
WantedBy=multi-user.target

保存后,执行以下命令启用并启动服务:

sudo systemctl enable oracle-lsnrctl.service  # 设置开机自启
sudo systemctl start oracle-lsnrctl.service   # 立即启动服务
sudo systemctl status oracle-lsnrctl.service  # 检查服务状态

注意事项

  • 确保listener.ora中的HOSTPORTSID_NAME等参数与数据库实例配置一致。
  • 检查防火墙设置,允许监听器端口(默认1521)通过:
    sudo ufw allow 1521/tcp
    
  • 若启动失败,可通过lsnrctl log查看日志文件(位于$ORACLE_HOME/network/log目录下)排查问题。

0