"附加数据库"时提示无"*.ldf"文件,用同数据库名的*.ldf文件代替也不行
2009-09-21 16:44
453 查看
"附加数据库"时提示无"*.ldf"文件,用同数据库名的*.ldf文件代替也不行。解决办法如下:
Use Master
Go
sp_configure 'allow updates', 1
reconfigure with override
Go
然后
update sysdatabases set status = 32768 where name = '<db_name>'
现在,重新建立一个log文件(我试过但无法成功,不知高手有何方法)。
先把SQL Server 重新启动一下,然后检查你的数据库吧。
先设置成单用户模式,然后做dbcc
sp_dboption '<db_name>', 'single user', 'true'
DBCC CHECKDB('<db_name>')
把数据库状态改回去了,记得别忘了把系统表的修改选项关掉。
update sysdatabases set status = 28 where name = '<db_name>' --当然你的数据库状态可能不是这个,自己改为合适的值吧。也可以用sp_resetstatus
go
sp_configure 'allow updates', 0
reconfigure with override
如果无法成功创建日志文件,也没有关系,使用以上方法后,看是否已恢复数据库,应该能成功的。关闭SQL SERVER,然后重启,观察一下数据库状态是否正常,如果正常,一切万事大吉,如果数据库处于置疑状态。重新上面的步骤,注意将数据库名称更改为其他名字,恢复后不要关闭SQL SERVER,然后新建一个与原来数据库名称一样的数据库,然后耐心的将恢复得到的数据库中所有的表、视图、函数、存储过程(不包括系统内部的),复制到新建的数据库,要有耐心,特别要注意有相关性的表、视图、函数、存储过程等的复制先后次序,否则会复制失败的。
上面的方法是万不得已才使用的。我在恢复公司内的数据库时,最后就是采用这种方法才最后成功的。希望对你有所帮助。
我在上面已经讲过,如果重启后数据库状态为"置疑",可以重新运用你上面恢复数据库的办法,要使用其他的数据库名称,使数据库处于紧急处理状态(32768 )。然后,不要重启,新建一个数据库,名称是你原来的数据库名(linjudy)。最后,通过导入数据(在新数据库上)或导出数据(在恢复的数据库上)功能,进行两个数据库的数据复制,可以一次进行多个数据和视图的导入或导出,但要注意相关联的表或视图导入或导出的先后次序,否则会出错的。如果不知道哪些表或视图有关联,可以一部分一部分的进行,如果出错就缩小进行的范围,要有耐心。导入或导出函数和存储过程时,要选择导入或导出方法的第三项,在下一步,特别要注意不要选择相关性,否则很容易导致错误,你也应一部分一部分的进行,不要一次全部完成。我想这样一定可以解决你的问题的,这是我的亲身体验。
先新建了linjudy数据库/将sql停止后覆盖了mdf文件并删除了ldf文件再使用如下方法操作
Use Master
Go
sp_configure 'allow updates', 1
reconfigure with override
Go
update sysdatabases set status = 32768 where name = 'linjudy'
重启sql后在运行,发现linjudy数据库可以正常打开了,立即查看原有的数据有了,在新建了数据库导出所有表,成功。
重启sql后linjudy库变为"紧急状态"但可以通过“导出数据”导出数据至其它数据库。
至此数据恢复成功,数据是否可以用我没有试。
以后大家恢复时可以用"天马行空"网友的方法,并且在重启sql时可以看一下恢复库的状态如果是"紧急状态"可以通过导出数据导出至其它数据库。
Use Master
Go
sp_configure 'allow updates', 1
reconfigure with override
Go
然后
update sysdatabases set status = 32768 where name = '<db_name>'
现在,重新建立一个log文件(我试过但无法成功,不知高手有何方法)。
先把SQL Server 重新启动一下,然后检查你的数据库吧。
先设置成单用户模式,然后做dbcc
sp_dboption '<db_name>', 'single user', 'true'
DBCC CHECKDB('<db_name>')
把数据库状态改回去了,记得别忘了把系统表的修改选项关掉。
update sysdatabases set status = 28 where name = '<db_name>' --当然你的数据库状态可能不是这个,自己改为合适的值吧。也可以用sp_resetstatus
go
sp_configure 'allow updates', 0
reconfigure with override
如果无法成功创建日志文件,也没有关系,使用以上方法后,看是否已恢复数据库,应该能成功的。关闭SQL SERVER,然后重启,观察一下数据库状态是否正常,如果正常,一切万事大吉,如果数据库处于置疑状态。重新上面的步骤,注意将数据库名称更改为其他名字,恢复后不要关闭SQL SERVER,然后新建一个与原来数据库名称一样的数据库,然后耐心的将恢复得到的数据库中所有的表、视图、函数、存储过程(不包括系统内部的),复制到新建的数据库,要有耐心,特别要注意有相关性的表、视图、函数、存储过程等的复制先后次序,否则会复制失败的。
上面的方法是万不得已才使用的。我在恢复公司内的数据库时,最后就是采用这种方法才最后成功的。希望对你有所帮助。
我在上面已经讲过,如果重启后数据库状态为"置疑",可以重新运用你上面恢复数据库的办法,要使用其他的数据库名称,使数据库处于紧急处理状态(32768 )。然后,不要重启,新建一个数据库,名称是你原来的数据库名(linjudy)。最后,通过导入数据(在新数据库上)或导出数据(在恢复的数据库上)功能,进行两个数据库的数据复制,可以一次进行多个数据和视图的导入或导出,但要注意相关联的表或视图导入或导出的先后次序,否则会出错的。如果不知道哪些表或视图有关联,可以一部分一部分的进行,如果出错就缩小进行的范围,要有耐心。导入或导出函数和存储过程时,要选择导入或导出方法的第三项,在下一步,特别要注意不要选择相关性,否则很容易导致错误,你也应一部分一部分的进行,不要一次全部完成。我想这样一定可以解决你的问题的,这是我的亲身体验。
先新建了linjudy数据库/将sql停止后覆盖了mdf文件并删除了ldf文件再使用如下方法操作
Use Master
Go
sp_configure 'allow updates', 1
reconfigure with override
Go
update sysdatabases set status = 32768 where name = 'linjudy'
重启sql后在运行,发现linjudy数据库可以正常打开了,立即查看原有的数据有了,在新建了数据库导出所有表,成功。
重启sql后linjudy库变为"紧急状态"但可以通过“导出数据”导出数据至其它数据库。
至此数据恢复成功,数据是否可以用我没有试。
以后大家恢复时可以用"天马行空"网友的方法,并且在重启sql时可以看一下恢复库的状态如果是"紧急状态"可以通过导出数据导出至其它数据库。
相关文章推荐
- SQL数据库无法附加,提示 MDF" 已压缩,但未驻留在只读数据库或文件组中。必须将此文件解压缩
- 附加数据库出现"所指定的文件不是有效的SQL Server数据库文件"
- WORD转PDF时提示"PDFMaker文件遗失"的解决办法
- 错误日志——Sql附加数据库无法打开物理文件“xxx.mdf"。操作系统错误 5:"5(拒绝访问。)"。 (Microsoft SQL Server,错误: 5120)”
- win 7 删除了用户文件夹后出现的&quot;你已使用临时配置文件登录&quot;提示的解决方法
- SQL 2005附加数据库为"只读"的解决方法
- 怎么在SQL2000里面添加从别的地方备份过来的数据啊,附加数据库的时候它提示不是正确的MDF文件
- 安装数据库提示"请确保当前用户具有访问临时文件的权限"解决方法
- 附加数据库 无法打开物理文件"" 操作系统错误 2: ( 系统找不到指定的文件.)错误 5120(重命名SQLServer数据库的方法)
- SQL数据库无法附加,提示 MDF" 已压缩,但未驻留在只读数据库或文件组中。必须将此文件解压缩
- Excel做数据库时,删除数据时提示: "该 ISAM 不支持在链接表中删除数据"
- php 解决 json_encode 数据进入数据库 把"\" 去掉的问题
- DELPHI7开发Access数据库提示的"标准表达式中数据类型不匹配"
- SQL2000附加数据库时提示"错误602;未能在sysindexes中找到数据库ID7中对象ID1的索引ID1对应的行
- SQL数据库无法附加,提示 MDF" 已压缩,但未驻留在只读数据库或文件组中。必须将此文件解压缩。
- 还原数据库时发生错误,提示'逻辑文件 'XX' 不是数据库 'XX' 的一部分"之类的错误
- vs上出现"未能加载项目文件,根级别上的数据无效.Microsoft.WinFx.targets"的解决方法
- WORD转PDF时提示"PDFMaker文件遗失"的解决办法
- SQL数据库无法附加,提示 MDF" 已压缩,但未驻留在只读数据库或文件组中.必须将此文件解压缩
- ACCESS"数据库提示它已经被别的用户以独占方式打开,或没有查看数据的权限"的问题