Bob*_*egg 3 sql-server backup restore sql-server-2012
我想使用不同的数据库名称将 SQL Server 2008 数据库复制到 SQL Server 2012。
.bak文件,但 SQL Server 说“测试”正忙top 这样做的正确方法是什么?
基本上是将 2008 年生产数据库的快照放入 2012 年测试环境中。
谢谢
鲍勃
在还原之前不要在服务器 B 上创建数据库。恢复一下就行了 为了做到这一点,它不必首先存在。无论数据库是否已经存在,这都应该有效(所以也许您应该考虑使用比“test”更好的名称),只需打开一个新的查询窗口:
USE master;
GO
RESTORE DATABASE test
FROM DISK = 'E:\backup path\backup.bak'
WITH REPLACE, RECOVERY,
MOVE 'data_file_name' TO 'D:\data file path\test.mdf',
MOVE 'log_file_name' TO 'L:\log file path\test.ldf';
Run Code Online (Sandbox Code Playgroud)
但是我不知道您从哪里收到有关“忙碌”的消息 - 您是否正在使用 UI 进行恢复?别再这样做了 - 众所周知,UI 非常不适合帮助执行备份和恢复等任务。并确保您没有任何查询窗口等,其上下文设置为现有 test数据库。要将人们踢出去以便您可以恢复它,您可以使用:
USE master;
GO
ALTER DATABASE test SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
Run Code Online (Sandbox Code Playgroud)
要获取要放在MOVE参数中的文件名,请运行以下命令:
RESTORE FILELISTONLY FROM DISK = 'E:\backup path\backup.bak';
Run Code Online (Sandbox Code Playgroud)