我有一周前的Database1备份。在调度程序中每周进行备份,我得到一个.bak文件。现在我想要处理一些数据,所以我需要将其恢复到另一个数据库- Database2。
我看到过这个问题:在同一台pc上使用不同的名称恢复SQL Server数据库,建议步骤是重命名原始db,但我不在这个选项中,因为我在生产服务器中,我不能真正做到这一点。
是否有其他方法将其恢复到Database2,或者至少如何浏览该.bak文件的数据?
谢谢。
Ps:上面链接的第二个答案看起来很有希望,但它总是以错误告终:
恢复文件列表异常终止
对于SQL Server 2012,使用SQL Server Management Studio,我发现从微软页面恢复到不同的数据库文件和名称的这些步骤很有用:(参考:http://technet.microsoft.com/en-us/library/ms175510.aspx)
注意,为了不覆盖现有数据库,设置步骤4和7很重要。
To restore a database to a new location, and optionally rename the database
Connect to the appropriate instance of the SQL Server Database Engine, and then in Object Explorer, click the server name to expand
the server tree.
Right-click Databases, and then click Restore Database. The Restore Database dialog box opens.
On the General page, use the Source section to specify the source and location of the backup sets to restore. Select one of the
following options:
Database
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.
Note If the backup is taken from a different server, the destination server will not have the backup history information
for the specified database. In this case, select Device to manually
specify the file or device to restore.
Device
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.
Note This list is only available when Device is selected. Only databases that have backups on the selected device will
be available.
In the Destination section, the Database box is automatically populated with the name of the database to be restored.
To change the name of the database, enter the new name in the
Database box.
In the Restore to box, leave the default as To the last backup taken or click on Timeline to access the Backup
Timeline dialog box to manually select a point in time to stop the
recovery action.
In the Backup sets to restore grid, select the backups to restore. This grid displays the backups available for the specified
location. By default, a recovery plan is suggested. To override the
suggested recovery plan, you can change the selections in the grid.
Backups that depend on the restoration of an earlier backup are
automatically deselected when the earlier backup is deselected.
To specify the new location of the database files, select the Files page, and then click Relocate all files to folder. Provide a new location for the Data file folder and Log file
folder. Alternatively you can keep the same folders and just rename the database and log file names.
您可以创建一个新的数据库,然后使用“恢复向导”启用覆盖选项或:
查看备份文件内容:
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'
这将使用your.bak的内容创建数据库MyTempCopy。
(不要创建MyTempCopy,它是在恢复过程中创建的)
示例(恢复名为'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).