如何在SQL Server 2008 R2中还原.bak文件

时间:2012-12-26 13:04:00

标签: sql sql-server-2008-r2

我有一个代码博客,但发生了一个问题。在这里,我的备份文件是ISBANK.bak,数据库名称是新的数据库名称。它不包含任何东西。我想将.bak文件的内容添加到新数据库中。

RESTORE DATABASE [DBName]
FROM DISK = 'D:\ISBANK.bak'
WITH REPLACE,
MOVE 'DBName' TO 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQL2008RR2\MSSQL\DATA\DBName.mdf',
MOVE 'DBName' TO 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQL2008RR2\MSSQL\DATA\DBName.ldf'

我收到了这些错误:

  

Msg 5133,Level 16,State 1,Line 1
  文件“C:\ Program Files \ Microsoft SQL Server \ MSSQL10.SQLSRV2008 \ MSSQL \ DATA \ OBERNET_DENEME.mdf”的目录查找失败,   操作系统错误3(无法检索此错误的文本。   原因:15105)。
  Msg 3156,Level 16,State 3,Line 1
  文件'OCEAN'无法还原到'C:\ Program Files \ Microsoft SQL Server \ MSSQL10.SQLSRV2008 \ MSSQL \ DATA \ OBERNET_DENEME.mdf'。使用WITH   移动以识别文件的有效位置   Msg 5133,Level 16,State 1,Line 1
  文件“C:\ Program Files \ Microsoft SQL Server \ MSSQL10.SQLSRV2008 \ MSSQL \ DATA \ OBERNET_DENEME.ldf”的目录查找失败,   操作系统错误3(无法检索此错误的文本。   原因:15105)。
  Msg 3156,Level 16,State 3,Line 1
  文件'OCEAN_log'无法还原到'C:\ Program Files \ Microsoft SQL Server \ MSSQL10.SQLSRV2008 \ MSSQL \ DATA \ OBERNET_DENEME.ldf'。使用WITH   移动以识别文件的有效位置   消息3119,级别16,状态1,行1   在规划RESTORE语句时发现了问题。以前的消息提供了详细信息   消息3013,级别16,状态1,行1   RESTORE DATABASE异常终止。

2 个答案:

答案 0 :(得分:3)

修改

删除WITH REPLACE

RESTORE DATABASE my_new_database FROM disk = 'E:\path_to_bak_file\database_name_634182143083281212.bak'
WITH
   MOVE 'the logical name from previous operation check row 1' TO 'E:\path_to_sql2008_file_onyour_machine\my_new_database.mdf',
   MOVE 'the logical name from previous operation check row 2' TO 'E:\path_to_sql2008_file_onyour_machine\my_new_database_log.ldf'
GO

您还可以使用SQL Server Management Studio(SSMS)中提供的还原实用程序。这是一个循序渐进的过程,它允许您选择.bak文件并将其恢复为新数据库(您可以为其命名)。

Fire SQL Server Management Studio,以管理员身份连接到服务器,右键单击数据库节点并选择还原。

enter image description here

答案 1 :(得分:0)

您已使用默认路径进行数据库还原。

这对您有用。

enter image description here