一、概述
RESTORE ... WITH MOVE 选项允许您恢复数据库,但也可以指定数据库文件(mdf 和 ldf)的新位置 。如果您要从该数据库的备份还原现有数据库,则不需要这样做,但如果您要从具有不同文件位置的不同实例还原数据库,则可能需要使用此选项 。
RESTORE ... WITH MOVE 选项将让您确定数据库文件的名称以及创建这些文件的位置 。在使用此选项之前,您需要知道这些文件的逻辑名称以及 SQL Server 的位置 。
如果已经存在另一个使用您尝试还原的相同文件名的数据库并且该数据库处于联机状态,则还原将失败 。但是如果数据库由于某种原因不在线并且文件没有打开,如果你不使用 WITH MOVE 选项,恢复将覆盖这些文件,所以要小心你不要意外覆盖好的数据库文件 。
此外,当使用 WITH MOVE 选项时,您需要确保用于 SQL Server 引擎的帐户有权在您指定的文件夹中创建这些文件 。
二、过程
2.1 T-SQL
确定备份内容
因此,您需要做的第一件事是确定文件的逻辑名称和物理位置 。这可以通过使用RESTORE FILELISTONLY命令来完成 。这将为您提供逻辑名称和物理名称 。
如下面的例子:
RESTORE FILELISTONLY FROM DISK = 'C:\AdventureWorks.BAK'GO
输出结果:
值 - 第 1 行
值 - 第 2 行
逻辑名称
AdventureWorks_Data
AdventureWorks_Log
物理名称
C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\AdventureWorks_Data.mdf
C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\AdventureWorks_Log.ldf
类型
D
L
使用 MOVE 恢复完整备份
假设我们要恢复这个数据库,但我们希望将数据文件放在“G:\SQLData”文件夹中,将事务日志文件放在“H:\SQLLog”文件夹中 。该命令如下所示:
RESTORE DATABASE AdventureWorks FROM DISK = 'C:\AdventureWorks.BAK'WITH MOVE 'AdventureWorks_Data' TO 'G:\SQLData\AdventureWorks_Data.mdf',MOVE 'AdventureWorks_Log' TO 'H:\SQLLog\AdventureWorks_Log.ldf'GO
【将 SQL Server 数据库恢复到不同的文件名和位置】还原完整和事务日志备份 WITHMOVE 只需为第一次还原指定 WITH MOVE,因为此后数据库将处于“还原”状态 。第二次还原只会将内容写入正在使用的这个新位置 。
RESTORE DATABASE AdventureWorks FROM DISK = 'C:\AdventureWorks.BAK'WITH MOVE 'AdventureWorks_Data' TO 'G:\SQLData\AdventureWorks_Data.mdf',MOVE 'AdventureWorks_Log' TO 'H:\SQLLog\AdventureWorks_Log.ldf',NORECOVERYGORESTORE LOG AdventureWorks FROM DISK = 'C:\AdventureWorks.TRN'GO
2.2 SQL Server 管理工作室要使用 SSMS 进行还原,请执行以下操作,在还原的选项页面上,更改每个文件的“还原为:”的值,如下所示 。下面将还原到根文件夹,但您可以根据需要将它们更改为 G:\SQLData\ 和 H:\SQLLog\ 。
文章插图
推荐阅读
- sqlserver mdf文件恢复到数据库中
- 励志文言文
- 苹果手机怎样投屏 投屏技巧
- 代替home键:彭博社:iphone8将完全不同
- 电暖画日常如何保养
- 银戒指发黑了怎么才能变亮
- 2022年北京冬奥会将产生多少枚金牌
- 裤子补洞针法如何修补
- 风味茄子怎么做 风味茄子的做法
- 《房玄龄独收人物致幕府,与诸将密相申结 新唐书房玄龄传