昨天晚上打开自己的BLOG,一串红色字符映入眼帘:
数据库连接出错,请检查连接字串
这个郁闷啊,自己也就刚刚出去吃了个饭,回来就有问题了,我觉得自己没动什么程序,所以应该是服务器那边的问题,就给空间商打电话,空间商说下班了,明早帮我处理。自己没头绪然后立即登录FTP,先把数据库下载下来做了个备份。FTP没问题,再联系客服,客服让我先把空间停止再启动试试。
还是报错~郁闷了,检查数据库路径,配置,和改动的文件,都没问题,怎么会数据库连接出错呢?
注意到数据库文件集下多了一个ldb文件,之前都没有这个东西的,怀疑是这个出了问题,可是也没找到什么结果。第二天客服检查了服务器的东西后,告诉我是数据库损坏了,修复一下就好了。这时我才想起昨天备份的数据库没有检查过,于是打开,提示损害………………自动修复后就好了
我就日啊。
直接原因:
有一个或多个ACCESS数据库在多次读写过程中损坏,微软的MDAC系统在写入这个损坏的ACCESS文件时,ASP线程处于BLOCK状态,结果其他线程只能等待,IIS被死锁了,全部的CPU时间都消耗在w3wp.exe中。将数据库修复一下就可以了。
特征:
服务器正常CPU消耗应该在75%以下,而且CPU消耗应该是上下起伏的,出现这种问题的服务器,CPU会突然一直处100%的水平,而且不会下降。查看任务管理器,可以发现是w3wp.exe消耗了所有的CPU空闲时间,管理员在这种情况下,只好重新启动IIS服务,奇怪的是,重新启动IIS服务后一切正常,但可能过了一段时间后,问题又再次出现了。
后面这个特征,客服说连接数据库时open了,没有close。就有可能出现那种情况,不过损坏了也有可能出现这种情况。表现的一样,但起因是不一样的。
本以为没事了,结果打开本页的时候忽然又出现了错误。
说是 common checkuser.asp 209 行有错,我靠,疯了,程序我一直都没动过的。
上pjblog论坛找了一下,有个人跟我一样的错误。
解决方法是在后台重新生成所有日志和索引文件,抱着试试的态度,我也生成了,本地看,没问题了。但是客服说他那里还是打不开,我就操啊。再看google,已经无人提供答案了。自己想想,最初的时候是因为数据库出错才导致的一系列问题,而当前的checkuser.asp的错误其实也不过是数据库问题的表现,其实文件没关系的,那么只能是程序和数据库在连接的时候出现了问题,想起来pjblog的后台数据库有一个压缩修复的功能,立刻试了一下。
最终ok了,问题搞定~~~~~~~~


