RDS的xb文件恢复到本地mysql5.6版本数据库
参考博客:
1 2 3 4 5 6 7 8 9 | https://blog.csdn.net/pengjunlee/article/details/ 81212250 CentOS 7 下使用YUM安装MySQL 5.6 https://blog.csdn.net/a 18838964650 /article/details/ 82800621 安装qpress软件 https://www.cnblogs.com/pangchunyu/p/ 11422830 .html 文章介绍补充 https:// help .aliyun.com/knowledge_detail/ 41817 .html?spm=a 2 c 4 g. 11186631.2 . 1.434247 acfAIAwYhttps://home.firefoxchina.cn 阿里云rds的xb文件恢复到本地数据库 https://blog.csdn.net/anonymking/article/details/ 79589623 解决MySQL 恢复数据库表时提示 table “xxx” doesn`t exist |
安装qpress的软件
链接:https://pan.baidu.com/s/1njNRz3qSc0pYYSjbEzSI_Q 提取码:1nxe
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | yum -y localinstall percona-xtrabackup-2.3.5-1.el7.x86_64.rpm yum install http: //www .percona.com /downloads/percona-release/redhat/0 .1-4 /percona-release-0 .1-4.noarch.rpm [root@iZwz9hn15mpmruiq1jq28rZ data] # vim /etc/yum.repos.d/percona-release.repo [percona-release-$basearch] name = Percona-Release YUM repository - $basearch baseurl = http: //repo .percona.com /release/ $releasever /RPMS/ $basearch enabled = 1 gpgcheck = 0 这里写成不检查 gpgkey = file : ///etc/pki/rpm-gpg/RPM-GPG-KEY-Percona [root@iZwz9hn15mpmruiq1jq28rZ data] # yum -y install qpress-11-1.el7.x86_64 |
创建数据恢复目录并恢复数据
1 2 3 4 5 6 7 8 9 10 | 解包: cat hins9028927_data_20190927033738_qp.xb |xbstream -x - v -C /data/mysql/data/ 解压: innobackupex --decompress --remove-original /data/mysql/data/ 执行如下命令,查询解压后生成的文件 ll /data/mysql/data/ 执行如下命令,恢复解压好的备份文 innobackupex --defaults- file = /data/mysql/data/backup-my .cnf --apply-log /data/mysql/data/ |
查看本地数据库的数据目录位置:
自建数据库不支持如下参数,需要注释掉
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | [root@iZwz9hn15mpmruiq1jq28rZ mysql] # vim /data/mysql/data/backup-my.cnf # This MySQL options file was generated by innobackupex. # The MySQL server [mysqld] #innodb_checksum_algorithm=innodb #innodb_log_checksum_algorithm=innodb innodb_data_file_path=ibdata1:200M:autoextend innodb_log_files_in_group=2 innodb_log_file_size=1572864000 innodb_fast_checksum= false innodb_page_size=16384 #innodb_log_block_size=512 innodb_undo_directory=. innodb_undo_tablespaces=0 skip-grant-tables rds_encrypt_data= false innodb_encrypt_algorithm=aes_128_ecb |
授权数据目录
1 2 3 | chown -R mysql:mysql /data/mysql/data/ 重启数据库 systemctl restart mysqld |
注意
1 2 3 4 5 6 7 8 | 一、数据备份: 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.6使用的默认是innodb引擎,所以需要在配置文件中注明,需要和rds保持一致!!!
把需要的库直接复制过去到原来的mysql目录,即/var/lib/mysql下面,此时查看下db目录数据是否恢复,如果是显示 “table “xxx” doesn`t exist”,就是用上面注意里的方法解决即可。
1 2 3 4 5 6 7 8 | cd /var/lib/mysql mv ibdata1 /haha/ mv ib_logfile* /haha/ cd /data/mysql/data mv db/ /var/lib/mysql 重启数据库 systemctl restart mysqld |
此时是用navicat连接之后查看数据是否恢复,如下图:
这样数据终于恢复了,哈哈
总结
这样的数据只能在本地恢复,如果之前本地有很多的数据库,那么不建议这样做,要不然整个数据库就崩了。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】凌霞软件回馈社区,携手博客园推出1Panel与Halo联合会员
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步