温馨提示×

ubuntu oracle监听如何设

小樊
55
2026-10-07 17:35:15
栏目: 云计算

在 Ubuntu 上配置 Oracle 监听(Listener),通常用于 Oracle Database(如 11g / 12c / 19c)。下面按最常见场景给你一个完整步骤说明。


一、前提条件

  • 已安装 Oracle Database(如 19c)
  • 使用 oracle 用户
  • 环境变量已配置(ORACLE_HOME、ORACLE_SID)
su - oracle

二、查看 / 编辑监听器配置

1️⃣ 监听器配置文件位置

$ORACLE_HOME/network/admin/listener.ora

示例路径(19c):

/u01/app/oracle/product/19.3.0/dbhome_1/network/admin/listener.ora

三、手动配置 listener.ora(推荐理解)

示例(端口 1521)

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(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)
    )
  )

⚠️ HOST 可写:

  • localhost(仅本地)
  • 服务器 IP(远程可连)
  • 主机名(需 /etc/hosts 正确)

四、启动监听器

lsnrctl start

查看状态:

lsnrctl status

看到:

Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=...)(PORT=1521)))

说明成功。


五、使用 netca(图形化,可选)

如果你装了 X11:

netca

按向导:

  1. Listener configuration
  2. Add
  3. 端口 1521
  4. Finish

六、开机自启(Ubuntu 注意)

Ubuntu 默认不自动启动 Oracle

方法 1:手动启动

lsnrctl start

方法 2:systemd(推荐)

创建:

sudo vi /etc/systemd/system/oracle-listener.service

内容:

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

[Service]
Type=forking
User=oracle
Environment=ORACLE_HOME=/u01/app/oracle/product/19.3.0/dbhome_1
ExecStart=/u01/app/oracle/product/19.3.0/dbhome_1/bin/lsnrctl start
ExecStop=/u01/app/oracle/product/19.3.0/dbhome_1/bin/lsnrctl stop

[Install]
WantedBy=multi-user.target

启用:

sudo systemctl enable oracle-listener

七、常见问题

❌ 连接超时

  • 防火墙:sudo ufw allow 1521
  • HOST 写错

❌ TNS-12541

lsnrctl start

❌ 实例未注册

ALTER SYSTEM REGISTER;

八、快速检查清单

✅ listener.ora 正确
✅ lsnrctl start
✅ 端口开放
✅ 防火墙放行


如果你告诉我:

  • Oracle 版本(11g / 12c / 19c)
  • 是否远程连接
  • 是否用 Docker

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

0 踩