0


Oracle故障案例 | 19C动态监听无法注册实例的处理

📢📢📢📣📣📣
哈喽!大家好,我是【IT邦德】,江湖人称jeames007,10年DBA工作经验
一位上进心十足的【大数据领域博主】!😜😜😜
中国DBA联盟(ACDU)成员,目前从事DBA及程序编程
擅长主流数据Oracle、MySQL、PG 运维开发,备份恢复,安装迁移,性能优化、故障应急处理等。
✨ 如果有对【数据库】感兴趣的【小可爱】,欢迎关注【IT邦德】💞💞💞
❤️❤️❤️感谢各位大可爱小可爱!❤️❤️❤️

文章目录

前言

有客户的Oracle 19C数据库反应,数据库重启后,动态监听无法注册实例,本文分析了详细过程

⛳️ 1.故障现象

[oracle@jeames admin]$ lsnrctl startSQL>select*from v$version;
Oracle Database19c Enterprise Edition Release19.0.0.0.0- Production
SQL>alter system register;[oracle@jeames~]$ lsnrctl status

LSNRCTL for Linux: Version 19.0.0.0.0- Production on18-SEP-202223:05:27

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

Connecting to(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=jeames)(PORT=1521)))STATUSof the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 19.0.0.0.0- Production
StartDate18-SEP-202223:03:37
Uptime                    0 days 0 hr.1 min.49 sec
Trace Leveloff
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File/u01/app/oracle/product/19.3.0/dbhome_1/network/admin/listener.ora
Listener Log File/u01/app/oracle/diag/tnslsnr/jeames/listener/alert/log.xml
Listening Endpoints Summary...(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=jeames)(PORT=1521)))(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
The listener supports no services
The command completed successfully

在这里插入图片描述

⛳️ 2.故障排查

✨ 2.1 尝试添加静态监听

[oracle@jeames~]$ cd $ORACLE_HOME/network/admin
[oracle@jeames admin]$ ls
listener.ora  samples  shrept.lst  sqlnet.ora  tnsnames.ora

## 在listener.ora中加入以下内容
SID_LIST_LISTENER =(SID_LIST =(SID_DESC =(GLOBAL_DBNAME = PROD)(SID_NAME = PROD)))

在这里插入图片描述

[oracle@jeames admin]$ lsnrctl stop
[oracle@jeames admin]$ lsnrctl start

在这里插入图片描述

为什么监听可以静态注册实例,不能动态注册实例呢?

✨ 2.1 排查local_listener

SQL>show parameter local_listener
NAME                                 TYPEVALUE------------------------------------ ----------- ------------------------------
local_listener                       string      LISTENER_PROD

## 查看tnsnames.ora中有关LISTENER_PROD信息,host是OK的[oracle@jeames~]$ more $ORACLE_HOME/network/admin/tnsnames.ora
LISTENER_PROD =(ADDRESS =(PROTOCOL = TCP)(HOST = jeames)(PORT =1521))

故障原因:
动态注册默认只注册到默认的监听器上(名称是LISTENER、端口是1521、协议是TCP),
因为pmon只会动态注册port等于1521的监听,否则pmon不能动态注册listener,
如果需要向非默认监听注册,则需要配置local_listener参数

在这里插入图片描述

⛳️ 3.故障处理

由于监控使用默认的1521端口,可以将local_listener重置回之前的默认值,即空值
SQL> alter system set local_listener=‘’;
手动注册
SQL> alter system register;
SQL> !lsnrctl status
我们此时发现;动态监听已经可以注册实例了

在这里插入图片描述

⛳️ 4.技能拓展

静态监听VS动态监听

✨ 4.1 静态监听

静态注册就是实例启动时读取listener.ora文件的配置,将实例和服务注册到监听程序。
无论何时启动一个数据库,默认地都有
两条信息注册到监听器中:数据库服务器对应的实例和服务。

实例不必启动,静态监听也能注册
服务器启动静态监听后,可以远程远程启库

在这里插入图片描述

✨ 4.2 动态监听

动态注册是在instance启动的时候PMON进程根据参数文件中的instance_name,service_names
两个参数将实例和服务动态注册到listener中

在这里插入图片描述
在这里插入图片描述

标签: oracle 数据库

本文转载自: https://blog.csdn.net/weixin_41645135/article/details/126924866
版权归原作者 IT邦德 所有, 如有侵权,请联系我们删除。

“Oracle故障案例 | 19C动态监听无法注册实例的处理”的评论:

还没有评论