MySQL运维技巧:利用lsof恢复删除文件

需积分: 33 115 下载量 132 浏览量 更新于2024-08-08 收藏 4.78MB PDF 举报
"MySQL运维技巧-软件调试 pdf 张银奎先生力作" 本文主要讨论了MySQL运维中的一个重要技能——如何利用lsof命令恢复误删的文件,特别是数据库文件。MySQL DBA在处理各种问题时,掌握这类技巧是至关重要的。 在Linux环境下,lsof(List Open Files)是一个强大的命令行工具,它能显示当前系统中所有打开文件的详细信息,包括网络连接。在MySQL运维中,如果一个文件被误删除,但MySQL进程仍在使用该文件,lsof可以帮助我们找回这个文件。通过查看lsof输出,我们可以找到对应进程ID(PID)和文件描述符(FD),从而确定文件在/proc目录下的位置。 例如,如果MySQL进程28400打开了名为func.MYD的文件,我们可以通过`lsof -p 28400`命令来获取文件信息。一旦找到文件描述符,如291,我们就可以使用`/proc/$pid/fd/$fd`路径访问文件。文件描述符是进程识别文件的方式,即使文件在文件系统中已被删除,只要进程保持打开状态,文件数据实际上仍然存在。 如果要恢复误删文件,可以使用I/O重定向将文件内容复制到新的文件中,例如`cat /proc/28400/fd/291 > /data/to/path/mysql/func.MYD`。这个方法特别适用于那些正在被进程使用的日志文件和数据库文件。 此外,文中还提到了一个具体的例子,展示了如何恢复Apache服务器被删除的access_log。首先,使用`lsof | grep access_log`找到持有文件句柄的进程,然后通过/proc目录下的信息恢复文件。 另一本书《MySQL DBA修炼之道》(陈晓勇著)是数据库技术丛书中的一本,涵盖了MySQL的入门、开发和测试等方面。书中详细介绍了MySQL的基础架构、安装部署、开发基础和进阶技巧,以及性能测试和优化方法,是MySQL DBA和开发者的重要参考资源。 了解并熟练运用lsof命令是MySQL运维中的重要技能,而《MySQL DBA修炼之道》则是学习和提升MySQL技能的宝贵资料。通过理论与实践的结合,DBA可以更有效地管理和优化MySQL数据库系统。