Chinaunix首页 | 论坛 | 博客
  • 博客访问: 42884
  • 博文数量: 7
  • 博客积分: 10
  • 博客等级: 民兵
  • 技术积分: 15
  • 用 户 组: 普通用户
  • 注册时间: 2012-07-09 15:12
文章分类
文章存档

2015年(2)

2014年(4)

2012年(1)

我的朋友

分类:

2012-08-10 15:33:34

  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`.#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


阅读(1325) | 评论(0) | 转发(0) |
0

上一篇:没有了

下一篇:播布客里小布老师的全部视频收集,

给主人留下些什么吧!~~