温馨提示×

linux lsnrctl怎么配置

小樊
45
2026-09-20 09:47:10
栏目: 智能运维

lsnrctl 是 Oracle 数据库监听器(Listener) 的管理工具,本身不是一个“服务”,而是通过 listener.ora 配置文件来定义的。下面从 配置步骤、常用命令、示例 三个方面说明。


一、listener.ora 配置文件位置

通常在:

$ORACLE_HOME/network/admin/listener.ora

如果没有,可以手动创建。


二、最简单的 listener 配置示例

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.100)(PORT = 1521))
    )
  )

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = orcl)
      (ORACLE_HOME = /u01/app/oracle/product/19.3.0/dbhome_1)
      (SID_NAME = orcl)
    )
  )

说明:

  • LISTENER:监听器名称(默认就是 LISTENER)
  • HOST:服务器 IP 或主机名
  • PORT:监听端口(默认 1521)
  • SID_NAME:数据库实例名
  • GLOBAL_DBNAME:对外服务名

三、启动 / 管理监听器(lsnrctl)

# 进入 lsnrctl
lsnrctl

# 启动监听
lsnrctl start

# 停止监听
lsnrctl stop

# 查看状态
lsnrctl status

# 重新加载配置(不中断连接)
lsnrctl reload

四、客户端连接配置(tnsnames.ora)

客户端通常需要:

ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.100)(PORT = 1521))
    (CONNECT_DATA =
      (SERVICE_NAME = orcl)
    )
  )

五、常见问题排查

  1. 监听起不来

    • 检查 IP 是否正确
    • 端口是否被占用
    netstat -tunlp | grep 1521
    
  2. status 显示 no services

    • 数据库没启动
    • 或 listener.ora 中 SID 配置错误
  3. 防火墙

    firewall-cmd --add-port=1521/tcp --permanent
    firewall-cmd --reload
    

如果你愿意,可以告诉我:

  • Oracle 版本(11g / 12c / 19c)
  • 是 单实例还是 RAC
  • 是 本地还是远程连接

我可以给你一份更精确的配置。

0 踩