首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何恢复到SQL Server中的其他数据库?

如何恢复到SQL Server中的其他数据库?
EN

Stack Overflow用户
提问于 2011-06-07 23:04:11
回答 10查看 415K关注 0票数 241

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

我已经看到了这个问题:Restore SQL Server database in same pc with different name,建议的步骤是重命名原始数据库,但我没有这个选择,因为我在生产服务器中,我不能真正这么做。

有没有其他方法可以将它恢复到Database2,或者至少,我如何浏览该.bak文件的数据?

谢谢。

ps:上面链接的第二个答案看起来很有希望,但它一直以错误结束:

还原文件列表正在异常终止

EN

回答 10

Stack Overflow用户

回答已采纳

发布于 2011-06-07 23:10:29

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

查看备份文件的内容:

代码语言:javascript
复制
RESTORE FILELISTONLY FROM DISK='c:\your.bak'

从结果中记下.mdf和.ldf的逻辑名称,然后:

代码语言:javascript
复制
RESTORE DATABASE MyTempCopy FROM DISK='c:\your.bak'
WITH 
   MOVE 'LogicalNameForTheMDF' TO 'c:\MyTempCopy.mdf',
   MOVE 'LogicalNameForTheLDF' TO 'c:\MyTempCopy_log.ldf'

这将创建包含your.bak内容的数据库MyTempCopy

(不要创建MyTempCopy,它是在还原过程中创建的)

示例(将名为'creditline‘的数据库的备份恢复到'MyTempCopy'):

代码语言:javascript
复制
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).
票数 327
EN

Stack Overflow用户

发布于 2012-12-11 03:25:27

SQL Server2008 R2:

对于要“还原:从不同数据库的备份中还原”的现有数据库,请执行以下步骤:

  1. 从工具栏中,单击活动监视器按钮。
  2. 单击进程。按要还原的数据库进行筛选。右键单击每个进程并选择"kill process".
  3. Right“单击要恢复的数据库,然后从Database.
  4. Select中选择Tasks--> restore --> "From Device:”单选按钮,终止所有正在运行的进程。
  5. select ...并选择要从中还原的另一个数据库的备份文件。通过选中备份集左侧的复选框,选择要还原的备份集。
  6. 选择覆盖现有数据库(使用REPLACE)
  7. Important:,将“还原为”行数据文件名更改为要覆盖的现有数据库的文件名,或仅为其指定新名称。
  8. 对日志文件名执行相同的操作。<

>H222

  1. 从活动监视器屏幕验证未衍生任何新进程。如果是,则将其杀死。
  2. 单击确定。
票数 69
EN

Stack Overflow用户

发布于 2014-01-16 10:22:01

对于SQL Server2012,使用Sql Server Management Studio,我发现微软页面中的这些步骤对于恢复到不同的数据库文件和名称很有用:(参考:http://technet.microsoft.com/en-us/library/ms175510.aspx)

注意:步骤4和7的设置非常重要,以免覆盖现有数据库。

将数据库恢复到新位置,并可以选择重命名数据库

数据库连接到相应的SQL Server数据库引擎实例,然后在对象资源管理器中,单击服务器名称以展开服务器tree.

  • Right-click Databases,然后单击Restore 。此时将打开还原数据库对话框。
  1. 在一般信息页上,使用源部分可以指定要还原的备份集的源和位置。选择以下选项之一:

代码语言:javascript
复制
- **Database**
代码语言:javascript
复制
    - Select the database to restore from the drop-down list. The list contains only databases that have been backed up according to the   **msdb** backup history.

注意:如果备份来自另一台服务器,则目标服务器将没有指定数据库的备份历史记录信息。在这种情况下,选择设备以手动指定要还原的文件或设备。

代码语言:javascript
复制
- **Device**
代码语言:javascript
复制
    - Click the browse (...) button to open the **Select backup devices** dialog box. In the **Backup media type** box, select one of   the listed device types. To select one or more devices for the   **Backup media** box, click **Add**. After you add the devices you want to the **Backup media** list box, click **OK** to return to the   **General** page. In the **Source: Device: Database** list box, select the name of the database which should be restored.

备注此列表仅在选择设备时可用。只有在所选设备上具有备份的数据库才可用。

  1. 在Destination部分中,将使用要还原的数据库的名称自动填充数据库框。要更改数据库的名称,请在数据库框中输入新名称。
  2. 在Restore to框中,保留默认值To backup taken,或单击Timeline访问备份Timeline对话框,手动选择停止恢复操作的时间点。在Backup sets to restore网格中,选择要还原的备份。此网格显示可用于指定位置的备份。默认情况下,建议恢复计划。要覆盖建议的恢复计划,您可以更改网格中的选择。当早期备份为deselected.
  3. To指定数据库文件的新位置时,将自动取消选择依赖于早期备份恢复的备份,选择文件页,然后单击将所有文件重新定位到文件夹。为数据文件夹和日志文件夹提供新位置。或者,您可以保留相同的文件夹,只重命名数据库和日志文件名。
票数 56
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6267273

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档