HASH GAME - Online Skill Game GET 300
:文章展示了百丽时尚集团如何将业务系统从MySQL+MyCAT迁移至OceanBase 4.2.1,以解决分布式事务、分片业务调整和可扩展性等问题。作者从运维者和开发者的双重视角,详细阐述了obdiag工具在信息收集、集群巡检、SQL诊断等方面的应用,这些内容对于数据库管理员和开发者来说具有很高的参考价值。特别是通过具体的操作示例,如锁冲突分析和SQL优化,作者有效地传达了obdiag工具的实用性和高效性。
百丽时尚集团是中国一家大型时尚鞋服集团,从商品趋势研究,到设计研发,零售,再到客户运营,每个阶段都运用数字化技术。此前业务系统使用MySQL+MyCAT的分库分表架构,并使用orchestrator作为高可用的管理中间件。由于MyCAT架构下存在不支持分布式事务、分片业务调整困难和可扩展性差等问题,在2023将业务系统迁移至OceanBase4.2.1版本。OceanBase在分布式事务,分布式查询优化、水平可扩展性和周边工具生态方面表现优异,能够精准解决百丽之前的痛点并且减少运维难度和成本。自上线以来,在内部受到欢迎,目前已在订单中心和消息中心这两个核心业务中应用。
在参与共建的过程中,我发现了很多与用户运维视角不一样的东西。例如obdiag rca锁冲突场景,对于使用者而言,有时无法采集到导致锁冲突的会话ID,而在开发者视角,发现导致这个问题出现的根本原因在于,obdiag是通过gv$ob_lock的trans_id和gv$ob_transaction_participants关联获取tx_id,然后关联gv$ob_transaction_participants,但gv$ob_transaction_participants是集群视图会取到多条数据。而用户持有的会话只是连接到后端的一个Observer上,其他的会线,导致用户无法采集到相应结果。
加入obdiagSIG后,不仅没有耽误我的本职工作,还让我的运维工作更加顺利。这一切都源于自己在运维过程中,需要经常采集信息通过社区论坛等形式反馈给OceanBase官方,随着收集信息越来越多,收集频率越来越高,我开始接触obdiag。同时,我们利用obdiag解决生产问题的次数也越来越多,我开始对obdiag强大的DIY功能吸引,可以很便捷的把自己想要的功能植入obdiag,在共建的工程中也进一步加深了对obdiag的理解。