数据可能因各种原因丢失,迅速恢复数据对于维护业务连续性尤至关重要。随着互联网业务扩张,需要快速基于生产环境建立开发和测试环境,以便持续迭代和发布新版本。本方案基于快照和自定义镜像,提供无代理备份并高效克隆MySQL环境的部署方案。
优势
本方案具备如下优势:
-
无代理数据备份
本方案通过使用EBS的快照能力,不占用云服务器ECS的vCPU和内存,不影响生产,无需第三方备份和插件就可以完成数据备份,充分保证数据备份的有效、可靠且简单易用。
阿里云快照服务是一种无代理(Agentless)的数据备份方式,可为单个云盘或者云盘组创建某个时刻的完整拷贝,用于数据恢复、开发测试环境搭建,或自定义镜像的制作以进行业务批量部署。更多信息,请参见快照概述。
-
灵活高效克隆环境
传统的手工克隆数据方式效率较低且容易出错。本方案通过创建快照和自定义镜像,可以实现MySQL应用与数据从开发环境到测试环境的高效克隆与搭建。
-
多场景能力满足多用户群体
本方案集成了快照和镜像的多样化能力,支持跨地域复制、应用一致性、快照加密、快照共享等,以便用户可以根据自身的需求和业务场景来配置和使用云资源。
计费说明
在环境搭建过程中,会根据使用的阿里云资源(ECS实例、快照、镜像等)的计费方式进行计费。如果通过实验室一键部署,创建的实验任务本身不会收费,但使用的阿里云资源会收费。
实验室一键部署过程中使用到的阿里云资源仅支持按量付费。
备份并克隆MySQL环境
手动部署(用于生产环境)
手动备份并克隆MySQL环境需先购买ECS实例,并通过命令部署MySQL服务,然后通过创建快照和自定义镜像手动备份和克隆MySQL环境。
在创建ECS实例、快照和镜像的过程中,建议对各资源名称做好命名区分,以便后续查找资源。
步骤一:创建ECS实例并部署MySQL服务
-
创建ECS实例。示例的ECS实例情况如下:
-
实例规格ecs.g8a.large。
-
以操作系统CentOS 7.9为例,其余操作系统指令需要根据实际情况调整。
-
系统盘为40 GiB的ESSD PL0。
-
ECS实例未安装MySQL服务。
具体操作,请参见自定义购买实例。
-
-
远程连接ECS实例。
具体操作,请参见使用Workbench登录Linux实例。
-
部署MySQL服务。
-
执行以下命令,下载安装MySQL安装包。
#添加MySQL官方源 sudo rpm -Uvh https://repo.mysql.com/mysql84-community-release-el7-1.noarch.rpm #安装MySQL服务 sudo yum install -y mysql-server -
执行以下命令,配置并启动MySQL。
sudo systemctl start mysqld sudo systemctl enable mysqld -
执行以下命令,查看MySQL是否正常启动。
ps aux | grep mysqld[ecs-user@iZbxxx ~]$ ps aux | grep mysqld mysql 2389 8.5 5.1 1792164 399104 ? Ssl 16:01 0:00 /usr/sbin/mysqld ecs-user 2504 0.0 0.0 12820 2268 pts/0 S+ 16:01 0:00 grep --color=auto mysqld -
执行以下命令,查看MySQL初始密码。
sudo cat /var/log/mysqld.log | grep root | grep "temporary password" | awk '{print $13}'[ecs-user@iZbpxxx ~]$ sudo cat /var/log/mysqld.log | grep root | grep "temporary password" | awk '{print $13}' f3kpR9>l9JTK_ -
执行以下命令,登录MySQL。
mysql -uroot -p输入上一步获取的密码,即可登录MySQL。
[ecs-user@iZbp1xxx ~]$ mysql -uroot -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 8 Server version: 8.0.35 Copyright (c) 2000, 2023, Oracle and/or its affiliates. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql>说明可以执行
ALTER USER 'root'@'localhost' IDENTIFIED BY '<new_password>';命令,修改MySQL的登录密码。 -
执行以下命令,退出MySQL。
exit
-
-
执行以下命令,确保在创建快照之前数据已经落盘。这样做可以避免在创建快照之前还有数据在缓存中,从而保证快照的数据完整性。
sync
步骤二:通过为系统盘快照和自定义镜像快速克隆MySQL环境
该步骤通过为系统盘创建快照并生成自定义镜像,再基于自定义镜像可以快速实现完整环境和数据的克隆。
登录ECS管理控制台。
-
为ECS实例的系统盘创建快照。
-
基于已创建的快照创建自定义镜像。
具体操作,请参见使用快照创建自定义镜像。
-
基于已创建的自定义镜像创建一台新的ECS实例。
具体操作,请参见使用自定义镜像或共享镜像创建实例。
通过实验室一键部署(用于快速验证和测试新特性)
实验室部署的一键搭建能力通常用于快速验证和测试新特性,但不适合直接应用到生产环境中。生产环境建议使用手动部署以确保系统的安全和稳定。
通过块存储EBS的实验室一键式自动创建资源并完成备份与克隆的整个过程。本实验项将自动:
-
创建ECS实例,实例名称以ECS_Instance开头。
-
为系统盘创建快照。
-
根据快照创建自定义镜像,镜像名称以MySQLImage开头。
-
根据自定义镜像克隆新的ECS实例,实例名称以ECS_Instance_Clone开头。
操作步骤
-
前往实验场景页面。
-
登录块存储EBS控制台。
首次登录EBS控制台时,请根据页面提示创建一个EBS服务关联角色。更多信息,请参见块存储EBS服务关联角色。
-
在左侧导航栏选择实验室 > 实验场景。
-
在顶部菜单栏左上角处,选择地域。
-
在无代理ECS数据备份与高效环境搭建实验场景模板中,单击一键创建实验任务。
-
-
在实验场景页面,设置实验场景的基础信息,然后单击下一步。
参数
说明
实验场景
默认为无代理ECS数据备份与高效环境搭建。
实验任务名称
已默认填写,可以根据需要修改。
描述
(非必填)设置实验任务的描述信息。
-
在依赖检查界面,检查依赖情况,显示为未发现异常时,单击下一步。
-
在资源参数页面,修改实验任务的参数后,单击下一步。
参数
说明
ECS 实例规格
按需选择实例规格,示例选择
ecs.g8a.large,2核8GiB的实例规格。实例密码
已默认填写,可根据需要修改。
重要请牢记设置的实例密码,以便后续远程连接ECS实例。
可用区
选择实例对应的可用区。示例选择
cn-hangzhou-k。 -
检查确认配置参数以及费用信息后,单击确认。在弹出的创建实验任务对话框中,单击确定。
创建任务成功后,系统会准备资源,并搭建好对应的实验场景,预计需要10~15分钟,请耐心等待。
实验任务依赖于ROS资源编排能力,一个实验任务对应于一个资源栈,最多允许创建200个实验任务。
-
当任务状态变为创建完成后,可单击实验任务ID,查看任务配置详细信息。
验证与清理
验证方案
-
访问ECS控制台-实例。在页面左侧顶部,选择目标资源所在的资源组和地域。
-
分别在实例、快照和镜像页面查看已创建的快照、镜像和克隆的ECS实例。
说明-
手动部署:请根据自定义名称来查看各资源。
-
通过实验室部署:
-
ECS实例名称以ECS_Instance开头。
-
克隆实例名称以ECS_Instance_Clone开头。
-
镜像名称以MySQLImage开头。
-
-
-
远程连接新克隆的ECS实例。
进入目标实例详情页,单击远程连接,选择通过Workbench远程连接。根据页面提示登录,进入终端页面。
-
执行以下命令,查看MySQL服务是否正常启动。
ps aux | grep mysqld如下信息表示MySQL服务已正常启动,说明MySQL环境已克隆完成。
[ecs-user@iZbp18xxx ~]$ ps aux | grep mysqld mysql 2389 0.2 5.3 1810368 419288 ? Ssl 16:01 0:14 /usr/sbin/mysqld ecs-user 30358 0.0 0.0 112824 2384 pts/1 S+ 17:43 0:00 grep --color=auto mysqld
清理资源
如果通过实验室一键部署,测试完成后建议及时清理相关资源,避免继续产生费用。