最近有一个使用access数据库的网站常常无故无法连接上数据库,登陆服务器后发现数据库目录中多了一个ldb文件,一直存在,创建时间就是前不久。由于这个ldb文件把数据库锁死了,所以才会造成无法连接上这个mdb数据库。
原因分析:
当我们打开access数据库的时侯,会产生一个对应的ldb文件。而当我们关闭数据库后这个文件又会自动消失。而在网站程序中我们也是先使用Conn.Open来打开数据库,再进行查询显示操作,操作之后再使用Conn.Close来关闭数据库。但是即使代码中规范地关闭了数据库,但是同时在线人数一量多了,还是会导致数据库被ldb文件锁死。
解决方法:
出现这个问题的解决方法其实严格说来只有更换数据库,最终我是换成了mysql数据库的,但是更换数据库前我的临时应对方法有这么几个。
1、不作为,因为出现这个问题后只要客户端请求不到数据达到了时间限制后会自动释放数据,也就是说过个一会就会自动恢复。但是这样就会让这段时间的访客无法访问网站。
2、静态化,将所有页面生成静态html文件,这样效果挺好的,但是如果页面文件较多,生成一次后,有地方修改了,再生成一次也挺麻烦的。
3、使用备用数据库,这个方法我用了半个月。就是在数据库目录增加一个备用的数据库,当在连接数据库发生错误时使用临时数据库。实测效果呢,其实也不是很好,会有一部分数据被存到备用数据库中,而造成一部分数据丢失。但好处就是不会让访客无法访问到数据。
总结:以上便是我在使用access数据库出现ldb锁死时的处理方法,建议就是如果网站存在并发多的话还是不要使用access数据库。避免后面更换数据库的麻烦。