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。

相关文章:

  • 2021-12-31
  • 2022-01-13
  • 2021-06-19
  • 2021-08-19
  • 2021-06-16
  • 2021-09-16
  • 2021-11-20
  • 2021-10-08
猜你喜欢
  • 2022-12-23
  • 2021-10-09
  • 2021-12-03
  • 2022-02-20
  • 2021-10-23
  • 2021-11-12
  • 2021-06-05
相关资源
相似解决方案