可能你的日志文件与数据库文件对不上,试试以下方法:无数据库日志文件恢复数据库方法 数据库日志文件的误删或别的原因引起数据库日志的损坏 1.新建一个同名的数据库 2.再停掉sql server(注意不要分离数据库) 3.用原数据库的数据文件覆盖掉这个新建的数据库 4.再重启sql server 5.此时打开企业管理器时会出现置疑,先不管,执行下面的语句(注意修改其中的数据库名) 6.完成后一般就可以访问数据库中的数据了,这时,数据库本身一般还要问题,解决办法是,利用数据库的脚本创建一个新的数据库,并将数据导进去就行了. USE MASTER GO SP_CONFIGURE 'ALLOW UPDATES',1 RECONFIGURE WITH OVERRIDE GO UPDATE SYSDATABASES SET STATUS =32768 WHERE NAME='置疑的数据库名' Go sp_dboption '置疑的数据库名', 'single user', 'true' Go DBCC CHECKDB('置疑的数据库名') Go update sysdatabases set status =28 where name='置疑的数据库名' Go sp_configure 'allow updates', 0 reconfigure with override Go sp_dboption '置疑的数据库名', 'single user', 'false' Go
例:
dbcc shrinkfile(XXX_Log,1)
例:
exec sp_dboption XXX,'trunc. log on chkpt.',true
1.新建一个同名的数据库 2.再停掉sql server(注意不要分离数据库) 3.用原数据库的数据文件覆盖掉这个新建的数据库 4.再重启sql server 5.此时打开企业管理器时会出现置疑,先不管,执行下面的语句(注意修改其中的数据库名) 6.完成后一般就可以访问数据库中的数据了,这时,数据库本身一般还要问题,解决办法是,利用数据库的脚本创建一个新的数据库,并将数据导进去就行了. USE MASTER
GO SP_CONFIGURE 'ALLOW UPDATES',1 RECONFIGURE WITH OVERRIDE
GO UPDATE SYSDATABASES SET STATUS =32768 WHERE NAME='置疑的数据库名'
Go sp_dboption '置疑的数据库名', 'single user', 'true'
Go DBCC CHECKDB('置疑的数据库名')
Go update sysdatabases set status =28 where name='置疑的数据库名'
Go sp_configure 'allow updates', 0 reconfigure with override
Go sp_dboption '置疑的数据库名', 'single user', 'false'
Go
只能在另一个空间足够大(》5G)的分区还原,然后压缩后再拷贝回来
既然是保存SQL Server数据库的分区,就弄大一点嘛:)