温馨提示×

debian怎么配置lsnrctl监听

小樊
39
2026-07-22 09:24:01
栏目: 智能运维

在 Debian 上配置 lsnrctl(Oracle Listener) 通常用于 Oracle Database。下面按常见场景一步一步说明,默认你已经 安装好 Oracle 数据库软件(如 Oracle 19c)。


一、确认环境

1. 确认 Oracle 已安装

lsnrctl

如果提示找不到命令,说明环境变量没配置好。

2. 切换到 Oracle 用户

su - oracle

3. 配置 Oracle 环境变量

编辑 ~/.bash_profile~/.bashrc

export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/19.3.0/dbhome_1
export ORACLE_SID=orcl
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib

生效:

source ~/.bash_profile

二、配置 listener.ora

1. 进入监听配置目录

cd $ORACLE_HOME/network/admin

2. 编辑 listener.ora

vi listener.ora

3. 最小可用配置示例

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

✅ 说明:

  • HOST
    • 0.0.0.0:监听所有网卡
    • 或写服务器 IP / 主机名
  • PORT:默认 1521
  • 不需要写 SID_LIST,Oracle 会自动注册

三、启动监听器

1. 启动监听

lsnrctl start

2. 查看监听状态

lsnrctl status

正常输出应包含:

Services Summary...
Service "orcl" has 1 instance(s).

四、让数据库自动注册到监听(推荐)

1. 登录数据库

sqlplus / as sysdba

2. 确认或设置

SHOW PARAMETER LOCAL_LISTENER;

如果为空或不正确:

ALTER SYSTEM SET LOCAL_LISTENER='(ADDRESS=(PROTOCOL=TCP)(HOST=0.0.0.0)(PORT=1521))';
ALTER SYSTEM REGISTER;

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

$ORACLE_HOME/network/admin/tnsnames.ora 中:

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

测试:

tnsping ORCL

六、防火墙(Debian 常见)

Debian 通常使用 nftablesufw

ufw 示例

sudo ufw allow 1521/tcp

七、常见问题排查

1. lsnrctl 命令不存在

echo $ORACLE_HOME
which lsnrctl

2. 监听启动但数据库未注册

ALTER SYSTEM REGISTER;

3. 端口被占用

ss -lntp | grep 1521

八、总结流程

安装 Oracle
↓
配置 ORACLE_HOME / ORACLE_SID
↓
编辑 listener.ora
↓
lsnrctl start
↓
数据库 ALTER SYSTEM REGISTER
↓
客户端 tnsnames.ora

如果你需要:

  • Oracle 12c / 19c / 21c 差异
  • 多实例监听
  • RAC / ASM 场景
  • Debian 安装 Oracle 的完整流程

可以直接告诉我你的 Oracle 版本 + Debian 版本

0