【OceanBase诊断调优】—— 直连普通租户时遇到报错:Tenant not in this server

news2024/12/23 17:30:06

本文介绍了直连 OceanBase 数据库中的普通租户时,出现报错:ERROR 5150 (HY000) : Tenant not in this server 的处理方法。

问题描述

在 n-n 或者 n-n-n (n>1) 的部署架构中,使用 2881 端口 直连 OceanBase 集群的普通租户,可能出现报错:ERROR 5150 (HY000) : Tenant not in this server 。

image0808

问题原因

在或者 (n>1) 的部署架构中,创建的租户可能只在 Zone 下其中一个 OBServer Node 上配置了对应 unit 资源。

例如部署架构如下:Zone1 的第一个 Node 和 Zone2 的第二个 Node 有对应的 unit 资源。那么通过 OBServer 的 2881 端口直连时,必须要求连接的 OBServer上有对应租户的 unit 才可以连接;如果直连 OBServer 2881 端口,连接的 OBServer 上却没有对应租户的 unit,那么就会出现以上截图的问题。

解决方法

  • 方法一:可以给该OceanBase集群关联OBProxy集群,通过2883代理连接对应的租户。

  • 方法二:可以先通过下面的 SQL 查看该租户的 unit 分布的 OBServer Nodes,再通过正确的 Node 进行直连该租户。查看租户资源池配置可通过以下 SQL 查询。

    • 在 OceanBase 数据库 V2.x,V3.x 版本中,查看租户资源池配置的 SQL:

      SELECT
        t4.tenant_id,
        t4.tenant_name,
        t1.name resource_pool_name,
        t2.name unit_config_name,
        t2.max_cpu,
        t2.min_cpu,
        round(t2.max_memory / 1024 / 1024 / 1024) max_mem_gb,
        round(t2.min_memory / 1024 / 1024 / 1024) min_mem_gb,
        t3.unit_id,
        t3.zone,
        concat(t3.svr_ip, ':', t3.svr_port) observer
      FROM
        __all_resource_pool t1
        JOIN __all_unit_config t2 ON (t1.unit_config_id = t2.unit_config_id)
        JOIN __all_unit t3 ON (t1.resource_pool_id = t3.resource_pool_id)
        LEFT JOIN __all_tenant t4 ON (t1.tenant_id = t4.tenant_id)
      -- WHERE t4.tenant_id = 1001
      ORDER BY
        t1.resource_pool_id,
        t2.unit_config_id,
        t3.unit_id;
      
    • 在 OceanBase 数据库 V4.x 版本中,查看租户资源池配置的 SQL:

      SELECT
        t4.tenant_id,
        t4.tenant_name,
        t1.name resource_pool_name,
        t2.name unit_config_name,
        t2.max_cpu,
        t2.min_cpu,
        round(t2.memory_size / 1024 / 1024 / 1024) mem_gb,
        t3.unit_id,
        t3.zone,
        concat(t3.svr_ip, ':', t3.svr_port) observer
      FROM
        __all_resource_pool t1
        JOIN __all_unit_config t2 ON (t1.unit_config_id = t2.unit_config_id)
        JOIN __all_unit t3 ON (t1.resource_pool_id = t3.resource_pool_id)
        LEFT JOIN __all_tenant t4 ON (t1.tenant_id = t4.tenant_id)
      -- WHERE t4.tenant_id = 1001
      ORDER BY
        t1.resource_pool_id,
        t2.unit_config_id,
        t3.unit_id;
      

适用版本

OceanBase 数据库 V2.x,V3.x,V4.x 版本。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1684937.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Vue2基础及其进阶面试(一)

简单版项目初始化 新建一个vue2 官网文档:介绍 — Vue.js 先确保下载了vue的脚手架 npm install -g vue-cli npm install -g vue/cli --force vue -V 创建项目 vue create 自己起个名字 选择自己选择特性 选择: Babel:他可以将我们写…

华院计算 | 简单而复杂的“生命游戏”

人类是社会动物,而人类的社会活动则既简单又复杂。长期以来,数学家、计算机科学家和社会学家们一直试图用简单明了的方式方法去刻画错综复杂的社会现象,其中“生命游戏”提供了一个“寓科学于娱乐”的活动框架。 【一】导引 让我们先来玩一…

接口自动化测试Requests库实战超细详解

一、requests库 Requests is an elegant and simple HTTP library for Python, built for human beings. Requests库就是一个使用Python语言发送HTTP请求的一个类库。 github地址:GitHub - psf/requests: A simple, yet elegant, HTTP library. 中文地址&#xff…

【华为】将eNSP导入CRT,并解决不能敲Tab问题

