设为首页 收藏本站
查看: 1198|回复: 0

[经验分享] mysql 灾难型恢复

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-1-15 08:46:03 | 显示全部楼层 |阅读模式
如果.MYD文件丢失或者误删除,有没有备份,也没有二进制日志,还没有备库,那怎么办呐?


案例:灾难恢复
在没有备份,没有日志,没有备库,数据文件还被删除的情况下恢复数据

恢复思路

在系统中删除文件并非真正在存储中抹去数据,而是仅仅是标示对应的block块可以被重新分配,因此,数据还是在的,只是正常方式读取不到
因此,假如可以通过非正常方式读到这些数据,在重重新保存文件,那么数据就还原回来了、


mysql 配置
为了模拟一次数据误删除,并且使用ext3grep恢复数据,需要以下环境准备
1,创建一个单独的分区。
2,将MSYQL数据拷贝到该分区中
3,将新的分区挂载到mysql数据文件目录

原因?ext3grep 无法操作一挂载的分区,因此mysql的数据应该存在一个独立分区上,这样方便挂载和卸载


使用ext3grep 查看文件系统:

ext3grep  可以帮助我们通过文件系统读取底层数据。
--ls --inode 可以查看指定文件或目录的信息
ext3grep /dev/sdb1  --ls --inode 2

使用ext3grep 恢复文件
使用--restore-inode的参数组合,我们可以恢复指定的文件
ext3grep /dev/sdb1  --restore-inode 12354

 本文所用到的工具链接:

1.ext3grep:https://code.google.com/p/ext3grep/
ext3grep依赖e2fsprogs-devel和e2fsprogs-lib包,因此需要先安装他们才能编译ext3grep
tar  xvf  ext3grep-0.10.2.tar.gz -C /home
cd xt3grep-0.10.2
./configure
make
mkae install.

如果是ext4文件系统,使用下面的工具即可使用方法和ext3一样的
extundelete /dev/sdb1 --inde 2
extundelete /dev/sdb1 --restore-inode 57146
extundelete

模拟案例如下:


>drop table t2;
/etc/init.d/mysqld stop
mount  查看mysql数据在那个分区
ll -id  /usr/local/mysql 查看mysql的inode
2 drwxr-xr-x 3 root root 4096 Jan 14 16:52 mysql
umount /  /var/lib/mysql
ext3grep /dev/sdb1  --ls --inode 2
ext3grep /dev/sdb1  --ls --inode 48961(db1 具体某一库的inode)
接下来根据iNode 恢复到一个空目录
cd /root/test
ext3grep  /dev/sdb1 --restore-inode  48961
mv test/RESTORE-FILEs/inode.48691  test/RESTORE-FILEs/t2.MYD
mv test/RESTORE-FILEs/inode.48692  test/RESTORE-FILEs/t2.MYI
mv test/RESTORE-FILEs/inode.48693 test/RESTORE-FILEs/t2.frm
mount /dev/sdb2  /var/lib/mysql
cp t2.*  /usr/local/mysql/data/db1
chow -R mysql.mysql . * (pwd =/var/lib/mysql/db1)
/etc/mysqld start
最后在查看数据是不是完整、


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-40832-1-1.html 上篇帖子: mysql性能优化之慢查询日志分析 下篇帖子: mysql配置文件my.cnf注释 mysql 灾难
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表