ubuntu

Ubuntu如何配置Oracle监听器

小樊
50
2025-09-29 20:13:04
栏目: 云计算

Ubuntu配置Oracle监听器详细步骤

1. 前提准备

2. 创建/编辑监听器配置文件(listener.ora)

监听器配置文件默认位于$ORACLE_HOME/network/admin/目录下,使用文本编辑器(如vi)打开:

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

添加或修改以下内容(关键参数说明见注释):

# 监听器基本配置:定义监听的协议、IP地址和端口
LISTENER = 
  (DESCRIPTION_LIST = 
    (DESCRIPTION = 
      (ADDRESS = (PROTOCOL = TCP)(HOST = 0.0.0.0)(PORT = 1521))  # 监听所有网络接口(生产环境建议指定具体IP)
    )
  )

# 可选:关联SID与Oracle Home(若需监听多个数据库实例)
SID_LIST_LISTENER = 
  (SID_LIST = 
    (SID_DESC = 
      (SID_NAME = orcl)           # 数据库SID(需与实际一致)
      (ORACLE_HOME = $ORACLE_HOME) # 指向Oracle安装目录
    )
  )

保存并退出编辑器。

3. (可选)创建/编辑TNSNAMES.ORA文件

若需通过服务名连接数据库,需配置tnsnames.ora文件(同样位于$ORACLE_HOME/network/admin/):

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

添加以下内容(示例):

# 定义数据库服务名(别名),用于客户端连接
ORCL =
  (DESCRIPTION = 
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.100)(PORT = 1521))  # 替换为服务器实际IP
    (CONNECT_DATA = 
      (SERVER = DEDICATED)           # 连接模式(专用服务器)
      (SERVICE_NAME = orcl)          # 数据库服务名(需与实际一致)
    )
  )

保存并退出。

4. 启动Oracle监听器

使用lsnrctl命令启动监听器:

lsnrctl start

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

Starting /u01/app/oracle/product/19.0.0/dbhome_1/bin/tnslsnr: please wait...
TNSLSNR for Linux: Version 19.0.0.0.0 - Production
System parameter file is /u01/app/oracle/product/19.0.0/dbhome_1/network/admin/listener.ora
Log messages written to /u01/app/oracle/diag/tnslsnr/ubuntu/listener/alert/log.xml
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=0.0.0.0)(PORT=1521)))
Services summary...
Service "orcl" has 1 instance(s).
  Instance "orcl", status READY, has 1 handler(s) for this service...
The command completed successfully

5. 验证监听器状态

通过以下命令检查监听器是否运行正常:

lsnrctl status

重点确认:

6. 常用管理命令

7. 可选:创建Systemd服务(便于管理)

若需将监听器作为系统服务管理(开机自启、状态查看),可创建以下服务文件:

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

添加以下内容:

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

[Service]
Type=forking
ExecStart=$ORACLE_HOME/bin/lsnrctl start
ExecStop=$ORACLE_HOME/bin/lsnrctl stop
ExecReload=$ORACLE_HOME/bin/lsnrctl reload
User=oracle
Group=oinstall
Restart=on-failure

[Install]
WantedBy=multi-user.target

执行以下命令启用并启动服务:

sudo systemctl daemon-reload
sudo systemctl start oracle-listener
sudo systemctl enable oracle-listener  # 开机自启
sudo systemctl status oracle-listener  # 查看状态

注意事项

0
看了该问题的人还看了