diff --git a/src/observer/mysql/ob_query_retry_ctrl.cpp b/src/observer/mysql/ob_query_retry_ctrl.cpp index 92d5d358e9..f2071dc965 100644 --- a/src/observer/mysql/ob_query_retry_ctrl.cpp +++ b/src/observer/mysql/ob_query_retry_ctrl.cpp @@ -314,6 +314,7 @@ public: int64_t global_sys_version_start = v.curr_query_sys_global_schema_version_; // (c1) 需要考虑远端机器的Schema比本地落后,远端机器抛出Schema错误的情景 // 当远端抛出Schema错误的时候,强行将所有Schema错误转化成OB_ERR_WAIT_REMOTE_SCHEMA_REFRESH + // 权限不足也会触发该重试规则,因为远端schema刷新不及时可能误报权限不足,此时是需要重试的 // (c4) 弱一致性读场景,会校验schema版本是否大于等于数据的schema版本, // 如果schema版本旧,则要求重试; // 目的是保证:始终采用新schema解析老数据 diff --git a/src/observer/virtual_table/ob_all_virtual_sql_plan.cpp b/src/observer/virtual_table/ob_all_virtual_sql_plan.cpp index 6794de65a0..71a0d45e2d 100644 --- a/src/observer/virtual_table/ob_all_virtual_sql_plan.cpp +++ b/src/observer/virtual_table/ob_all_virtual_sql_plan.cpp @@ -424,10 +424,7 @@ int ObAllVirtualSqlPlan::extract_tenant_and_plan_id(const common::ObIArrayget_tenant_ids(id_list); - for (int64_t i = 0; OB_SUCC(ret) && i < id_list.size(); i++) { - if (OB_FAIL(dump_tenant_plans(id_list.at(i)))) { + ObSEArray all_tenant_ids; + if (OB_FAIL(GCTX.omt_->get_mtl_tenant_ids(all_tenant_ids))) { + SERVER_LOG(WARN, "failed to get all tenant ids", K(ret)); + } + for (int64_t i = 0; OB_SUCC(ret) && i < all_tenant_ids.count(); i++) { + if (all_tenant_ids.at(i) != effective_tenant_id_ && + !is_sys_tenant(effective_tenant_id_)) { + //do nothing + } else if (OB_FAIL(dump_tenant_plans(all_tenant_ids.at(i)))) { SERVER_LOG(WARN, "failed to dump tenant` plan", K(ret), K(i)); } }