• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase
您的位置:首页 > 数据库 >Mysql > MySQL单表ibd文件恢复方法详解

MySQL单表ibd文件恢复方法详解

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-11

通过本文主要向大家介绍了mysql ibd文件,mysql ibd,mysql frm ibd,mysql ibd是什么文件,联想100-15ibd等相关知识,希望本文的分享对您有所帮助
前言:
随着innodb的普及,innobackup也成为了主流备份方式。物理备份对于新建slave,全库恢复的需求都能从容应对。
但当面临单表数据误删,或者单表误drop的情况,如果使用物理全备进行恢复呢?
下文将进行详细分析。
恢复过程中需要用到的工具,percona data recover tool : https://launchpad.net/percona-innodb-recovery-tool

情况一:误删部分数据,需要用最近一次备份覆盖
来自同一台机器的ibd恢复覆盖,且备份后table没有被recreate过。
这种情况是最简单的,备份时的ibd文件(后称老ibd)中的space id和index id 与 新ibd的space id 和index id一致。
且和ibdata文件中的space id和index id一致。因此,物理文件可以直接覆盖做恢复。
以下是详细步骤

Step -1 : 物理备份
innobackupex --defaults-file=/usr/local/mysql3321/my.cnf --socket=/xfs/mysql3321/mysql.sock --user=root --password=password /xfs/backup/
Step 0 : apply log
innobackupex --apply-log --defaults-file=/usr/local/mysql3321/my.cnf /xfs/backup/2012-10-17_11-29-20/
Step 1 : 备份现在的ibd文件(可选)
cp -a testibd.ibd testibd.bak
Step 2 : 舍弃现在ibd文件
mysql> alter table testibd discard tablespace
Step 3 : 复制备份ibd文件
shell> cp /xfs/backup/2012-10-17_11-29-20/test/testibd.ibd /xfs/mysql3321/test/
shell> chown mysql:mysql /xfs/mysql3321/test/testibd.ibd
Step 4 : 导入ibd文件
mysql> alter table testibd import tablespace

情况二:误删 table,表结构已经被drop了
这种情况稍复杂,不过恢复过程还是比较容易操作的。由于table被drop后的space id会留空因此备份文件的space id不会被占用。
我们只需要重建表结构,然后把ibdata中该表的space id还原,物理文件可以直接覆盖做恢复了。

Step 1 : 重建表
mysql> create table testibd (UserID int);
Step 2 : 关闭mysql服务(必须)
shell> service mysqld3321 stop
Step 3: 准备ibd文件 apply log
shell> innobackupex --apply-log --defaults-file=/usr/local/mysql3321/my.cnf /xfs/backup/2012-10-17_11-29-20/
Step 4 : 备份现在的ibd文件(可选)
cp -a testibd.ibd testibd.bak
Step 5 : 复制备份ibd文件
shell> cp -a /xfs/backup/2012-10-17_11-29-20/test/testibd.ibd /xfs/mysql3321/test/
shell> chown mysql:mysql /xfs/mysql3321/test/testibd.ibd
Step 6 : 使用percona recovery tool 修改ibdata
shell> /root/install/percona-data-recovery-tool-for-innodb-0.5/ibdconnect -o /xfs/mysql3321/ibdata1 -f /xfs/mysql3321/test/testibd.ibd -d test -t testibd
shell> service mysqld3321 start </div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • MySQL单表ibd文件恢复方法详解

相关文章

  • 2018-12-05MySQL数据库远程连接开启方法
  • 2017-05-11完全卸载mysql(停止服务、卸载相关程序、删除注册表
  • 2017-05-11关于MYSQL的优化全面详解
  • 2018-12-05 Mysql的Procedure 参数为NULL问题分析
  • 2018-12-05mysql innodb的监控(系统层,数据库层)的实例代码详解
  • 2018-12-05MYSQL 日期函数大全
  • 2018-12-05有关mysql_field_seek的文章推荐
  • 2018-12-05ORACLE数据库事务隔离级别介绍
  • 2018-12-05详解Redis和Memcached的区别
  • 2018-12-05plsql连接oracle数据库报ora 12154错误解决方法

文章分类

  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase

最近更新的内容

    • SQL高级应用之使用SQL查询Excel表格数据的方法
    • 10分钟让你明白MySQL是如何利用索引的
    • PHP中常用的几个 mysql操作
    • SQL Server2005下的安全操作技巧分享
    • mysql-python 错误,求解决办法
    • Effective MySQL之SQL语句最优化--索引
    • 如何用MATLAB读取数据库Mysql文件?
    • sqlserver中创建链接服务器图解教程
    • 清理MySQL数据库的缓存及修改论坛密码详解
    • 详解RedHat6.5安装MySQL5.7教程(图文)

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有