Linode mysql : Got error 28 from storage engine

Posted by wxianfeng Fri, 20 Aug 2010 15:40:00 GMT

环境:linode(16G磁盘) + centos 5.5

前些天一直收到 linode的 磁盘IO 警告的邮件,工作繁忙 , 也没有管它,殊不知 隔了一天 我的blog 不能访问了 , ssh进入linode跟踪log ,mysql报 Got error 28 from storage engine ,后来查出是磁盘已经用完的原因,解决过程如下:

1,查看磁盘占用情况

[root@li165-150 system]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/xvda              16G   15G   0      100%   /

发现磁盘已经占满 , 接下来需要找出谁占用了这么大的空间

[root@li165-150 system]# cd /
[root@li165-150 /]# du -sh *
5.4M    bin
4.0K    boot
32K     dev
13M     etc
56M     home
21M     lib
16K     lost+found
4.0K    media
4.0K    mnt
4.0K    opt
15G    var

发现 var 目录占用最大 ,继续跟踪 cd /var , du -sh * 最后跟踪到是 /var/log/maillog 占用最大 ,足足有 14G,删除之

>rm /var/log/maillog

此时 使用 df -h 查看空间占用情况 还是 15G , 需要释放删除的空间

2,重启 centos ,释放空间
登入 linode.com reboot 你的centos , 就可以 释放删除文件的磁盘了 , 还有 就是发现 linode。com的显示的磁盘占用情况依然还是 100% ,实际我进入系统查看 , 空闲磁盘已经有 9G了

3,重启之前已经开启的服务

/etc/init.d/mysqld start  # 启动mysql
/usr/local/system/nginx/sbin/nginx # 启动nginx
thin start -C /etc/thin/thin.yml # 启动thin
/etc/init.d/httpd start # 启动 apache
/etc/init.d/postfix start # 启动邮件相关服务
/etc/init.d/dovecot start
/etc/init.d/saslauthd start
cd /usr/local/system/www/short_url/lib
nohup ruby mongoshort.rb -e production & # 启动sinatra
cd /usr/local/system
nohup mongodb/bin/mongod --dbpath=/usr/local/system/mongodb/data & # 启动mongodb
cd /usr/local/system
svnserve -d -r vcs # 启动svn server

在启mongodb的时候 , 报文件锁定 , 无法启动 , 需要 repair 一下

mongodb/bin/mongod --repair

4,ok,大功告成

See:
http://www.mongodb.org/display/DOCS/Durability+and+Repair
http://www.fufuok.com/mysql-got-error-28.html

This entry was posted on Fri, 20 Aug 2010 15:40:00 GMT and Posted in . You can follow any any response to this entry through the Atom feed. You can leave a comment or a trackback from your own site.

Tags ,


Trackbacks

Use the following link to trackback from your own site:
http://wxianfeng.com/trackbacks?article_id=62

Comments

Leave a comment