local_listener

本文记录了一次Oracle数据库监听器配置过程中遇到的问题及解决方法。主要问题包括监听器创建失败、端口和服务名被占用、hosts文件配置错误等,并详细展示了如何通过检查和修改相关参数来解决这些问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数据库监听无法创建总是报错这个端口已被占用,服务名已被占用
hosts文件ip地址错误

sqlplus / as sysdba 查看数据库实例没问题
通过监听连接不正常

[oracle@centos02 admin]$ sqlplus scott/tiger@evistest

SQL*Plus: Release 11.2.0.4.0 Production on Mon Aug 6 21:34:01 2018

Copyright (c) 1982, 2013, Oracle.  All rights reserved.

ERROR:
ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist
Linux-x86_64 Error: 2: No such file or directory
Process ID: 0
Session ID: 0 Serial number: 0


Enter user-name: 
ERROR:
ORA-01017: invalid username/password; logon denied


Enter user-name: 
ERROR:
ORA-01017: invalid username/password; logon denied


SP2-0157: unable to CONNECT to ORACLE after 3 attempts, exiting SQL*Plus
[oracle@centos02 admin]$ 
下面参数注册错误

SQL> show parameter local_listener

NAME                     TYPE     VALUE
------------------------------------ ----------- ------------------------------
local_listener                 string      (ADDRESS=(PROTOCOL=TCP)(HOST=
                         192.168.56.104)(PORT=1521))
SQL> 

alter system set local_listener='(ADDRESS =(PROTOCOL=TCP)(HOST=192.168.56.102)(PORT=1521)(SID=evistest))';

### Oracle 19c Local Listener 配置与故障排除 #### 本地侦听器的作用 在Oracle数据库中,`LOCAL_LISTENER` 参数用于指定数据库实例注册的本地侦听器名称。此参数允许客户端通过该侦听器连接到特定的数据库实例[^1]。 #### 配置 `LOCAL_LISTENER` 要配置 `LOCAL_LISTENER` 参数,可以通过以下方法实现: 1. **动态修改** 使用 `ALTER SYSTEM` 命令来设置 `LOCAL_LISTENER` 参数: ```sql ALTER SYSTEM SET LOCAL_LISTENER='(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521))'; ``` 2. **静态修改** 编辑初始化参数文件 (`spfile` 或 `pfile`) 并重启数据库以使更改生效: ```ini LOCAL_LISTENER="(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521))" ``` 完成上述操作后,确保侦听器已启动并正在运行。可以使用以下命令验证侦听器状态: ```bash lsnrctl status ``` #### 故障排查步骤 当遇到与 `LOCAL_LISTENER` 相关的问题时,可以从以下几个方面入手: 1. **确认侦听器是否正常工作** 如果无法通过 `LOCAL_LISTENER` 连接到数据库实例,则需检查侦听器的状态以及其配置文件(通常是 `listener.ora`)。确保端口和主机名匹配实际环境设置[^3]。 2. **检查数据库实例注册情况** 执行以下查询以查看当前实例是否成功向侦听器注册: ```sql SELECT value FROM v$parameter WHERE name = 'local_listener'; ``` 若返回为空或不正确,可能需要重新设置 `LOCAL_LISTENER` 参数。 3. **日志分析** 查看警报日志 (alert log) 和跟踪文件中的错误消息,定位具体原因。路径通常位于 `$ORACLE_BASE/diag/rdbms/<dbname>/<instance>/trace/`. 4. **权限问题** 确认操作系统级别是否有足够的权限访问网络资源。特别是在多租户架构下,PDB 可能会因权限不足而未能正确注册至 CDB 的侦听器上。 #### 特殊注意事项 对于 Oracle 19c 而言,由于 Grid Infrastructure Management Repository (GIMR) 成为可选项[^2],因此某些依赖于 GIMR 的功能可能会受到影响。尽管如此,这并不直接影响标准的 `LOCAL_LISTENER` 设置流程;但如果涉及高级集群管理特性,则应额外注意这些组件之间的交互关系。 --- ### 示例代码片段 以下是创建自定义侦听器的一个简单例子: ```sql -- 添加新的侦听器条目到 listener.ora 文件 LISTENER_CUSTOM = (DESCRIPTION= (ADDRESS=(PROTOCOL=tcp)(HOST=myhost.example.com)(PORT=1522)) ) -- 启动新添加的侦听器 lsnrctl start LISTENER_CUSTOM -- 更新数据库实例指向这个定制化的侦听器 ALTER SYSTEM SET LOCAL_LISTENER='LISTENER_CUSTOM' SCOPE=BOTH; ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值