从还原文件创建新数据库并更改主数据库文件位置

时间:2019-01-04 11:59:06

标签: sql sql-server database-restore

我有一个SQL Server 2008数据库(A),我想将其复制到新服务器上以用作先前状态(A_BKP)的副本。

我从https://docs.microsoft.com/en-us/sql/relational-databases/backup-restore/restore-a-database-to-a-new-location-sql-server?view=sql-server-2017

了解到

在更高版本中这是可能的,但我也想将目标文件从C:驱动器移至D:

使用SQL Server 2008可以做到这一点,我需要准备什么步骤来准备将数据库备份文件导入到D:驱动器。?

1 个答案:

答案 0 :(得分:1)

如果要先将数据库“移动”到另一台服务器,则需要分离数据库。 说明是:

  • 打开SSMS
  • 选择要移动的数据库。
  • 右键单击->任务->分离
  • 将显示“分离数据库”弹出窗口。
  • 在分离数据库之前,需要确保没有人连接到数据库。检查“消息”列。它会告诉您是否存在连接。如果存在连接,但仍要分离数据库,则可以单击“删除连接”复选框。
  • 按确定

现在您可以将数据库文件(MDF,LDF,FDF)移动到另一个位置。

要将数据库附加到新服务器:

  • 使用SSMS连接到新服务器
  • 右键单击数据库,然后单击附加
  • 按右中角的添加按钮。
  • 选择您移动的MDF(主数据库文件)文件,然后按OK。
  • 按确定。

如果要将数据库备份作为NEW数据库恢复到新服务器:

  • 使用SSMS连接到新服务器
  • 右键单击数据库,然后单击“还原数据库”
  • 单击“源”下方右上方的“设备”,然后添加备份文件
  • 如果要更改数据库名称,可以在“目标->数据库”部分进行更新。
  • 转到左上方的“文件”标签
  • 您可以在此处看到文件位置。如果您只想更改位置,则可以在“还原为”列上进行更新。
  • 按确定。

或使用以下脚本:

USE [master]
RESTORE DATABASE [A]
FROM  DISK = N'<yourbackuplocation\A_BKP.bak>' 
WITH  FILE = 1,  
MOVE N'A_Main' TO N'<new location for MAIN database file\<file name>.mdf>',  
MOVE N'A_Log' TO N'<new location for LOG database file\<file name>.ldf>',  
NOUNLOAD,  
STATS = 5
GO

如果要将数据库备份还原到新服务器到现有数据库:

ALTER DATABASE [A] SET SINGLE_USER WITH ROLLBACK IMMEDIATE
RESTORE DATABASE [A] 
    FROM  DISK = '<yourbackuplocation\A_BKP.bak>' WITH  FILE = 1,  
    MOVE N'A_Main' TO N'<new location for MAIN database file\<file name>.mdf>',  
    MOVE N'A_Log' TO N'<new location for LOG database file\<file name>.ldf>',  
    NOUNLOAD,  
    STATS = 5
ALTER DATABASE [A] SET MULTI_USER