作者:冯光普 TiDB 成都地区组织者 TiDB MVA 多点数据库团队负责人
背景
作为数字化零售解决方案SaaS提供商多点DMALL的数据库团队的负责人,我有幸在2024年4月20日的演讲中与大家分享了我们团队在数据库运维方面的经验与挑战,其中深入探讨了在大规模数据库运维中,MySQL存在的问题,以及分布式数据库TiDB带来的创新和优势。在这篇文章中,我将进一步深入探讨我们选择TiDB作为数据库解决方案的考量和技术细节。
使用MySQL的挑战与痛点
在多点DMALL,我们面临着所有大型企业共有的数据库运维问题。随着业务的不断增长,MySQL的单机架构逐渐显得力不从心。
运维层面,实例迁移、主从切换、库表拆分和版本升级等,是DBA不得不做的高风险操作,但由于这些变更安全边界低、步骤多、参与方多,因而在执行时效率偏低、也容易出错,过程可能导致业务中断。
在架构层面,对于自建数据库的用户:
- 维护一套可靠的HA门槛不低,HA组件本身的高可用也是一个问题;
- 由于HA组件与数据库本身是独立的,HA本身不介入数据库事务提交,在网络抖动时其对主库失联或宕机可能存在误判,因此存在脑裂的风险;
- 数据持续增长,超过单机容量后,面临着库表拆分的难题,拆分后的业务SQL能力有损,要保证拆分过程平滑,那对DBA的要求就非常高。
因此,如果在云上,我更加建议大家直接使用云厂商的RDS服务,尤其是云原生数据库,比如AWS的Aurora、阿里云的PolarDB、腾讯云的TDSQL-C等;如果一定要自建数据库,建议使用分布式数据库,比如TiDB。
实例迁移与主从切换
在MySQL运维中,实例迁移和主从切换是常见操作,但它们往往涉及变更风险,步骤也比较复杂。例如,主从切换可能导致短暂的服务中断,而实例迁移则需要精心规划,以在资源成本、稳定性、运维代价中取得平衡。
库表拆分与版本升级
随着业务的发展,数据库的库表拆分成为必然,但这对DBA要求较高,最好具备实战经验,才能保证拆分过程的平滑。版本升级也同样充满挑战,尤其是跨大版本的升级,如MySQL 5.7到8.0,这不仅涉及到兼容性问题,升级过程也可能影响现有业务的运行。
TiDB带来的创新
为了应对这些挑战,我们开始探索分布式数据库的可能性,最终选择了TiDB。TiDB的多项特性让我们眼前一亮:
透明扩展与HTAP
TiDB的透明扩展能力让我们能够轻松应对数据量的增长,而HTAP特性使得我们在一个数据库上同时处理事务型和分析型负载,这在以往是难以想象的。
强一致性与高可用性
TiDB通过分布式事务和多副本机制,保证了数据的强一致性和高可用性。即使在节点故障的情况下,也能保证数据不丢失,服务不中断。
高压缩与多租户资源隔离
TiDB的高压缩存储引擎,有效节省了存储空间;而多租户能力,可以支持不同业务在充分共享资源池的前提下,也能做到资源隔离,保障了性能和稳定性。
无损变更
TiDB支持无损变更,无论是节点迁移、规格变更还是扩缩容,都不会影响正在运行的业务,因为无损,DBA执行变更加从容和高效,与研发之间关系也更加和谐,这对我们来说是一大福音。
优秀的可观测性
TiDB提供的TopSQL和KeyVisualizer等工具,让我们能够实时监控数据库性能,快速定位问题,大大提升了研发团队的工作效率,这两个在Dashboard中的功能,深受我们研发同学的喜爱。
关系数据库的发展趋势
通过 AWS 从 RDS 到 Aurora 的发展历程,可以看到关系数据库是朝着云原生(按需、弹性、无限)方向发展。特别是Aurora Limitless Database的推出,标志着数据库服务进入了一个新的时代,它通过分布式事务路由器和数据分片技术,实现了数据库的无限扩展。从2009年的云托管RDS,到2023年的Aurora Limitless Database,数据库一直在更加自动化、更加弹性、更加分布式。
多点DMALL的策略
多点DMALL的策略很明确:能用TiDB,就不用MySQL。这一策略背后的原因包括:
- 简化运维:TiDB的透明扩展和无损维护大大简化了数据库的运维工作。
- 提高可靠性:TiDB的强一致性和高可用性保证了系统的稳定性。
- 技术先进性:TiDB代表了数据库技术发展的先进方向。
我们正在推进的一个项目,将100+ 长尾MySQL合并到1套TiDB中,以降低运维成本,提升系统稳定性,这将极大优化管理复杂性,当前社区中已有相关实践分享,实现了20+ MySQL合并到1套TiDB中。
面临的挑战
转型分布式数据库过程中,也存在一些挑战,部分场景中还无法完成替换MySQL,比如:强依赖binlog格式、对延迟敏感、使用到了存储过程和触发器、资源受限等。后续我们将针对性开发适配工具、推动业务调整改造,更大规模使用TiDB。
结语
在多点DMALL的数据库运维实践中,我们深刻体会到了TiDB作为分布式数据库所带来的创新和优势。尽管转型过程中存在挑战,但我们相信,随着技术的不断进步,TiDB将更好助力我们优化数据管理、支持业务持续创新。我们期待与业界同仁共同探索数据库技术的未来发展。