首页 > 数据库 >阳光保险MySQL数据库平稳迁移OceanBase,稳定运营超700天

阳光保险MySQL数据库平稳迁移OceanBase,稳定运营超700天

时间:2024-03-12 19:59:34浏览次数:21  
标签:运维 OceanBase 数据库 700 业务 租户 MySQL

作者简介:
车东兴:于阳光保险就职,深耕保险行业的 IT 领域长达12 年,对保险领域的基础架构实践有深刻的理解与掌握。熟悉多款数据库,具有丰富的数据库运维经验。
王华城:于阳光保险就职,10多年一直从事 MySQL 数据库的运维工作,在本地及云上数据库部署运维经验丰富,近年来对与 MySQL 兼容的数据库进行了深入研究并积累运维经验。

业务背景

阳光保险集团自2005年7月创立以来,已成功发展出包括财产保险、人寿保险、信用保证保险及资产管理等在内的多家专业子公司,其成长速度在全球市场化企业中名列前茅,现在在中国保险行业中稳居前八。随着数字化升级浪潮的持续推进,众多企业纷纷寻求将软硬件升级为满足自主研发需求的产品,作为基础软件的三大支柱之一的数据库,亦成为此次升级热潮中的一项重要内容。

在数字化升级的大背景下,阳光保险集团根据业务需求,展开了数据库选型与升级工作。其一,了解分布式数据库,为未来业务增长做技术储备;其二,在数据库适配且满足业务需求的同时,尽可能降低软件、硬件的开销。

经过深入调研和测试多款产品后,我们选择了 OceanBase。主要有以下四方面原因:

第一,满足关键业务升级需求。OceanBase 是一款完全自研的分布式数据库,且在 2021 年开源了核心代码,非常符合我们当前的关键业务升级需求。

第二,稳定可靠。整套系统稳定运行已经超过 2 年, 数据 0 丢失 ,使用上让我们越发安心和信任。从技术上,OceanBase 基于 Paxos 协议实现的多副本容灾方案,少数派故障时能够达到 RPO = 0,RTO < 8s 的高可用能力;从业务上看,  OceanBase 已连续支撑十余年双 11,经过了大量金融领域的核心系统打磨,性能和可靠性已经久经考验。

第三,高度兼容MySQL。兼容性是我们最关注的一点,因为集团业务中很多搭载在 MySQL 上,如果兼容性不足,不仅迁移和改造的成本高,还需要协调业务方配合做改造,非常麻烦。所以引入新技术或替换新产品,要保证无缝、平滑的迁移,尽可能减少改造成本。

第四,多租户管理多套业务。我们在 MySQL 上的业务非常多,虽然业务的访问量和数据量都不是很大,但多套 MySQL 对应多个不同的业务,需要大量的管理和运维工作。OceanBase 的原生多租户能力很好解决了这个问题,大幅降低运维管理复杂度。

业务收益

在经过前期的测试以后,我们将已有的业务逐步迁移到 OceanBase。我们线上 MySQL 环境以 5.6 版本 和 5.7 版本 为主,使用OceanBase数据迁移工具 OMS 可以直接创建同步链路,自动将  MySQL 数据迁移到 OceanBase,且未出现任何兼容性问题,使整个迁移过程非常便捷、顺利,无形中节省了大量迁移成本。

我们部署了 OceanBase 3.1.5 版本,配置为单台物理机器 128C768G 。目前在 OceanBase 开了 22 个租户,把分布在 MySQL 多个实例上的多套业务迁移至 OceanBase 后分配到不同的租户,这样每个业务单独使用自己的租户资源,互不影响。同时实现了高可用,简化了运维管理。

1704970329

(一)多租户及资源隔离,提升资源利用率,保证数据安全

