mysql ib logfile_mysql误删除ibdata1以及日志ib_logfile*

假设执行了误删除操作,又是线上业务,先安心,mysql没有重启之前不会影响现有操作,mysqld在运行状态中,会保持这些文件为打开状态,即使把它们删除了,它们仍旧存在于文件系统中,mysqld仍然可以对其进行读写。

恢复

第一步:查看mysqld的进程id

可以top或者ps-ef|grep mysql都可以,每个进程在/proc/进程号下都有文件夹,假设mysql的进程号是14101

命令:ls -la /proc/14101/fd/ | grep -e ibdata -e ib_

第二步:停止mysql的一切业务

为了保证文件正常和数据一致,需要停止你们的线上业务,注意是mysql读写的业务,不是关闭mysql,然后等待mysql将之前的操作全部写入记录到磁盘。

命令(mysql里面执行):SHOW engine innodb STATUS

checkpoint age 就是 Log sequence number的值减去 Last checkpoint at的值,

如果为0,那么表示所有的page都flush到硬盘文件中了,确保线程不再执行任何操作

第三步、复制文件

cp /proc/14101/fd/3 /var/lib/mysql/ibdata1

cp /proc/14101/fd/8 /var/lib/mysql/ib_logfile0

cp /proc/14101/fd/9 /var/lib/mysql/ib_logfile1

第四步、授权重启

chown -R mysql:mysql ib*

systemctl restart mysqld

注意:本人并没有实践过,只是在网上搜索文章得时候看到了别人得博文,觉得线上可能会碰到这种问题,就跟着整理下。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值