【发布时间】:2009-01-19 15:37:48
【问题描述】:
我试图恢复备份,但一直收到操作系统错误 32 - 由于正在使用中而无法删除。
无法弄清楚是什么锁定了数据和日志文件 - 所以我重新启动了机器,停止了服务,但仍然没有运气。
然后我删除了数据库,但数据和日志文件仍然存在。
再次重新启动 - 试图删除它们,但看起来没有什么可做的,Windows 不允许。
有什么想法吗?
【问题讨论】:
标签: sql-server-2005 locking mdf ldf
我试图恢复备份,但一直收到操作系统错误 32 - 由于正在使用中而无法删除。
无法弄清楚是什么锁定了数据和日志文件 - 所以我重新启动了机器,停止了服务,但仍然没有运气。
然后我删除了数据库,但数据和日志文件仍然存在。
再次重新启动 - 试图删除它们,但看起来没有什么可做的,Windows 不允许。
有什么想法吗?
【问题讨论】:
标签: sql-server-2005 locking mdf ldf
防病毒软件是一种捕获 DBA 的软件 - MDF/LDF 文件非常大,我见过 AV 软件锁定文件来扫描它们的情况,但由于文件大小的原因,这需要很长时间。您可以尝试停止您的防病毒服务。
另一个是备份程序 - 如果您使用基于文件的备份(如 Backup Exec 或 NetBackup),它们可能当时正在尝试运行文件备份。检查任何备份软件服务,停止这些服务,然后尝试删除文件。
您可能还安装了多个 SQL Server 实例,这可能属于另一个实例,而不是您正在使用的实例。
【讨论】:
使用 Process Explorer,这是一个 Microsoft 工具,它会告诉您当前哪个进程锁定了文件,它会告诉您在删除文件之前需要停止/关闭什么。
这里有一个关于找出谁锁定了文件的教程:
【讨论】:
我遇到了类似的错误,在分离数据库后我无法删除数据文件和日志文件。
我收到“需要管理员权限”的错误消息。
已通过更改文件的权限解决。 转到运行提示 -> 键入“windows explorer” -> 以管理员身份运行并访问该文件。
右键单击文件名并选择“属性”。转到“安全选项卡”并添加具有完全权限的域帐户。
现在,您可以删除文件了。
【讨论】:
您应该能够分离(而不是删除)数据库,然后移动或删除数据文件。
【讨论】:
您删除了 SSMS 中的数据库,但文件仍然存在? (如果您“删除”条目,则不需要再分离” 您可能选中了“保留数据文件”复选框
但我想重新启动应该允许您删除实际的 .mdf 和 .ldf 文件 如果没有,请尝试启动到安全模式并删除实际文件然后
【讨论】:
我遇到“系统正在使用”错误的另一个原因。就我而言,从所有实例分离并重新启动后,我无法删除文件。这不是安全权限问题。任何程序也没有使用它,因为进程浏览器没有显示任何使用它的进程。在我的情况下,原因是 Visual Studio TFS 对 mdf 的不正确检查。如果您签出文件然后松动与 TFS 服务器的连接,您将无法使用“系统正在使用”删除或重命名文件。即使没有VS启动。文件可以在安全模式下删除。而且,更重要的是 - 如果您让 TFS 重新联机并执行正确的 CheckIn,文件可以正确解锁。
【讨论】:
我遇到了与此类似的错误,但这是权限问题,而不是其他问题。数据库是在不同的用户下创建的,普通管理员帐户根本没有 LDF/MDF 文件的权限。
其他症状是管理员无法创建同名数据库,并且第三方应用程序无法执行数据导入(因为它删除并重新创建了数据库)
【讨论】: