设备激活错误,物理文件名'd:\program files\mssqle\....\....ldf'可能有误!

时间:2022-06-01 16:32:19
因为我的硬盘坏了,我只考出来一个mdf文件,ldf文件弄出来的不可用,
于是我换了块硬盘,从做了系统
然后试图用mdf文建恢复,发了贴字
有人告诉我没问题
http://expert.csdn.net/Expert/topic/1856/1856661.xml?temp=.3825647
下面的示例分离 pubs,然后将 pubs 中的一个文件附加到当前服务器。

EXEC sp_detach_db @dbname = 'pubs'
EXEC sp_attach_single_file_db @dbname = 'pubs', 
   @physname = 'c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs.mdf'


  
 
Top 
 
 回复人: pengdali(大力 V2.0) ( ) 信誉:419  2003-05-30 21:32:00  得分:0 
 
 
  或:

CREATE DATABASE 你的旧库名 
ON PRIMARY (FILENAME = 'c:\program files\microsoft sql server\mssql\data\你的旧库的文件.mdf')
FOR ATTACH
GO
  
 
可是还是报错设备激活错误,物理文件名'd:\program files\mssqle\....\....ldf'可能有误!
救命的,多少分都给

2 个解决方案

#1


d:\program files\mssqle\....\....ldf
--^^^^^^^^^^^^^^^^^^^^^^^^^这个路径存在吗??你先建立这个路径再试试

#2


或:

新建一同名数据库(文件名,文件组都和原来的一样),然后停止数据库服务,用原来文件替换新建的数

据库文件,启动数据库,该数据库被设未suspect

然后把数据库改成紧急模式:
sp_configure 'allow', 1
reconfigure with override
update sysdatabases set status = 32768 where name = '数据库名'

把LDF文件改名,再执行
DBCC REBUILD_LOG ('数据库名', 'E:\fdzz\database\fdzz1204_Log.LDF' )

恢复数据库紧急模式
update sysdatabases set status = 0 where name = '数据库名'
执行
restore database 数据库名 WITH RECOVERY
sp_configure 'allow', 0
reconfigure with override

然后用DBCC CHECKDB ('数据库名')看看有没有错误

如果上面还是不行,试试吧数据库设为紧急模式,应该可以看到数据了,在把数据导出到一个新的数据库

#1


d:\program files\mssqle\....\....ldf
--^^^^^^^^^^^^^^^^^^^^^^^^^这个路径存在吗??你先建立这个路径再试试

#2


或:

新建一同名数据库(文件名,文件组都和原来的一样),然后停止数据库服务,用原来文件替换新建的数

据库文件,启动数据库,该数据库被设未suspect

然后把数据库改成紧急模式:
sp_configure 'allow', 1
reconfigure with override
update sysdatabases set status = 32768 where name = '数据库名'

把LDF文件改名,再执行
DBCC REBUILD_LOG ('数据库名', 'E:\fdzz\database\fdzz1204_Log.LDF' )

恢复数据库紧急模式
update sysdatabases set status = 0 where name = '数据库名'
执行
restore database 数据库名 WITH RECOVERY
sp_configure 'allow', 0
reconfigure with override

然后用DBCC CHECKDB ('数据库名')看看有没有错误

如果上面还是不行,试试吧数据库设为紧急模式,应该可以看到数据了,在把数据导出到一个新的数据库