问题现象
发起数据备份超时。
关键诊断信息
发起数据备份。
问题原因
在发起数据备份时候,backup_scheduler 中的获取 tenant id 列表的时候用的是ObBackupUtils::retry_get_tenant_schema_guard 函数,而这个是 force fallback 模式(可以通过上述 trace 中是否有 fallback 字样来确定),而这个方法可能会触发 schema 的刷新,在 refresh schema 的时候能触发 switch_allocator 的时候就会触发 deep copy,而这里发起数据备份超时主要是因为 deep copy 耗时过长,这个没有特别好的方法。
问题的风险及影响
用户发起数据备份超时。
影响租户
影响 OceanBase 数据库中的 SYS 租户和 Oracle 租户以及 MySQL 租户。
影响的版本
OceanBase 数据库企业版 V3.1.2 GA(oceanbase-3.1.2-20210618150922)及之后版本、V3.2.3 GA(oceanbase-3.2.3.0-20220418212020)及之后版本。
解决方法及规避方式
升级至问题已修复版本。目前已修复的版本包括 OceanBase 数据库企业版 V3.2.3 BP6(oceanbase-3.2.3.3-106000102022111521)。
可以调大 session 级别的
ob_trx_timeout和ob_query_timeout变量。