如何恢复到SQL Server中的不同数据库?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (3)
  • 关注 (0)
  • 查看 (168)

我有一个星期前的Database1的备份。备份每周在计划程序中完成,我得到一个.bak文件。现在我想摆弄一些数据,所以我需要将其恢复到不同的数据库 - Database2

我已经看到了这个问题:在不同名称的同一台电脑中恢复SQL Server数据库和建议的步骤是重命名原始分贝,但我没有这个选项,因为我在生产服务器,我真的不能做到这一点。

有没有其他的方式来恢复它Database2,或至少,我怎么浏览该.bak文件的数据?

谢谢。

ps:从上面的链接的第二个答案看起来很有希望,但它始终以错误终止:

Restore Filelist is terminating abnormally //恢复文件列表异常终止

提问于
用户回答回答于

实际上,它比还原到同一台服务器要简单一些。基本上,您只需遍历“还原数据库”选项。以下是您的教程:

http://www.tech republic.com/blog/window-on-windows/how-do-i-还原-a-sql-server-数据库到-a-a-新服务器/454

特别是因为这是一个非生产的恢复,您可以感到舒适,只要尝试它,而不担心细节太多。只需将SQL文件放在新服务器上所需的位置,并给它命名任何您想要的名称,您就可以使用了。

用户回答回答于

SQL Server 2008 R2:

对于您希望“从其他数据库的备份中还原”的现有数据库,请按照以下步骤操作:

  1. 从工具栏中,单击“Activity Monitor”按钮。
  2. 点击进程。按您想要恢复的数据库进行过滤。通过右键单击每个进程并选择“kill process”来终止所有正在运行的进程。
  3. 右键单击要恢复的数据库,然后选择“Tasks” - >“Restore” - >“From Database”。
  4. 选择“From Device:”单选按钮。
  5. 选择...,然后选择要从中恢复的其他数据库的备份文件。
  6. 通过选中备份集左侧的复选框,选择要从中恢复的备份集。
  7. 选择“Options”。
  8. 选择覆盖现有数据库(WITH REPLACE)重要:
  9. 将“Restore As”行数据文件名更改为您想要覆盖的现有数据库的文件名,或者给它一个新的名称。
  10. 对日志文件的文件名做同样的处理。
  11. 从活动监视器屏幕验证没有新的进程产生。如果是的话,终止进程。
  12. 点击OK。
用户回答回答于

您可以创建一个新的数据库,然后使用“恢复向导”启用覆盖选项或;

查看内容;

RESTORE FILELISTONLY FROM DISK='c:\your.bak'

注意结果中.mdf&.ldf的逻辑名称,然后;

RESTORE DATABASE MyTempCopy FROM DISK='c:\your.bak'
WITH 
   MOVE 'LogicalNameForTheMDF' TO 'c:\MyTempCopy.mdf',
   MOVE 'LogicalNameForTheLDF' TO 'c:\MyTempCopy_log.ldf'

MyTempCopy用your.bak中的内容创建数据库。

示例(将名为“creditline”的db的备份恢复为“MyTempCopy”;

RESTORE FILELISTONLY FROM DISK='e:\mssql\backup\creditline.bak'

>LogicalName
>--------------
>CreditLine
>CreditLine_log

RESTORE DATABASE MyTempCopy FROM DISK='e:\mssql\backup\creditline.bak'
WITH 
   MOVE 'CreditLine' TO 'e:\mssql\MyTempCopy.mdf',
   MOVE 'CreditLine_log' TO 'e:\mssql\MyTempCopy_log.ldf'

>RESTORE DATABASE successfully processed 186 pages in 0.010 seconds (144.970 MB/sec).

扫码关注云+社区

领取腾讯云代金券