暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle 12c服务注册之LREG进程

IT那活儿 2022-03-29
1905

点击上方“IT那活儿”,关注后了解更多内容,不管IT什么活儿,干就完了!!!

1

文章前言

在12c以前的版本中,PMON进程负责监视后台进程状态及向监听注册服务。
12c以后,Oracle推出了一个新的后台进程LREG,负责处理服务注册问题。
LREG (Listener REGistration)功能如下:
  • 向监听注册实例信息;

  • 往listener.log里记录service_update、 service_register、service_died事件;

  • LREG是一个重要的后台进程,如果该进程被杀,实例会crash。

2

实例注册

2.1 使用如下命令追踪LREG进程:
alter system set events = '10257 trace name context forever, level 5';
LREG默认每3s更新一次状态,如果实例一直未注册成功,60s进行一次实例注册。
此时监听未运行,LREG进程不能注册服务信息,LREG 每60s尝试连接监听器,监听启动以后,可以使用 ALTER SYSTEM REGISTER立即注册服务。
如果注册成功,状态一直正常,将会根据负载情况周期性更新注册信息。
LREG注册服务的时候,向监听提供服务名、实例名、实例节点的负载等信息。
2.2 使用如下命令查看注册的服务信息
alter system set events='immediate trace name listener_registration level 3';------------------------------Start Registration Information------------------------------Last update: 179670 (518 seconds ago)Flag: 0x4, 0x0State: succ=1, wait=0, fail=0Non-CDB: root pdb 0 last pdb 0 open max pdb 0Dispatcher configuration index: cur 1 max 1Network '-oracledefault-' pdb 0 :Local listeners:0 - (ADDRESS=(PROTOCOL=TCP)(HOST=rac1)(PORT=1521)) pdb 0 dci 0state=1, err=0nse[0]=0, nse[1]=0, nte[0]=0, nte[1]=0, nte[2]=0ncre=0endp=(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=***.***.20.1)(PORT=1521)))flg=0x80000000 nse=0 pri=0x7f26a6f276f0Instance: orcl (PDB 0 flag 0x1 state 0)flg=0x0, upd=0xainfo=(INF=(HOST=rac1)(REGION=)(DB_NAME=orcl)(VINST_NAME=))node load=2, max=5120inst load=1, max=622pri=0x7f26a6f27028Active Services:0 - orclflg=0x4, upd=0x2, pdb=0goodnes=0, delta=1, pri=0x7f26a6f271a81 - orclXDBflg=0x5, upd=0x2, pdb=0goodnes=0, delta=1, pri=0x7f26a6f27148Inactive Services:Deleted Services:Service ACLs:Dump ACLs:Handlers:0 - Dedicatedflg=0x2002, upd=0x2, srvl=2services=orclhdlr load=50, max=399nam=DEDICATED…………………………………………----------------------------End Registration Information----------------------------

3

往监听日志里记录服务注册事件

3.1 service_register
实例启动,向监听器注册实例信息:
<msg time='2022-02-21T14:34:27.527+08:00' org_id='oracle' comp_id='tnslsnr'type='UNKNOWN' level='16' host_id='rac1'  host_addr='***.***.20.1' pid='4629'><txt>21-FEB-2022 14:34:27 * (ADDRESS=(PROTOCOL=tcp)(HOST=***.***.20.1)(PORT=15161)) * service_register * orcl * 0</txt></msg>
3.2 service_update
实例注册信息更新:
<msg time='2022-02-21T14:40:18.356+08:00' org_id='oracle' comp_id='tnslsnr'type='UNKNOWN' level='16' host_id='rac1' host_addr='***.***.20.1' pid='4629'><txt>21-FEB-2022 14:40:18 * service_update * orcl * 0</txt></msg>
3.3 service_died
实例关闭,监听器和LREG进程失去联系:
<msg time='2022-02-21T14:34:01.016+08:00' org_id='oracle' comp_id='tnslsnr'type='UNKNOWN' level='16' host_id='rac1'  host_addr='***.***.20.1' pid='4629'><txt>21-FEB-2022 14:34:01 * service_died * orcl * 12537</txt></msg>

本文作者:谈龙凤

本文来源:IT那活儿(上海新炬王翦团队)

文章转载自IT那活儿,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论