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

更新时间: 2024-04-07 17:55:52

一键部署

45

https://www.aliyun.com/solution/tech-solution/mysql-rds

方案概览

本方案将引导您将网站的自建数据库平滑迁移至云数据库RDS。

通过使用RDS,您可以获得稳定、可靠和安全的企业级数据库服务,可以更加专注于发展核心业务,无需过多担心数据库的管理和维护。

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

方案架构

  • 由RDS实现数据库可靠性、可用性、安全性的保障。

  • 应用部署在ECS上,通过内网(VPC)访问RDS。

  • 使用数据传输服务DTS将ECS上的自建数据库迁移至云数据库RDS,迁移过程平滑、安全、高效,应用停机时间降低到分钟级别。

image.png

准备资源

10

一键部署资源

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

方案资源配置

专有网络VPC

规划项

说明

示例值

VPC名称

建议您在部署过程中新建一个VPC作为本方案的专有网络。部署过程中填写VPC名称即可创建对应名称的VPC。

长度为2~128个字符,以英文大小字母或中文开头,可包含数字、下划线(_)和连字符(-)。

wordpress_vpc

网段

在创建VPC时,您必须按照无类域间路由块(CIDR block)的格式为您的专有网络划分私网网段。阿里云VPC支持的网段信息请参见专有网络组成部分

在网络规划时可以按照管理网段-开发网段-测试网段-生产网段等规则做好规划。网段一旦投入使用,调整过程复杂,因此规划十分重要。

192.168.0.0/16

虚拟交换机

规划项

说明

示例值

台数

方案中使用的虚拟交换机台数。

2

地域

您的云服务部署的地域。选择地域的基本原则请参见地域和可用区

华东1(杭州)

可用区

在规划的地域内选择可用区部署交换机。

建议选择排序靠后的,一般此类可用区较新。新可用区资源更充沛,新规格也会在新的可用区优先上线。

可用区J和可用区K

交换机子网段

交换机网段必须为专有网络子网段。

可用区J:192.168.0.0/24

可用区K:192.168.1.0/24

云服务器ECS

规划项

说明

示例值

实例数量

默认方案需要一台ECS实例。

1

实例规格

ECS的实例规格及内核、vCPU数量。关于ECS选型的最佳实践请参见ECS选型最佳实践

ecs.e-c1m1.large

镜像及版本

ECS系统盘,为ECS实例提供操作系统、预装软件等。

Alibaba Cloud Linux 3.2104 LTS 64位

系统盘类型

硬盘类型

高效云盘

登录凭证

可选择稍后创建或者自定义密码。

用户自定义

可用区

与交换机可用区保持一致。

可用区J

配置数据

ECS实例初始化自动布置配置数据。

自动部署WordPress、MySQL及相关环境

云数据库RDS

规划项

说明

示例值

实例名称

定义一个易于理解的名称。

RDS-DB

系列

基础系列为单节点。您也可以把实例从基础系列升级为高可用系列或集群系列。

基础系列

数据库版本及类型

RDS支持多种数据库类型及对应版本,方案默认使用MySQL 8.0。

MySQL 8.0

实例规格

可通过测试业务负载来确认需要的实例规格。

mysql.n2e.small.1

容量

方案默认为20GB。

20GB

可用区

与ECS实例可用区保持一致。

可用区J

白名单

允许访问RDS实例的IP列表

只允许通过本方案中ECS实例内网IP和弹性公网IP访问。IP由一键部署模板自动获取,无需手动添加。

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

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

  3. 查看页面右下角的资源价格,确认无误后单击创建

    等待资源栈创建,资源部署时间约为10分钟,请耐心等候,直至资源栈状态显示为创建成功

    说明
    • 为节省成本,本方案默认选择使用按量付费资源。使用按量付费资源需要确保账户余额不小于100元。

    • 如果创建失败,您可以选择其他可用区后重试。

image.png

WordPress网站安装

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

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

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

    image.png

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

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

    image.png

查看已部署的资源

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

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

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

    image.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: 用户自定义

