当 SQL 服务器空闲时解锁数据库文件

当 SQL 服务器空闲时解锁数据库文件

在我的笔记本电脑上的开发/测试环境中,我无法备份 SQL 服务器数据库文件,因为文件句柄由 SQL 服务器永久保持打开状态(VSS 不起作用,因为驱动器是 truecrypted)

我希望 SQL 服务器中可能有一些设置可以使其在一定时间不活动后解锁数据文件并根据需要自动再次打开它们,但我什么也找不到。

我真的不想每晚都转储数据库,因为这只是一个开发环境。除了在备份之前停止 SQL Server 还有其他解决方案吗?

答案1

另一个选项是自动关闭属性"ALTER DATABASE [dbname] SET AUTO_CLOSE ON"。根据 SQL Server 在线图书 (http://msdn.microsoft.com/en-us/library/bb522682(v=sql.120).aspx):

AUTO_CLOSE 选项对于桌面数据库非常有用,因为它允许将数据库文件作为常规文件进行管理。它们可以被移动、复制以进行备份,甚至通过电子邮件发送给其他用户。AUTO_CLOSE 过程是异步的;反复打开和关闭数据库不会降低性能。

答案2

没有什么可以自动为你做到这一点,但你可以从管理工作室或命令行分离或脱机数据库,例如通过发出ALTER DATABASE <database> SET OFFLINE通过sqlcmd在您的备份脚本中。

您可能需要重新考虑使用BACKUP DATABASE <database> TO FILE='<filename>'该语法实际上备份的是数据库本身,而不是文件。

相关内容