通过OMS 迁移mysql数据到oceanbase,在OMS管理页面,创建oceanbase 数据源时测试连接失败

【 使用环境 】生产环境
【 OB or 其他组件 】
【 使用版本 】 OceanBase V4.3.5 ,OMS oms_4.2.8-ce
【问题描述】
使用 单节点部署 docker 无配置文件的方式部署了OMS ,请高手指教下,这是啥情况。

参与了官网的在线视频部署

错误提示:ly-oceanbase测试连接失败 OMS 必须通过 obproxy 连接 OceanBase 数据库:查询数据库 ly-oceanbase 的版本失败:null。
说明下:
用obproxy 连接的账号和密码都是正确的,用客户端连接工具测试 是正常登录oceanbase 。

【备注】基于 LLM 和开源文档 RAG 的论坛小助手已开放测试,在发帖时输入 [@论坛小助手] 即可召唤小助手,欢迎试用!

根据您的描述,问题发生在通过 OMS 迁移 MySQL 数据到 OceanBase 的过程中,在创建 OceanBase 数据源时测试连接失败,错误提示为“OMS 必须通过 obproxy 连接 OceanBase 数据库:查询数据库 ly-oceanbase 的版本失败:null”。此问题可能与 obproxy 配置、网络连接或目标 OceanBase 集群的状态有关。

在这种情况下,推荐您使用 obdiag 工具进行日志采集,以便我们进一步分析问题原因。

日志采集场景: 集群基础信息

日志采集命令: obdiag gather scene run --scene=observer.base

此命令将收集 OceanBase 集群的基础信息,包括配置文件、系统参数和状态等,有助于排查连接失败的原因。请您执行上述命令并将生成的日志压缩包提供给我们。

为了更好地帮助您解决问题,请您提供以下信息:

  1. 您的 OceanBase 集群是否已经正确配置了 obproxy?如果已配置,请提供 obproxy 的版本号。
  2. 您在 OMS 中填写的连接信息(如主机地址、端口、用户名和密码)是否正确无误?
  3. 您能否从 OMS 所在服务器直接通过 obproxy 连接到 OceanBase 集群?可以尝试使用 SQL 客户端测试连接。
  4. 错误提示中的数据库名称 ly-oceanbase 是否存在于目标 OceanBase 集群中?
  5. 您的 OceanBase 集群当前的运行状态是否正常?可以通过 show databases; 或其他管理命令验证。

附上敏捷诊断工具 obdiag 使用帮助链接

1 个赞

参考小助手提供的方法
测试下从 OMS 所在服务器直接通过 obproxy 连接到 OceanBase 集群是否可以连接

1 个赞

在服务器上用 obclient 客户端用 obproxy连接参数连集群是连接成功的,如下
obclient -h xxx.xx.xx.141 -P2883 -uroot@proxysys -p’C;FJjaN/1n&4MBVt0Nn?DNo8B4W?l,L’

根据文档库中的信息,以及您提供的 obclient 客户端通过 obproxy 成功连接 OceanBase 集群的测试结果,我们可以进一步分析 OMS 测试连接失败的问题。

问题分析与解决步骤

  1. 确认 OMS 数据源配置是否正确
    在 OMS 管理页面创建 OceanBase 数据源时,请确保以下参数与 obclient 测试连接时一致:

    • 主机地址 (-h):确保填写的是 obproxy 的 IP 地址(如 xxx.xx.xx.141)。
    • 端口 (-P):确保填写的是 obproxy 的监听端口(如 2883)。
    • 用户名 (-u):确保格式为 root@proxysys 或其他正确的租户用户格式。
    • 密码 (-p):确保密码正确无误。如果密码中包含特殊字符,请注意转义或使用引号包裹。

    依据的文档标题管理 OBProxy 连接的 OceanBase 集群 → 添加可连接的 OceanBase 集群

  2. 检查 OMS 是否能够访问 obproxy

    • 确保 OMS 所在服务器能够正常访问 obproxy 的 IP 和端口(如 xxx.xx.xx.141:2883)。可以通过以下命令测试网络连通性:
      telnet xxx.xx.xx.141 2883
      
      如果无法连接,请检查防火墙规则或网络配置。
  3. 验证 obproxy 是否正确配置

    • 确认 obproxy 是否已经正确配置并指向目标 OceanBase 集群。可以通过以下命令查看 obproxy 的状态和配置:
      obd cluster display <obproxy_cluster_name>
      
    • 如果 obproxy 配置有误,可以参考 添加 OBProxy 文档重新配置。
  4. 检查 OMS 版本兼容性

    • 您当前使用的 OMS 版本为 oms_4.2.8-ce,OceanBase 版本为 V4.3.5。请确保 OMS 版本与 OceanBase 版本兼容。如果不兼容,建议升级 OMS 至最新版本。
  5. 排查 OMS 日志

    • 如果以上步骤均正常,但问题仍然存在,请检查 OMS 的日志文件,定位具体的错误原因。日志路径通常为 /var/log/oms/ 或安装目录下的日志文件夹。
  6. 尝试重启 obproxy 和 OMS

    • 如果怀疑是临时性问题,可以尝试重启 obproxy 和 OMS:
      # 重启 obproxy
      obd cluster restart <obproxy_cluster_name>
      
      # 重启 OMS
      docker restart <oms_container_name>
      

总结

根据您的描述和现有文档信息,问题可能出在 OMS 数据源配置、网络连通性或版本兼容性上。建议按照上述步骤逐一排查。如果问题仍未解决,可以提供 OMS 的相关日志文件以进一步分析。

依据的文档标题

检索到的文档如下:

  1. 创建集群
  2. 添加 OBProxy
  3. 基本操作
  4. OBProxy 集群参数管理
  5. 管理 OBProxy 连接的 OceanBase 集群
  6. 升级 OBProxy
  7. 通过命令行部署 ODP
  8. OBProxy 参数说明
  9. 重启 OBProxy 集群下全部 OBProxy

(小助手的答复已结束,如未能解决您的问题,请继续提问并等待其他同学的回复,谢谢!)

1 个赞

配置数据源的界面截个图看下

OMS 和 oceanbase是同一台服务器,服务器上连接是成功,proxy是当时部署集群生成的URL连接。
obclient -hxxxx.141 -P2883 -uroot@proxysys -p’C;FJjaN/1n&4MBVt0Nn?DNo8B4W?l,L’ -Doceanbase -A \n

等下,我发下截图,好像不能发截图附件的

截图之后,直接粘贴在会话框就可以

好好学习天天向上

proxysys是proxy的租户不是ob集群的。你连接需要使用sys租户或者业务租户

这个思路挺好

租户名proxysys是proxy本身的,不符合。需要使用业务租户和用户新建数据源

image
这是客户端用proxy方式,账号和密码连接上群的截图

一定要新建用户?用root账号行吗?我用root试过也不行


这两个账号都试过了不行

你好,再看下集群总览和obproxy集群