复制SQL MDF文件

时间:2013-10-09 10:01:06

标签: sql sql-server database sql-server-2005 database-backups

我正在尝试获取MDF文件的副本,但遇到标准的“正在使用的文件”消息,我认为是SQL服务对其进行锁定。是否可以制作mdf文件的副本而不必停止服务或以任何方式影响用户/应用程序?

如果没有,是否可以将一次性完整备份mdf创建到与现有位置不同的位置,以便SQL服务不会锁定它?

(已在此网站上对此进行了变更,但我不认为这是重复的。我不是要重新定位数据库,只是试图获取mdf的副本 - 而不会中断实时操作 - 所以我可以将它放在家里的开发机器上并使用数据库)

1 个答案:

答案 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