迁移数据库

15

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

  1. 登录DMS数据管理服务

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

    说明

    如果顶部没有菜单,可以在右上角退出极简模式。

  3. 单击创建任务

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

    1. 源库

      1. 数据库类型:MySQL

      2. 接入方式:ECS 自建数据库

      3. 实例地区:本示例中选择华东1(杭州)

      4. 是否跨阿里云账号:不跨账号

      5. ECS 实例 ID:选择网站所在的ECS实例。

      6. 端口:3306

      7. 数据库账号和密码:输入前面创建的自建数据库账号和密码。本示例为dtssync1和P@ssw0rd。

      8. 连接方式:非加密连接

    2. 目标库

      1. 数据库类型:MySQL

      2. 接入方式:云实例

      3. 实例地区:本示例中选择华东1(杭州)

      4. RDS 实例 ID:选择前面创建的RDS实例。

      5. 数据库账号和密码:输入前面创建的RDS实例账号和密码。本示例为dbuser和您自定义的密码。

      6. 连接方式:非加密连接

  5. 单击测试连接以进行下一步,会自动为ECS添加DTS安全组、为RDS添加DTS服务器IP至白名单,以允许DTS访问ECS和RDS。

    如果有失败信息,参考对应的错误提示进行修改即可。

  6. 配置迁移任务。

    1. 勾选库表结构迁移全量迁移增量迁移

    2. 源库对象框中选择要迁移的wordpressdb库,再单击向右小箭头.png将其移动至已选择对象框,然后单击下一步高级配置

    3. 勾选全量校验增量校验结构校验,然后单击下一步保存任务并预检查

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

  8. 迁移任务正式开始。

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

    image

验证及切换

10

验证RDS里的数据

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

  1. 登录RDS实例

    1. 单击资源栈顶部资源按钮,然后单击Database资源ID进入RDS控制台,单击登录数据库

    2. 在弹出的DMS页面中,填写RDS高权限数据库账号和密码,然后单击登录

      本示例中,RDS高权限数据库账号为dbuser,密码为您自定义的密码。

      如果报错“您暂未获取当前数据库实例的登录权限”,请单击点此申请,并由主账号完成审批。

  2. 验证全量数据

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

    说明

    如果找不到wordpressdb库,请右键单击RDS实例ID,选择刷新/同步数据字典

  3. 验证增量数据

    1. 在SQLConsole窗口,双击wp_comments表名,再单击执行,查看wp_comments表的数据。

    2. 在浏览器输入WordPress网站IP,在网站上增加一条评论。

    3. 再次查看RDS实例中wp_comments表的数据,可以看到增加的评论,说明增量数据已迁移成功。

从自建数据库切换到RDS

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

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

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

    1. 资源列表中单击WebServer资源ID进入ECS控制台,点击远程连接使用ECS账户登录。本示例中,ECS账号为root,密码为用户自定义密码。

      说明

      如果提示用户名或密码不正确,可能是因为密码错误或者操作系统未完全启动,请确认输入的用户名和密码,或者稍后再尝试登录。

    2. 打开配置文件。

      sudo vim /usr/share/nginx/html/wp-config.php
    3. i进入插入模式。

    4. 修改数据库连接配置:

      1. 将数据库账号和密码修改为RDS实例的数据库账号和密码,本示例中,将wordpressuser改为dbuser,将password改为您自定义的密码。

      2. 将localhost修改为RDS实例内网地址。

        在资源列表中点击Database资源ID进入RDS控制台,在基本信息 > 网络类型 > 查看连接详情中找到RDS数据库内网地址。

    5. Esc键退出插入模式。

    6. 输入:wq,并按Enter键退出vim编辑器。

说明

以上仅为本示例教程的切换步骤,关于生产环境的切换和回滚方案,请参见业务切换流程

清理资源

5

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

  • 释放DTS任务

    1. 登录DMS数据管理服务

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

    3. 选择DTS任务所在地域,找到目标任务。

    4. 在操作列单击image.png,然后单击释放任务

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