基于ibdata1的mysql数据库恢复

服务器的阵列坏掉后,数据恢复公司进行了抢救后,大部分数据都恢复回来。但MYSQL数据库发现仅恢复了部分数据,即部分数据库是完整的,其他的库仅恢复了空表。其中有一个很大的文件,即ibdata1,约200多GB,估计可以用来恢复数据库。

网上搜索后,发现是可行的,处理方法如下:

1. 在一台新机器上搭建相同的系统环境,包括一个全新的mysql环境。
2. 停止mysql服务。即sudo service mysql stop
3. 将恢复后的ibdata1、ib_logfile*文件拷贝到新机器的/var/lib/mysql/目录下,覆盖之前的文件。同时修改/etc/mysql/my.cnf文件,在mysqld部分添加:
[mysqld]
innodb_force_recovery = 6

4. 拷贝需要恢复的数据库文件(空表,即包括*.frm文件的目录)到新机器的/var/lib/mysql/目录下
5. 重启mysql服务,即sudo service mysql start,然后用mysql命令检查数据是否有恢复。若能恢复回来,则可以用mysqldump进行备份导出。

发表评论

邮箱地址不会被公开。 必填项已用*标注