自建数据库迁移到云数据库
一键部署
45
https://www.aliyun.com/solution/tech-solution/mysql-rds
方案概览
本方案将引导您将网站的自建数据库平滑迁移至云数据库RDS。
通过使用RDS,您可以获得稳定、可靠和安全的企业级数据库服务,可以更加专注于发展核心业务,无需过多担心数据库的管理和维护。
本方案的体验预计产生费用不超过1.5元(假设资源运行时间不超过1小时)。如果您调整了资源规格、使用时长,或执行了本方案以外的操作,可能导致费用发生变化,请以控制台显示的实际价格和最终账单为准。
方案架构
由RDS实现数据库可靠性、可用性、安全性的保障。
应用部署在ECS上,通过内网(VPC)访问RDS。
使用数据传输服务DTS将ECS上的自建数据库迁移至云数据库RDS,迁移过程平滑、安全、高效,应用停机时间降低到分钟级别。
准备资源
10
一键部署资源
您可以通过一键部署模板,快速创建一个云服务器ECS实例和一个云数据库RDS实例,ECS实例上已经部署了网站以及自建数据库。本方案以WordPress网站为例。
单击一键部署进入ROS控制台,在顶部选择华东1(杭州)。
填写模板参数,包括ECS和RDS实例所在地域、可用区,以及ECS和RDS实例的账号密码,其他参数可使用默认值或按需修改。
查看页面右下角的资源价格,确认无误后单击创建。
等待资源栈创建,资源部署时间约为10分钟,请耐心等候,直至资源栈状态显示为创建成功。
说明为节省成本,本方案默认选择使用按量付费资源。使用按量付费资源需要确保账户余额不小于100元。
如果创建失败,您可以选择其他可用区后重试。
WordPress网站安装
此时WordPress网站还不能访问,您需要进入WordPress安装页面,完成WordPress安装。
访问资源编排管理控制台,在资源栈列表中单击刚创建的资源栈。
在资源栈顶部单击输出页签,并在输出关键字列表中找到ECSWordPressUrl参数对应的值,单击进入网页。
在WordPress安装页面,填写网站相关信息,然后单击Install WordPress。
请记住设置的网站管理员用户名和密码,用于登录网站管理页面。
查看已部署的资源
在资源页面,您可以查看上述步骤所生成的ECS实例、RDS实例、WordPress网站访问地址等。
在
中单击上一步创建的资源栈。在顶部单击资源页签,可以查看已创建的资源及相关信息。
在顶部单击输出页签,可以查看输出关键字列表,各关键字描述如下表所示。
参数值
说明
示例值
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: 用户自定义
迁移数据库
15
现在,您可以使用DTS数据传输服务,配置源库和目标库信息,开始迁移数据库的库表结构、全量数据和增量数据。
登录DMS数据管理服务。
在顶部菜单栏选择
。说明如果顶部没有菜单,可以在右上角退出极简模式。
单击创建任务。
配置源库及目标库信息。
源库
数据库类型:MySQL
接入方式:ECS 自建数据库
实例地区:本示例中选择华东1(杭州)
是否跨阿里云账号:不跨账号
ECS 实例 ID:选择网站所在的ECS实例。
端口:3306
数据库账号和密码:输入前面创建的自建数据库账号和密码。本示例为dtssync1和P@ssw0rd。
连接方式:非加密连接
目标库
数据库类型:MySQL
接入方式:云实例
实例地区:本示例中选择华东1(杭州)
RDS 实例 ID:选择前面创建的RDS实例。
数据库账号和密码:输入前面创建的RDS实例账号和密码。本示例为dbuser和您自定义的密码。
连接方式:非加密连接
单击测试连接以进行下一步,会自动为ECS添加DTS安全组、为RDS添加DTS服务器IP至白名单,以允许DTS访问ECS和RDS。
如果有失败信息,参考对应的错误提示进行修改即可。
配置迁移任务。
勾选库表结构迁移、全量迁移、增量迁移。
在源库对象框中选择要迁移的wordpressdb库,再单击将其移动至已选择对象框,然后单击下一步高级配置。
勾选全量校验和增量校验、结构校验,然后单击下一步保存任务并预检查。
预检查通过率达到100%后,单击下一步购买。选择数据迁移实例的链路规格(本案例以small规格为例),阅读并选中《数据传输(按量付费)服务条款》,单击购买并启动。
迁移任务正式开始。
单击迁移任务ID可以查看具体进度。当您看到如下界面,表示存量数据已迁移完成,增量数据会实时同步。此时您可以进入下一步,验证RDS里的数据。
验证及切换
10
验证RDS里的数据
您可以登录到云数据库RDS实例,查询RDS中是否具备了全量数据,并在网站新增加一条评论,验证该新评论是否从自建数据库同步到RDS。
登录RDS实例
单击资源栈顶部资源按钮,然后单击Database资源ID进入RDS控制台,单击登录数据库。
在弹出的DMS页面中,填写RDS高权限数据库账号和密码,然后单击登录。
本示例中,RDS高权限数据库账号为dbuser,密码为您自定义的密码。
如果报错“您暂未获取当前数据库实例的登录权限”,请单击点此申请,并由主账号完成审批。
验证全量数据
在SQLConsole窗口,在左侧双击目标数据库名称wordpressdb,可以看到自建数据库所有库、表数据已经完成迁移。
说明如果找不到wordpressdb库,请右键单击RDS实例ID,选择刷新/同步数据字典。
验证增量数据
在SQLConsole窗口,双击wp_comments表名,再单击执行,查看wp_comments表的数据。
在浏览器输入WordPress网站IP,在网站上增加一条评论。
再次查看RDS实例中wp_comments表的数据,可以看到增加的评论,说明增量数据已迁移成功。
从自建数据库切换到RDS
为避免数据丢失,建议先停止写入数据,然后再将应用程序的数据库连接配置修改为云数据库RDS的连接地址。
停止写入数据到源数据库。
修改WordPress配置文件中的数据库连接配置。
在资源列表中单击WebServer资源ID进入ECS控制台,点击远程连接使用ECS账户登录。本示例中,ECS账号为root,密码为用户自定义密码。
说明如果提示用户名或密码不正确,可能是因为密码错误或者操作系统未完全启动,请确认输入的用户名和密码,或者稍后再尝试登录。
打开配置文件。
sudo vim /usr/share/nginx/html/wp-config.php
按i进入插入模式。
修改数据库连接配置:
将数据库账号和密码修改为RDS实例的数据库账号和密码,本示例中,将wordpressuser改为dbuser,将password改为您自定义的密码。
将localhost修改为RDS实例内网地址。
在资源列表中点击Database资源ID进入RDS控制台,在
中找到RDS数据库内网地址。
按Esc键退出插入模式。
输入:wq,并按Enter键退出vim编辑器。
以上仅为本示例教程的切换步骤,关于生产环境的切换和回滚方案,请参见业务切换流程。
清理资源
5
完成教程后,建议及时释放不需要的资源,包括DTS数据迁移任务和ECS实例等,