以文本方式查看主题 - 军人联盟论坛 (http://jm.jrlm81.com/bbs/index.asp) -- 军盟教学 (http://jm.jrlm81.com/bbs/list.asp?boardid=67) ---- [转帖]access数据库出错,数据库下面出现.ldb 网站无法访问 (http://jm.jrlm81.com/bbs/dispbbs.asp?boardid=67&id=53893) |
-- 作者:胜利 -- 发布时间:2010/3/1 20:09:20 -- [转帖]access数据库出错,数据库下面出现.ldb 网站无法访问 摘要: .ldb文件在多用户环境下是非常重要得。该文件被 MS Jet DB Engine V4.0 用来确定被共享的数据库中哪条记录被锁定以及被谁锁定 更多信息: .ldb 文件是由共享数据库的使用者自动创建以及删除得。.LDB 文件建立并存储计算机名、用户名以及放置扩展域锁的。.LDB 文件一般与 .MDB 同名,并且与 .MDB 文件在相同目录,在 .MDB 文件被打开时建立并锁定。举个例子,如果你打开 c:\\northwind.mdb 文件后 c:\\northwind.ldb 文件会自动被建立并被锁定。 当最后一个用户关闭共享数据库时 .ldb 文件会被自动删除。但是当用户没有正常关闭数据库或者数据库已经被标记为损坏,那么 .LDB 文件不会被自动删除,因为 .LDB 文件中存储着数据库损坏时谁正在使用该数据库。 权限问题: 记得要给予 .LDB 文件所在的文件夹一定的权限。如果你准备共享一个数据库,该 .MDB 文件应该被放置在一个用户拥有读取、写入、建立、删除权限的目录中。即使你要求每个用户有不同的文件权限(比如,只读或者可读写),所有能够共享该数据的用户对该目录都应该拥有读取、写入、建立的权限,但是你可以分配用户对某个 .MDB 文件只拥有只读权限。 注意:如果用独占方式打开某个数据库,那么 MS JET DB 将不会建立 .LDB 文件,此时用户对目录的权限只要求有读取和写入两个权限即可。 .ldb 文件的内容: MS JET DB ENGINE 会为每个以共享方式打开数据库的使用者在 .LDB 文件中创建一个条目,每个条目的大小是 64 字节。前面 32 字节保存计算机名,后面 32 字节保存用户名。JET DB ENGINE 支持的最大用户数是 255,因此 .LDB 文件的大小不会超过 16 KB。当一个用户关闭一个共享数据库时,该用户在 .LDB 文件中的条目不会立即被删除,可是该条目会在下一个用户打开这个数据库时被覆盖。这也就意味着你不能通过 .LDB 文件来唯一确定谁是某个数据库的当前使用者。 .LDB 文件的使用方法: JET DB ENGINE 使用 .LDB 文件中的信息来确定谁锁定了数据,谁正在写入被其他人锁定的数据。如果 JET DB ENGINE 发现有其他用户的锁定冲突,它会读取 .LDB 文件以获取计算机名与用户名谁锁定了文件或者记录。 在多数锁定冲突情况下,你会在存储记录时得到一个 “写入冲突”的提示并且取消你所做的修改。在有些情况下你会得到如下提示: Couldn\'t lock table <table name>; currently in use by user <security name> on computer <computer name>. 注意:上述关于 .LDB 文件的信息与数据库文件无关。如果一个 .LDB 文件损坏,数据库文件仍然能够工作正常。但是写入冲突的提示消息中<security name>这个部分你可能会看见一串不知所云的文字。 参考: 在 Access 2000 中,你可以用 VBA 来输出某个数据库的所有登陆用户的信息。 |
-- 作者:胜利 -- 发布时间:2010/3/1 20:11:36 -- 这个的原因是你的数据库在服务器上被锁定了。由于你的数据库不是正常的关闭,或者有人不停地在向你的数据库中更新数据,使你的数据库一直处在打开的状态,造成.ldb文件存在,所以程序就无法执行其他操作。 前面一种情况的解决方法就是把ldb这个文件删除,然后检查一下是哪里的遗漏造成数据库经常无法正常关闭,从而从根本上解决这个问题。 当您的站点或者论坛数据库使用ACCESS数据库在 20M 以上、或者数据库数据达到几千条、或者同时访问网站的人数是数十人,ACCESS数据库就常常会出现各类损坏,导致asp等程序无法继续运行,服务器资源被锁死。 相关的微软技术说明链接: http://www.microsoft.com/china/msdn/library/data/sqlserver/sqlbackend.mspx?mfr=true 其中微软网站网页内的原文: Access 最多支持 255 个并发用户,这并不适合作为企业级数据存储解决方案。在生产环境中,仅仅 20 个用户通过网络同时使用 Access 数据库时就常常会遇到严重的性能问题以及数据被损坏的问题。 这个主要原因是ACCESS数据库过大导致,ACCESS缺陷,建议转移到 MS SQL数据库就不存在这样的问题了! |
-- 作者:胜利 -- 发布时间:2010/3/1 20:12:14 -- 你从服务器下载数据库时,而此时正好有用户在写入什么的,当然下回来就有错了。这种情况特别是当你的数据很大时,容易出现一些。 你最好在用户不多的情况下再去下载数据库,否则,你还会遇到此类麻烦。 |