电脑断电导致日志文件损坏或者只有mdf还原数据解决

来源:互联网 发布:java项目如何打war包 编辑:程序博客网 时间:2024/04/29 14:56

问题原因:原因是数据库关闭时存在打开的事务/用户,该数据库没有检查点或者该数据库是只读的。如果事务日志文件被手动删除或者由于硬件或环境问题而丢失,则可能出现此错误。

处理办法:

一、把分离之前的日志文件也复制过来一齐附加嘛
从错误提示看, 应该是你的日志文件中还包括有用的数据, 这些数据还没有正确写回数据文件, 导致附加失败.

二、这种情况最好能找回之前的日志文件, 如果找不到, 应急的方法是新建一个数据库, 将数据库设置为 offline, 然后用附加失败的数据文件替换掉新建库的数据文件, 然后将数据库设置为应急恢复模式, 这样一般就能读数据了
ALTER DATABASE DB_name SET EMERGENCY

数据库可以读之后, 你可以尝试再将其设置为 ONLINE 模式, 如果能成功, 那再 DBCC CHECKDB 一次, 确认没有问题
如果无法ONLINE, 那么你大概就只好新建库, 然后把应急模式的库的数据导到新建的库了

特别说明:应该使用压缩(shrinking)的办法来处理。


使用SSMS数据导入或者复制

使用数据库 导出数据-> 选择相应的表  导入导出向导,在“选择源表和源视图” 页,在导入导出的表打勾之后点击编辑映像,选择“启用标识列插入”即可

如果目标数据库表有约束,可以先禁用约束

alter table  t1 check constraint all

.....其他表

然后再启用

alter table  t1 nocheck constraint all

...其他表

0 0
原创粉丝点击