OB主备租户有办法可以看到主备同步了多少数据不?

【 使用环境 】测试环境
【 OB or 其他组件 】OB 4.3.0
【 使用版本 】4.3.0 及以上版本
【问题描述】

请教下大佬们,OB有办法看到主备租户同步了多少数据量的数据不?我找了OCP文档和OB的相关视图,就只要主备租户延迟的,好像没看到有同步多少数据量,和回放多少数据量的相关视图表

应该没有这样的视图,如果一个主备同步了很长时间那么需要记录的东西太多了。。查了下有个 V$OB_LS_LOG_RESTORE_STATUS 中SYNC_LSN或者SYNC_SCN来确定备库中应用点位,根据这个点位的推进速度或者对应在源库产生了多少数据来判断主备同步了多少数据 :joy:

要查看OceanBase主备租户之间同步的数据量并不是直接提供的功能,但是可以通过一些间接的方式来评估同步的状态和进度。具体来说,您可以关注同步的SCN(系统更改编号),这可以帮助您了解备租户是否与主租户保持同步。以下是具体的步骤:

  1. 登录OCP管理平台:如果您想通过图形界面来监控同步状态,可以登录OceanBase Cloud Platform (OCP),然后按照以下步骤操作:
  • 登录OCP后,在左侧导航栏中点击“租户”。

  • 在“租户概览”的“租户列表”区域,选择您想要监控的租户,并点击其租户名进入详细页面。

  • 在该页面的左侧导航栏上,选择“性能监控”,并打开实时性能开关来查看性能的实时变化。

  1. 通过SQL查询同步进度:如果您希望通过SQL查询的方式获取更详细的同步信息,可以使用管理员用户登录到备租户所在的集群的sys租户,然后执行以下SQL语句来查看指定备租户的同步进度:
    SELECT TENANT_NAME, TENANT_ID, TENANT_ROLE, SCN_TO_TIMESTAMP(SYNC_SCN)
    FROM oceanbase.DBA_OB_TENANTS WHERE TENANT_NAME = ‘standby_tenant’;
    查询结果中的SCN_TO_TIMESTAMP(SYNC_SCN)列显示了备租户当前的同步进度。通过比较这个时间与当前时间,可以判断备租户的同步进度是否落后于主租户。

  2. 进一步诊断:如果发现备租户的同步进度落后于主租户,可以进一步查询同步进度最慢的日志流,以便定位问题原因:
    SELECT LS_ID, SCN_TO_TIMESTAMP(END_SCN)
    FROM oceanbase.GV$OB_LOG_STAT WHERE TENANT_ID = 1004 AND ROLE = ‘LEADER’;

以上步骤可以帮助您了解主备租户之间的同步情况,虽然没有直接的数据量统计,但通过SCN的变化可以间接了解到同步的状态。

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

2 个赞

这个如果主备租户是两个集群,两个集群的机器时间不同,比如备租户集群的机器时间是10点,主租户的时间是10点5分,相比起来好像数据会呈现负数吧?oceanbase.DBA_OB_TENANTS查询到的SYNC_SCN应该记录的是日志存储服务里面SCN的值吧?

对,这个还是挺模糊的,其实还想要有同步过来的日志量大小,还有回放的数据大小,这块细化起来的话好像很多都没有响应的视图

日志量OB应该算比较好统计,但是具体的数据量有点难统计。。Oracle其实有个视图能查询每个时间段内产生归档的大小,OB的视图好像只能查历史总的归档大小 :joy:

嗯嗯,好像只能查备租户上的日志量啥的,绕一下查了

1 个赞

OceanBase 主备集群中的服务器时间需要保持一致。时间不一致可能会导致一系列问题,比如数据一致性问题、日志时间戳匹配问题以及在故障切换时可能出现的时间顺序混乱等。因此,通常要求集群内所有服务器使用同一时间源进行时间同步,以确保高可用性和数据准确性。可以使用NTP(Network Time Protocol)服务来实现服务器间的时间同步。

同步多少数据量,和回放多少数据量的相关视图 – 这个目前没有直接的视图,我反馈优化下

1 个赞

了解,这个时间不一致确实会有很多问题,不过也有可能会同时后,一段时间了又出现差异,所以这种只能尽可能得去保证主备租户之间的时间一致,

那个同步数据量和回放数据量的还得麻烦反馈下,感谢,对了,如果能一起出一个主备同步延迟和回放延迟的相关信息也很不错的,感谢

反馈 OB是分布式的,这块不好统计,实现上不好做。可以考虑直接统计备库生产的日志量,可以直接统计日志盘上每个日志流的日志文件变更情况或者直接读GV$OB_LOG_STAT

1 个赞