免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1956 | 回复: 0
打印 上一主题 下一主题

【分享】如何查看MySQL进程打开的文件 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-08-10 16:34 |只看该作者 |倒序浏览
本帖最后由 cenalulu 于 2012-08-10 16:51 编辑

Linux的文件都是以FD描述的,而MySQL要访问表,都会打开相应的数据和索引文件的;有时创建临时文件,

如(1)当操作binlog event事件长度大于binlog_cache_size,就会在tmpdir目录(默认/tmp)下创建临时文件,而这些文件,用ls -al /tmp是无法看到的,只有通过查看MySQL进程打开的文件才可见。(2)如对大表,进行表结构变更,一般都会在数据库所在的目录下创建临时文件的。
查看MySQL进程打开的文件命令:


lsof -p pid


呵呵,说这么多,就一行命令,晕。。。
示例:
今天对一张大表变更添加字段,用show engine innodb status查看,行到以下信息,创建了临时文件,接着那这个文件大哪儿,用来作啥的呢?
LOCK table `xxxxxx`.<result 2 when explaining filename '#sql-165_351360'


lsof -p 357 | grep sql-165_351360
mysqld  357 mysql  147uW  REG               8,16  255852544 3221225779 /work/mysql/xxxx/#sql-165_351360.ibd


结果就是在数据库xxxx目录下的。


相反查看某个文件,正在被哪些进程使用呢? 用命令:fuser
参见: http://www.cnblogs.com/yuboyue/archive/2011/07/18/2109838.html

blog: http://blog.chinaunix.net/uid-26364035-id-3307407.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP