如何从.bak文件恢复数据库?

时间:2014-02-18 15:22:38

标签: sql-server restore

我的.bak文件是另一个本地服务器。

我尝试了太多不同的剧本但无法取得成功。

我试过语法

RESTORE FILELISTONLY FROM DISK='D:\ERPNewtesting-12022014.bak' 

从上面的查询中获取Logicalname并在以下查询中使用

RESTORE DATABASE Test FROM DISK='ERPNewtesting-12022014.bak'
WITH 
   MOVE 'ERPAgrotechBeta' TO 'D:\Pragnesh\Test.mdf',
   MOVE 'ERPAgrotechBeta_log' TO 'D:\Pragnesh\Test_log.ldf',
   REPLACE,
STATS=10

执行上述查询后,生成错误。

  

Msg 3201,Level 16,State 2,Line 3
  无法打开备份设备'C:\ Program Files(x86)\ Microsoft SQL Server \ MSSQL11.MSSQLSERVER \ MSSQL \ Backup \ ERPNewtesting-12022014.bak'。操作系统错误2(系统找不到指定的文件。)   Msg 3013,Level 16,State 1,Line 3
  RESTORE DATABASE异常终止。

请以这种方式帮助我

4 个答案:

答案 0 :(得分:3)

听起来您已在一台服务器上备份了数据库,并且您希望将其还原到另一台服务器。这是对的吗?

您的备份文件D:\ERPNewtesting-12022014.bak在服务器A上,对吗?它需要在服务器B上运行SQL Server服务的帐户可访问。可以想到一些快速选项:

  1. 在服务器A上创建共享,将备份文件移动到相应的共享文件夹中。
  2. 将备份文件移动到现有的UNC路径。
  3. 将备份文件移至服务器B.
  4. 然后继续还原。如果您选择选项1或2,它将是这样的:

    RESTORE DATABASE Test 
    FROM DISK='\\SomeServer\Shared Folder\ERPNewtesting-12022014.bak'
    WITH 
        MOVE 'ERPAgrotechBeta' TO 'D:\Pragnesh\Test.mdf',
        MOVE 'ERPAgrotechBeta_log' TO 'D:\Pragnesh\Test_log.ldf',
    REPLACE,
    STATS=10
    

    如果您选择选项3,它将如下所示:

    RESTORE DATABASE Test 
    FROM DISK='D:\Path on Server B\ERPNewtesting-12022014.bak'
    WITH 
        MOVE 'ERPAgrotechBeta' TO 'D:\Pragnesh\Test.mdf',
        MOVE 'ERPAgrotechBeta_log' TO 'D:\Pragnesh\Test_log.ldf',
    REPLACE,
    STATS=10
    

答案 1 :(得分:1)

您只需在此指定.bak文件的“相对”路径:

RESTORE DATABASE Test FROM DISK='ERPNewtesting-12022014.bak'

并且很明显,从错误消息中,该文件不在此指向的位置。

  

无法打开备份设备'C:\ Program Files(x86)\ Microsoft SQL Server \ MSSQL11.MSSQLSERVER \ MSSQL \ Backup \ ERPNewtesting-12022014.bak'。操作系统错误2(系统找不到指定的文件。)

您需要在此处为​​.bak文件指定完整,完整的路径

RESTORE DATABASE Test FROM DISK='D:\ERPNewtesting-12022014.bak'
                                *****

如果您实际尝试在此处指定完整路径,以便SQL Server可以找到它的恢复源 - 我总是肯定它会工作......

答案 2 :(得分:1)

仅供参考:从SqlServer管理工作室可以选择从UI恢复数据库。它允许您浏览以查找源bak文件。打开的浏览窗口位于数据库服务器计算机上,而不是运行管理工作室的计算机。

答案 3 :(得分:0)

主要是由于供股问题: -

按照以下2个步骤解决: -

  1. 让服务器在默认目录上进行备份,并将文件复制到所需的文件夹中。我做到了。

  2. 为备份目录提供与所需文件夹相同的权限。

  3. OR

    您可以将服务帐户添加到进行备份的计算机的本地管理员组