背景
传统的互联网业务,无论是APP应用还是web应用,很多中小型企业对于云服务还是处于一个“懵懂”时期,基本上所有的应用部署都依然延用的线下的那一套,例如数据库自建,中间件自建,存储自建;如果业务都是单点部署,不管是数据安全、还是业务的稳定性,都难以得到保障。
业务价值
- 对多台云服务器进行流量分发的多可用区高可用版的负载均衡,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性,自动跨可用区部署更是加强了业务容灾能力。
- 通过自定义镜像,可以迅速复制出相同应用部署的ECS云服务器实例,同时添加到SLB后端服务器组中,实现业务高可用。
- SLB可以同时配置四层和七层监听,及轮循、加权轮循、加权最小连接数三种算法,合理分配后端ECS计算资源。
- 使用云数据库RDS,针对高并发场景进行特殊优化,同时引入线程池、并行复制、隐含主键等功能保证系统持续稳定和高吞吐;CloudDBA具有完备的性能监控数据,实时监控实例硬件使用指标、慢SQL,并给出各种优化建议。帮助用户快速定位并解决问题。
架构转换
(1)从单ECS--ECS+SLB+EIP+RDS
(2)架构图转换如下:
本文分为上下两篇:
(上)《如何从单台ECS转换成业务高可用架构》
(下)《用DTS从自建数据库迁移至RDS》
如何将自建数据库数据同步至云数据库RDS
完成这个工作首先我们需要了解DTS数据迁移服务
DTS数据传输服务(Data Transmission Service)(https://www.aliyun.com/product/dts):DTS支持关系型数据库、NoSQL、大数据(OLAP)等数据源间的数据传输。 它是一种集数据迁移、数据订阅及数据实时同步于一体的数据传输服务。数据传输致力于在公共云、混合云场景下,解决远距离、毫秒级异步数据传输难题。 它底层的数据流基础设施为阿里双11异地多活基础架构, 为数千下游应用提供实时数据流,已在线上稳定运行3年之久;可以使用数据传输轻松构建安全、可扩展、高可用的数据架构。
具体操作流程
准备工作
关系型数据库RDS(Relational Database Service)(https://www.aliyun.com/product/rds/mysql)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。
在ECS服务器中自建一台数据库,在其他账号的华东1地域下购买一台RDS数据库。目前数据库情况如下:把ECS上自建aa数据库通过DTS迁移到云数据库RDS上。
开始工作:
1.进入DTS管理控制台
2.在控制台—数据迁移—创建迁移任务
3.创建源库信息并测试连通性
当测试出现如下情况时:
是表明连接本地数据库不成功,原因如下:
是因为本地数据库设置可以访问的来源为localhost(本机,指只有这台ECS可以访问到这台数据库)
通过数据库命令:
(切换到mysql数据库下)
(查看可以访问的权限)
更改连接数据库的权限:
(设置可以访问的权限为任何人)
可以查看到测试通过:
4.创建目标库信息并测试连通性
5.授权白名单并执行下一步后,在下一个界面,选择结构迁移和全量数据迁移,并源数据库所需要迁移的数据库添加的目标数据库中
6.设置迁移数据库名是否一致,执行预检查并启动
7.预检查失败,提示目的库权限检查失败
出现这种情况原因:
是因为dts_rds为一个普通权限的数据库账号,没有create database(创建数据库)的权限,所以我们需要添加权限
以下操作需在拥有最高权限的数据库账号下操作,本文是root账号下:
通过命令:
(切换到mysql数据库)
(查看dts_rds账号下的权限)
通过命令:
(赋予dts_rds账号拥有创建数据库的权限)
成功解决问题:
8.执行下一步后,购买配置确认(如果之前没有选择增量数据迁移,那么费用为0)
9.购买并启动,开始数据迁移:
10.验证数据库是否迁移完成:
可以看到RDS中已经出现aa数据库,到此迁移完成。