1.还原数据库时出现错误:
(1)出现错误的原因:
有一个数据库HIMS,很早之前就已经删除了,但是只在本地留下一个备份,该备份路径是\'D:\新建文件夹\',名字叫HIMS,现在想还原这个数据库,于是在本地建立一个数据库,名字叫HIMS,数据文件HIMS_Data.mdf和日志文件HIMS_Log.ldf都在路径\'D:\software\Microsoft SQL Server\MSSQL\Data\'下,然后通过企业管理器进行还原,结果出现错误:
设备激活错误。物理文件名\'D:\software\Microsoft SQL Server\MSSQL\Data\HIMS_Data.mdf\' 可能有误。
文件 \'HIMS_Data\' 无法还原为\'D:\software\Microsoft SQL Server\MSSQL\Data\HIMS_Data.mdf\' 。请使用 WITH MOVE 选项来标识该文件的有效位置。
设备激活错误。物理文件名 名\'D:\software\Microsoft SQL Server\MSSQL\Data\HIMS_Log.ldf\' 可能有误。
文件 \'HIMS_Log\' 无法还原为名\'D:\software\Microsoft SQL Server\MSSQL\Data\HIMS_Log.ldf\' 。请使用 WITH MOVE 选项来标识该文件的有效位置。
RESTORE DATABASE 操作异常终止。
(2)解决办法:
用查询分析器,在master数据库下执行语句(如果提示数据库正在使用的错误信息,请把企业管理器和查询分析器都关闭后,在重新打开查询分析器):
restore filelistonly from disk = \'D:\新建文件夹\HIMS\'
查询结果如下:
------------------------------------------------------------------------------------------------------------------------
LogicalName PhysicalName Type FileGroupName Size
------------------------------------------------------------------------------------------------------------------------
1 HIMS C:\Program Files\Microsoft SQL Server\MSSQL\data\HIMS.mdf D PRIMARY 1048576
2 HIMS_log C:\Program Files\Microsoft SQL Server\MSSQL\data\HIMS_log.LDF L NULL 516096
------------------------------------------------------------------------------------------------------------------------
这时要获取字段 LogicalName的值,然后执行语句
restore database HIMS from disk = \'D:\新建文件夹\HIMS\' with
move \'HIMS\' to \'D:\software\Microsoft SQL Server\MSSQL\Data\HIMS_Data.mdf\',
move \'HIMS_Log\' to \'D:\software\Microsoft SQL Server\MSSQL\Data\HIMS_Log.ldf\'
如果数据库不同名字则执行语句
restore database HIMS from disk = \'D:\新建文件夹\HIMS\' with
move \'HIMS\' to \'D:\software\Microsoft SQL Server\MSSQL\Data\HIMS_Data.mdf\',
move \'HIMS_Log\' to \'D:\software\Microsoft SQL Server\MSSQL\Data\HIMS_Log.ldf\',
replace
如果出现信息
已处理 120 页,这些页属于数据库 \'HIMS\' 的文件 \'HIMS\'(位于文件 1 上)。
已处理 1 页,这些页属于数据库 \'HIMS\' 的文件 \'HIMS_log\'(位于文件 1 上)。
RESTORE DATABASE 操作成功地处理了 121 页,花费了 0.164 秒(6.006 MB/秒)。
表示还原数据库成功