金融企业从自建MySQL数据库迁移RDS方案

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 原作者:阿里云解决方案架构师,云帅。金融企业客户对于数据库提出了更高的要求,而RDS可以很好的满足这些需求。对于自建数据库的企业,怎样迁移到云数据库RDS,本文详细展示了一个迁移案例的整体步骤。

为什么要从自建数据库迁移RDS

由于金融行业的特点,对于数据库的安全性、高可用、一致性提出了更高的要求,而RDS金融版就是专门为金融客户量身定做的,它具有以下优点:

高安全

具备提供IP白名单,防SQL注入,SSL加密传输,TDE数据加密等功能的能力

安全事前防护可设置允许连接实例的IP白名单,严格控制访问源;同时支持通过VPC来获取更高程度的网络访问控制

安全事中防护公网地址自动开启DDoS防护,保持业务永续;访问链路支持SSL加密,杜绝中间人攻击行为;支持开启透明数据加密(TDE),数据落盘自动加密,固守最后防线;通过高安全模式拦截SQL注入,远离拖库风险。

安全事后审计支持SQL审计功能,记录所有访问源和访问行为信息。对所有安全及故障事件做到有据可查。

高可用

提供双机热备、多可用区、异地容灾等多种类型的实例,满足不同级别的可用性要求

主备架构RDS实例采用主备架构,两个实例位于不同服务器,自动同步数据。主实例不可用时,系统会自动将数据库连接切换至备实例。

同城容灾在不同可用区部署主备实例,独立的电力、网络环境可提升数据可靠性。

异地容灾RDS for MySQL支持创建异地灾备实例,通过数据传输实现异地数据实时同步,在突发状况下,用户可将异地灾备实例切换为主实例,保障业务可用性。

一致性

搭建事前、事中、事后三层数据安全防护网,提供双机热备、同城、异地三中心部署架构,充分满足金融级合规一致性、可靠性要求

运维成本低

阿里云数据库专家多年数据库运维经验产品化,免去90%运维烦恼

备份恢复支持自定义备份策略,通过克隆实例恢复到任意时间点,找回误删数据

版本升级MySQL小版本自动在线热升级,及时修复已知Bug

监控报警资源和引擎双重监控,链接云监控自定义报警策略

故障切换秒级探测,分钟级切换,90% 连接保持无影响

性能诊断提供专家级自助式服务,解决60%的性能问题

易扩展

多种系列选配提供单机基础版和双机高可用版,贴近业务所需

自由弹性可按需随时升级内存、磁盘空间,紧随业务发展

独享高配独享套餐、独占物理机提供更稳定的性能,更优惠的价格;单实例最高支持60核CPU、470G内存, 50000 IOPS,3 TB 存储空间

只读实例横向扩展数据库读能力;每个只读实例拥有独立的链接地址,可由应用端控制压力分配

迁移方案

客户目标

搭建和构建在一个有数据强一致性保障的关系型数据库上,同时满足金融级别的可靠性要求,数据安全防护,提供双机热备、同城灾备的部署架构,充分满足金融级合规的要求。

迁移方法

迁移前做好充分的技术预演,制定详细的迁移方案,并且有充足的数据回滚方案。

做好完备的迁移前测试,使用尽可能模拟线上环境的测试环境,模拟整套迁移和回滚流程,保障数据的一致性。

使用阿里云的数据迁移工具DTS,最好迁移前的预检查、迁移中的增量迁移和迁移后的数据校验工作,保障迁移过程顺利且数据一致性。

迁移后最好数据的回流增量,以备故障后的回滚操作。

稳定运行一段时间后,源数据库备份销毁,正式迁移成功。

整体迁移步骤

云上资源评估-->资源准备-->测试环境测试-->系统停机-->全量迁移-->系统迁移-->系统测试割接-->数据增量回流

31b949b80c5822c618afbccdaa5270e3a7ebe61c

遇到的问题和解决方案

1 客户自建的Mysql是最新的5.7版本,但云上的RDS高可用的版本只支持5.6,所以涉及到一个降版本的迁移,风险需要评估。

