RDS for MySQL 物理备份文件恢复到本地数据库(亲测)

参考以下两篇文档整理:

(文档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、第14步很重要,不能少 ,并且要放到第13步前面

5、“文档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”

6、第4步成功执行完后,把/home/mydir目录中数据库目录复制到你服务器上mysql的“数据库目录”中(也就是mysql配置文件 my.ini的datadir="xxxx"指向的目录,其中xxxx是你配置文件的实际位置

7、然后执行“文档1”中的第15步,第15步不能缺少,不然没有权限

执行如下命令,修改文件属主,并确定文件所属为MySQL用户。
chown -R mysql:mysql /home/mydir

8、此时还没有完全恢复成功,如果此时用navicat链接数据库后会提示“table “xxx” doesn`t exist”,

重要的一步(参考了https://blog.csdn.net/anonymking/article/details/79589623,重点参考第3部和第4部):

总结与提示:

1、记得先关闭MySQL服务

2、建议使用专业工具进行数据备份,以免浪费时间。

1、知识准备:


配置文件 my.ini 中 datadir 节点表示数据库文件的存储位置,例如:

datadir="D:/mysql/data"

2、数据备份:


1、完整备份:把 datadir 对应的 datadir 直接拷贝就可以


2、部分备份:data 文件夹下的文件夹都表示一个表,可以单独备份

3、部分备份出现问题

1、类型是 MyISAM 的表对应数据文件是 "xxx.frm"、"xxx.MYD"、"xxx.MYI",这种情况下直接拷贝没有问题。

2.1、类型是 InooDB 的表对应数据文件是 "xxx.frm",而这种情况下直接拷贝就出现问题了 -- “table “xxx” doesn`t exist”。

2.2、解决办法:

  InnoDB 数据库表拷贝是注意要把data文件夹下的 ibdata1 也同时拷贝过去(原来的 ibdata1备份其它位置后删除掉)

  若还是出现问题的话就把新的data文件夹下的 ib_logfile* 文件备份其它位置后删除掉,或者说带着 ib_logfile* 文件也一起拷贝

  最后记得启动MySQL服务就可以了

9、如果扔完无法重启mysql,并且报错如下:

Redirecting to /bin/systemctl start mysqld.service
Job for mysqld.service failed because the control process exited with error code. See "systemctl status mysqld.service" and "journalctl -xe" for details.

进入mysql错误日志,看到下面红色字体了吗?说明mysql没权读写,就是权限不够

2019-08-28T06:18:38.812920Z 0 [Note] InnoDB: Compressed tables use zlib 1.2.11
2019-08-28T06:18:38.812925Z 0 [Note] InnoDB: Using Linux native AIO
2019-08-28T06:18:38.813153Z 0 [Note] InnoDB: Number of pools: 1
2019-08-28T06:18:38.813248Z 0 [Note] InnoDB: Using CPU crc32 instructions
2019-08-28T06:18:38.814942Z 0 [Note] InnoDB: Initializing buffer pool, total size = 128M, instances = 1, chunk size = 128M
2019-08-28T06:18:38.823743Z 0 [Note] InnoDB: Completed initialization of buffer pool
2019-08-28T06:18:38.825388Z 0 [Note] InnoDB: If the mysqld execution user is authorized, page cleaner thread priority can be changed. See the man page of setpriority().
2019-08-28T06:18:38.837195Z 0 [ERROR] InnoDB: ./ib_logfile0 can't be opened in read-write mode.
2019-08-28T06:18:38.837229Z 0 [ERROR] InnoDB: Plugin initialization aborted with error Generic error
2019-08-28T06:18:39.439960Z 0 [ERROR] Plugin 'InnoDB' init function returned error.
2019-08-28T06:18:39.439993Z 0 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
2019-08-28T06:18:39.439999Z 0 [ERROR] Failed to initialize builtin plugins.
2019-08-28T06:18:39.440003Z 0 [ERROR] Aborting

2019-08-28T06:18:39.440028Z 0 [Note] Binlog end
2019-08-28T06:18:39.440079Z 0 [Note] Shutting down plugin 'CSV'
2019-08-28T06:18:39.440326Z 0 [Note] /usr/sbin/mysqld: Shutdown complete

请把/home/mydir的 ibdata1、 ib_logfile*文件用命令

chown -R mysql:mysql  ibdata1以及
chown -R mysql:mysql  ib_logfile0
chown -R mysql:mysql  ib_logfile1
等修改用户权限
然后再进行第8步,确保拷贝到数据库文件的存储位置的文件有mysql的读写权限
原文地址:https://www.cnblogs.com/pangchunyu/p/11422830.html