2017-02-20 113 views
0

我有一个SQL服务器数据备份大小超过20 GB。我的数据库在E驱动器上有足够的空间,但我的SQL软件安装在内存较低的C驱动器中。在这种情况下,我如何将备份恢复到E盘。20GB SQL Server数据库备份resore

回答

0

第1步:分离DB

USE MASTER; 
GO 
ALTER DATABASE DBName 
SET SINGLE_USER 
WITH ROLLBACK IMMEDIATE; 
GO 

- 拆离DB

EXEC MASTER.dbo.sp_detach_db @dbname = N'DBName' 
GO 

第2步:
现在将文件从C盘移动到E盘。您现在可以使用E驱动器重新附加文件。

+0

我的数据库物理路径是在E盘。我想恢复数据库20GB,而我的C盘只有9 GB – Keulraesik

+0

请检查一些解决方案,其http://dba.stackexchange.com/questions/34248/restore-backup-fails-not-enough-disk-space –

0
USE MASTER; 
GO 
ALTER DATABASE DBName 
SET SINGLE_USER 
WITH ROLLBACK IMMEDIATE; 
GO 
-- Detach DB 
EXEC MASTER.dbo.sp_detach_db @dbname = N'DBName' 
GO 
+0

你可这两个答案,合并成一个 – TheGameiswar

+1

虽然这个代码片断是值得欢迎的,并可以提供一些帮助,这将是(// meta.stackexchange.com/q/114762)极大,如果它包括一个改进的解释] *如何* *为什么*这解决了这个问题。请记住,你正在为将来的读者回答这个问题,而不仅仅是现在问的人!请编辑您的答案以添加解释,并指出适用的限制和假设。 –

0

您可以通过SQL Server Management Studio恢复数据库。 同时恢复,您可以指定MDFLDF文件所在位置到E:驱动器。

要指定数据库文件的新位置,请选择Files 页面,然后单击将所有文件重新定位到文件夹。为数据文件夹的新 位置和日志文件文件夹

THIS MIGHT HELP

0

步骤:

ALTER DATABASE database_name SET OFFLINE; 

移动的文件或文件到新的位置。 对于每个移动的文件,运行以下语句。

ALTER DATABASE database_name MODIFY FILE (NAME = logical_name, FILENAME = 'new_path\os_file_name'); 

运行以下语句。

ALTER DATABASE database_name SET ONLINE; 

通过运行以下查询验证文件更改。

SELECT name, physical_name AS CurrentLocation, state_desc 
FROM sys.master_files 
WHERE database_id = DB_ID(N'<database_name>'); 

更多详情,请通过url

相关问题