阿里云数据库迁移方案:自建数据库迁移到云数据库

2024-08-22  本文已影响0人  阿里云最新优惠和活动汇总

本方案介绍如何将网站的自建数据库迁移至云数据库 RDS,解决您随着业务增长可能会面临的数据库运维难题。数据库采用高可用架构,支持跨可用区容灾,给业务带来数据安全、可用性、性能和成本方面收益。方案提供了快速体验教程,模拟了数据库迁移所需的工作,帮助您快速上手。

体验本方案预计费用不超过3元(假设资源运行时间不超过1小时,如果调整资源规格、使用时长,或执行本方案以外的操作,可能会导致费用发生变化,请以控制台显示的实际价格和最终账单为准。)

一、背景

从开展业务的初期到业务增长期,对数据库的性能、可用性会有不同的需求,运维也会变得越来越复杂。建议您尽早将数据库迁移到云数据库 RDS 上。

数据库迁移方案背景.jpg

业务初期

在业务初期,您可能会为了控制成本选择在应用服务器上自建数据库。但随着业务增长,这种应用和数据库部署在一个服务器上的架构,会有性能、安全、扩展性方面的隐患。

业务开始增长

为了消除性能、安全、扩展性方面的隐患,您可能会选择将数据库和应用分开部署。但数据库迁移工作并不简单,并且实现高可用和读写分离也很复杂,需要大量的时间和人力成本。

业务持续增长

如果您的业务在未来会持续增长,建议您尽早将数据库迁移到云数据库上。云数据库 RDS 可以让您使用一写多读、故障自动切换、自动备份等关键特性的同时,无需关注复杂的数据库运维工作。

二、RDS 解决的问题

稳定可靠

解决可用性问题:数据云盘存储通过多副本冗余确保数据可靠性;高可用版和集群版采用主备容灾架构,最高可保障99.99%可用性;集群版可启用MGR特性实现RPO=0,数据零丢失。

降本增效

解决成本和扩展性问题:计费方式灵活,Serverless实现最高70%降本;支持ARM架构,体验相同,性价比更高;可按需弹性升降配,不浪费资源。

数据库“自动驾驶”

解决运维复杂问题:支持自动扩缩容、自动SQL优化、自动SQL限流等,实现数据库的自感知、自修复、自优化、自运维及自安全,减轻运维负担,减少运维成本。

三、如何迁移到 RDS

在没有过往经验的情况下,您可能仍然会担心自己不够熟悉数据库迁移,而无法完成这项工作。 这里我们提供了一个快速体验教程,模拟了一遍数据库迁移所需的工作,帮助你快速熟悉这一流程。

自建数据库迁移到云数据库

为了控制成本,本方案中所创建的资源都是尽可能使用小规格资源,体验费用预计不超过 3 元(假设您在 1 小时内完成体验并及时释放资源)。 方案架构如下:

数据库迁移架构.png

迁移步骤

01 准备资源
通过一键部署脚本,快速创建一个模拟环境,包含一个运行网站应用和数据库的ECS实例,以及一个迁移目标RDS实例。

02 迁移数据库
这一步骤将引导您使用数据传输服务DTS,将ECS上自建的数据迁移到RDS中。

03 验证及切换
通过这一步骤,您将了解如何验证数据库已经迁移成功,并尝试修改应用代码来完成迁移工作。

04清理资源
完成教程学习后,您可以将模拟环境的资源释放掉,避免产生额外的费用。

部署资源

一键部署资源

您可以通过一键部署模板,快速创建一个云服务器ECS实例和一个云数据库RDS实例,ECS实例上已经部署了网站以及自建数据库。本方案以WordPress网站为例。

1.单击一键部署进入ROS控制台,在顶部选择华东1(杭州)。

2.填写模板参数,包括ECS和RDS实例所在地域、可用区,以及ECS和RDS实例的账号密码,其他参数可使用默认值或按需修改。

3.查看页面右下角的资源价格,确认无误后单击创建。
等待资源栈创建,资源部署时间约为10分钟,请耐心等候,直至资源栈状态显示为创建成功。

p702385.png
WordPress网站安装

此时WordPress网站还不能访问,您需要进入WordPress安装页面,完成WordPress安装。

1.访问资源编排管理控制台,在资源栈列表中单击刚创建的资源栈。

2.在资源栈顶部单击输出页签,并在输出关键字列表中找到ECSWordPressUrl参数对应的值,单击进入网页。

p702428.png

3.在WordPress安装页面,填写网站相关信息,然后单击Install WordPress。

