客户背景
中电金融设备服务(烟台)有限公司【以下简称中电金融】是中国电子和日立集团合资成立的中电金融设备系统(深圳)有限公司的全资子公司。总部位于烟台高新科技园区,并在北京、上海、广州、深圳设有分公司,公司现有员工近百人。中电金融(烟台)是一个年轻有朝气的企业,主要从事货币专用设备的整机维保;货币专用设备所需各类零部件的销售和修理;货币专用设备、货币处理系统、货币管理系统的相关应用服务、技术服务及技术咨询;货物及技术进出口业务。此外,中电金融(烟台)非常重视人才建设,将吸引人才、培养人才和留住人才作为公司的一项长期发展战略。同时,公司积极与高校合作,通过校企合作的方式为社会培养和输送金融设备服务行业的专业人才,受到了社会各界和广大学子的欢迎。展望未来,中电金融(烟台)将继续保持快速发展态势,并持续引领行业朝着更高水平发展,为越来越多的优秀人才提供广阔的发展空间和施展抱负的舞台。
“连数据库都上云了,还有什么不能上云?”亚马逊的CTO Werner Vogels的这句话让人印象深刻。在各种应用向云迁移的过程中,数据库的迁移应该是最复杂和最能体现厂商技术和服务功底的。
数据库迁移往往是企业上云之旅的重点和难点。为此,AWS推出了AWS Database Migration Service,并且已在中国区落地。
运用DMS工具,光环有云成功帮助中电金融实现数据上云的深度优化。
AWS Database Migration Service是一种Web服务,可用于将数据从本地数据库、Amazon Relational Database Service (Amazon RDS)数据库实例上的数据库或 Amazon Elastic Compute Cloud (Amazon EC2)实例上的数据库迁移到AWS服务上的数据库。这些服务可以包括Amazon RDS上的数据库或Amazon EC2实例上的数据库。用户还可以将数据库从AWS服务迁移到本地数据库,并可在异构和同构数据库引擎之间迁移数据。
AWS DMS服务支持同构迁移(例如从Oracle迁移到Oracle),以及在不同数据库平台之间的异构迁移(例如从Oracle迁移到Amazon Aurora或从Microsoft SQL Server迁移到MySQL)。另外,它还支持客户从任意受支持的源位置(包括Amazon Aurora、PostgreSQL、MySQL、MariaDB、Oracle、SAP ASE和SQL Server)将数据流式传输到Amazon Redshift,以便在PB级数据仓库中对数据进行整合和轻松分析。AWS Database Migration Service 还可用于连续数据复制,且高度可用。
光环有云利用AWS DMS将某企业客户的MySQL迁移至AWS RDS Aurora。该用户的业务系统原来运行在某云新加坡区域,因故需要迁移到其他公有云。最终,客户选择将其业务系统迁移至AWS东京区域,同时选择AWS高级咨询合作伙伴——光环有云作为咨询和实施服务提供商,完成AWS基础架构的部署和数据库迁移工作。
客户运营着一套类业务系统,由10+应用系统构成,超过40台虚拟服务器,采用MySQL 5.6数据库服务,数据量超过700GB+,日数据新增量约5GB,另有一个测试数据库。客户主要运营的业务系统对于安全性要求很高,出于业务连续考虑,预设迁移时间窗口有限,其业务系统依赖于事务处理,对延迟敏感。
光环有云利用AWS DMS将客户的MySQL迁移至AWS Aurora的具体过程如下。
第一,数据库迁移准备。
数据库信息准备工作包括生产库信息统计、生产库性能监控、日新增数据量统计、业务高峰期统计,以及生产数据库版本、参数、用户、存储过程、函数等信息记录。
在进行方案规划时,通过对客户业务场景、应用系统、数据库以及运营管理等多方面深入调研后,基于AWS数据迁移最佳实践和光环有云在数据库迁移的丰富经验,结合客户的具体需求和约束条件,提出了以MySQL复制+DMS同步和以MySQL主从复制+xtrabackup 增量还原两个方案规划。
MySQL主从复制+DMS同步方案,其主要步骤如下:搭建IPsec VPN,打通某云Singapore—AWS Tokyo;某云RDS创建物理全量备份,并将备份文件还原到一台新实例中,该实例将当做此次测试的Master库;在AWS环境中,新启一台EC2实例并安装MySQL服务,同时拉取备份文件到EC2实例中;将EC2中的备份文件还原到EC2 MySQL数据库里,当前MySQL将充当Slave服务器;在Master和Slave 之间建立主从复制;AWS Tokyo region的VPC中启动一台Aurora MySQL-5.6;在EC2 MySQL(Slave)和AWS RDS Aurora 之间配置DMS同步;等Master、Slave与AWS RDS Aurora同步完成后,校验数据完整性;导入一批测试数据到Master中,用作增量数据同步测试;校验Master、Slave与AWS RDS Aurora同步情况,并校验数据完整性。
MySQL主从复制+xtrabackup增量还原方案,其主要步骤如下:搭建IPsec VPN,打通某云Singapore—AWS Tokyo;某云RDS创建物理全量备份,并将备份文件还原到一台新实例中,该实例将当做此次测试的Master库;AWS环境中,新启一台EC2实例,安装MySQL服务,拉取备份文件到实例中;将EC2中的备份文件还原到EC2 MySQL数据库里,当前MySQL将充当Slave服务器;在Master和Slave 之间建立主从复制;在Slave中使用xtrabackup创建全备;将全备文件同步到一个AWS Tokyo region的S3存储桶A中;导入一批测试数据到Master中,用作增量数据同步测试;在Slave中在全备的基础上使用xtrabackup创建增量备份;使用AWS S3 Sync将增量数据同步到S3存储桶A中;将AWS Tokyo region 的S3存储桶A中的所有数据,还原到AWS RDS Aurora数据库中。
在迁移前,以较小数据量按照规划中的两种方案分别进行了模拟测试。测试结论显示,鉴于客户预设停机窗口有限,为保持良好的业务持续性,所以最终选择方案1作为主方案,方案2作为备用方案。在迁移实施时,两个方案同时进行。
第二,项目实施迁移。
迁移原则如下:满足迁移约束条件,方案验证可行;对迁移过程控制和识别风险并应对;业务影响最小,数据安全、完整、可用;最小可用权限,授权操作,不碰数据。
“结果很重要,过程须控制。”迁移是一件多风险、易出错的工作,协同工作的所有环节都可能出现错误,从而导致迁移的失败。光环有云对迁移过程十分重视,会同客户一起认真分析迁移的所有流程,并细化成指导迁移实施的指导性文档,作为迁移实施的过程控制文档,其中包括迁移详细计划、迁移流程、所有任务、RACI协作、任务详细文档(脚本、操作详细步骤)、任务耗时、任务异常处理等。
在使用AWS DMS进行迁移的过程中,可能会遇到如下挑战:数据库权限、目标库信息重建(用户、存储过程、视图、函数等)、DMS校验报错、字符集不一致、时区设置、DMS同步数据追平、DMS实例与迁移数据量、增量与时间窗口的平衡。
在实践中,光环有云发现使用AWS DMS进行迁移既有优势,也有其局限性。优势表现在:简单易用;在迁移过程中源数据库可持续运行;具有较小的业务中断窗口,可保持业务连续性;支持异构数据库迁移;可实现自动故障转移,十分可靠;在向Aurora迁移数据库时,可免费使用AWS DMS 特定实例 6个月。
其局限性表现在:DMS仅同步表中的数据;同步较大的数据增量时,耗时较长;AWS DMS自身校验机制耗时易报错。
总之,利用AWS DMS进行数据库迁移,可以轻松并安全地将数据库迁移至AWS。源数据库能够在迁移过程中全面保持运行,从而尽可能减少依赖该数据库的应用程序的停机时间。AWS DMS可以在广泛使用的开源商业数据库之间迁移数据。
不过还是要提醒用户注意,数据库迁移是一项十分复杂且有难度的工作,即使是有高效安全的迁移工具,还是需要一支有经验的技术团队作为迁移的支持,这样才能保证数据库迁移的安全、有序进行,避免差错;光环有云作为AWS专业服务商可以为客户提供从云迁移到运维管理的整套解决方案。