第14章数据库管理技巧和常见问题处理对于成长为一名优秀的DBA至关重要。本章介绍了多种数据库管理技巧和常见问题的处理方法。我们要明确,自身的实践经验是无法替代的。因此,多加实践、多处理问题,将帮助你成为一位技术娴熟的数据库管理员。14.1 MySQL数据库管理技巧

14.1.1 使用lsof命令恢复文件

如果在Linux系统下不慎删除了文件,可以使用lsof命令进行文件恢复。lsof是Linux系统自带的工具,可以显示打开的文件和网络连接,帮助我们更好地了解系统和应用程序的状态。对于数据库管理而言,lsof的一个重要用途是帮助恢复意外删除的文件。在/proc目录中,存放了反映内核和进程树信息的文件。相关的lsof信息通常存储在以PID命名的目录中,比如/proc/1234,其中包含PID为1234的进程的详细信息。例如,我们可以查看MySQL进程是否打开了func.MYD文件。

lsof -p 28400 | egrep \"COMMAND|func.MYD\"

COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME

mysqld 28400 mysql 291u REG 8,17 0 65550 /data/to/path/mysql/func.MYD

通过/proc/$pid/fd/$fd形式访问文件。例如,检查MySQL进程是否打开了func.MYD文件:

ll /proc/28400/fd/291

lrwx--- 1 root 64 Aug 13 15:25 /proc/28400/fd/291 -> /data/to/path/mysql/func.MYD

进程在文件被删除后,仍可继续读取和写入该文件,因为它保持着对文件描述符的引用。除了该进程外,文件在磁盘上是不可见的。