教程直播第8期|一文详解 OceanBase 社区版生态工具 ODP & OCP
面向运维人员的工具 OCP(OceanBase Cloud Platform):白屏化管理和运维 OceanBase 数据库,让运维管控更加简单
数据访问链路工具 ODP(OceanBase Database Proxy):让访问分布式数据库像访问单机数据库一样简单
⏰惊喜直播预告
《详细解读 ODP&OCP 两大生态工具》
2月17日(周四)19:30,OceanBase 高级研发工程师致新和技术专家雪染将为你带来 ODP&OCP 两大生态工具的详细解读。
花名:致新 | 林萌OceanBase高级研发工程师
花名:雪染 | 孙宏鑫OceanBase技术专家
本次直播将为你讲解:
ODP 篇
通过比较不同的数据库系统架构,说明为什么需要使用 ODP;
ODP 的核心功能介绍和常见问题说明;
不同场景中 ODP 的部署和使用。
OCP 篇
介绍 OCP 的核心功能和常见问题;
介绍不同场景使用 OCP 的建议。
以上内容将帮助你解决以下痛点:
ODP 篇
OceanBase数据库是分布式架构,ODP 如何让访问 OceanBase 数据库像访问单机数据库一样简单?
分布式系统中存在很多问题,比如机器故障和上下线、网络问题、不同机房延迟问题等,ODP 怎么应对这些问题?
面对复杂的业务场景,ODP 有哪些部署和使用建议?
OCP 篇
OceanBase 集群部署起来太复杂,想要体验却一直阻碍在第一步;
OceanBase 作为一个分布式数据库,如何全面掌控集群的运行状态;
想使用 OceanBase 又需要其他组件,有没有一个统一的平台能做所有的事情。
学完本期,你将能轻松应对以下问题:
ODP 篇
ODP 在 OB 架构中的重要作用,以及如何部署和运维 ODP;
了解 ODP 的连接管理、路由问题、高可用等知识点,学会分析处理常见问题;
全链路了解 OceanBase 数据库的运行机制。
OCP篇
顺利地部署 OCP 并且用来管理 OceanBase 和相关组件;
OCP 在 OceanBase 生态中的作用,如何串联起 OceanBase 和其他生态工具;
OceanBase 在生产环境使用的一些规范建议。
ODP 是 OceanBase 的代理服务器,对外提供统一的访问入口:
ODP 完全兼容 MySQL 协议,用户访问 ODP 的方式与访问 MySQL 保持一致,ODP 透明转发来自客户端的 SQL 至 OceanBase。用户无需修改现有的数据库访问代码,即可正常访问数据库。
兼容 MySQL 的各种语言客户端,包括 Java/C++/Python/Go/Rust等。
ODP 无状态、轻量,CPU 最低需要1c,内存启动约百M,可以在任意 linux 机器上部署。
通过使用 ODP,用户可以访问 OceanBase 不同集群下的不同租户,简单方便。
高性能转发:ODP 完整兼容 MySQL 协议,采用多线程异步框架和透明流式转发的设计,既保证了数据的高性能转发,也确保了自身对机器资源的最小消耗。
最佳路由:ODP 会充分考虑用户请求涉及的副本位置、用户配置的读写分离路由策略、OceanBase 多地部署的最优链路,以及 OceanBase 各机器的状态及负载情况。ODP 将用户的请求路由到最佳的 OBServer,最大程度保证了 OceanBase 整体的高性能运转。
连接管理:针对一个客户端的物理连接,ODP 维持自身到后端多个 OBServer 的连接,采用基于版本号的增量同步方案维持了每个 OBServer 连接的会话状态,以此保证了客户端高效访问各个 OBServer。
专有协议:ODP 与 OBServer 默认采用了 OceanBase 专有协议,如增加报文的 CRC 校验保证与 OBServer 链路的正确性,增强传输协议以支持 Oracle 兼容性的数据类型和交互模型。
安全可信:ODP 支持使用 SSL 访问数据,并和 MySQL 协议做了兼容,以满足客户的安全需求。
易运维:ODP 本身无状态,不仅支持无限水平扩展,还支持同时访问多个 OceanBase 集群。ODP 可以通过丰富的内部命令实现对自身状态的实时监控,以此实现极大的运维便利性。
场景1:我是新手用户,如何快速创建一个 OceanBase 集群进行体验
在 OCP 中,将主机资源添加进去,按照页面提示,发起创建集群的任务,任务完成后,集群就建好了,全程只需要 Web 页面上填写一些信息。
场景2:在大规模生产环境,主机故障经常发生,如何快速进行恢复?
OceanBase 提供了不同级别的容灾能力,都依赖多数派予以实现,对于发生少数派的故障可以容忍,但是一定要及时处理,避免其发展成多数派故障,影响可用性。一般处理方式是直接将故障主机进行替换。OCP 提供了一键替换故障主机的能力,选择要替换的主机,发起任务即可。
2. 作为诊断 OceanBase 的利器
好的系统不仅要好用,可监控也是一项重要的能力,OceanBase 提供了各种视图,记录自身的运行状态。要通过这些视图来排查问题,需要对 OceanBase 足够了解,而且有些视图只能记录当前的状态值,无法看到一段时间的趋势。OCP 收集了 OceanBase 主要的监控指标,并且进行了整理,支持实时和历史趋势的查询,能够以不同的逻辑和时间维度来分析问题。
问题1:OCP 的监控和 OBAgent 有什么区别,应该怎么选
OCP 是一个全功能的平台,包含了监控数据的采集、计算和展示,OBAgent 仅做采集,需要配合 Prometheus 和 Grafana 来使用。
OCP 的指标经过筛选,页面也是按照 OceanBase 的资源进行设计,而 OBAgent 的配置更加灵活,采集计算的逻辑以及 Grafana 的展示页面都可以自己配置,每部分更专注自身的逻辑。
问题2:OCP 的监控数据如何与其他系统集成
OCP 采集监控数据是通过 Exporter 的形式进行的采集,可以和 Prometheus 进行集成。OCP 提供了 OpenAPI 进行监控数据的查询,可以直接查询到计算好的监控数据。
3. 为其他组件提供配置服务
OCP 作为 OceanBase 生态中的一个重要成员,除了具有 OceanBase 的运维监控功能之外,也为其他组件提供了 OceanBase 的原数据查询功能,OCP 中记录了 OceanBase 的 Rootservice 地址信息,并保证了同步,可以为其他组件提供连接 OceanBase 的方式。
「 OCP 模块简介」
OCP 最重要的模块包括 OCP 管理服务、OCP Agent、存储数据库三个部分:
OCP 管理服务:一个由 java 实现的服务,实现了管控 OceanBase 的主要逻辑,提供 http 服务;
OCP Agent:部署在 OCP 管理的主机上,负责执行 OCP server 发送的运维命令、采集监控指标;
存储数据库:包含元信息数据库和监控数据库,元信息数据库记录了 OCP 管理的资源,包括主机、OceanBase 集群、OBProxy 等,监控数据库记录了采集到的监控原始数据和聚合计算之后的结果。
「OCP 运维功能实现简介」
携程DBA负责人俞榕刚:OceanBase在携程的落地和实践
2021 OceanBase 年度报告 | 用技术让海量数据的管理和使用更简单!
2021 OceanBase 开源半年度报告 | 不忘初心,感恩同行