问题

我写错了脚本,ibd 文件被删除了,该往哪个方向逃跑?

实验

先来建一个测试库:

我们在这里开启了 innodb_file_per_table,但这个参数并非本实验所必须,只是为了演示方便。

然后模拟一个业务压力:

现在删掉相关的表文件:

可以打开地图 app,选择一个方向开始跑路了...

然而我们还可以挣扎一下,

查看一下 MySQL 占用的句柄:

找到被删除的表:

可以看到,除了临时表,被我们手工删除的表也在其中,对应文件句柄号 54。

现在我们把数据库的流量锁起来(如果使用了支持 offline_mode 的版本,可以设置 offline_mode):

现在记录一下表的记录数和校验值,以便跟恢复后的数据比较:

现在通过文件句柄找到消失的数据文件,并将其复制出来(此处注意磁盘空间):

现在可以将数据库停下来,把恢复的数据复制到数据目录中,启动数据库:

看看数据是否正常:

看起来还不错。

实验原理

Linux 删除文件其实是减少了对文件的使用数,当使用数降为 0 时,才正式删除文件。

所以当我们执行 rm 时,由于 ibd 文件还在被 MySQL 使用,文件其实并没有被真实删除,只是没办法通过文件系统访问。

通过 procfs 查找文件句柄,可以让我们追踪到消失的文件。

思考题

即使我们停止了外部的数据压力,MySQL 也会自主做一些 buffer pool 的刷盘操作。

如果在我们复制数据文件的过程中,MySQL 触发了 buffer pool 的刷盘操作,那我们获得的数据文件不就不一致了么?是否会造成数据错误。


关于 MySQL 的技术内容,你们还有什么想知道的吗?赶紧留言告诉小编吧!

c语言删除文件中的数据_第20问:删除了数据文件,该往哪个方向逃跑相关推荐

  1. python查找并修改文件中的内容_如何使用Python搜索和替换文件中的文本?

    如何使用Python搜索和替换文件中的文本? 如何使用Python 3搜索和替换文件中的文本? 这是我的代码:import osimport sysimport fileinputprint (&qu ...

  2. 易语言 图片插入超级列表框_新手教程!如何在PDF文件中插入图像

    每当在工作中收到一份PDF文件时,只要没有图片,阅读起来就会非常的枯燥无味,长时间的阅读还会带来睡意,而图片的使用能够更好的提高文件的阅读性.所以图片与文字的相配才是完整的一份PDF文件.但是PDF文 ...

  3. Java_Hive自定义函数_UDF函数清洗数据_清洗出全国的省份数据

    Java_Hive_UDF函数清洗数据_清洗出全国的省份数据 最近用Hadoop搞数据清洗,需要根据原始的地区数据清洗出对应的省份数据,当然我这里主要清洗的是内陆地区的数据,原始数据中不包含港澳台地区 ...

  4. .net 从txt中读取行数据_【VBA项目】从指定文件中读取数据并绘制图表

    VBA 是一种很久远的编程语言,但并不过时.在满足以下两个条件时,借助 VBA 可以极大的提升生产率,降低出错率: 你的电脑上不允许自主安装软件: 你需要执行的工作中大部分的步骤都是固定且重复的. 项 ...

  5. c如何通过偏移量取出文件中的字节_理一理C语言字节对齐的那些事

    作者:守望,Linux应用开发者,目前在公众号[编程珠玑] 分享Linux/C/C++/数据结构与算法/工具等原创技术文章和学习资源. 前言 字节对齐是我们初学C语言就会接触到的一个概念,但是到底什么 ...

  6. c++读取txt文件中的数字_在Python中读取包中的数据文件的三种方式

    我们知道,写Python代码的时候,如果一个包(package)里面的一个模块要导入另一个模块,那么我们可以使用相对导入: 假设当前代码结构如下图所示: 其中test_1是一个包,在util.py里面 ...

  7. python从文件中读取数据_使用Python脚本从文件读取数据代码实例

    这篇文章主要介绍了使用Python脚本从文件读取数据代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 最近自学Python的进度比较慢,工作之 ...

  8. python删除字符串中重复字符_从Python中删除字符串标点符号的最佳方法

    似乎有一个比以下更简单的方法: 1 2 3import string s ="string. With. Punctuation?" # Sample string out = s ...

  9. 如何删除第一张单页_如何用PowerBI导入网页数据

    作者: 东军 相信很多朋友被PBI颜值吸引而入了坑,迫切想上手,但往往会卡在数据源环节.本公司数据自己没权限,外公司数据可望不可及,而网络社区里提供的练习数据,往往专业性太强,业务逻辑摸不透,分析更是 ...

最新文章

  1. 图像分类再思考DNN似乎遵循一种令人困惑的简单策略来对图像分类
  2. bzoj1833: [ZJOI2010]count 数字计数 codevs1359 数字计数
  3. listview异步加载图片
  4. 20155305乔磊2016-2017-2《Java程序设计》第四周学习总结
  5. anaconda镜像源配置_Anaconda使用技巧,如何修改国内镜像源?
  6. 以后出去找工作,只能说自己是产品策划了
  7. 组策略参考文档1-共享打印机
  8. 数据库每日一题(易错)
  9. 服务器搭建对讲机系统,世邦对讲配置步骤以及方法(支持跨服务器对讲).doc
  10. 美国政府悬赏数千万美元寻勒索组织线索、制裁及最近勒索事件概览
  11. C++ 读取CSV文件中的数据到Mat
  12. Android_WakeLock使用
  13. 非常可乐(广度搜索)
  14. 强烈抗议故意审核不通过
  15. laravel 框架命令
  16. JS 字符串截取切割操作汇总
  17. 仅有几个分布点,绘制物种的分布图
  18. python借助jieba包对单独test和txt文档进行中文分词
  19. 当前时间、既定时间后的时间及时间比较大小(java实现)
  20. elementUI 使用 el-select 的远程搜索功能,导致数据无法回显怎么解决?

热门文章

  1. [搬运] iOS 7 侧滑返回手势使用和错误集
  2. 数据库初识--从MySQL 出发
  3. DNS智能解析的另类使用 让搜索引擎更快更好的收录您的网站
  4. 当您访问未加密的HTTP网站时,谁能看到您的数据?—Vecloud微云
  5. Mybatis ResolverUtil的设计概念
  6. JBoss EAP应用获取运行模式、相关路径及节点信息
  7. vue-video-player集成videojs-contrib-hls实现.m3u8文件播放
  8. webpack学习笔记 (三) webpack-dev-server插件和HotModuleReplacementPlugin插件使用
  9. 【Win 10 应用开发】InkToolBar——涂鸦如此简单
  10. 推荐9款优秀的 HTML5 音乐播放器