频道栏目
首页 > 数据库 > 其他综合 > 正文
mysql误删除ibdata1以及日志ib_logfile*
2019-01-07 11:01:18           
收藏   我要投稿
假设执行了误删除操作,又是线上业务,先安心,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

点击复制链接 与好友分享!回本站首页
上一篇:微服务配置中心实战:Spring+MyBatis+Druid+Nacos
下一篇:Nacosv0.7.0:对接CMDB,实现基于标签的服务发现能力
相关文章
图文推荐
点击排行

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站