暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

数据库学习Q&A 069:在OceanBase数据库中,如何理解ODP管理?

欢迎访问 OceanBase 官网获取更多信息:https://www.oceanbase.com/

OceanBase Database Proxy(简称 ODP)是 OceanBase 数据库专用的代理服务器。OceanBase 数据库的用户数据以多副本的形式存放在各个 OBServer 节点上,ODP 接收用户发出的 SQL 请求,并将 SQL 请求转发至最佳目标 OBServer,最后将执行结果返回给用户。

ODP 概述

OceanBase 数据库与传统单机数据库不同,OceanBase 数据库是分布式数据库,每个表甚至每个表的不同分区都可能存放在不同的机器上。想要对表进行读写,必须先要定位到数据所属的表或是分区的主副本位置,然后才能执行相应的 SQL 语句,这在应用层面而言是几乎不可能做到的。ODP 作为 OceanBase 数据库专用的反向代理软件,其核心功能是路由,将客户端发起的数据访问请求转发到正确的 OBServer 节点上,并将 OBServer 节点的响应结果转发给客户端。

客户端通过 ODP 访问 OceanBase 数据库的数据链路如下图所示。

obproxy

用户通过任意 Client 驱动发出请求,请求通过负载均衡组件访问到任意一台无状态的 ODP 上,然后 ODP 再将用户请求转发到后端 OceanBase 集群中最佳的 OBServer 节点上去执行。

说明

  • 这里负载均衡组件可以是市场上常见的产品,例如:SLB 和 F5 等。

  • ODP 不负责分库分表,也不作为 SQL 引擎参与执行计划的生成调度,只负责纯粹的反向代理转发。

每个 OBServer 节点均包含完整的 SQL 引擎和存储引擎,用来负责解析用户 SQL 以生成物理执行计划并执行。分布式的 OBServer 节点之间通过 Paxos 协议以保证高可用性。这种架构设计中,ODP 只承担基本的路由和容灾功能,而数据库的功能全部交由 OBServer 节点实现。这样更加简单明确的分工可以将各组件性能做得更加极致,OceanBase 数据库整体最高也能做到近似访问单机数据库的性能。

ODP 支持将请求正确发送至主副本,并且通过特定配置还支持读写分离和备优先读等场景。另外在 OBServer 节点发生宕机、升级或合并等状态时,可以通过 黑名单机制 确保用户请求可以被路由至状态正常的 OBServer 节点上。

管理 ODP

OCP 为 ODP 提供以下管理功能。

操作说明
创建 OBProxy 集群您可通过该操作创建 OBProxy 集群。
OBProxy 参数说明您可通过该操作管理 OBProxy 集群的参数。
删除 OBProxy 集群您可通过该操作删除 OBProxy 集群。
升级 OBProxy 集群下全部 OBProxy您可通过该操作升级 OBProxy 集群中所有的 OBProxy。
重启 OBProxy 集群下的全部 OBProxy您可通过该操作重启 OBProxy 集群下全部 OBProxy。
管理 OBProxy 连接的 OB 集群您可通过 OCP 为 OBProxy 添加可连接的 OB 集群或删除已连接的 OB 集群。
OBProxy 集群性能监控您可以在 OCP 上查看 OBProxy 集群的性能监控信息,包括了服务监控信息和系统监控信息。
添加 OBProxy您可通过该操作向 OBProxy 集群中添加 OBProxy。
启动 OBProxy您可通过该操作启动 OBProxy。
刷新 OBProxy 配置您可通过该操作刷新 OBProxy 的配置。
停止 OBProxy您可通过该操作停止 OBProxy。
删除 OBProxy您可通过该操作删除集群中的 OBProxy。
重启 OBProxy您可通过该操作重启集群中的 OBProxy。
升级 OBProxy您可通过该操作升级集群中的 OBProxy。OceanBase Database Proxy(简称 ODP)是 OceanBase 数据库专用的代理服务器。OceanBase 数据库的用户数据以多副本的形式存放在各个 OBServer 节点上,ODP 接收用户发出的 SQL 请求,并将 SQL 请求转发至最佳目标 OBServer,最后将执行结果返回给用户。

ODP 概述

OceanBase 数据库与传统单机数据库不同,OceanBase 数据库是分布式数据库,每个表甚至每个表的不同分区都可能存放在不同的机器上。想要对表进行读写,必须先要定位到数据所属的表或是分区的主副本位置,然后才能执行相应的 SQL 语句,这在应用层面而言是几乎不可能做到的。ODP 作为 OceanBase 数据库专用的反向代理软件,其核心功能是路由,将客户端发起的数据访问请求转发到正确的 OBServer 节点上,并将 OBServer 节点的响应结果转发给客户端。

客户端通过 ODP 访问 OceanBase 数据库的数据链路如下图所示。

obproxy

用户通过任意 Client 驱动发出请求,请求通过负载均衡组件访问到任意一台无状态的 ODP 上,然后 ODP 再将用户请求转发到后端 OceanBase 集群中最佳的 OBServer 节点上去执行。

说明

  • 这里负载均衡组件可以是市场上常见的产品,例如:SLB 和 F5 等。

  • ODP 不负责分库分表,也不作为 SQL 引擎参与执行计划的生成调度,只负责纯粹的反向代理转发。

每个 OBServer 节点均包含完整的 SQL 引擎和存储引擎,用来负责解析用户 SQL 以生成物理执行计划并执行。分布式的 OBServer 节点之间通过 Paxos 协议以保证高可用性。这种架构设计中,ODP 只承担基本的路由和容灾功能,而数据库的功能全部交由 OBServer 节点实现。这样更加简单明确的分工可以将各组件性能做得更加极致,OceanBase 数据库整体最高也能做到近似访问单机数据库的性能。

ODP 支持将请求正确发送至主副本,并且通过特定配置还支持读写分离和备优先读等场景。另外在 OBServer 节点发生宕机、升级或合并等状态时,可以通过 黑名单机制 确保用户请求可以被路由至状态正常的 OBServer 节点上。

管理 ODP

OCP 为 ODP 提供以下管理功能。

操作说明
创建 OBProxy 集群您可通过该操作创建 OBProxy 集群。
OBProxy 参数说明您可通过该操作管理 OBProxy 集群的参数。
删除 OBProxy 集群您可通过该操作删除 OBProxy 集群。
升级 OBProxy 集群下全部 OBProxy您可通过该操作升级 OBProxy 集群中所有的 OBProxy。
重启 OBProxy 集群下的全部 OBProxy您可通过该操作重启 OBProxy 集群下全部 OBProxy。
管理 OBProxy 连接的 OB 集群您可通过 OCP 为 OBProxy 添加可连接的 OB 集群或删除已连接的 OB 集群。
OBProxy 集群性能监控您可以在 OCP 上查看 OBProxy 集群的性能监控信息,包括了服务监控信息和系统监控信息。
添加 OBProxy您可通过该操作向 OBProxy 集群中添加 OBProxy。
启动 OBProxy您可通过该操作启动 OBProxy。
刷新 OBProxy 配置您可通过该操作刷新 OBProxy 的配置。
停止 OBProxy您可通过该操作停止 OBProxy。
删除 OBProxy您可通过该操作删除集群中的 OBProxy。
重启 OBProxy您可通过该操作重启集群中的 OBProxy。
升级 OBProxy您可通过该操作升级集群中的 OBProxy。

欢迎访问 OceanBase 官网获取更多信息:https://www.oceanbase.com/

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论