sqlserver 2005 备份文件无法恢复
备份文件将近47G,由于突然停电,后来数据库显示正在恢复。
我进行了如下的操作,停止服务,删除了数据库,之后用备份的文件进行恢复,在选择文件的时候就出现了如下错误:
只有停电之前的两个备份文件,停电之后当天的备份文件大小为0,觉得原文件出现了错误,现在的问题,停电之前的两个备份文件都无法恢复,验证那一步就过不去了。网站急着用呢,可是数据库恢复不了。其他的数据库能恢复,主要是这个数据库特别大。是文件坏了吗,还是文件太大了,如何解决呀?
[解决办法]
--#1.停电后,再启动。数据库显示正在恢复,是一种正常状态,等待事务回滚即可。楼主应该等待一段时间后再看。
--#2.删除数据库前,应该把mdf,ldf文件COPY出来,备份一下。哎
--#3.下面再说说早些的两个备份不能用的问题:你的备份是*.bak文件吧。用下面SQL还原一下试试:
--设置还原参数
declare
@BackupFilePath nvarchar(100), --备份文件所在路径
@NewDataName nvarchar(100), --新数据库名称
@NewMdfPath nvarchar(120), --新.Mdf数据文件存储路径
@NewLdfPath nvarchar(120) --新.Ldf日志文件存储路径
set @BackupFilePath = 'E:\数据库备份.bak'
set @NewDataName = 'New_Databasename'--用备份新建一个数据库
set @NewMdfPath = 'D:\test\' + @NewDataName + '.mdf' --新数据库Data路径,一定不能和其它路径重复,否则会覆盖
set @NewLdfPath = 'D:\test\' + @NewDataName + '_log.ldf' --新数据库Log路径,一定不能和其它路径重复,否则会覆盖
--#1.查看备份文件中的逻辑文件名
restore filelistonly from disk = @BackupFilePath --查询出备份文件中Data文件及Log文件的名称,用于Restore Database时MOVE x TO y 中的x参数
--#2.2 还原数据库(还原成一个新数据库)
restore database @NewDataName from disk = @BackupFilePath
WITH MOVE '#1中查出的mdf逻辑文件名' TO @NewMdfPath,
MOVE '#1中查出的ldf逻辑文件名' TO @NewLdfPath
go
restore database [数据库名]
from disk='[备份文件]'
with replace,stats=1
select spid,blocked,lastwaittype
from sys.sysprocesses
where spid=[进程ID]
restore database WSS_Content
from disk='d:\sql\WSS_Content_backup_201308270000.bak'
with replace,stats=1