MySQL运维:利用lsof命令恢复删除文件
需积分: 3 49 浏览量
更新于2024-08-09
收藏 4.93MB PDF 举报
"MySQL运维技巧-誉天hcie-r&s面试宝典v3.0(原版) 面试必备"
在MySQL运维中,DBA需要掌握一系列技巧和问题处理方法,以应对可能出现的各种情况。本资料重点介绍了如何利用lsof命令来恢复误删除的文件,这是数据库管理中一个非常实用的技能。
lsof命令是Linux系统中的一个工具,用于显示当前系统中所有打开文件的状态,包括进程ID(PID)、用户、文件描述符(FD)以及文件名等信息。在数据库运维中,如果一个正在运行的MySQL进程意外删除了某个文件,例如数据文件`func.MYD`,lsof可以帮助我们找回这个文件。通过`lsof -p <PID>`可以查看指定进程打开的所有文件,找到对应被删除文件的文件描述符(FD)。
当我们发现一个被删除的文件仍在进程的文件描述符中时,可以通过`/proc/<PID>/fd/<FD>`路径访问这个文件。例如,如果PID为28400的mysqld进程打开了文件`func.MYD`,我们可以通过`/proc/28400/fd/291`来访问。文件描述符是进程识别文件的方式,即使文件在文件系统中已被删除,只要进程不关闭这个文件描述符,文件数据仍可被读取和写入。
恢复误删文件的具体步骤如下:
1. 使用`lsof`命令找到仍然持有被删除文件句柄的进程及其文件描述符。
2. 访问`/proc/<PID>/fd/<FD>`路径,确认文件还在。
3. 使用I/O重定向,将数据复制到新的文件中,如`cat /proc/28400/fd/291 > /data/to/path/mysql/func.MYD`,这样就完成了文件的恢复。
这个技巧在处理如Apache服务器的日志文件或数据库数据文件等重要文件的误删除时尤为关键。在给出的例子中,当Apache服务器的access_log被误删,通过`lsof`找到仍然持有文件句柄的进程,然后在`/proc`目录下找到文件描述符,就可以恢复access_log的内容。
此外,这本书《MySQL DBA修炼之道》还涵盖了MySQL的入门知识、开发阶段的技巧和测试基础,包括MySQL的安装部署、基本架构、SQL语法、索引、权限管理、查询优化、性能测试等方面,旨在帮助读者全面理解和掌握MySQL的运维与开发工作。这本书对于希望成为训练有素的DBA来说,是一份宝贵的参考资料。
2021-03-20 上传
2020-09-18 上传
点击了解资源详情
2020-03-26 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
Fesgrome
- 粉丝: 37
- 资源: 3819
最新资源
- 高清艺术文字图标资源,PNG和ICO格式免费下载
- mui框架HTML5应用界面组件使用示例教程
- Vue.js开发利器:chrome-vue-devtools插件解析
- 掌握ElectronBrowserJS:打造跨平台电子应用
- 前端导师教程:构建与部署社交证明页面
- Java多线程与线程安全在断点续传中的实现
- 免Root一键卸载安卓预装应用教程
- 易语言实现高级表格滚动条完美控制技巧
- 超声波测距尺的源码实现
- 数据可视化与交互:构建易用的数据界面
- 实现Discourse外聘回复自动标记的简易插件
- 链表的头插法与尾插法实现及长度计算
- Playwright与Typescript及Mocha集成:自动化UI测试实践指南
- 128x128像素线性工具图标下载集合
- 易语言安装包程序增强版:智能导入与重复库过滤
- 利用AJAX与Spotify API在Google地图中探索世界音乐排行榜