• [Oracle工程师手记] V$ARCHIVE_GAP中的 GAP 何时产生?


    V$ARCHIVE_GAP 有值,则表示有 archive log GAP 产生。

    它的产生,是 由 备库端的  V$LOG_HISTORY 和  V$ARCHIVED_LOG 综合而来。

    V$LOG_HISTORY 的 SEQUENCE# 表示的是,
    已经应用于备库的,在备库端生成的 archive log 的 SEQUENCE#。

    V$ARCHIVED_LOG 的 SEQUENCE# 表示的是,
    是从主库传输到备库的 archive log 的 SEQENCE#。

     SEQ#1 ---传输--->更新 V$ARCHIVED_LOG ---应用--->更新V$LOG_HISTORY
     SEQ#2 ---传输--->更新 V$ARCHIVED_LOG ---应用--->更新V$LOG_HISTORY
     SEQ#3 ---传输失败(比如被从主库上删除掉了)
     SEQ#4 ---传输--->更新 V$ARCHIVED_LOG ---无法应用,因为缺少SEQUENCE#3
     SEQ#5 ---传输--->更新 V$ARCHIVED_LOG ---无法应用,因为缺少SEQUENCE#4

    此时, V$LOG_HISTORY.SEQUENCE# 一直是 3,V$ARCHIVED_LOG.SEQUENCE# 是 5, 所以会报告 GAP。

    但是如果是下面这样,传输失败后,比如网络一直不通,所以一直没有恢复传输:

     SEQ#1 ---传输--->更新 V$ARCHIVED_LOG ---应用--->更新V$LOG_HISTORY
     SEQ#2 ---传输--->更新 V$ARCHIVED_LOG ---应用--->更新V$LOG_HISTORY
     SEQ#3 ---传输失败(比如被从主库上删除掉了)

    V$LOG_HISTORY.SEQUENCE# 一直是 3,V$ARCHIVED_LOG.SEQUENCE# 是 3,则不会报告 GAP。

  • 相关阅读:
    python基础学习笔记第二天 内建方法(s t r)
    p ython笔记第三天
    (转)字符编码笔记:ASCII,Unicode和UTF8
    const char * 和 char *const
    自己的毕业设计windows管理软件
    自己实现string类
    关于vs2003环境支持win7 的 IP设置
    很犀利的错误
    很容易犯的错误
    用C++ 设计一个不能被继承的类
  • 原文地址:https://www.cnblogs.com/gaojian/p/14627396.html
Copyright © 2020-2023  润新知