11g ADG没有实时应用redo日志分析

前言

客户11204单机到单机的linux active dataguard环境,之前adg同步都正常,反应从昨晚开始备库突然没有实时同步。备库MRP进程一直处于等待归档日志,而非在线日志。在主库手动切换归档,备库MRP进程才会应用新生成归档日志。

一、现状检查

从主库侧看下当前的ADG状态,V$ARCHIVE_DEST_STATUS.RECOVERY_MODE显示是MANAGED REAL TIME APPLY ,直观理解是备库实时应用中,但gap_status='LOG SWITCH GAP‘,明显有问题。

在主库检查可以看到主备延迟挺大的,正常应该少于60s。

 THREAD#  DEST_ID DEST_NAME            TARGET               DATABASE_MODE        STATUS     ERROR      RECOVERY_MODE        DB_UNIQUE_NAME  DESTINATION     GAP_STATUS     CURRENT_SEQ#    LAST_ARCHIVED     APPLIED_SEQ#      APPLIED_SCN
-------- -------- -------------------- -------------------- -------------------- ---------- ---------- -------------------- --------------- --------------- ---------- ---------------- ---------------- ---------------- ----------------
       1        1 LOG_ARCHIVE_DEST_1   LOCAL PRIMARY        OPEN                 VALID                 IDLE                 NONE            /u03/arch                              4317             4316                          0
       1        2 LOG_ARCHIVE_DEST_2   PHYSICAL STANDBY     OPEN_READ-ONLY       VALID                 MANAGED REAL TIME AP ora9            ora9            LOG SWITCH             4317             4316      4316   14788927220612
                                                                                                       PLY                                                   GAP

$ ora dglag

status: VALID     DG Lag: 6859s

查看备库的alert日志:

Thu Oct 22 11:07:18 2020
Managed Standby Recovery starting Real Time Apply
Parallel Media Recovery started with 4 slaves
Waiting for all non-current ORLs to be archived...
All non-current ORLs have been archived.
Media Recovery Waiting for thread 1 sequence 4328
Completed:  ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT FROM SESSION
Thu Oct 22 11:07:47 2020
RFS[2]: Selected log 7 for thread 1 sequence 4328 dbid 681308804 branch 940761424
Thu Oct 22 11:07:47 2020
Archived Log entry 3731 added for thread 1 sequence 4328 ID 0x2afda2d8 dest 1:
Thu Oct 22 11:07:48 2020
Media Recovery Log /u01/arch/1_4328_940761424.dbf
Media Recovery Waiting for thread 1 sequence 4329

备库MRP进程进程等待归档4329。这里明显有问题,如果实时同步的话,日志应该是类似:

Media Recovery Waiting for thread 1 sequence 4329 (in transit)

二.ADG同步原理

以是一个ADG主备库的实时同步示意图:

■ 传输流程:

    - 主库的LGWR进程写自己的在线重做日志(ORL)
    - 主库的DataGuard进程LNS(LogWriter Network Process)从SGA的redo buffer里读redo信息然后通过网络服务传输给备用数据库。
    - 由LNS传输的redo记录由备用数据库的另外一个DataGuard进程RFS(Remote File Server)接收。
    - RFS接收redo记录之后将其写入备用重做日志(SRL)。

■ ARCH or LNS

在备库故障或网络中断期间,DataGuard在主库上使用ARCH进程连续ping备库来确定其状态。当与备库的通信还原后,ARCH ping进程会查询备库控制文件来确定备用数据库最后一个接收到的完整日志文件,以此确定需要从主库传输哪些日志文件来重新同步备库,然后开始使用ARCH进程传输相应文件。

Oracle10g开始默认归档进程数为2,从而在自动处理日志文件间隔时,不影响主数据库的归档操作。

在接下来执行日志切换时,LNS会试图连接备用数据库,成功后也会开始传输当前重做数据,同一时间ARCH进程在后台处理日志文件间隔。

当应用进程(MRP)赶上进度之后,不再读取归档日志文件,转而读取SRL文件。

■ 应用服务(MRP)

MRP进程在库自动应用redo记录来维护与主库的同步,允许对数据的事务性一致访问。默认应用服务需要等待SRL归档之后才应用redo,当然也可以启动实时应用,允许应用服务应用当前SRL的redo记录。

三、问题分析

1、当前进程情况

主库的进程如下,没有发现负责传输的LNS进程

13:23:12 sys@ORA9 > SELECT PROCESS, STATUS, THREAD#, SEQUENCE#, BLOCK#, BLOCKS ,CLIENT_PID, pid  FROM gV$MANAGED_STANDBY WHERE THREAD#!=0 ORDER BY THREAD#, SEQUENCE#;

PROCESS   STATUS                  THREAD#   SEQUENCE#               BLOCK#               BLOCKS CLIENT_PID                                                PID
--------- ---------- -------------------- ----------- -------------------- -------------------- ---------------------------------------- --------------------
LGWR      CLOSING                       1        4183              1352302                   16 2663                                                     2663
ARCH      CLOSING                       1        4320                 8192                  263 2685                                                     2685
ARCH      CLOSING                       1        4328                 6144                 1484 2715                                                     2715
ARCH      CLOSING                       1        4328                    1                 7627 2711                                                     2711

后台也没有发现LNS进程

$ ps -ef|grep -v grep|grep -E "ora_lns|ora_nsa|ora_nss"
$ 

备库进程如下,有MRP进程(wait for log),没有发现RFS进程工作,也可以理解为当前没有数据传输 ing 。

         INST_ID PROCESS                PID CLIENT_PROCESS  CLIENT_PID      STATUS           THREAD# SEQUENCE#      
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值