解决方案:首先评估客户的5.7版本是哪个小版本,评估后发现版本不是很高,所以有些特性并没有使用;第二 评估5.6和5.7版本的区别,主要是在字段的blob类型上的区别,评估后发现客户并没有使用此类型字段;第三 在测试环境做好测试,根据备份文件尝试恢复迁移,确保数据库正式迁移没问题。第四 做好灾备方案,发现问题,及时回退。

2 在测试环境测试过程中发现数据全量到RDS以后,再增量回流,数据预检查失败。

原因:原因是客户的表名存在大小写的情况,而DTS迁移会忽略大小写,将表名变成全部小写,导致回流源数据增量的时候预检查失败,因为表名不一致。解决方案:两种解决方案 1. 使DTS的后台将预检查结果手工置为成功,跳过预检查进行增量 ,存在风险。2.将原表名里存在大写的表名手工改为小写,改成一致,然后再做增量迁移,客户最终评估后选择解决方案1。

3 客户在做从自建Mysql到RDS增量的时候失败。

原因:由于客户自建的mysql没有开启binlog日志,导致增量时无法读取日志,所以增量失败,需要开启该选项。解决方案:由于客户不知道如何配置该选项,同时担心重启源数据库的风险,故客户放弃配置,同时也放弃增量,愿意寻找业务低峰期进行停机全量迁移,同时数据量也不大,停机时间短,所以选择该方案执行。

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
5天前
|
关系型数据库 MySQL API
实时计算 Flink版产品使用合集之可以通过mysql-cdc动态监听MySQL数据库的数据变动吗
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
80 0
|
7天前
|
关系型数据库 MySQL 数据库
docker MySQL删除数据库时的错误(errno: 39)
docker MySQL删除数据库时的错误(errno: 39)
60 0
|
7天前
|
Java 关系型数据库 MySQL
【MySQL × SpringBoot 突发奇想】全面实现流程 · xlsx文件,Excel表格导入数据库的接口(下)
【MySQL × SpringBoot 突发奇想】全面实现流程 · xlsx文件,Excel表格导入数据库的接口
45 0
|
7天前
|
Java 关系型数据库 MySQL
【MySQL × SpringBoot 突发奇想】全面实现流程 · xlsx文件,Excel表格导入数据库的接口(上)
【MySQL × SpringBoot 突发奇想】全面实现流程 · xlsx文件,Excel表格导入数据库的接口
47 0
|
1天前
|
存储 关系型数据库 MySQL
MySQL中数据库的相关操作
MySQL中数据库的相关操作
221 62
|
7天前
|
前端开发 关系型数据库 MySQL
【MySQL × SpringBoot 突发奇想】全面实现流程 · 数据库导出Excel表格文件的接口
【MySQL × SpringBoot 突发奇想】全面实现流程 · 数据库导出Excel表格文件的接口
38 0
|
7天前
|
SQL 关系型数据库 Serverless
阿里云关系型数据库RDS
阿里云关系型数据库RDS
168 49
|
7天前
|
关系型数据库 MySQL 分布式数据库
如何将数据从MySQL迁移到PolarDB?
【5月更文挑战第13天】如何将数据从MySQL迁移到PolarDB?
23 0
|
7天前
|
关系型数据库 MySQL 数据库
mysql 设置环境变量与未设置环境变量连接数据库的区别
设置与未设置MySQL环境变量在连接数据库时主要区别在于命令输入方式和系统便捷性。设置环境变量后,可直接使用`mysql -u 用户名 -p`命令连接,而无需指定完整路径,提升便利性和灵活性。未设置时,需输入完整路径如`C:\Program Files\MySQL\...`,操作繁琐且易错。为提高效率和减少错误,推荐安装后设置环境变量。[查看视频讲解](https://www.bilibili.com/video/BV1vH4y137HC/)。
91 3
mysql 设置环境变量与未设置环境变量连接数据库的区别
|
7天前
|
关系型数据库 MySQL 数据库连接
用Navicat备份Mysql演示系统数据库的时候出:Too Many Connections
用Navicat备份Mysql演示系统数据库的时候出:Too Many Connections
45 0