OceanBase 的多租户特性解决了很多小型业务搭载在 MySQL 上的运维复杂问题。租户是一个逻辑概念,通过租户实现资源隔离,并通过权限控制保证租户的数据安全性,对于系统运维,尤其是对云数据库的运维有着重要的积极影响。租户在一定程度上相当于传统数据库的"实例"概念。OceanBase 的租户间是完全隔离的,从根本上解决跨租户的数据访问风险,以确保用户的数据资产不被其他租户访问。因此,我们可以将多个 MySQL 实例上的业务迁移到一套 OceanBase 上,将不同业务放置于对应租户即可,完全不用担心数据安全。另外,租户是资源分配的单元,可以根据业务情况设置资源规则,使机器资源得到充分利用。下图是我们的租户资源配置。

1704970381

(二)高可用保障业务稳定运行,数据零丢失,无需人工干预

我们使用 MySQL 时是一主多从架构,其自身没有高可用能力,以至于在一些复杂的大型业务场景,稳定性问题是需要我们格外关注的,特别是当核心业务的主节点异常甚至宕机时,可能需要人工干预处理,比如手动切换,并通过解析 Binlog 补齐数据。这种方式在一定程度上能解决问题,但风险高而且很不方便。使用 OceanBase 后,我们基于 Paxos 协议实现的多副本容灾方案,在三副本情况下,即使挂掉一个副本也不会对上层业务造成影响,少数派故障时能够达到 RPO = 0,RTO < 8s 的高可用能力。

(三)生态丰富/运维方便

对 DBA 来说,数据库运维工具的便捷度影响其工作是否高效的重要因素。OceanBase 运维管理工具 OCP 提供了图形化管理能力,包括数据库及相关资源的全生命周期管理、监控告警、性能诊断、故障恢复、备份恢复等,帮助我们更加高效地管理 OceanBase 数据库,降低企业的 IT 运维成本和学习成本。于我们而言,有三个功能是值得一提的。

其一,通过界面即可概览数据库基本情况及集群性能。对数据库运维人员来说,经常会出现业务 SQL 响应变慢的问题,需要分析是哪个节点的哪个 SQL 变慢了,通过 OCP 可以直观看到 TOP SQL 和慢 SQL,需要的信息都可以快速展示。

1704970401

其二,扩缩容更简单。在 MySQL 环境上加从节点时需要修改各种参数,甚至可能需要重启服务,而在 OCP 只需要对租户进行简单配置就能实现快速不停机在线扩缩容。

其三,备份恢复更方便。当需要恢复到指定时间点时,MySQL 也能实现,不过操作比较麻烦,需要找到对应 Binlog 文件,然后在命令行里指定解析的文件和需要恢复的时间点;而在 OCP 上只需白屏选中需要恢复的时间点即可。

1704970438

我们也用过其他企业提供的数据管理平台,最直观感受的就它们大多功能简单,使用复杂,而 OCP 功能丰富,使用简单,真的好用。

实践经验

迁移至 OceanBase 后为企业带来的收益是显而易见,在 OceanBase 的落地过程中也有一些经验分享。

  • 自增列使用习惯:OceanBase 3.1.x 版本自增列跳号是不连续的,在 MySQL 数据库中自增列是唯一、递增的值,用来标识数据的唯一性。相比 MySQL 这种集中式数据库,作为分布式数据库的 OceanBase 将数据分布在不同的机器上,为了保证高度兼容 MySQL 的同时不损失分布式系统自增列生成的性能,会出现自增列生成过程中跳号不连续的问题。不过,这对我们的业务影响不大,自增列只要保证唯一即可。
  • 原地升级:由于我们使用的是 OceanBase 3.1.5 版本,无法直接原地升级到 4.x 版本,类似 Oracle 早期版本的升级方式,需要在切换环境时迁移、同步数据。

写在最后

我们使用 OceanBase 已经有两年时间,生产系统集群一直稳定运行。随着 OceanBase 4.x 版本的持续更新,我们了解到其 OLAP 能力和数据压缩能力更强,且 MySQL 兼容性大幅提升。因此,我们计划将大数据量的业务迁移到 OceanBase 4.x 版本,使硬件使用成本进一步缩减。未来,也将根据公司关键业务升级需求的推进情况,将更多业务迁移至 OceanBase。

