金融企业从自建MySQL数据库迁移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,最好迁移前的预检查、迁移中的增量迁移和迁移后的数据校验工作,保障迁移过程顺利且数据一致性。

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

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

整体迁移步骤

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

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

遇到的问题和解决方案

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

上一篇:containerd 与安全沙箱的 Kubernetes 初体验


下一篇:NetCore1.1+Linux部署初体验