MysqlRDS数据库恢复到本地
环境准备:
1.本文以CentOS 7.9 64位的Linux系统为例,其他Linux发行版本,请适配相关命令。
2.部署自建MySQL数据库,其中数据库大版本与RDS MySQL的大版本必须相同(例如都是8.0)。
您可以使用如下命令查询自建数据库大版本。
mysql --version
3.查询您的自建数据库的配置文件路径。
本文示例中涉及的数据库配置文件路径如下:
MySQL 8.0、5.7为/etc/my.cnf。
MySQL 5.6为/usr/my.cnf。
MySQL 5.5需要手动创建,使用echo "[mysqld]" | sudo tee /etc/my.cnf命令创建。
4.创建备份解压路径(mysql_bkdata),用于存放解压后的备份文件。
您可以使用如下命令创建备份解压目录。
sudo mkdir /var/mysql_bkdata
sudo chown -R $USER:$USER /var/mysql_bkdata
说明 上述命令的$USER:$USER表示从环境变量中获取当前用户及用户组,无需修改。
工具准备
如果是MySQL 8.0实例,下载并安装Percona XtraBackup 8.0,具体请参见Percona XtraBackup 8.0。
本文以Percona XtraBackup 8.0.32-26为例,安装命令如下:
wget https://downloads.percona.com/downloads/Percona-XtraBackup-8.0/Percona-XtraBackup-8.0.32-26/binary/redhat/7/x86_64/percona-xtrabackup-80-8.0.32-26.1.el7.x86_64.rpm
sudo yum localinstall -y percona-xtrabackup-80-8.0.32-26.1.el7.x86_64.rpm
如果是MySQL 5.7、5.6或5.5实例,下载并安装Percona XtraBackup 2.4,具体请参见Percona XtraBackup 2.4。
本文以Percona XtraBackup 2.4.28为例,安装命令如下:
wget https://downloads.percona.com/downloads/Percona-XtraBackup-2.4/Percona-XtraBackup-2.4.28/binary/redhat/7/x86_64/percona-xtrabackup-24-2.4.28-1.el7.x86_64.rpm
sudo yum localinstall -y percona-xtrabackup-24-2.4.28-1.el7.x86_64.rpm
安装解压工具qpress
(该工具可以使用我的docker封装的镜像,以容器的方式运行实现)
(需要的可见我之前的文章)
## 下载可执行文件的tar包
wget "https://static-aliyun-doc.oss-cn-hangzhou.aliyuncs.com/file-manage-files/zh-CN/20230406/flxd/qpress-11-linux-x64.tar"
## 解压下载的tar包,取出可执行文件
tar -xvf qpress-11-linux-x64.tar
## 设置qpress文件的执行权限
sudo chmod 775 qpress
## 拷贝qpress到/usr/bin中
sudo cp qpress /usr/bin
下载RDS备份文件
wget https://sdsdsdsa.com/test_xb.qp
步骤二:解压备份文件
qpress -do test_xb.qp | xbstream -x -v -C /var/mysql_bkdata/
如果您的备份文件后缀不是_xb.qp,请参考如下方式进行解压:
#tar 压缩包 (.tar.gz 后缀)
tar -izxvf test.tar.gz -C /var/mysql_bkdata/
#xbstream 压缩包 (.xb.gz 后缀)
gzip -d -c test.xb.gz | xbstream -x -v -C /var/mysql_bkdata/
#xbstream 文件包(_qp.xb 后缀)
## 步骤一:解包
cat test_qp.xb | xbstream -x -v -C /var/mysql_bkdata/
## 步骤二:解压
### MySQL 5.5/5.6/5.7
innobackupex --decompress --remove-original /var/mysql_bkdata/
### MySQL 8.0
xtrabackup --decompress --remove-original --target-dir=/var/mysql_bkdata/
步骤三:恢复数据
恢复前准备:
xtrabackup --defaults-file=/var/mysql_bkdata/backup-my.cnf --prepare --target-dir=/var/mysql_bkdata/
参数含义
--defaults-file 通过传入配置文件设置MySQL默认选项。
RDS MySQL备份文件中,提供名为backup-my.cnf的配置文件,该文件位于备份解压目录,即/var/mysql_bkdata/
--prepare XtraBackup工具的准备命令。
--target-dir 备份解压目录/var/mysql_bkdata/。
可以自行修改my.cnf里面的datadir目录
恢复数据:
sudo xtrabackup --defaults-file=/etc/my.cnf --copy-back --target-dir=/var/mysql_bkdata/
参数含义
--defaults-file 自建数据库的my.cnf文件,根据此配置文件中设置的数据目录(datadir),获取恢复数据的目标路径。
--copy-back XtraBackup工具的恢复命令。
--target-dir 备份解压目录/var/mysql_bkdata/,XtraBackup工具将此目录数据恢复到自建数据库的数据目录中。
本地启动
sudo mysqld --defaults-file=/etc/my.cnf --user=mysql --datadir=/var/mysql_newdata &
备注:(可以mysql8对应版本,以容器的方式启动。也可以本地启动)
评论区