Chinaunix首页 | 论坛 | 博客
  • 博客访问: 739086
  • 博文数量: 38
  • 博客积分: 587
  • 博客等级: 中士
  • 技术积分: 579
  • 用 户 组: 普通用户
  • 注册时间: 2011-10-17 14:32
文章存档

2013年(15)

2012年(23)

分类: Mysql/postgreSQL

2013-04-15 14:44:31

 
1.在测试机上做测试, MySQL中进行少量数据的delete操作,但连接卡住无反应,查看MySQL processlist, 部分connecion处于init, 直接切断的连接状态断end.

从上图的query 17765可见, delete from t; 一直处于init状态
2. 觉得数据目录的磁盘空间满了,df -h查看, /work目录100%。
[root@mongohost3 mongodb]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/VolGroup00-LogVol00
14G 5.8G 7.2G 45% /
/dev/sda1 99M 21M 74M 22% /boot
tmpfs 3.0G 0 3.0G 0% /dev/shm
/dev/sdb1 250G 250G 20K 100% /work
3. 查看MySQL error log, 发现日志中提示,磁盘空间已满,不能写入bin log了。
从上图可见Server Errorcod:28, 再用perror查看具体信息:
[root@mongohost3 mongodb]# perror 28
OS error code 28: No space left on device
4. 查看/work目录下mongo有一个很大的日志文件, 直接rm -rf后,但磁盘空间仍然未释放,查看mongo进程的打开文件,只是把日志文件标识为了"deleted"状态。
还有/work为xfs文件类型,230G的数据,直接删除,没有感觉占用时间。
/dev/sdb1 xfs 250G 17G 234G 7% /work

这种情形很像,MySQL的长连接, 在/tmp目录创建大临时文件,用完只是标识为deleted, 直到这个MySQL连接断开,空间才会真正释放。
当重新启动mongo进程后,空间被释放, 刚才卡住的MySQL操作也执行完成: 表tt只有1 行数据,删除了17分钟。
mysql> delete from tt;
Query OK, 1 row affected (17 min 28.93 sec)
阅读(4035) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~