标签:运维,OceanBase,数据库,700,业务,租户,MySQL
From: https://blog.csdn.net/OceanBaseGFBK/article/details/136545476

相关文章

  • 轻松掌握锁冲突问题的排查方法——《OceanBase诊断系列》之八
    1.前言OceanBase数据库通过两阶段封锁机制确保读写事务并发控制的正确性。在高冲突场景下,事务处理中经常会遇到行锁冲突的问题。然而,许多OceanBase用户对于何时发生锁冲突,锁冲突的表现如何,以及如何排查锁冲突的原因,甚至于定位具体的行与锁冲突的会话。本文为读者提供一个系统......
  • java毕业设计五邑大学超市网上销售软件设计(Springboot+mysql+jdk1.8+maven3.39)
    本系统(程序+源码)带文档lw万字以上 文末可领取本课题的JAVA源码参考系统程序文件列表系统的选题背景和意义选题背景:随着互联网技术的飞速发展,电子商务已经成为现代商业活动中不可或缺的一部分。特别是网上超市销售业务,它借助网络平台突破了传统购物的时间和空间限制,为消......
  • MYSQL 最大连接数
    MYSQL最大连接数?最大连接数也就是mysql服务最大支持多少客户端连接服务查看服务支持最大连接数:showvariableslike'%max_connections%';如下:如何查看MYSQL服务被多少个客户端连接了?showprocesslist;如下: 其中id为13的用户的Command列的状态为Sleep......
  • PowerShell 定时备份MySQL数据
    #========================================================#Function:备份MySQL数据库#ReleaseVersion:v0.0.3#ReleaseDate:2020年8月17日#Author:panda666#Website:www.panda666.com#=====================================......
  • 关于android stdio连接mysql数据库出现过的问题
    根据网上的资料连接mysql数据库的步骤有:1.导入mysql连接jar包我的androidstdio文件里没有libs文件夹,就在build创建了一个,选择jar包,aslibrary,重启下进程,就会生成一些文件2.在mainfest.xml文件下加入网络权限<uses-permissionandroid:name="android.permission.INTERNET"/>......
  • orm——django操作MySQL数据库
    手动新建一个数据库,在setting.py中配置数据库的连接信息DATABASES={"default":{"ENGINE":连接数据库的类型,"NAME":数据库名称,"USER":用户名,"PASSWORD":密码,"HOST":数据库的所在主机ip,......
  • 搭建Apache+PHP+MySQL的Web服务器环境测试PHP时找不到url对象
    检查了apache的服务都是正常运行,配置文件也没有问题,搜了很多方法还是一样,最后发现是新建文本文档时重命名后(文件管理器没有显示后缀名)没有修改文件后缀。关键检查php的隐藏后缀名有没有更改!!!问题的发现浏览器输入http://localhost返回发现目录下我以为是first.php的文件实际上的......
  • mysqld_exporter的安装
    1.需要在数据库上创建对应用户及权限createuser'mysql_monitor'@'%'IDENTIFIEDBY'mysql_monitor';GRANTREPLICATIONCLIENT,PROCESS,SELECTON*.*TO'mysql_monitor'@'%'IDENTIFIEDBY'mysql_monitor';FLUSHPRIV......
  • MySQL(十):MySQL主从复制搭建
    主从复制有一主一从、一主多从、多主一从等多种模式,这里搭建一主一从模式,其他模式搭建过程的类似。1、准备工作准备两台虚拟机,这里准备了两台虚拟机,并在两个节点安装MySQL。192.168.33.55(主节点)192.168.33.11(从节点)mysqlversion:8.0.312、主从复制搭建2......
  • MySQL(九):MySQL主从复制原理
    1、什么是MySQL主从复制MySQL主从复制:数据从一个主节点数据库复制到至少一个从节点数据库。MySQL采用异步复制方式同步数据,从节点不需要一直访问主数据库更新自身数据。2、为什么需要MySQL主从复制2.1、保证系统的高可用在复杂业务系统中,某些频繁的操作会导致MySQL锁......