2017-03-23 47 views
1

我有一个实时数据库。我需要创建一个包含活动数据的测试数据库,但我已经设置了一个错误。我试图通过从“实时数据库.bak”中恢复来创建这个新的错误消息,但是出现了一条错误消息,说因为数据库正在使用而无法执行该过程。另外,我不知道为什么,但在此之后,实时数据库开始恢复并继续运行,直到陷入停滞状态。它没有完成恢复,我必须强制停止,删除实时数据库并从头开始恢复。检查活动日志,似乎在创建数据库日志备份失败后进入恢复模式,这正是我尝试使用.bak创建新测试数据库后发生的情况。在SQL Server 2014中复制数据库

我在做什么错?是否有另一种方法来复制实时数据库以将其用作测试数据库?

注意:我已经完成了没有人使用数据库或连接到数据库但没有成功的过程。

+0

没有*命令*就无法提供帮助。无论如何,备份/恢复没有任何问题。所有数据库都是“实时”的。您是否尝试恢复原始数据库?你指定了一个新名字吗? –

+0

@PanagiotisKanavos我做的是:右键单击数据库列表,恢复数据库,选择原始设备,选择.bak,选择命运,重命名数据库,更改日志路径和文件路径,然后转到。 –

回答

0

您需要重新定位/重命名文件。只是更改要还原的数据库名称可能不会更改执行还原时SQL尝试实际创建的数据库文件和日志文件。转到“还原数据库”的“选项”页面,并确保文件指向有效位置,而不是尝试使用与实时数据库相同的文件。

+0

OP应该首先重命名数据库。这听起来像他试图恢复*原始*数据库 –

0
--At First take ypur database backup and restore it as DatabaseName_Test and also change Datafiles As database _test.mdf and DatabaseName_test_log.ldf 
--try to follow as below script 
USE master 
GO 
BACKUP DATABASE [DatabaseName] 
TO DISK = N'D:\SQLSERVER_Installation\setup\MSSQL12.SQLSERVER2014\MSSQL\Backup\DatabaseName.bak' 
WITH COPY_ONLY, NOFORMAT, NOINIT, 
NAME = N'DatabaseName-Full Database Backup', SKIP, NOREWIND, NOUNLOAD, COMPRESSION, STATS = 10 
GO 

USE [master] 

RESTORE DATABASE [DatabaseName_Test] FROM 
DISK = N'D:\SQLSERVER_Installation\setup\MSSQL12.SQLSERVER2014\MSSQL\Backup\DatabaseName.bak' 
WITH FILE = 2, 
MOVE N'DatabaseName' TO N'D:\SQLSERVER_Installation\setup\MSSQL12.SQLSERVER2014\MSSQL\DATA\DatabaseName_test.mdf', 
MOVE N'DatabaseName_log' TO N'D:\SQLSERVER_Installation\setup\MSSQL12.SQLSERVER2014\MSSQL\DATA\DatabaseName_test_log.ldf', NOUNLOAD, STATS = 5 

GO 
+0

这有帮助,因为?如果你想说OP应该改变数据库名称而不是在原始数据库上进行恢复,请将其写入答案本身 –

+0

@ Sreenu131我这样做了,但是使用接口而不是查询。并抛出相同的消息,指出由于数据库正在使用而无法恢复。我不想碰它,因为我担心活db会重新恢复。 –