Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【DB笔试面试755】在Oracle的DG中,RFS、LNSn、MRP、LSP进程的作用分别是什么?

【DB笔试面试755】在Oracle的DG中,RFS、LNSn、MRP、LSP进程的作用分别是什么?

作者头像
AiDBA宝典
发布于 2020-02-24 08:49:33
发布于 2020-02-24 08:49:33
1.6K00
代码可运行
举报
运行总次数:0
代码可运行

题目部分

在Oracle的DG中,RFS、LNSn、MRP、LSP进程的作用分别是什么?

答案部分

这几个进程是DG结构中日志传输、接受和应用的关键性进程,下面分别介绍这几个进程。

(一)RFS进程

RFS(Remote File Server)进程主要用来接受从主库传送过来的日志信息。对于物理备库而言,RFS进程可以直接将日志写进Standby Redo logs,也可以直接将日志信息写到归档日志中。一般可以在主备库的告警日志中看到如下的信息:

主库:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
LNS1 started with pid=21, OS id=11222

备库:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
RFS[2]: Successfully opened standby log 5: '/opt/oracle/oradata/lhrdb/std_redo5a.log'

数据库中查询:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SQL> SELECT PROCESS,PID,STATUS FROM V$MANAGED_STANDBY;
PROCESS          PID STATUS
--------- ---------- ------------
ARCH           18547 CLOSING
ARCH           18549 CLOSING
MRP0           23485 APPLYING_LOG
RFS             1092 IDLE
RFS             1090 IDLE
[oracle@Oracle1 ~]$ ps -ef | grep '1092\|1090'
oracle    1092     1  0 May05 ?        00:00:18 oraclelhrdb (LOCAL=NO)
oracle    1090     1  0 May05 ?        00:00:00 oraclelhrdb (LOCAL=NO)

对于Oracle 11g而言,该进程一般会自动启动,但是,对于Oracle 10g而言,由于某些特殊原因,该进程可能不会自动启动,那么可以使用如下的步骤来手动启动该进程:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
① 启动实时应用 
   物理:ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT FROM SESSION;
   逻辑:ALTER DATABASE START LOGICAL STANDBY APPLY IMMEDIATE;
② alter system set log_archive_dest_state_2='defer';  
alter system switch logfile;
alter system set log_archive_dest_state_2='enable';
alter system switch logfile; 
③ 重启备库

(二)LNSn(LGWR Network Server process)进程

DG可以使用ARCn、LGWR来传送日志,但它们都是把日志发送给本地的LNSn(如果有多个目标备库,那么会启动相应数量的LNSn进程,同时发送数据)进程,然后备库的RFS进程接收数据,接收到的数据可以存储在备库的备用Redo日志文件中或备库的归档日志中,然后再应用到备库中。

一般情况下,主库切换(ALTER SYSTEM SWITCH LOGFILE;)日志可以启动LNSn进程,若不能正常启动则可以按照如下的步骤来处理:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
① ALTER SYSTEM SWITCH LOGFILE;
② 备库启动实时应用后,主库:
ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2='DEFER';
ALTER SYSTEM SWITCH LOGFILE;
ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2='ENABLE';
ALTER SYSTEM SWITCH LOGFILE;
③ 重启备库、主库

进程查询(ps -ef|grep -v grep|grep -E "ora_lns|ora_nsa|ora_nss"):

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@rhel6_lhr lhr]# ps -ef|grep -v grep|grep -E "ora_lns|ora_nsa|ora_nss"
oracle    8090     1  0 03:57 ?        00:01:40 ora_lns1_oradg10g
oracle    8092     1  0 03:57 ?        00:01:40 ora_nsa2_oradg11g
oracle    8095     1  0 03:57 ?        00:01:40 ora_nss2_orawl11g

需要注意的是,若在Oracle 10g中采用LGWR传输日志的时候,则进程表现为LNSn,但在Oracle 11g中,若采用LGWR ASYNC(异步方式)来传输日志的时候,则进程表现为nsa,若采用LGWR SYNC(同步方式)来传输日志的时候,则进程表现为nss,且通过视图GV$MANAGED_STANDBY查询的结果不尽相同,具体参考【表 3-31 DG传输进程及其模式表】。

