背景
根据业务需求,需要将阿里云ECS、RDS、OSS等数据业务迁移到本地测试运行。根据阿里云的ECS镜像导出、RDS数据库的备份与恢复等功能可以将线上数据完美迁移到本地运行。下述将详细描述下具体恢复过程
详情可参见:
RDS for MySQL 物理备份文件恢复到自建数据库或RDS for MySQL 逻辑备份文件恢复到自建数据库
ECS镜像导出
ECS实例 和 RDS for mysql 密码破解
名词解释
ECS:云服务器(Elastic Compute Service,简称ECS)是阿里云提供的性能卓越、稳定可靠、弹性扩展的IaaS(Infrastructure as a Service)级别云计算服务。
ECS实例:等同于一台虚拟服务器,内含CPU、内存、操作系统、网络配置、磁盘等基础的计算组件。实例的计算性能、内存性能和适用业务场景由实例规格决定,其具体性能指标包括实例vCPU核数、内存大小、网络性能等。
ECS镜像:提供实例的操作系统、初始化应用数据及预装的软件。操作系统支持多种Linux发行版和多种Windows Server版本。
RDS:阿里云关系型数据库(Relational Database Service,简称RDS)是一种稳定可靠、可弹性伸缩的在线数据库服务。基于阿里云分布式文件系统和SSD盘高性能存储,RDS支持MySQL、SQL Server、PostgreSQL、PPAS(Postgre Plus Advanced Server,高度兼容Oracle数据库)和MariaDB TX引擎
RDS for mysql: mysql引擎的RDS,提供mysql数据库服务
vmware**:**VMware Workstation允许一台真实的计算机在一个操作系统中同时打开并运行数个操作系统,允许用户同时创建和运行多个x86虚拟机。每个虚拟机可以运行其安装的操作系统,如(但不限于)Windows、Linux、BSD变生版本。
示例
此次示例以 ECS实例 做WEB服务器,RDS for mysql 作为后端数据库,本地windows主机安装 vmware 虚拟化工具
ECS镜像的导出与还原
1.导出:ECS实例镜像导出参见ECS镜像导出
阿里云服务器镜像数据的格式为raw,是一种磁盘镜像格式,包括完整的磁盘逻辑分区数据和磁盘数据,需 要转换为本地vmware可读的镜像格式才能在本地运行
2.格式转换:
我们使用qemu-img讲raw格式转换为VMware Workstation(以下简称VM)可以识别的格式。
1、 首先进入官网下载软件(下载地址https://www.qemu.org/download/)并安装。
2、 进入qemu-img安装的所在目录,打开CMD或者Windows Power Shell,执行:**qemu-img convert -f raw xxxx.raw -O vmdk xxxx.vmdk **
3.还原:通过vmware新建虚拟机,磁盘镜像选择xxxx.vmdk,调整对应的硬件策源即可。
导出过程涉及到密钥或者密码匹配,需要通过单用户模式破解密码
4.密码破解:
单用户模式下修改Root用户的密码
RDS for mysql的备份与还原
这里将介绍通过开源软件**ercona XtraBackup** 备份的数据库文件 ,如何执行mysql数据库的还原工作
1.安装RDS数据库对应的mysql版本
在进行恢复RDS数据的时候,我们需要使用对应RDS数据库版本的MySQL版本。
我们解压xxxx.tar.gz,查看文件夹中的xtrabackup_info,中的配置项server_version项写明了版本,我们必须要保证大版本一致才可以正确恢复数据库
2.安装**ercona XtraBackup**
参照https://www.percona.com/doc/percona-xtrabackup 进行安装,此处不在赘述。
3.解压文件备份文件
对于 tar 压缩包(.tar.gz),使用命令:tar -izxvf <数据备份文件名>.tar.gz -C /home/mysql/data
对于 xbstream 压缩包(.xb.gz),使用命令:gzip -d -c <数据备份文件名>.xb.gz | xbstream -x -v -C /home/mysql/data
(说明 -C:指定文件要解压到的目录。可选参数,若不指定就解压到当前目录。)
执行如下命令,查询解压后生成的文件。ls -l /home/mysql/data
4.使用Percona XtraBackup恢复数据库
执行如下命令,恢复解压好的备份文件。Innobackupex --defaults-file=/home/mysql/data/backup-my.cnf --apply-log /home/mysql/data
5.数据库密码破解 以文本方式编辑backup-my.cnf文件。vi /home/mysql/data/backup-my.cnf
执行如下命令,注释掉如下参数。#innodb_fast_checksum#innodb_page_size#innodb_log_block_size
F&Q:
ECS实例和RDS for mysql恢复到本地后,链接关系发生变化,该如何变更链接信息?
RDS for mysql 的链接地址为 rm-uf6wjk5xxxxxxx.mysql.rds.aliyuncs.com 字样。根据目标字段全文检索,并将本地数据库IP地址更换即可。
类似的 OSS 对象存储链接地址为 oss-example.oss-cn-hangzhou.aliyuncs.com 字样。
RDS for mysql官方提供备份和恢复方法不,示例中的RDS for mysql的恢复工具是怎么回事?
RDS各个版本(mysql、sqlserver、PostgreSQL、MariaDB )均支持备份与恢复
备份MySQL数据
RDS for MySQL 物理备份文件恢复到自建数据库或RDS for MySQL 逻辑备份文件恢复到自建数据库
示例中的 ercona XtraBackup 是第一款开源工具,在数据库的热备份上成效不错。具体介绍可参考官方描述
