主备租户同步是不是有一些操作不会同步的?

【 使用环境 】测试环境
【 OB or 其他组件 】ob 4.x
【 使用版本 】
【问题描述】
大佬们试过在主备租户里面开启关闭全链路功能吗?我记得主备租户内的参数之类的会全部同步,但是试了下主备租户的全链路开启后,备租户上并未生效,不知道还有哪些操作在主备上是不同步的?

主备租户的全链路、日志归档是独立的,主租户开启后,还需要再备份租户单独开启,不过备租户归档功能依赖主租户归档
删除主租户时,备租户会根据主租户的删除方式(DROP TENANT或DROP TENANT FORCE )决定是否停止日志同步

主备租户之间存在哪些操作是不同步的 @论坛小助手

根据文档库中的信息,在OceanBase主备租户的同步机制中,确实存在某些特定操作不会被同步的情况。具体来说:

  1. 参数设置:通常情况下,大部分系统参数和租户级别的参数会在主备之间进行同步,但是一些与性能诊断、监控相关的动态参数或开关可能不会自动同步。例如您提到的全链路跟踪功能(dbms_monitor.ob_tenant_trace_enable/disable),这类操作属于临时性的调试手段,其状态不会在备租户上自动生效。

  2. 非事务性变更:除了上述监控相关命令外,其他非事务性的变更如创建/删除用户、授予权限等也可能不会立即同步到备租户,除非这些操作是通过DDL(数据定义语言)语句执行并且涉及到结构上的变化。

  3. 会话级别设置:任何仅作用于当前会话的设置(比如使用SET SESSION命令修改会话变量)都不会传播给备租户,因为它们只影响发起该命令的具体连接。

  4. 临时表和全局临时表:对于临时表以及全局临时表的操作也不会同步到备租户,因为这些对象的存在周期依赖于具体的会话或者事务。

  5. 存储过程、触发器等PL/SQL元素:虽然存储过程本身会被同步,但是对存储过程内部逻辑所做的更改(如果未提交为正式版本)以及触发器的行为可能不会实时同步。

  6. 日志归档模式下的特殊处理:对于基于日志归档的物理备库场景,只有redo日志记录的数据变更会被同步,而像前面提到的一些非持久化配置则不在同步范围内。

为了确保您的测试环境中主备租户的一致性,建议对于那些需要保持一致的重要配置项采取手动同步的方式,或者利用OCP平台提供的自动化工具来帮助管理跨租户的一致性问题。如果您希望进一步了解哪些具体操作不支持同步,请参考多租户架构概述及相关章节获取更详细的说明。

此外,从您提供的图片内容来看,主要是关于启停全链路跟踪功能的日志输出,并没有直接显示主备不同步的问题。不过这正好印证了之前所说的观点——全链路跟踪这类临时性的监控措施不会自动同步至备租户。如果您有更多具体的疑问或者遇到其他类型的同步问题,欢迎继续提问!

检索到的文档如下:

  1. 物理备库概述
  2. 设置日志恢复终点
  3. 物理备库
  4. 物理备库同步过程中卡住
  5. Switchover 或 Failover 相关问题
  6. 9000 ~ 9499
  7. 创建备租户前准备
  8. OceanBase 数据库多租户线程
1 个赞