《OceanBase 在科大讯飞的落地实践_戴明明.pdf》由会员分享,可在线阅读,更多相关《OceanBase 在科大讯飞的落地实践_戴明明.pdf(23页珍藏版)》请在三个皮匠报告上搜索。
1、戴明明科大讯飞 技术专家OceanBase 在科大讯飞的落地实践人工智能 AI AI+教育AI+城市AI+医疗AI+工业AI+运营商AI+汽车AI+金融AI+办公科大讯飞讯飞使命成立于1999年,从事 智能语音、计算机视觉、自然语言处理、认知智能 等人工智能技术研究。让机器能听会说,能理解会思考,用人工智能建设美好世界。01 为什么选择 OceanBase02 OceanBase 落地实践03 运维经验分享Contents目录01为什么选择OceanBaseOceanBase 需要解决问题扩展性高度可扩展的数据存储和处理能力,适应大规模数据增长和高并发访问的需求。可维护性简化数据库管理和维护任
2、务,降低维护成本和复杂性HTAP能力提供混合TP/AP能力,同时满足在线事务处理和复杂分析查询等多种业务需求备份恢复 集群新建/删除/升级/扩缩容 集群监控/告警 合并管理/参数管理/unit 管理OceanBase 的可维护性(OCP)IaaS 资源管理 地域管理 机房管理 主机管理租户管理 租户创建/删除 租户扩容/缩容/Zone 优先级 数据库管理/会话管理/参数管理OceanBaseProxy 管理 集群新建/接管/删除 集群升级/扩容/缩容 参数管理软件包管理 上传 下载 存储集群管理 集群新建/删除/升级/扩缩容 集群监控/告警 合并管理/参数管理/unit 管理OceanBase
3、 OLTP 性能测试0500000200000250000300000350000400000450000640700TpmCOceanBaseMySQLMySQL 分库分表结论MySQL 方案在并发数逐渐增加时 Tpmc 增长至 25w 左右,不再增长OceanBase 方案在并发数逐渐增加时 Tpmc 增长至 40w且有持续增长趋势在并发数小于128时,OceanBase 方案性能不如 MySQL 方案OceanBase OLAP 性能测试结论:根据业务 SQL 的复杂程度,OceanBase 提升性能 7-40 倍SQLMySQL耗时(s)Oc
4、eanBase 耗时(s)性能提升(倍)统计SQL19.670.929.51统计SQL25.920.4113.44统计SQL336.211.2328.44统计SQL46.860.4913.00统计SQL53.740.1721.00统计SQL649.21.8226.03统计SQL7611.4840.22统计SQL835.984.477.05两个核心问题MySQL 切换 OceanBase 的重要保障数据迁移协议兼容性1.当前系统基于 MySQL 5.7 进行开发2.OceanBase 兼容 MySQL 协议,支持业务平滑迁移且无须修改应用代码 1.业务系统7*24运行,几乎没有停机窗口2.OMS
5、 数据实时同步,在配合 HAProxy,秒级完成 MySQL到 OceanBase 切换OceanBase 可以解决的痛点扩展性 可以根据业务增量,进行动态的垂直和水平扩容可维护性 黑屏运维变成白屏运维 DDL增强,MySQL 大表分钟级的 DDL,在 OceanBase 中秒级完成HTAP能力 解决当前 OLTP 和 OLAP 不能完全拆分的问题其他能力 兼容 MySQL 协议,业务无需修改代码 OMS 异构同步,解决数据迁移问题 数据压缩能力,数据压缩50%(三副本总和)OceanBase02OceanBase落地实践0准备阶段1.搭建 OceanBase 测试环境2
6、.业务代码适配 OceanBase3.OceanBase 性能压测4.预估数据增量和规模回滚方案1.制定 OceanBase 切回MySQL 操作方案2.与业务侧对齐并验证方案迁移上线1.确定具体切换时间2.按预定方案进行切换服务保障1.性能优化2.监控管理3.备份恢复运维准备1.OceanBase 管理:集群/租户/副本管理2.高可用方案验证3.应急预案整理数据迁移1.制定 MySQL 迁移 OceanBase 的操作方案2.在测试环境验证迁移方案3.交付 OceanBase 生产环境并配置数据同步MySQL 迁移 OceanBase 方案切换过程架构图APPVIPHAProxy+KeepA
7、liveHAProxy+KeepAliveOBServer1OBProxy1OBProxy2OBProxy3OBServer2OBServer3切换后切换前OMS 实时同步VIP 切换ProxySQLVIPMySQLMasterMySQLSlave只读切换后整体架构图主集群OMS 实时同步只读ProxySQLVIPMySQLMasterMySQLSlaveVIPHAProxy+KeepAliveHAProxy+KeepAliveOBServer1OBProxy1OBProxy2OBProxy3OBServer2OBServer3VIPHAProxy+KeepAliveHAProxy+KeepA
8、liveOBServer1OBProxy1OBProxy2OBProxy3OBServer2OBServer3容灾集群VIP切换容灾集群APP03OceanBase运维经验分享OceanBase 版本的选择版本号说明VA.B.C_CE_BETA_BPX_HFY规则说明:A.B.C:保留三位版本,和 OceanBase 内核版本的前三位保持一致 A 表示主要的大版本,一般会有架构升级或较大的新功能发布。B 表示计划迭代版本,含有重要功能或特性更新和提升。C 表示发布更新版本,对已知问题进行修复,一般无功能或特性变更。BP:表示是第 X 个 Bugfix 版本HF:表示是第 X 个 Bugfix
9、版本的第 Y 个 Hotfix版本发布计划V4.2.1_CEV4.2.1_CE_BP1V4.2.1_CE_BP1_HF1OB 4.2.1 是长期支持版本:BP:正常每个月发布一次,主要用于修复一些重大的 bug。HF:因为 BP 是每个月发布一次,如果在此期间发现了重大的 bug,就通过 HF 来修复。V4.3.0_CE_BETAV4.2.2_CE_HF1V4.2.2_CE_BP1V4.2.2_CE_BP4V4.2.2_CE_BP3_HF2V4.3.0_CE_BETA选择次新版本的最新 BP/HFOceanBase 集群整体架构图VIPOceanBase 集群 1OBServer 1OBSer
10、ver 2OBServer 3Web 1OCP 集群【VIP】OBServerOBServerOBServerWeb 1OMS 1OMS 主备集群OMS 2VIPOceanBase 集群 2OBServer 1OBServer 2OBServer 3VIPMySQL 集群OBServer 1OBServer 2切换或者升级之前要充分测试不同版本的优化器性能有出入4.1.04.2.1执行时间:0.3sand firsttime=(select date_add(max(stat_day),interval 1 day)from tab1)and useday=(select date_add(m
11、ax(stat_day),interval 1 day)from tab2)写法 1:50sand firsttime_use=(select date_add(max(stat_day),interval 1 day)from tab1)and useday=(select date_add(max(stat_day),interval 1 day)from tab2)写法 2:0.3sand firsttime_use=2024-04-09and useday=2024-04-09解决方案:使用 hint/*+NO_AGGR_FIRST_UNNEST(SEL$6),NO_AGGR_FIRS
12、T_UNNEST(SEL$7)/充分测试,提前规避问题Online DDL 和 Offline DDLOffline DDL清单分类操作列操作中间加列(before/after/first)重排列(before/after/first)添加自增列修改为自增列修改列类型加/删/改主键列添加/删除 stored 生成列删列混合列操作在同一条 DDL 语句中表操作truncate 表转换字符集删表分区操作修改分区规则删除分区truncate 分区ODC 无锁结构变更清单操作是否支持列类型修改支持重排列(before/after/first)支持转换字符集支持列重命名不支持增加列不支持删除列不支持增加
13、主键列不支持增加主键支持修改主键支持删除主键支持删除分区支持truncate 分区支持重分区支持非分区表改为分区表支持无锁结构变更注意事项依赖:OMS、OCP表必须有主键或非空唯一键且表中不存在外键。需要操作对象的至少 2 倍的磁盘空间无锁结构变更期间,发起其它关于该表的 DDL 变更将导致任务失败。大表变更较慢:5 亿/200G 单表修改列类型耗时 5 小时提前和业务侧对齐,避免临时执行 Offline DDL 变更OceanBase 社区是一个开放的社区愿意听用户声音并改进的OceanBaseOMS当前版本 OMS 订正数据后自动执行全量校验,生产实际需要 N 个小时,建议不校验或者选择性校验,社区接受建议并迭代OCP当前版本 OCP 添加集群页面必须从上往下填写内容,否则会清空之前填写的内容,社区接受建议。OCP当前版本 OCP 在多节点部署的情况,只有一个管理节点,存在管理节点的单点故障,社区接受建议并提供解决方案。案例 1案例 2案例 3案例 4OBKV建议 OBKV 支持布隆过滤器,接受建议并纳入需求清单谢谢谢谢谢谢