阿里云RDS恢复sql通用数据库文件

修改时间: 2019-07-12 17:12:00 PM

文章时间:2019年7月12日 15:56:39
解决问题:阿里云的RDS数据库下载出来的格式为_qp.xb 后缀,我们无法直接进行使用,要把它变为全网通用的.sql文件格式才可以进行使用。
趟坑:对数据库的版本要求不同,操作的方法方式也不同
官网教程地址:https://help.aliyun.com/knowledge_detail/41817.html

MYSQL版本:5.6版本安装教程:https://wiki.nooss.cn/archives/201.html

需要使用的Percona XtraBackup为2.3版本(千万不要错了,否则无用功)

MYSQL版本:5.7版本:请跳转链接:``

第一步:安装mysql

Centos7使用yum安装Mysql5.6版:https://wiki.nooss.cn/archives/201.html

第二步:安装Percona XtraBackup工具

$ wget https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.3.5/binary/redhat/7/x86_64/percona-xtrabackup-2.3.5-1.el7.x86_64.rpm

下载完后,继续执行
这个文件是国外的,下载速度巨慢无比,下面是内部下载链接:
直接下载到服务器上即可:wget http://cdn.hcses.com/percona-xtrabackup-2.3.5-1.el7.x86_64.rpm

$ yum localinstall percona-xtrabackup-2.3.2-1.el7.x86_64.rpm

第三步:安装qpress命令(巨坑无比,阿里云教程内没有)(三行命令直接复制执行即可)

$ wget http://www.quicklz.com/qpress-11-linux-x64.tar
$ tar xvf qpress-11-linux-x64.tar
$ cp qpress /usr/bin

第四步:开始下载文件

156083946947407_zh-CN.png
156083946947408_zh-CN.png

wget -c '<数据备份文件外网下载地址>' -O <自定义文件名>_qp.xb

5.6版本的数据库,好像都是 _qp.xb,其他版本请参考其他教程。

第五步:解压文件

对于xbstream 文件包 (_qp.xb 后缀),使用命令:

## 解包
cat <数据备份文件名>_qp.xb | xbstream -x -v -C /home/mysql/data
## 解压
innobackupex --decompress --remove-original /home/mysql/data

解压之后查看一下文件是否正常

ls -l /home/mysql/data

第六步:执行恢复命令

innobackupex --defaults-file=/home/mysql/data/backup-my.cnf --apply-log /home/mysql/data                    

若系统返回如下类似结果,则说明备份文件已成功恢复到本地数据库。
微信截图_20190712162510.png

第七步:修改backup-my.cnf参数

vim /home/mysql/data/backup-my.cnf                      

将下面的注释掉,自己对应着找,有多少注释多少(注:这里一定要看清楚,搞错了运行不起来的)

#innodb_log_checksum_algorithm
#innodb_fast_checksum
#innodb_log_block_size
#innodb_doublewrite_file
#rds_encrypt_data
#innodb_encrypt_algorithm
#redo_log_version
#master_key_id

添加一行

skip-grant-tables

第八步:修改文件属主,并确定文件所属为MySQL用户。

chown -R mysql:mysql /home/mysql/data                   

第九步:启动mysql服务(报错点,请回查第七步backup-my.cnf文件注释)

mysqld_safe --defaults-file=/home/mysql/data/backup-my.cnf --user=mysql --datadir=/home/mysql/data &                    

报错解决方案:
这个地方直接执行报错,主要原因是因为mysql已经运行了,所以才报错的。

查看mysql进程
ps -ef|grep mysql

停止mysql进程命令:

service mysqld stop

停止后如果在执行ps查看,如果还有,请使用kill -9 pid杀掉该进程,然后执行上面的命令

注:执行完不管成功与否,都退出来直接进行登录即可

mysql -uroot -p
<输入您的密码>

第十步:导出sql文件即可

执行sql导出命令

mysqldump -u用户名 -p密码 数据库名 > 数据库名.sql

添加新评论