表 3-31 DG传输进程及其模式表

版本

10g

11g

传输模式

LGWR ASYNC(异步)

LGWR SYNC(同步)

ARCH

LGWR ASYNC

LGWR SYNC

ARCH

后台进程表现(ps -ef|grep -v grep|grep -E "ora_lns|ora_nsa|ora_nss")

ora_lns1_mydg

ora_lnsb_mydg

ora_arc3_mydg

ora_nsa2_mydg

ora_nss2_mydg

ora_arc3_mydg

视图GV$MANAGED_STANDBY

LNS

LGWR

ARCH

LNS

LGWR

ARCH

切换日志的时候告警日志

出现过一次,LNS: Standby redo logfile selected for thread 1 sequence 13 for destination LOG_ARCHIVE_DEST_2,但再切换的时候就不出现了

LNS: Standby redo logfile selected for thread 1 sequence 98 for destination LOG_ARCHIVE_DEST_2

LNS: Standby redo logfile selected for thread 1 sequence 98 for destination LOG_ARCHIVE_DEST_2

ARC0: Standby redo logfile selected for thread 1 sequence 102 for destination LOG_ARCHIVE_DEST_2

是否默认

是,默认采用归档进程传送

是,默认采用LGWR异步模式传送

(三)MRP(Managed Recovery Process)进程

该进程只针对物理备库,作用为应用从主库传递过来的Redo日志到物理备库,称为Redo Apply。如果使用SQL语句“ALTER DATABASE RECOVER MANAGED STANDBY DATABASE”启用该进程,那么前台进程将会做恢复。如果加上DISCONNECT语句,那么恢复过程将在后台进程,发出该语句的进程可以继续做其它的事情,进程如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[oracle@rhel6_lhr ~]$ ps -ef | grep ora_mrp
oracle    4794     1  0 10:33 ?        00:00:00 ora_mrp0_orawldg

(四)LSP(logical standby process)进程

只有逻辑备库才会有该进程。LSP进程控应用Redo日志到逻辑备库。进程如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[oracle@rhel6_lhr ~]$ ps -ef | grep ora_lsp
oracle    4683     1  0 10:31 ?        00:00:01 ora_lsp0_oraljdg

本文选自《Oracle程序员面试笔试宝典》,作者:小麦苗

