资讯专栏INFORMATION COLUMN

Oracle 12c服务注册之LREG进程

IT那活儿 / 2143人阅读
Oracle 12c服务注册之LREG进程

点击上方“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, 0x0
State: succ=1, wait=0, fail=0
Non-CDB: root pdb 0 last pdb 0 open max pdb 0
Dispatcher configuration index: cur 1 max 1
Network -oracledefault- pdb 0 :
Local listeners:
0 - (ADDRESS=(PROTOCOL=TCP)(HOST=rac1)(PORT=1521)) pdb 0 dci 0
state=1, err=0
nse[0]=0, nse[1]=0, nte[0]=0, nte[1]=0, nte[2]=0
ncre=0
endp=(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=***.***.20.1)(PORT=1521)))
flg=0x80000000 nse=0 pri=0x7f26a6f276f0

Instance: orcl (PDB 0 flag 0x1 state 0)
flg=0x0, upd=0xa
info=(INF=(HOST=rac1)(REGION=)(DB_NAME=orcl)(VINST_NAME=))
node load=2, max=5120
inst load=1, max=622
pri=0x7f26a6f27028

Active Services:
0 - orcl
flg=0x4, upd=0x2, pdb=0
goodnes=0, delta=1, pri=0x7f26a6f271a8
1 - orclXDB
flg=0x5, upd=0x2, pdb=0
goodnes=0, delta=1, pri=0x7f26a6f27148
Inactive Services:
Deleted Services:
Service ACLs:
Dump ACLs:
Handlers:
0 - Dedicated
flg=0x2002, upd=0x2, srvl=2
services=orcl
hdlr load=50, max=399
nam=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那活儿(上海新炬王翦团队)

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/129599.html

相关文章

  • 集成安装Oracle12C补丁升级数据字典更新报错处理

    集成安装之Oracle12C补丁升级数据字典更新报错处理 img{ display:block; margin:0 auto !important; width:100%; } body{ width:75%; ...

    IT那活儿 评论0 收藏795
  • 使用 Etcd 和 Haproxy 做 Docker 服务发现

    摘要:服务发现服务发现被容器处理。主机首先,我们启动注册我们的地址是。首先,启动然后,启动一个简单的客户端容器并传给它。这时,构造一些请求给服务端口来看他们的负载。同样地,的事件和容器减轻了服务注册和使用注册服务发现比如的困难。 使用 Etcd 和 Haproxy 做 Docker 服务发现 标签(空格分隔): Etcd Haproxy Docker 服务发现 architecture ...

    caozhijian 评论0 收藏0

发表评论

0条评论

IT那活儿

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<