温馨提示×

ubuntu怎么配置oracle监听

小樊
44
2026-10-07 17:17:14
栏目: 云计算

在 Ubuntu 上配置 Oracle 监听(Listener),通常是通过 Oracle Net(listener.ora / tnsnames.ora)来完成的。下面以 Oracle 19c / 21c 为例,说明完整步骤。


一、前提条件

  1. 已安装 Oracle Database(如 19c)
  2. 使用 oracle 用户操作
  3. 环境变量已配置(ORACLE_HOME、ORACLE_SID)
su - oracle

确认环境变量:

echo $ORACLE_HOME
echo $ORACLE_SID

二、监听器配置文件位置

监听器配置文件通常位于:

$ORACLE_HOME/network/admin/listener.ora

三、配置 listener.ora

示例(最常见配置)

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

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

说明:

  • HOST:可写 localhost 或服务器 IP
  • PORT:默认 1521
  • SID_NAME:数据库实例名
  • ORACLE_HOME:实际安装路径

四、启动监听器

lsnrctl start

查看状态:

lsnrctl status

看到类似:

Service "orcl" has 1 instance(s).

说明配置成功。


五、配置 tnsnames.ora(可选但推荐)

文件位置:

$ORACLE_HOME/network/admin/tnsnames.ora

示例:

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

测试连接:

tnsping ORCL

六、常见问题排查

1️⃣ 监听器启动失败

lsnrctl start

错误如 TNS-12545:

  • 检查 HOST 是否正确
  • 检查端口是否被占用
netstat -tunlp | grep 1521

2️⃣ 数据库未注册到监听

手动注册:

sqlplus / as sysdba
ALTER SYSTEM REGISTER;

3️⃣ 防火墙问题(远程连接)

sudo ufw allow 1521/tcp

七、开机自启(可选)

Ubuntu 不默认自启 Oracle,可配置 systemd 或 rc.local。


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

  • Oracle 版本
  • 是否本地还是远程连接
  • 是否使用 CDB / PDB

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

0 踩