意见箱
恒创运营部门将仔细参阅您的意见和建议,必要时将通过预留邮箱与您保持联络。感谢您的支持!
意见/建议
提交建议

Windows Server 2008 R2 Standard安装oracle 11.2.0.1数据库服务未注册到监听程序

来源:恒创科技 编辑:恒创科技编辑部
2023-12-06 19:03:59
系统:Windows Server 2008 R2 Standard
数据库:oracle 11.2.0.1
问题描述:在Windows Server 2008 R2 Standard安装好oracle 11.2.0.1后,发现监听异常,具体表现为数据库服务未注册到监听程序中,如下所示:
1、问题重现
C:\Users\Administrator>lsnrctl status

LSNRCTL for 64-bit Windows: Version 11.2.0.1.0 - Production on 14-9月 -2022 21:3
7:57

Copyright (c) 1991, 2010, Oracle. All rights reserved.

正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.133.192)(PORT=1521)
))
LISTENER 的 STATUS
------------------------
别名 LISTENER
版本 TNSLSNR for 64-bit Windows: Version 11.2.0.1.0 - Produ
ction
启动日期 14-9月 -2022 21:35:47
正常运行时间 0 天 0 小时 2 分 9 秒
跟踪级别 off
安全性 ON: Local OS Authentication
SNMP OFF
监听程序参数文件 D:\app\Administrator\product\11.2.0\dbhome_1\network\a
dmin\listener.ora
监听程序日志文件 d:\app\administrator\diag\tnslsnr\WIN-9EU17D7KKMU\list
ener\alert\log.xml
监听端点概要...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.133.192)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1521ipc)))
服务摘要..
服务 "CLRExtProc" 包含 1 个实例。
实例 "CLRExtProc", 状态 UNKNOWN, 包含此服务的 2 个处理程序...
命令执行成功

SQL> select open_mode from v$database;

OPEN_MODE
----------------------------------------
READ WRITE
说明:可以看到数据库正常,监听服务也启动,但数据库服务却未注册到监听程序中.
2、数据库信息
2.1、listener.ora
以下为监听文件信息.
# listener.ora Network Configuration File: D:\app\Administrator\product\11.2.0\dbhome_1\network\admin\listener.ora
# Generated by Oracle configuration tools.

SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = CLRExtProc)
(ORACLE_HOME = D:\app\Administrator\product\11.2.0\dbhome_1)
(PROGRAM = extproc)
(ENVS = "EXTPROC_DLLS=ONLY:D:\app\Administrator\product\11.2.0\dbhome_1\bin\oraclr11.dll")
)
(SID_DESC =
(SID_NAME = CLRExtProc)
(ORACLE_HOME = D:\app\Administrator\product\11.2.0\dbhome_1)
(PROGRAM = extproc)
(ENVS = "EXTPROC_DLLS=ONLY:D:\app\Administrator\product\11.2.0\dbhome_1\bin\oraclr11.dll")
)
)

LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.133.192)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
)

ADR_BASE_LISTENER = D:\app\Administrator
说明:因此前怀疑监听可能有问题,所以此处监听重建过.不过现可以确定,监听配置文件没有问题.
查看local_listener设置.
SQL> show parameter local_lis

NAME TYPE VALUE
------------------------------------ ---------------------- ------------------------------
local_listener string
说明:默认为空.不过需要注意的是,动态注册只注册到默认的监听器(名称LISTENER、端口1521、协议TCP),因为PMON只会动态注册port为1521的监听.因此判断数据库服务自动注册监听失败造成此异常.
2.2、sqlnet.ora
以下为sqlnet.ora文件信息.
# This file is actually generated by netca. But if customers choose to
# install "Software Only", this file wont exist and without the native
# authentication, they will not be able to connect to the database on NT.

SQLNET.AUTHENTICATION_SERVICES = (NTS)

2.3、tnsnames.ora
以下为tnsnames.ora文件数据.
# tnsnames.ora Network Configuration File: D:\app\Administrator\product\11.2.0\dbhome_1\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.

ORACLR_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
(CONNECT_DATA =
(SID = CLRExtProc)
(PRESENTATION = RO)
)
)

ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.133.192)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)

3、解决方案
3.1、修改tnsnames.ora
将监听配置信息添加进tnsnames.ora文件.
# tnsnames.ora Network Configuration File: D:\app\Administrator\product\11.2.0\dbhome_1\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.

LISTENER_ORCL =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.133.192)(PORT = 1521))

ORACLR_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
(CONNECT_DATA =
(SID = CLRExtProc)
(PRESENTATION = RO)
)
)

ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.133.192)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
说明:LISTENER_ORCL部分为新增内容.
3.2、配置local_listener
设置参数local_listener为tnsnames.ora文件的LISTENER_ORCL
SQL> alter system set local_listener='LISTENER_ORCL';

系统已更改。

SQL> show parameter local_li

NAME TYPE VALUE
------------------------------------ ---------------------- --------------
local_listener string LISTENER_ORCL

4、检查监听
C:\Users\Administrator>lsnrctl status

LSNRCTL for 64-bit Windows: Version 11.2.0.1.0 - Production on 14-9月 -2022 22:07:18

Copyright (c) 1991, 2010, Oracle. All rights reserved.

正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.133.192)(PORT=1521)))
LISTENER 的 STATUS
------------------------
别名 LISTENER
版本 TNSLSNR for 64-bit Windows: Version 11.2.0.1.0 - Production
启动日期 14-9月 -2022 21:35:47
正常运行时间 0 天 0 小时 31 分 30 秒
跟踪级别 off
安全性 ON: Local OS Authentication
SNMP OFF
监听程序参数文件 D:\app\Administrator\product\11.2.0\dbhome_1\network\admin\listener.ora
监听程序日志文件 d:\app\administrator\diag\tnslsnr\WIN-9EU17D7KKMU\listener\alert\log.xml
监听端点概要...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.133.192)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1521ipc)))
服务摘要..
服务 "CLRExtProc" 包含 1 个实例。
实例 "CLRExtProc", 状态 UNKNOWN, 包含此服务的 2 个处理程序...
服务 "orcl" 包含 1 个实例。
实例 "orcl", 状态 READY, 包含此服务的 1 个处理程序...
服务 "orclXDB" 包含 1 个实例。
实例 "orcl", 状态 READY, 包含此服务的 1 个处理程序...
命令执行成功

结论:监听恢复正常.
参考网址:https://blog.csdn.net/u013012406/article/details/89354013


Windows Server 2008 R2 Standard安装oracle 11.2.0.1数据库服务未注册到监听程序

上一篇: mysql直接拷贝data目录下数据库源文件还原数据库方法 下一篇: ORA-00998: must name this expression with a column alias