RDS的tar文件恢复到本地mysql5.7版本数据库

参考博客:

安装qpress软件
https://blog.csdn.net/a18838964650/article/details/82800621  
文章介绍补充
https://www.cnblogs.com/pangchunyu/p/11422830.html  
阿里云rds的xb文件恢复到本地数据库
https://help.aliyun.com/knowledge_detail/41817.html?spm=a2c4g.11186631.2.1.434247acfAIAwYhttps://home.firefoxchina.cn  
解决MySQL 恢复数据库表时提示 table “xxx” doesn`t exist 
https://blog.csdn.net/anonymking/article/details/79589623  

一:环境准备工作,安装mysql和Percona工具

centos7上yum安装mysql5.6系统的网址
centos7上yum安装mysql5.6系统的网址
https://blog.csdn.net/pengjunlee/article/details/81212250


centos7上yum安装mysql5.7系统的网址
https://www.cnblogs.com/luohanguo/p/9045391.html
安装Percona-XtraBackup-2.4.8的网址

 https://blog.csdn.net/mr_tia/article/details/81979689
下载XtraBackup rpm包
wget https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.4.8/binary/redhat/7/x86_64/percona-xtrabackup-24-2.4.8-1.el7.x86_64.rpm
安装依赖包:
rpm -Uvh http://rpmfind.net/linux/epel/6/x86_64/Packages/l/libev-4.03-3.el6.x86_64.rpm
yum -y install perl perl-devel libaio libaio-devel perl-Time-HiRes perl-DBD-MySQL perl-Digest-MD5
安装XtraBackup2.4.8
rpm -ivh percona-xtrabackup-24-2.4.8-1.el7.x86_64.rpm
二:恢复流程:
tar -izxvf hins100277714_data_20191205202006.tar.tar -C /home/data
innobackupex --defaults-file=/home/data/backup-my.cnf --apply-log /home/data/
cd /home/data
chown -R mysql:mysql rocket_data ib_logfile0 ib_logfile1
只获取需要恢复的数据库
mv rocket_data /var/lib/mysql

 
如果此时显示不正确,则需要其他文件
就是将配套的ibdata1 ib_logfile0 ib_logfile1这三个文件移动到yum安装的mysql目录下,如果出问题,一定是这三个文件的权限问题,需要多次测试才行.
cd /var/lib/mysql
mv ibdata1 ib_logfile0 ib_logfile1 /test
cd /home/data
mv ibdata1 ib_logfile0 ib_logfile1 /var/lib/mysql
重启数据库
注意:重启的时候会有偶尔启动不了的情况,多启动几次,如果还是不行,请查看错误日志。
最终数据恢复了
 

查看本地数据库的数据目录位置:

注意:

一、数据备份:
1、完整备份:把 datadir 对应的 datadir 直接拷贝就可以
2、部分备份:data 文件夹下的文件夹都表示一个表,可以单独备份
二、部分备份出现问题:
1、类型是 MyISAM 的表对应数据文件是 "xxx.frm"、"xxx.MYD"、"xxx.MYI",这种情况下直接拷贝没有问题。
2.1、类型是 InooDB 的表对应数据文件是 "xxx.frm",而这种情况下直接拷贝就出现问题了 -- “table “xxx” doesn`t exist”。
2.2、解决办法:  InnoDB 数据库表拷贝是注意要把data文件夹下的 ibdata1 也同时拷贝过去  若还是出现问题的话就把新的data文件夹下的 ib_logfile* 文件删除掉,或者说带着 ib_logfile* 
文件也一起拷贝  最后记得启动MySQL服务就可以了

 还有就是有时候需要知道默认的5.6版本用的是MyIsam引擎,而rds5.7使用的默认是innodb引擎,所以需要在配置文件中注明,需要和rds保持一致!!!

总结:

这样的数据只能在本地恢复,如果之前本地有很多的数据库,那么不建议这样做,要不然整个数据库就崩了。

  

  

原文地址:https://www.cnblogs.com/nshgo/p/11995427.html