服务器正常运行一段时间后就会出数据库连接错误[代码:01]

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了服务器正常运行一段时间后就会出数据库连接错误[代码:01]相关的知识,希望对你有一定的参考价值。

我在win2003下建了一个单位网站,网站下还有几个通过新建虚拟目录建立的网页的链接,刚开始运行都正常,但过一段时间点击网页上通过虚拟目录建立的网页连接时,就会出现数据库连接错误[代码:01],主网站一直是正常的。当重新启动系统后,一切又都正常了,过一段时间又出现。请高手指教。

可能你的服务器cpu负载过大,或者你的数据库已开连接使用完未关闭!追问

数据库已开连接使用完未关闭是什么意思

参考技术A Cpu负载了,过热

日志清理

服务器系统运行一段时间后就会自动崩溃。究其原因发现,是系统存放日志的文件夹已满,导致日志文件夹所在系统分区无法正常工作,于是就有了这个日志清理脚本。

日志产生目录 在系统日志产生时,存放在/var/log/下。

日记备份目录 将日志备份到/mnt/storage/log/中

备份目录最大容量 备份目录最大容量,如500mb。在超过此值时,程序将不断的将最旧的日志备份删除。

白名单 系统重要日志白名单。有些日志不太重要我门不需要备份。

日志文件名格式 新日志以.log结尾。将白名单中重要日志加上时间戳,如mail.log.20171018153059

脚本行为 脚本每隔10s扫描/var/log下新日志的大小。如果发现有大小超过5mb的日志,如果是白名单中的日志,则会将其备份到备份目录中,原日志删除;如果发现其不再日志备份目录中,则直接删除。然后,检查是否超过了备份目录中的最大容量,如果超过,则将最老的日志备份删除。

#!/bin/bash
#
#最大日志容量
alarmrate=500
#the max size file can reach
file_max_size=5
#日志生成目录
log_ram_dir=/var/log
#日志备份目录
working_dir=/mnt/storage/log
#定时备份间隔5s
SLEEPTIME=5
#给文件名打时间戳
filenameConvert()
{
timestamp=$(date +%Y%m%d%H%M%S)
timestamp=`echo $timestamp`
RETVAL=$1.$timestamp
}
#搜索最旧的日志文件
searchdir()
{
oldestlog=`ls -rt | head -n 1 | awk ‘{print $1}‘`
}
#删除工作目录下的旧日志
clear_old_log_under_working_dir()
{
cd $working_dir
while true;
do
logsize=`du -ms $working_dir | awk ‘{print $1}‘`
if [ $logsize -gt $alarmrate ];
then
searchdir
rm -rf $oldestlog
else
break;
fi 
done
}
#this is main process of our log backup activity.
#日志备份函数,主要备份白名单中的日志文件。
backuplog_process()
{
cd $log_ram_dir
for i in * ;
do
file_size=`du -m $i | awk ‘{print $1}‘`
case $i in
access.log | error.log | apcupsd.events | evms-engine.log| messages | kern.log | lpr.log | mail.err | mail.info | main.log | mail.warn | news | rsyncd.log | user.log | dmesg | dmesg.0 | dmesg.new)
if [ ! -d $working_dir ];then
mkdir -p $working_dir
fi
if [ file_size -gz file_max_size ];then
filenameConvert $i
cp $log_ram_dir/$i $working_dir/$RETVAL
echo "" > $log_ram_dir/$i
clear_old_log_under_working_dir
fi
;;
*)
if [ file_size -gz file_max_size ];then
echo "" > $log_ram_dir/$i
fi
esac
done
}

while true ;
do
backuplog_process
sleep $SLEEPTIME
done

[[email protected] shell]# chmod +x cleanLog.sh 
[[email protected] shell]# crontab -e
*/1 * * * * /opt/bin/cleanLog.sh

以上是关于服务器正常运行一段时间后就会出数据库连接错误[代码:01]的主要内容,如果未能解决你的问题,请参考以下文章

我们公司的IIS 部署的网站,用一段时间后就必须重启,是怎么回事?怎么修改呢?

mysql闲置8小时后,自动关闭连接,再对数据库进行操作就会出问题,如何解决

php频繁刷新网页运行一段时间后出现数据库连接错误?

win7开机后运行游戏等,运行一段时间就会蓝屏一次,按机器上重启后就好了,一直开几天都不会在次蓝屏,

java 如何让一个程序运行一段时间后就停止运行

java 如何让一个程序运行一段时间后就停止运行