我正在尝试获取MDF文件的副本,但遇到标准的“正在使用的文件”消息,我认为是SQL服务对其进行锁定。是否可以制作mdf文件的副本而不必停止服务或以任何方式影响用户/应用程序?
如果没有,是否可以将一次性完整备份mdf创建到与现有位置不同的位置,以便SQL服务不会锁定它?
(已在此网站上对此进行了变更,但我不认为这是重复的。我不是要重新定位数据库,只是试图获取mdf的副本 - 而不会中断实时操作 - 所以我可以将它放在家里的开发机器上并使用数据库)
答案 0 :(得分:1)
这将让你进行备份:
BACKUP DATABASE MyDatabase TO DISK = 'W:\DBs\MyDatabase.bak' WITH INIT;
如果你想备份日志文件,那么只需在之前添加命令:
ALTER DATABASE MyDatabase SET RECOVERY FULL;
然后,如果要从备份文件中恢复数据库,请尝试以下命令:
USE [master]
ALTER DATABASE MyDatabase
SET SINGLE_USER WITH
ROLLBACK IMMEDIATE
-- The previous command will used to close all connections to the database
-- until you recover it
Restore Database MyDatabase From Disk = 'W:\DBs\MyDatabase.bak' WITH REPLACE;
ALTER DATABASE MyDatabase SET MULTI_USER
-- This will reopen the database for users connections