请记住设置的网站管理员用户名和密码,用于登录网站管理页面。

p702396.png
查看已部署的资源

在资源页面,您可以查看上述步骤所生成的ECS实例、RDS实例、WordPress网站访问地址等。

1.在资源栈 > 资源栈列表中单击上一步创建的资源栈。

2.在顶部单击资源页签,可以查看已创建的资源及相关信息。

p702401.png

3.在顶部单击输出页签,可以查看输出关键字列表,各关键字描述如下表所示。

参数值 说明 示例值
ECSWordPressUrl WordPress访问地址 系统自动生成
ECSInstanceUser ECS实例登录账号和密码 USERNAME: root
PASSWORD: 用户自定义
WPUserForSQL ECS自建MySQL数据库账号和密码,该账号用于数据库SQL操作。 USERNAME: wordpressuser
PASSWORD: password
WPUserForDTS ECS自建MySQL数据库账号和密码,该账号用于数据库(源库)在DTS中运行数据迁移任务。 USERNAME: dtssync1
PASSWORD: P@ssw0rd
RDSUserDTS RDS数据库高权限账号和密码,用于数据库(目标库)在DTS中运行数据迁移任务。 USERNAME: dbuser
PASSWORD: 用户自定义

迁移数据库

现在,您可以使用DTS数据传输服务,配置源库和目标库信息,开始迁移数据库的库表结构、全量数据和增量数据。

1.登录DMS数据管理服务。

2.在顶部菜单栏选择集成与开发(DTS) > 数据传输(DTS) > 数据迁移。

3.单击创建任务。

4.配置源库及目标库信息。

4.1 源库

4.2 目标库

5.单击测试连接以进行下一步,会自动为ECS添加DTS安全组、为RDS添加DTS服务器IP至白名单,以允许DTS访问ECS和RDS。
如果有失败信息,参考对应的错误提示进行修改即可。

6.配置迁移任务。

7.预检查通过率达到100%后,单击下一步购买。选择数据迁移实例的链路规格(本案例以small规格为例),阅读并选中《数据传输(按量付费)服务条款》,单击购买并启动。

8.迁移任务正式开始。
单击迁移任务ID可以查看具体进度。当您看到如下界面,表示存量数据已迁移完成,增量数据会实时同步。此时您可以进入下一步,验证RDS里的数据。

p759604.png

验证及切换

验证RDS里的数据

您可以登录到云数据库RDS实例,查询RDS中是否具备了全量数据,并在网站新增加一条评论,验证该新评论是否从自建数据库同步到RDS。

1.登录RDS实例

2.验证全量数据
在SQLConsole窗口,在左侧双击目标数据库名称wordpressdb,可以看到自建数据库所有库、表数据已经完成迁移。

3.验证增量数据

从自建数据库切换到RDS

为避免数据丢失,建议先停止写入数据,然后再将应用程序的数据库连接配置修改为云数据库RDS的连接地址。

1.停止写入数据到源数据库。

2.修改WordPress配置文件中的数据库连接配置。

sudo vim /usr/share/nginx/html/wp-config.php

清理资源

完成教程后,建议及时释放不需要的资源,包括DTS数据迁移任务和ECS实例等,

1.释放DTS任务

2.释放一键部署创建的所有资源。

四、迁移前后对比

对比项 ECS 自建数据库 使用云数据库 RDS
成本 公网流量收费;备份数据占用空间;无现成数据库代理用于读写分离;无现成Serverless方案 公网流量不收费;提供最多2倍于存储空间的免费备份空间;通用型数据库代理不收费;支持Serverless
稳定 无现成高可用;无现成负载均衡 高可用和集群系列秒级故障切换,最高保障99.99%可用性;基础系列自动故障恢复,承诺99.5%可用性;自动读写分离,实现负载均衡
性能 无现成的参数调优;无现成读写分离;性能排查复杂;无内核优化 持续优化参数;支持只读实例和读写分离,扩展读性能;支持慢日志分析、自动SQL优化;自研AliSQL和AliPG优化性能
安全 无现成的连接链路加密;无现成的TDE加密;审计困难,无SQL审计;内核Bug需要自行修复 SSL加密;TDE加密;SQL洞察与审计;内核Bug由阿里云修复

官网相关地址直达:
1.更多阿里云方案查询:https://www.aliyun.com
2.阿里云服务器ECS相关活动:https://www.aliyun.com/daily-act/ecs/activity_selection
3.云小站(代金券发布平台):https://www.aliyun.com/minisite/goods

云小站代金券图.png
上一篇下一篇

猜你喜欢

热点阅读