您的位置:首页 > 数据库 > MySQL

mysql的inndb服务器宕机数据还原:使用ibdata1及数据库文件夹(*.frm,*.ibd)还原数据

2014-09-20 18:30 531 查看
你可能试过innodb_force_recovery等方法,但是启动mysql时还失败。这可能需要完整的binlog日志吧。一旦日志损坏则无法完成还原。

本还原方法要求用户在/etc/my.cnf中配置innodb_file_per_table=1,才行。如果没有配置不能保证还原成功,因为只有配置了在数据库文件夹里才会显示*.ibd文件。

我们希望将主机A的mysql服务由主机B接管,所以要求主机B与主机A的/etc/my.cnf基本配置相同(尤其是innodb_buffer_pool_size、default-storage-engine、innodb)。

主机A:mysql宕机(内存过小、突然关机等、硬盘空间满)造成mysql无法正常启动。

主机B: 与主机A配置相同的机器。

#由于硬盘太小,所以备份所需要文件之前后添加一个卷。

#备份到主机A的ibdata和希望还原的数据库文件夹到/bak/目录下。

cp -r /var/lib/mysql/ibdata1 /bak/

#yum install -y mysql-server //注意/etc/my.cnf配置与主机A的/etc/my.cnf基本配置相同(尤其是innodb_buffer_pool_size、default-storage-engine、innodb)。

#service mysqld start [ok] //此步是为了初始化mysql服务器。

Initializing MySQL database: Installing MySQL system tables...

OK

#service mysqld stop //为了拷贝主机A的备份数据做准备

#拷贝主机A的/bak/*到主机B的/var/lib/mysql/目录下。提示是否覆盖ibdata时,确认覆盖。

#修改拷贝文件的权限:

chmod -R 777 数据库名/

chown -R mysql:mysql 数据库名/

#service mysqld start [ok] //还原数据完成,以下测试数据库。

#mysql -uroot -p

有问题可以留言,随时交流。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: