无代理备份并高效克隆MySQL环境

更新时间:
复制为 MD 格式

数据可能因各种原因丢失,迅速恢复数据对于维护业务连续性尤为重要。随着互联网业务扩张,需要快速基于生产环境建立开发和测试环境,以便持续迭代和发布新版本。本方案基于快照和自定义镜像,提供无代理备份并高效克隆MySQL环境的部署方案。

优势

本方案具备如下优势:

  • 无代理数据备份

    本方案通过使用EBS的快照能力,不占用云服务器ECSvCPU和内存,不影响生产,无需第三方备份和插件就可以完成数据备份,充分保证数据备份的有效、可靠且简单易用。

    阿里云快照服务是一种无代理(Agentless)的数据备份方式,可为单个云盘或者云盘组创建某个时刻的完整拷贝,用于数据恢复、开发测试环境搭建,或自定义镜像的制作以进行业务批量部署。更多信息,请参见快照概述
  • 灵活高效克隆环境

    传统的手工克隆数据方式效率较低且容易出错。本方案通过创建快照和自定义镜像,可以实现MySQL应用与数据从开发环境到测试环境的高效克隆与搭建。

  • 多场景能力满足多用户群体

    本方案集成了快照和镜像的多样化能力,支持跨地域复制、应用一致性、快照加密、快照共享等,以便用户可以根据自身的需求和业务场景来配置和使用云资源。

计费说明

在环境搭建过程中,会根据使用的阿里云资源(ECS实例、快照、镜像等)的计费方式进行计费。如果通过实验室一键部署,创建的实验任务本身不会收费,但使用的阿里云资源会收费。

实验室一键部署过程中使用到的阿里云资源仅支持按量付费。

备份并克隆MySQL环境

手动部署(用于生产环境)

手动备份并克隆MySQL环境需先购买ECS实例,并通过命令部署MySQL服务,然后通过创建快照和自定义镜像手动备份和克隆MySQL环境。

在创建ECS实例、快照和镜像的过程中,建议对各资源名称做好命名区分,以便后续查找资源。

步骤一:创建ECS实例并部署MySQL服务

  1. 创建ECS实例。示例的ECS实例情况如下:

    • 实例规格ecs.g8a.large。

    • 以操作系统CentOS 7.9为例,其余操作系统指令需要根据实际情况调整。

    • 系统盘为40 GiBESSD PL0。

    • ECS实例未安装MySQL服务。

    具体操作,请参见自定义购买实例

  2. 远程连接ECS实例。

    具体操作,请参见使用Workbench登录Linux实例

  3. 部署MySQL服务。

    1. 执行以下命令,下载安装MySQL安装包。

      #添加MySQL官方源
      sudo rpm -Uvh https://repo.mysql.com/mysql84-community-release-el7-1.noarch.rpm
      #安装MySQL服务
      sudo yum install -y mysql-server
    2. 执行以下命令,配置并启动MySQL。

      sudo systemctl start mysqld
      sudo systemctl enable mysqld
    3. 执行以下命令,查看MySQL是否正常启动。

      ps aux | grep mysqld

      image.png

    4. 执行以下命令,查看MySQL初始密码。

      sudo cat /var/log/mysqld.log | grep root | grep "temporary password" | awk '{print $13}'

      image.png

    5. 执行以下命令,登录MySQL。

      mysql -uroot -p

      输入上一步获取的密码,即可登录MySQL。

      image.png

      说明

      可以执行ALTER USER 'root'@'localhost' IDENTIFIED BY '<new_password>';命令,修改MySQL的登录密码。

    6. 执行以下命令,退出MySQL。

      exit
  4. 执行以下命令,确保在创建快照之前数据已经落盘。这样做可以避免在创建快照之前还有数据在缓存中,从而保证快照的数据完整性。

    sync

步骤二:通过为系统盘快照和自定义镜像快速克隆MySQL环境

该步骤通过为系统盘创建快照并生成自定义镜像,再基于自定义镜像可以快速实现完整环境和数据的克隆。

  1. 登录ECS管理控制台

  2. ECS实例的系统盘创建快照。

  3. 基于已创建的快照创建自定义镜像。

    具体操作,请参见使用快照创建自定义镜像

  4. 基于已创建的自定义镜像创建一台新的ECS实例。

    具体操作,请参见使用自定义镜像或共享镜像创建实例

