【 使用环境 】生产环境 or 测试环境
【 OB or 其他组件 】
【 使用版本 】
【问题描述】oceanbase数据库中 ODP路由是什么
【复现路径】问题出现前后相关操作
【附件及日志】推荐使用OceanBase敏捷诊断工具obdiag收集诊断信息,详情参见链接(右键跳转查看):
【备注】基于 LLM 和开源文档 RAG 的论坛小助手已开放测试,在发帖时输入 [@论坛小助手] 即可召唤小助手,欢迎试用!
【 使用环境 】生产环境 or 测试环境
【 OB or 其他组件 】
【 使用版本 】
【问题描述】oceanbase数据库中 ODP路由是什么
【复现路径】问题出现前后相关操作
【附件及日志】推荐使用OceanBase敏捷诊断工具obdiag收集诊断信息,详情参见链接(右键跳转查看):
【备注】基于 LLM 和开源文档 RAG 的论坛小助手已开放测试,在发帖时输入 [@论坛小助手] 即可召唤小助手,欢迎试用!
在 OceanBase 数据库 中,ODP(OceanBase Database Proxy)路由 是一个非常核心的机制,它决定了应用程序的 SQL 请求最终会被转发到哪个 OBServer 节点(即数据库实例)。
ODP(OceanBase Database Proxy) 是 OceanBase 的中间层代理组件,作用类似于 MySQL 的 Proxy 或 Oracle RAC 的 SCAN Listener,它位于应用与数据库集群之间,主要功能包括:
应用程序不直接连接 OBServer,而是连接到 ODP,由 ODP 决定该把 SQL 请求发给哪个 OBServer
ODP 的路由决定逻辑大致分为以下几类
OceanBase 是一个多租户、多分区的分布式数据库。
当应用发出一条 SQL 时:
WHERE user_id = 123
),通过分区规则(例如 Hash、Range 等)计算出 目标分区。例如:
SELECT * FROM t_user WHERE user_id = 1001;
假设 t_user
是按 user_id
Hash 分区的,ODP 解析 SQL 后会:
ODP 支持区分 读写路由:
ODP 维护一份集群拓扑信息:
ODP 路由机制直接影响: