百独托管7500 紫田网络超高转化播放器收cps[推荐]速盾CDN 免实名免备防屏蔽阿里云 爆款特卖9.9元封顶提升alexa、IP流量7Q5团队
【腾讯云】中小企福利专场【腾讯云】多款产品1折起高防 随时退换 好耶数据小飞国外网赚带你月入万元炎黄网络4H4G10M 99每月
香港带宽CN2/美国站群优惠中客数据中心 服务器租用联盟系统移动广告平台 中易企业专场腾讯云服务器2.5折九九数据 工信部正规资质
腾讯云新用户大礼包代金券高价收cpa注册量高价展示【腾讯云】2核2G/9.93起租服务器找45互联 随时退换阿里云 短信服务 验证秒达

[闲聊畅谈] 误删ibdata1,通过ibd找回丢失的数据。 [复制链接]
查看:5447 | 回复:19

1099

主题

9551

帖子

9451

积分

落伍管理

正牌猪头,别无分店

Rank: 12Rank: 12Rank: 12

贡献
7068
鲜花
762
注册时间
2004-5-12

落伍手机绑定

发表于 2016-5-9 12:43:04 | 显示全部楼层 |阅读模式 来自 中国广东茂名
事件起因:昨晚凌晨对落伍数据库主从服务器进行常规维护的时候,因为鼠标不好用,误删了mysql下的ibdata1。因为落伍主题表thread用的是innodb数据存储,瞬间丢数据了。
面临两个选择连:
1.恢复定时备份的数据,但是因为数据不是实时的,会丢失部分帖子
2.从ibd里面找回数据。

考虑了一下还是执行第二个选项,时值半夜,有足够时间来。
原理很简单,INNODB的数据存储在ibd文件里面,只要建立空白的新表,把这空白的ibd文件跟表的关联去掉,然后复制有数据的ibd文件回来,再建立关联即可。
马上动手了:
先建立一个空白数据库来操作,导入表结构,落伍的主题表做了存档和partition的,得分两步了。
  1. mysql aaa < pre_forum_thread.sql
  2. mysql aaa < pre_forum_thread_1.sql
复制代码


好,把ibd文件的关联去掉吧
  1. mysql> use aaa
  2. Database changed
  3. mysql> alter table pre_forum_thread discard tablespace;
  4. ERROR 1031 (HY000): Table storage engine for 'pre_forum_thread' doesn't have this option
  5. mysql>
复制代码


在空白的表上都能出错,Google一下,发现没有相关解析。这下傻眼了。考虑了很久,我估计是因为分区的问题,分表之后会有多个ibd文件,这个discard tablespace的操作可能无法识别全部ibd文件。
/var/lib/mysql/im286/pre_forum_thread#P#p3.ibd
/var/lib/mysql/im286/pre_forum_thread#P#p4.ibd
/var/lib/mysql/im286/pre_forum_thread#P#p5.ibd
/var/lib/mysql/im286/pre_forum_thread#P#p6.ibd
/var/lib/mysql/im286/pre_forum_thread#P#p7.ibd
/var/lib/mysql/im286/pre_forum_thread#P#p8.ibd

那就试试没分区的原始thread表看看。果然在没分区的时候,成功discard tablespace了
mysql> use aaa
Database changed
mysql> alter table pre_forum_thread discard tablespace;
Query OK, 0 rows affected (0.10 sec)

既然不分区的能用,那就简单了。把分区ibd文件当做没分区的来import即可,反正表结构是一致的,import之后导出表里面的数据。
  1. mysql> use aaa
  2. Database changed
  3. mysql> alter table pre_forum_thread discard tablespace;
  4. Query OK, 0 rows affected (0.10 sec)

  5. mysql> quit
复制代码


cp -p /var/lib/mysql/im286/bak/pre_forum_thread#P#p3.ibd /var/lib/mysql/im286/aaa/pre_forum_thread.ibd

  1. mysql> use aaa
  2. Database changed
  3. mysql> alter table pre_forum_thread import tablespace;
  4. Query OK, 0 rows affected, 1 warning (11.57 sec)
复制代码


没问题了,导出数据:
mysqldump -d aaa pre_forum_thread >>  thread.sql


所有分区的ibd文件都重复一次上面的操作,全部主题数据都导出来了,回到论坛的数据库,创建空白的thread表,然后导入数据即可。大功告成,睡觉。


装B之人必有傻B之处。
回复

使用道具 举报

393

主题

2万

帖子

2万

积分

落伍热心会员

Rank: 7Rank: 7Rank: 7

贡献
1139
鲜花
543
注册时间
2001-10-4

落伍ASP落伍爱心勋章落伍草根英雄落伍手机绑定

发表于 2016-5-9 14:24:26 | 显示全部楼层 来自 中国河南郑州
娃哈哈 发表于 2016-5-9 14:10
鱼给你多少一个月 这么卖力 丢了就丢了呗反正都没人看

来自手机客户端

虽然具体多少钱不好说,但想想连个好鼠标都买不起……
也许我没拿到满分,还不算是完美的人。所以我比谁都认真,努力赶上你的标准。
回复 支持 1 反对 0

使用道具 举报

1639

主题

2万

帖子

2万

积分

落伍者(四季发财)

Rank: 4

贡献
1130
鲜花
145
注册时间
2008-6-20

落伍手机绑定

发表于 2016-5-9 12:47:25 | 显示全部楼层 来自 中国江西南昌
丢就丢了,反正都发帖机发的
不过技术帖支持下!
个人签名
回复 支持 反对

使用道具 举报

383

主题

2215

帖子

7128

积分

落伍者(三羊开泰)

其实我喜欢可爱的

Rank: 3Rank: 3

贡献
2949
鲜花
31
注册时间
2005-8-12

落伍手机绑定

发表于 2016-5-9 12:55:15 | 显示全部楼层 来自 中国江西萍乡
技术贴得支持
回复 支持 反对

使用道具 举报

头像被屏蔽

997

主题

2万

帖子

7966

积分

禁言

贡献
5620
鲜花
48
注册时间
2006-6-4

落伍手机绑定

发表于 2016-5-9 13:00:07 | 显示全部楼层 来自 中国江西宜春
收藏
签名被屏蔽
回复

使用道具 举报

125

主题

1426

帖子

1512

积分

落伍者(两全齐美)

Rank: 2

贡献
347
鲜花
25
注册时间
2014-9-14

落伍微信绑定落伍者落伍手机绑定

发表于 2016-5-9 13:33:12 | 显示全部楼层 来自 中国湖南衡阳
很厉害,就是我看不懂。
回复 支持 反对

使用道具 举报

1069

主题

1万

帖子

9万

积分

落伍者(五谷丰登)

Rank: 8Rank: 8

贡献
1124
鲜花
39
注册时间
2010-7-7

落伍手机绑定

发表于 2016-5-9 13:35:44 | 显示全部楼层 来自 中国山东日照
猪头 好牛逼噢
回复 支持 反对

使用道具 举报

923

主题

5万

帖子

4万

积分

落伍者(四季发财)

你可以侮辱我但不可以侮辱我头像

Rank: 4

贡献
1596
鲜花
72
注册时间
2004-6-14

QQ绑定落伍手机绑定

发表于 2016-5-9 14:10:44 来自落伍手机版 | 显示全部楼层 来自 中国浙江
鱼给你多少一个月 这么卖力 丢了就丢了呗反正都没人看
回复 支持 反对

使用道具 举报

51

主题

1801

帖子

3508

积分

落伍者(两全齐美)

Rank: 2

贡献
2122
鲜花
40
注册时间
2007-10-12

QQ绑定落伍微信绑定落伍手机绑定

发表于 2016-5-9 14:19:38 | 显示全部楼层 来自 中国辽宁大连
技术贴支持一下,可以使用MyISAM引擎,然后直接找回删除数据
回复 支持 反对

使用道具 举报

230

主题

7万

帖子

6万

积分

落伍者(五谷丰登)

哆啦D梦

Rank: 8Rank: 8

贡献
4106
鲜花
46
注册时间
2007-2-19

QQ绑定落伍手机绑定落伍者

发表于 2016-5-9 14:27:38 | 显示全部楼层 来自 中国广东珠海
技术文章啊!!!
www.zhgov.com << 帮人挂
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

论坛客服/商务合作/投诉举报:2171544 (QQ)
落伍者创建于2001/03/14,本站内容均为会员发表,并不代表落伍立场!
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论!
落伍官方微信:2030286 邮箱:(djfsys@gmail.com|tech@im286.com)
© 2001-2014

浙公网安备 33060302000191号

浙ICP备11034705号 BBS专项电子公告通信管[2010]226号

  落伍法律顾问: ITlaw-庄毅雄

手机版|找回帐号|不能发帖?|Archiver|落伍者

GMT+8, 2024-11-29 11:52 , Processed in 0.071431 second(s), 37 queries , Gzip On.

返回顶部