【DB笔试面试755】在Oracle的DG中,RFS、LNSn、MRP、LSP进程的作用分别是什么?
作者:互联网
♣
题目部分
在Oracle的DG中,RFS、LNSn、MRP、LSP进程的作用分别是什么?
♣
答案部分
这几个进程是DG结构中日志传输、接受和应用的关键性进程,下面分别介绍这几个进程。
(一)RFS进程
RFS(Remote File Server)进程主要用来接受从主库传送过来的日志信息。对于物理备库而言,RFS进程可以直接将日志写进Standby Redo logs,也可以直接将日志信息写到归档日志中。一般可以在主备库的告警日志中看到如下的信息:
主库:
1LNS1 started with pid=21, OS id=11222
备库:
1RFS[2]: Successfully opened standby log 5: '/opt/oracle/oradata/lhrdb/std_redo5a.log'
在数据库中查询:
1SQL> SELECT PROCESS,PID,STATUS FROM V$MANAGED_STANDBY; 2PROCESS PID STATUS 3--------- ---------- ------------ 4ARCH 18547 CLOSING 5ARCH 18549 CLOSING 6MRP0 23485 APPLYING_LOG 7RFS 1092 IDLE 8RFS 1090 IDLE 9[oracle@Oracle1 ~]$ ps -ef | grep '1092\|1090' 10oracle 1092 1 0 May05 ? 00:00:18 oraclelhrdb (LOCAL=NO) 11oracle 1090 1 0 May05 ? 00:00:00 oraclelhrdb (LOCAL=NO)
对于Oracle 11g而言,该进程一般会自动启动,但是,对于Oracle 10g而言,由于某些特殊原因,该进程可能不会自动启动,那么可以使用如下的步骤来手动启动该进程:
1① 启动实时应用 2 物理:ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT FROM SESSION; 3 逻辑:ALTER DATABASE START LOGICAL STANDBY APPLY IMMEDIATE; 4② alter system set log_archive_dest_state_2='defer'; 5alter system switch logfile; 6alter system set log_archive_dest_state_2='enable'; 7alter system switch logfile; 8③ 重启备库
(二)LNSn(LGWR Network Server process)进程
DG可以使用ARCn、LGWR来传送日志,但它们都是把日志发送给本地的LNSn(如果有多个目标备库,那么会启动相应数量的LNSn进程,同时发送数据)进程,然后备库的RFS进程接收数据,接收到的数据可以存储在备库的备用Redo日志文件中或备库的归档日志中,然后再应用到备库中。
一般情况下,主库切换(ALTER SYSTEM SWITCH LOGFILE;)日志可以启动LNSn进程,若不能正常启动则可以按照如下的步骤来处理:
1① ALTER SYSTEM SWITCH LOGFILE; 2② 备库启动实时应用后,主库: 3ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2='DEFER'; 4ALTER SYSTEM SWITCH LOGFILE; 5ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2='ENABLE'; 6ALTER SYSTEM SWITCH LOGFILE; 7③ 重启备库、主库
进程查询(ps -ef|grep -v grep|grep -E "ora_lns|ora_nsa|ora_nss"):
1[root@rhel6_lhr lhr]# ps -ef|grep -v grep|grep -E "ora_lns|ora_nsa|ora_nss" 2oracle 8090 1 0 03:57 ? 00:01:40 ora_lns1_oradg10g 3oracle 8092 1 0 03:57 ? 00:01:40 ora_nsa2_oradg11g 4oracle 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语句,那么恢复过程将在后台进程,发出该语句的进程可以继续做其它的事情,进程如下所示:
1[oracle@rhel6_lhr ~]$ ps -ef | grep ora_mrp 2oracle 4794 1 0 10:33 ? 00:00:00 ora_mrp0_orawldg
(四)LSP(logical standby process)进程
只有逻辑备库才会有该进程。LSP进程控应用Redo日志到逻辑备库。进程如下所示:
1[oracle@rhel6_lhr ~]$ ps -ef | grep ora_lsp 2oracle 4683 1 0 10:31 ? 00:00:01 ora_lsp0_oraljdg
本文选自《Oracle程序员面试笔试宝典》,作者:小麦苗
---------------优质麦课------------
详细内容可以添加麦老师微信或QQ私聊。
About Me:小麦苗
● 本文作者:小麦苗,只专注于数据库的技术,更注重技术的运用
● 作者博客地址:http://blog.itpub.net/26736162/abstract/1/
● 本系列题目来源于作者的学习笔记,部分整理自网络,若有侵权或不当之处还请谅解
● 版权所有,欢迎分享本文,转载请保留出处
● QQ:646634621 QQ群:618766405
● 提供OCP、OCM和高可用部分最实用的技能培训
● 题目解答若有不当之处,还望各位朋友批评指正,共同进步
DBA宝典
长按下图识别二维码或微信扫描下图二维码来关注小麦苗的微信公众号:xiaomaimiaolhr,学习最实用的数据库技术。
标签:RFS,00,备库,755,MRP,进程,grep,日志,ora 来源: https://blog.51cto.com/lhrbest/2712325