通过实验室一键部署(用于快速验证和测试新特性)

重要

实验室部署的一键搭建能力通常用于快速验证和测试新特性,但不适合直接应用到生产环境中。生产环境建议使用手动部署以确保系统的安全和稳定。

通过块存储EBS的实验室一键式自动创建资源并完成备份与克隆的整个过程。本实验项将自动:

  • 创建ECS实例,实例名称以ECS_Instance开头。

  • 为系统盘创建快照。

  • 根据快照创建自定义镜像,镜像名称以MySQLImage开头。

  • 根据自定义镜像克隆新的ECS实例,实例名称以ECS_Instance_Clone开头。

操作步骤

  1. 前往实验场景页面。

    1. 登录块存储EBS控制台

      首次登录EBS控制台时,请根据页面提示创建一个EBS服务关联角色。更多信息,请参见块存储EBS服务关联角色
    2. 在左侧导航栏选择实验室 > 实验场景

    3. 在顶部菜单栏左上角处,选择地域。

    4. 无代理ECS数据备份与高效环境搭建实验场景模板中,单击一键创建实验任务

  2. 实验场景页面,设置实验场景的基础信息,然后单击下一步

    参数

    说明

    实验场景

    默认为无代理ECS数据备份与高效环境搭建

    实验任务名称

    已默认填写,可以根据需要修改。

    描述

    (非必填)设置实验任务的描述信息。

  3. 在依赖检查界面,检查依赖情况,显示为未发现异常时,单击下一步

    说明

    若依赖检查出现异常(如缺少服务关联角色AliyunEbsLabRole或相关权限策略),请先参考初始化 EBS 实验室环境完成配置。

  4. 资源参数页面,修改实验任务的参数后,单击下一步

    参数

    说明

    ECS 实例规格

    按需选择实例规格,示例选择ecs.g8a.large,28GiB的实例规格。

    实例密码

    已默认填写,可根据需要修改。

    重要

    请牢记设置的实例密码,以便后续远程连接ECS实例。

    可用区

    选择实例对应的可用区。示例选择cn-hangzhou-k

  5. 检查确认配置参数以及费用信息后,单击确认。在弹出的创建实验任务对话框中,单击确定

    创建任务成功后,系统会准备资源,并搭建好对应的实验场景,预计需要10~15分钟,请耐心等待。

    实验任务依赖于ROS资源编排能力,一个实验任务对应于一个资源栈,最多允许创建200个实验任务。
  6. 当任务状态变为创建完成后,可单击实验任务ID,查看任务配置详细信息。

验证与清理

验证方案

  1. 访问ECS控制台-实例。在页面左侧顶部,选择目标资源所在的资源组和地域。

  2. 分别在实例、快照和镜像页面查看已创建的快照、镜像和克隆的ECS实例。

    说明
    • 手动部署:请根据自定义名称来查看各资源。

    • 通过实验室部署:

      • ECS实例名称以ECS_Instance开头。

      • 克隆实例名称以ECS_Instance_Clone开头。

      • 镜像名称以MySQLImage开头。

  3. 远程连接新克隆的ECS实例。

    进入目标实例详情页,单击远程连接,选择通过Workbench远程连接。根据页面提示登录,进入终端页面。

  4. 执行以下命令,查看MySQL服务是否正常启动。

    ps aux | grep mysqld

    如下信息表示MySQL服务已正常启动,说明MySQL环境已克隆完成。image.png

清理资源

如果通过实验室一键部署,测试完成后建议及时清理相关资源,避免继续产生费用。

  1. 登录块存储EBS控制台

  2. 在左侧导航栏选择实验室 > 实验记录

  3. 在顶部菜单栏左上角处,选择地域。

  4. 在目标实验任务的操作列,单击删除。预计需要5分钟,请耐心等待。

    也可以选中多个实验任务,在列表底部单击批量删除

    警告

    删除实验任务时默认不会释放实验资源,如果选中删除资源,实验任务中的资源,例如ECS实例、数据库实例等均会被释放,请谨慎操作。

  5. 访问ECS控制台-实例。在页面左侧顶部,选择目标资源所在的资源组和地域。

  6. 删除自定义镜像以及快照资源。