---------------优质麦课------------

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-02-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 DB宝 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【DG】物理DG中主库的LNSn、NSS、NSA进程的比较
同事说dg不能同步,让我帮忙看看,我用自己写的2个视图查看了下,首先发现主库没有常见的LNSn进程,下意识的认为主库这个进程没有启动,需要切换日志唤醒LNSn进程,事实上也这样做了,(alter system set log_archive_dest_state_2='defer'; alter system switch logfile; alter system set log_archive_dest_state_2='enable'; alter system switch logfile;),切换后发现日志可以正常传输了,但是主库还是看不到LNSn这个进程,于是找找资料,深入的研究了一下这个问题。
AiDBA宝典
2023/04/27
1.8K0
【DG】物理DG中主库的LNSn、NSS、NSA进程的比较
【DB笔试面试750】在Oracle中,请简单描述DG的架构。
主库(Primary Database)在运行过程中,会源源不断地产生Redo日志,这些日志需要发送到备库(Standy Database)端。这个发送动作可以由主库的LGWR或者ARCn进程完成,不同的归档目的地可以使用不同的方法,但是对于一个目的地,只能选用一种方法。选择不同的进程在数据保护能力和系统可用性方面有很大区别。如果使用LGWR进程来传递日志,但是由于某些原因,LGWR进程变得无法归档到目的地了,那么重做传输将会使用ARCn进程来完成归档操作。
AiDBA宝典
2020/02/24
8560
在Oracle中,请简单描述DG的架构。
主库(Primary Database)在运行过程中,会源源不断地产生Redo日志,这些日志需要发送到备库(Standy Database)端。这个发送动作可以由主库的LGWR或者ARCn进程完成,不同的归档目的地可以使用不同的方法,但是对于一个目的地,只能选用一种方法。选择不同的进程在数据保护能力和系统可用性方面有很大区别。如果使用LGWR进程来传递日志,但是由于某些原因,LGWR进程变得无法归档到目的地了,那么重做传输将会使用ARCn进程来完成归档操作。
AiDBA宝典
2023/08/09
6180
在Oracle中,请简单描述DG的架构。
【DG】DataGuard架构和部分概念整理
本篇梳理DG的架构和一些概念知识,重新梳理的目的是加强理解,也方便复习,基于11gR2版本写的,不包含12c新特性。如果能帮助到新接触DG的朋友,那就再好不过。
甚至熊熊
2021/04/22
2.6K0
【DG】DataGuard架构和部分概念整理
【DB笔试面试763】在Oracle中,物理DG维护中常用到的SQL语句有哪些?
DISCONNECT FROM SESSION子句并非必需,该子句的作用是指定启动完应用后自动退出到命令操作符前。如果不指定该子句的话,那么当前SESSION就会一直停留处理Redo应用,如果想做其它操作,那么就只能新建一个连接。
AiDBA宝典
2020/02/27
9060
【DB笔试面试756】在Oracle的DG中,有哪些重要的参数,它们分别代表什么含义?
对于DG的配置,可以通过Grid Control来完成,也可以通过Data Guard Broker以及SQL*Plus来完成。对于前两者方式可以在图形界面上完成,操作简单。而对于使用SQL*Plus命令行方式,需要进行大量的配置,下表列出了一些重要参数:
AiDBA宝典
2020/02/25
7210
Oracle DG测试failover和后续恢复报告
本文是针对在DG灾备环境进行failover操作以及后续恢复的报告。 我这里的测试环境是: 数据库版本:Oracle 11.2.0.4 Site A:主库 db_unique_name=jyzhao Site B:备库(实时应用)db_unique_name=mynas Site C:备库(延迟1小时应用)db_unique_name=jyzhao_s
Alfred Zhao
2019/05/24
8190
【云原生进阶之数据库技术】第二章-Oracle-使用-3.3.2-Oracle Data Guard原理
DG 的工作原理是通过网络将主数据库的重做数据传输到备用数据库,然后在备用数据库上应用这些重做数据,以确保数据的一致性。
江中散人_Jun
2024/05/29
6200
【云原生进阶之数据库技术】第二章-Oracle-使用-3.3.2-Oracle Data Guard原理
ARCH和LGWR进程同步DG日志的区别alert日志上也有所区别:
我在做Standby RAC实验时,起初使用的是ARCH传输,后来将其改为LGWR传输(实际是LGWR分出的小工进程LNS):
Alfred Zhao
2019/05/24
8620
Oracle DG环境中的gap处理办法总结
当主库的某些日志没有成功传送到备库,那么这时候就发生了归档裂缝(Archive Gap)。目前Oracle提供了两种日志GAP的检测和处理机制,分别是自动GAP处理(Automatic Gap Resolution)和FAL进程GAP处理(FAL Gap Resolution)。自动GAP处理即主库上的ARCn进程会每分钟检查备库上的日志GAP情况并做相应处理。FAL(Fetch Archive Log)是通过配置FAL_SERVER和FAL_CLIENT实现GAP检测的一种机制,它是备库主动发起的“取”日志的过程。备库就是FAL_CLIENT,它从FAL_SERVER中取这些GAP。Oracle会首先尝试使用FAL进程处理GAP,当发现FAL机制并没有配置生效的时候,进而尝试使用自动GAP处理。FAL进程只在物理备库存在。FAL进程提供了一个CLIENT/SERVER的机制,用来解决检测在主库产生的连续的归档日志,而在备库接受的归档日志不连续的问题。该进程只有在需要的时候才会启动,而当工作完成后就关闭了,因此在正常情况下,该进程是无法看见的。
AiDBA宝典
2023/04/27
2.4K0
Oracle DG环境中的gap处理办法总结
【DG】DataGuard动态性能视图及日志传输/应用服务说明
之前已经整理出: 1.【DG】DataGuard搭建-11gR2单主单备 2.【DG】DataGuard架构和部分概念整理 下面继续整理DataGuard相关动态性能视图,用于查看物理DG状态,以及日志传输/应用服务简单说明,要结合架构和概念篇看
甚至熊熊
2021/04/22
2.3K0
【DG】DataGuard动态性能视图及日志传输/应用服务说明
Oracle 11g DG手工switchover切换标准化流程
环境:RHEL 6.5 + Oracle GI 11.2.0.4 + Oracle DB 11.2.0.4 Primary RAC(2 nodes) + Standby RAC(2 nodes)
Alfred Zhao
2019/05/24
1.4K0
Oracle RAC11gR2 ADG搭建实施与应用
最近准备给一个生产项目上oracle 11g DataGuard,主备均为oracle 11.2.0.4软件,并在备库安装软件。这篇不讲述 DataGuard 的原理,只是oracle 11g DataGuard 搭建的详细过程。这次是生产库的RAC需要做一个DG,由于不知道SYS 用户密码,需要取回密码太麻烦,故不能使用 duplicate 方式,使用rman 全备 -->还原控制文件--> mount数据库还原数据文件 --> 追加日志 --> 主备同步。搭建过程中只需要修改部分参数以及网络监听,故不需要停机可白天完成,下面开始进入主题。
JiekeXu之路
2019/08/06
2.6K0
Oracle RAC11gR2 ADG搭建实施与应用
【DB笔试面试753】在Oracle中,将一个物理DG转换为逻辑DG有哪些步骤呢?
对于将物理备库切换到逻辑备库,需要在主库构建LogMiner字典及启用补充日志,因此应先停用备库的MRP进程,避免产生额外的Redo Apply。如果正在使用Broker管理现有的物理备库,应先在Broker中禁用目标数据库。
AiDBA宝典
2020/02/24
9210
【DB宝31】Oracle DG环境中主库使用rman做不完全恢复后,备库如何修复继续同步
本文介绍一下,在DG环境中,主库使用rman做不完全恢复后,备库如何通过flashback操作,继续和主库保持同步,而不用重新搭建DG。
AiDBA宝典
2020/12/08
9450
Oracle 增量修复DG同步
最近因灰度测试环境空间问题导致删除了部分未应用的归档,从而导致DG同步延迟。当时也在国庆假期,考虑到此为灰度测试环境备库供公司开发人员内部查询使用,就没有及时追平同步。   假期结束后,发现归档差距有点大,于是考虑通过Oracle的增量备份恢复来修复DG的同步问题。
布衣530
2025/01/19
1570
Oracle 增量修复DG同步
dg broker校验失败的一个奇怪问题(二) (r8笔记第51天)
对昨天提出的问题做了一个简单的分析和排查,也算是有了一个交代,上一篇文章在 dg broker校验失败的一个奇怪问题 我查看了最近的日志,发现在半个月以前有一行日志引起了我的注意。 Thu Mar 03 17:32:12 2016 ALTER SYSTEM SET log_archive_dest_state_2='DEFER' SCOPE=BOTH; 关于这个DEFER的设置,让我想起了之前的一个设置。 原来的主库发生了硬件电源故障,启用备用电源之后,勉强撑了几个小时,因为数据库之前使用的异机逻辑备份,
jeanron100
2018/03/19
8620
dg broker校验失败的一个奇怪问题(二) (r8笔记第51天)
Oracle ADG 备库停启维护流程及增量恢复
对于 Oracle Oracle ADG 备库重启时有些人都会有一个小问题,那就是没有及时应用日志没启动 MRP0 进程,导致主备库不同步。一般情况下主备库不同步的原因有:
JiekeXu之路
2022/03/31
2.1K0
Oracle ADG 备库停启维护流程及增量恢复
ADG单实例搭建系列之 (DBCA)
参考官方文档12c:Using DBCA to Create a Data Guard Standby 12C
Lucifer三思而后行
2021/08/17
1.7K0
ADG单实例搭建系列之 (DBCA)
Oracle 主库rac + 备库rac 11.2.0.4的DG环境部署
各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道的知识,~O(∩_∩)O~:
AiDBA宝典
2023/04/27
4K0
Oracle 主库rac + 备库rac 11.2.0.4的DG环境部署
推荐阅读
相关推荐
【DG】物理DG中主库的LNSn、NSS、NSA进程的比较
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档