Sql Server 逻辑文件 ‘‘ 不是数据库 ‘‘ 的一部分。请使用 RESTORE FILELISTONLY 来列出逻辑文件名。

想把'd:\AdventureWorks2008R2-Full Database Backup.bak'还原到‘D:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA’

结果出现‘Sql Server 逻辑文件 '' 不是数据库 '' 的一部分。请使用 RESTORE FILELISTONLY 来列出逻辑文件名。’

用restore filelistonly from disk='d:\AdventureWorks2008R2-Full Database Backup.bak'

显示结果如下

再运行  RESTORE DATABASE AdventureWorks2008R2
   FROM disk='d:\AdventureWorks2008R2-Full Database Backup.bak'
   WITH NORECOVERY, 
      MOVE 'AdventureWorks2008R2_Data' TO 
'D:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Data\NewAdvWorks2008R2.mdf', 
      MOVE 'AdventureWorks2008R2_Log' 
TO 'D:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Data\NewAdvWorks2008R2.ldf'


RESTORE LOG AdventureWorks2008R2
   FROM disk='d:\AdventureWorks2008R2-Full Database Backup.bak'
   WITH RECOVERY

想把原来在安装 在C盘的数据库,还原到D盘下;

结果显示数据库 "AdventureWorks2008R2" 不存在。RESTORE 只能在还原主文件的完整备份或文件备份时创建数据库。

立马检查数据库路径。结果我发现我的实例名被我改过了。  比默认的实例名多了一个P,

于是改为如下

 

RESTORE DATABASE AdventureWorks2008R2
   FROM disk='d:\AdventureWorks2008R2-Full Database Backup.bak'
   WITH NORECOVERY, 
      MOVE 'AdventureWorks2008R2_Data'   ---用restore filelistonly from disk='d:\AdventureWorks2008R2-Full Database                                                                                  ---Backup.bak'查得

   TO 
'd:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVERP\MSSQL\Data\AdvWorks2008R2.mdf'
      MOVE 'AdventureWorks2008R2_Log'    ---方法同上
TO 'd:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVERP\MSSQL\Data\AdvWorks2008R2.ldf'
RESTORE LOG AdventureWorks2008R2
   FROM disk='d:\AdventureWorks2008R2-Full Database Backup.bak'
   WITH RECOVERY

 

总结: 如果还原数据时,存放数据库的目录跟保存时不一致时要用到

restore filelistonly from disk='XXXXX.bak' 查看原数据库的路径信息和逻辑名

然后用

 

RESTORE DATABASE 数据库逻辑名
   FROM disk='备份源的文件.bak'
   WITH NORECOVERY, 
      MOVE  数据库数据文件逻辑名      TO  目标路径及文件名,文件名可以不同,文件名不同时表示还原时同时改了文件名
 
      MOVE '数据库日志文件逻辑名' 
TO    目标路径及文件名,文件名可以不同,文件名不同时表示还原时同时改了文件名


RESTORE LOG  数据库逻辑名   --还原日志文件
   FROM disk=''备份源的文件.bak'
   WITH RECOVERY

 

 


版权声明:本文为qq_25439957原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。