新建一同名数据库(文件名,文件组都和原来的一样),然后停止数据库服务,用原来文件替换新建的数据库文件,启动数据库,该数据库被设未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 ('数据库名')看看有没有错误如果上面还是不行,试试吧数据库设为紧急模式,应该可以看到数据了,在把数据导出到一个新的数据库
有个比较奇怪的问题: mdf 22.6M ldf 33.1M mdf<ldf 不正常.
正常的,你可以只附加MDF文件用上面诸位出的方法,不附加日志文件,看会不会报错
新建一同名数据库(文件名,文件组都和原来的一样),然后停止数据库服务,用原来文件替换新建的数据库文件,启动数据库,该数据库被设未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 ('数据库名')看看有没有错误
@filename1 = N'c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs.mdf',
@filename2 = N'c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs_log.ldf'试试 看看什么提示出错
设备激活错误。物理文件名 'f:\database\fdzz1204_Data.ldf' 可能有误。
Location: recovery.c:1996
Expression: curr->log_length > 0
SPID: 54
Process ID: 748连接中断
未能打开新数据库 'databasename'。CREATE DATABASE 将终止。
设备激活错误。物理文件名 'E:\fdzz\database\fdzz1204_Log.LDF' 可能有误。
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 ('数据库名')看看有没有错误如果上面还是不行,试试吧数据库设为紧急模式,应该可以看到数据了,在把数据导出到一个新的数据库
mdf 22.6M
ldf 33.1M
mdf<ldf
不正常.
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 ('数据库名')看看有没有错误