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

重要

本文中含有需要您注意的重要提示信息,忽略该信息可能对您的业务造成影响,请务必仔细阅读。

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

优势

本方案具备如下优势:

  • 无代理数据备份

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

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

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

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

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

计费说明

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

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

备份并克隆MySQL环境

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

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

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

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

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

    • 实例规格ecs.g6e.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. 在依赖检查界面,检查依赖情况,显示为未发现异常时,单击下一步

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

    参数

    说明

    ECS 实例规格

    仅支持ecs.g6e.large,更多信息,请参见实例规格族

    实例密码

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

    重要

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

    可用区

    选择实例对应的可用区。

  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. 删除自定义镜像以及快照资源。