DBA_OB_LS GV$OB_LOG_STAT 咨询一下字段的含义

DBA_OB_LS 视图
CREATE_SCN
DROP_SCN
SYNC_SCN
READABLE_SCN

GV$OB_LOG_STAT视图
CONFIG_VERSION
BASE_LSN
BEGIN_LSN
BEGIN_SCN
END_LSN
END_SCN
MAX_LSN
MAX_SCN

这几个点看文档没太理解 哪位老师可以解答一下 是否可以举例说明

共同进步

@论坛小助手

针对您提到的视图字段含义,我从给定的文档片段中整理了相关信息。以下是各个字段的详细解释以及示例说明:

DBA_OB_LS 视图

  • CREATE_SCN: 日志流创建时的系统变更编号(System Change Number)。SCN 是 Oracle 数据库中用来唯一标识某个事务时间点的一个序列号,用于保证事务处理的一致性和完整性。
  • DROP_SCN: 如果日志流被删除,该字段记录删除时的 SCN。如果未被删除,则该字段为空。
  • SYNC_SCN: 日志流同步时的 SCN。表示最后同步成功的事务的 SCN。
  • READABLE_SCN: 日志流可以被读取的最小 SCN。小于这个值的数据可能已经被清理。

示例

假设有一个日志流,其 CREATE_SCN 为 1000,DROP_SCN 为 2000,SYNC_SCN 为 1500,READABLE_SCN 为 1200。这意味着:

  • 日志流创建于 SCN 1000 时。
  • 日志流在 SCN 2000 时被删除。
  • 最后一次成功同步的 SCN 是 1500。
  • 可以读取的最小 SCN 是 1200。

GV$OB_LOG_STAT 视图

  • CONFIG_VERSION: 日志流的配置版本。每个配置版本对应一个特定的配置,用于标识日志流的当前配置。
  • BASE_LSN: 日志流的基础日志序列号(Log Sequence Number)。LSN 是日志文件中的偏移量,用于标识日志条目的位置。
  • BEGIN_LSN: 日志流的起始 LSN。表示当前日志流的起始位置。
  • BEGIN_SCN: 日志流的起始 SCN。表示当前日志流的起始事务的 SCN。
  • END_LSN: 日志流的结束 LSN。表示当前日志流的结束位置。
  • END_SCN: 日志流的结束 SCN。表示当前日志流的结束事务的 SCN。
  • MAX_LSN: 日志流的最大 LSN。表示当前日志流中最大的 LSN。
  • MAX_SCN: 日志流的最大 SCN。表示当前日志流中最大的 SCN。

示例

假设有一个日志流,其 CONFIG_VERSION 为 1,BASE_LSN 为 100,BEGIN_LSN 为 100,BEGIN_SCN 为 1000,END_LSN 为 200,END_SCN 为 2000,MAX_LSN 为 250,MAX_SCN 为 2500。这意味着:

  • 当前日志流的配置版本为 1。
  • 日志流的基础 LSN 为 100。
  • 日志流的起始 LSN 为 100,起始 SCN 为 1000。
  • 日志流的结束 LSN 为 200,结束 SCN 为 2000。
  • 日志流中最大的 LSN 为 250,最大的 SCN 为 2500。

希望以上解释和示例能帮助您更好地理解这些字段的含义。

具体信息可参考以下文档:

  1. oceanbase.DBA_OB_DATA_DICTIONARY_IN_LOG
  2. GV$OB_LOG_STAT
  3. V$OB_LOG_STAT
  4. SCN_TO_TIMESTAMP
  5. oceanbase.DBA_OB_LS
1 个赞