华为】将eNSP导入CRT,并解决不能敲Tab问题 eNSP导入CRT打开eNSP,新建一个拓扑右键启动查看串口号关联CRT成功界面 SecureCRT连接华为模拟器ensp,Tab键不能补全问题选择Options(选项)-- Global Options (全局选项&#…

民国漫画杂志《时代漫画》第6期.PDF

时代漫画06.PDF: https://url03.ctfile.com/f/1779803-1247397790-72c351?p9586 (访问密码: 9586) 《时代漫画》的杂志在1934年诞生了,截止1937年6月战争来临被迫停刊共发行了39期。 ps:资源来源网络!

MySQL慢查询原因总结

文章目录 一.SQL没加索引二. SQL 索引不生效2.1 隐式的类型转换,索引失效2.2 查询条件包含or,可能导致索引失效2.3 like通配符可能导致索引失效2.4 查询条件不满足联合索引的最左匹配原则2.5 在索引列上使用mysql的内置函数2.6 对索引进行列运算&#xf…

低耦合双写一致性方案-使用canal+MQ

需求:继上一篇使用xxljob实现数据的全量同步到es后,当数据库中新增、删除、修改数据时,应该对es中的对应索引库实现增量同步。 本文介绍了2种双写一致性方案,对其中使用MQ的方案进行了实现。 1. 方案设计 1.1 数据一致性问题分析…

QT7_视频知识点笔记_5_线程,数据库

多线程 两种办法:第一种:Qt4.7之前的线程使用的方法(简单);第二种:Qt4.7之后的(灵活–推荐)----connect最后一个参数的作用:默认连接,队列连接,直…

vue3使用mitt.js进行各种组件间通信

我们在vue工程中,除开vue自带的什么父子间,祖孙间通信,还有一个非常方便的通信方式,类似Vue2.x 使用 EventBus 进行组件通信,而 Vue3.x 推荐使用 mitt.js。可以实现各个组件间的通信 优点:首先它足够小&…

从业务角度来看,DevOps 是什么?

如果您在我们的应用程序名称中看到“DevOps”,这意味着我们必须正确解释该术语,我们会这样做,但角度会有所不同。让我们从业务角度看看 DevOps 是什么。 通用名称 首先你应该知道,DevOps 没有明确的定义。是的。 大多数情况下&a…

分类和品牌关联

文章目录 1.数据库表设计1.多表关联设计2.创建表 2.使用renren-generator生成CRUD1.基本配置检查1.generator.properties2.application.yml 2.生成代码1.进入localhost:81生成代码2.将main目录覆盖sunliving-commodity模块的main目录 3.代码检查1.注释掉CategoryBrandRelationC…

使用xsd验证xml格式的正确性

1.1 基础知识介绍 XML简介:XML是可扩展标记语言(eXtensible Markup Language)的缩写,它是一种数据表示格式,可以描述非常复杂的数据结构,常用于传输和存储数据。xml文件、xml消息。XSD简介:是X…

JS对象超细

目录 一、对象是什么 1.对象声明语法 2.对象有属性和方法组成 二、对象的使用 1.对象的使用 (1)查 (2)改 (3)增 (4)删(了解) (5&#xf…

九州未来十二周年丨聚力同行,奔赴智能新未来

九州未来迎来十二周年! 从国内首批提供 OpenStack 云服务的专业公司, 经过十二年的发展, 现今成长为开放智能云边架构引领者。 在这十二年的时间中, 九州未来持续创新,步履不停, 打造成熟的云基础设施…

【软件测试】软件测试基础理论

目录 软件测试简介软件产生过程小结 主流测试掌握技能功能测试功能测试的注意事项 自动化测试自动化测试的优势自动化测试的限制和适用性:自动化测试的注意事项 接口测试接口测试通常可以涵盖以下方面接口测试的注意事项 性能测试性能测试的几个方面性能测试的注意事…

JavaSE:Clonable接口、浅拷贝与深拷贝

1、引言 我们在学习的数组时,就了解到了数组克隆方法,可以通过数组克隆方法来拷贝一个一模一样的数组: 那对于自定义类型中有没有克隆方法呢?答案是有的! 就让这篇文章来帮助大家学习自定义类型的拷贝! …

基于深度学习的表情识别系统

欢迎大家点赞、收藏、关注、评论啦 ,由于篇幅有限,只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 一、项目背景 随着人工智能技术的快速发展,表情识别成为了人机交互领域的一个研究热点。表情识别技术旨…

docker redis 持久化

1、拉取redis镜像 docker pull redis:latest 2、 mkdir /data/redis 3、填充redis.conf文件及根据需求修改相应的配置 •通过官网地址找到对应版本的配置文件 •将配置信息复制到redis.conf中 •常见的修改配置 https://redis.io/docs/latest/operate/oss_and_stack/managem…

K8s 高级调度

文章目录 K8s 高级调度CronJobinitContainerTaint 和 Toleration污点(Taint)容忍(Toleration) AffinityNodeAffinityPodAnffinity 和 PodAntiAffinity 总结 K8s 高级调度 CronJob 在 k8s 中周期性运行计划任务,与 li…

获取支持Windows7的最新Edge离线版本

从110版本开始,微软Edge和谷歌停止了对Win7、Win8/8.1的支持,后续又发布了几版安全更新,截止目前为止,能支持Win7的版本是 109.0.1518.140。 如果你想用最新版本谷歌浏览器,可以考虑下Supermium,这个浏览器…