参考以下两篇文档整理:
(文档1)https://help.aliyun.com/knowledge_detail/41817.html?spm=a2c4g.11186631.2.1.434247acfAIAwY
(文档2)https://yq.aliyun.com/articles/688509
以下为自己整理过程:
(该出是复制文档1中的原文:)
开源软件Percona Xtrabackup可以用于对数据库进行备份恢复,您可以使用该软件将云数据库MySQL的备份文件恢复到自建数据库中,本文将介绍详细的操作步骤。
1、注意事项
本文使用Linux7的操作系统以及MySQL5.7版本为例进行演示。
操作系统中已安装数据恢复工具Percona XtraBackup,您可以从Percona XtraBackup官网下载安装。
MySQL 5.6及之前的版本需要安装 Percona XtraBackup 2.3,安装指导请参见官方文档Percona XtraBackup 2.3。
MySQL 5.7版本需要安装 Percona XtraBackup 2.4,安装指导请参见官方文档Percona XtraBackup 2.4。
MySQL 8.0版本需要安装 Percona XtraBackup 8.0,安装指导请参见官方文档Percona XtraBackup 8.0。
2019年2月20日后创建的MySQL 5.6实例,数据备份文件的格式为xbstream文件包 (_qp.xb 后缀)。
本地MySQL数据库安装在64位的Linux系统中,且与云数据库MySQL版的版本相同。
2、从RDS for MySQL备份文件到本地不走请参考“文档1”(https://help.aliyun.com/knowledge_detail/41817.html?spm=a2c4g.11186631.2.1.434247acfAIAwY)的“备份恢复操作步骤”
3、“文档1”中第“11”步骤中的“说明 本文以自定义路径/home/mysql/data为例,您可以根据实际情况将其替换成实际路径”,其中“/home/mysql/data”并不是数据库的“数据库目录”,一开始我按照文档理解以为是数据库目录,解压到之类导致mysql不能启动了,在这里耽误了不少时间,而是一个自定义的普通的目录而已,比如“/home/mydir”
4、“文档1”中第“13”步骤中的“innobackupex --defaults-file=/home/mysql/data/backup-my.cnf --apply-log /home/mysql/data”,可以改为第3步中的路径,比如我改为了“innobackupex --defaults-file=/home/mydir/backup-my.cnf --apply-log /home/mydir”,也就是把从阿里云下载的压缩包解压到“/home/mydir”
5、第4步成功执行完后,把/home/mydir目录中数据库目录复制到你服务器上mysql的“数据库目录”中
6、然后执行“文档1”中的第15步,第15步不能缺少,不然没有权限
执行如下命令,修改文件属主,并确定文件所属为MySQL用户。
chown -R mysql:mysql /home/mydir
7、此时还没有完全恢复成功,如果此时用navicat链接数据库后会提示“table “xxx” doesn`t exist”,
重要的一步(参考了https://blog.csdn.net/anonymking/article/details/79589623,重点参考第3部和第4部):
1、知识准备:
datadir="D:/mysql/data"
2、数据备份:
3、部分备份出现问题 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服务就可以了
4、总结与提示: 1、记得先关闭MySQL服务 2、建议使用专业工具进行数据备份,以免浪费时间。 |
RDS for MySQL 物理备份文件恢复到本地数据库(亲测)
原文:https://www.cnblogs.com/pangchunyu/p/11422830.html