如何打开锁定的 mdb 文件?

Posted

技术标签:

【中文标题】如何打开锁定的 mdb 文件?【英文标题】:How can I open a locked mdb file? 【发布时间】:2009-03-23 21:19:39 【问题描述】:

我有一个锁定 mdb 的数据库,因此我想备份。但是,我正在使用的工具(我有源代码)在备份文件之前会打开文件并发现它已被锁定。

有没有办法可以将其打开以用于只读目的?

作为参考,该工具使用 C# 和 .NET 2.0(但可以更新到 3.5)。

【问题讨论】:

【参考方案1】:

您的工具锁定文件的原因是为了防止在备份文件时对其进行更改。例如,如果您开始备份,但在 DBMS(即 SQL Server)中途决定对文件进行更改,那么您的备份将会损坏。

我建议您使用随数据库解决方案提供的工具来执行备份。另一种选择是在备份之前停止数据库。

【讨论】:

不,他反了。数据库对文件有独占读锁,工具无法获取锁。马修则相反。 对,数据库对数据文件有一个排他锁,因为 DBMS 的编写者知道在数据库运行时复制文件不是一个好主意,所以他们锁定了它。这是为了防止你做你想做的事情。 在使用 Jet 后端时,您会使用哪些本机备份工具,如当前问题所示?您在回答之前确实阅读了它,对吧? 为什么是的,我确实阅读了您的问题。您在原始帖子中没有提到 Jet。我不熟悉用于 Jet 数据库的备份工具,但是无论 DBMS 是什么,问题都是一样的。尝试谷歌搜索。【参考方案2】:

如果 DBMS 对文件持有写锁定,而您读取它,则您在读取文件时冒着 DBMS 写入文件的风险。根据写入的部分,您最终可能会得到文件的损坏备份。最好仅在 DBMS 不写入文件或让 DBMS 处理自己的备份时才读取文件。

【讨论】:

【参考方案3】:

这类似于这个问题:

Opening a file's Shadow Copy if the current copy is in use

这取决于数据库如何打开 MDB 文件。如果它不允许读取共享,那么除非您能够打开卷影副本,否则您就不走运了。这里有一个关于如何做到这一点的讨论:

How do I copy a file or folder that is locked under windows programmatically?

【讨论】:

以上是关于如何打开锁定的 mdb 文件?的主要内容,如果未能解决你的问题,请参考以下文章

ArcGIS怎么打开mdb

arcgis如何打开mdb数据库

如何从 ftp 位置 jackcess 打开 .mdb

请教:如何用ARCMAP打开一个.mdb文件?

mdb如何转成ttl

为许多用户通过 PHP 访问打开的 MDB 文件