问题如下:
数据库环境:
Windows Server 2003 R2
SQL Server 2005 企业版 32位+SP2补丁
数据库有全文索引每周完整备份,每天差异备份
现在操作 还原 完整备份+与完整备份匹配的差异备份
在集群服务器上(64位)还原失败,在本地计算机上(32位)还原失败,想问一下是什么原因导致这个情况的产生,如何修复?
注:在还原完整备份+完整备份后的第一个差异备份成功
还原完整备份+完整备份后的非第一个差异备份 失败
以下为还原方法:
SQL code
--还原完整备份-------成功
RESTORE DATABASE [w] FROM DISK = N'E:/bak/Words/Words_backup_200907050000.bak' WITH FILE = 1,
MOVE N'Words' TO N'D:/database/w.mdf',
MOVE N'Words_log' TO N'D:/database/w_1.ldf',
MOVE N'sysft_Words_FullIndex' TO N'D:/database/w_2.Words_FullIndex',
NORECOVERY, NOUNLOAD, STATS = 10
GO
/*---------------成功
已处理百分之 10。
已处理百分之 20。
已处理百分之 30。
已处理百分之 40。
已处理百分之 50。
已处理百分之 60。
已处理百分之 70。
已处理百分之 80。
已处理百分之 90。
已为数据库 'w',文件 'Words' (位于文件 1 上)处理了 243792 页。
已为数据库 'w',文件 'Words_log' (位于文件 1 上)处理了 1 页。
已为数据库 'w',文件 'sysft_Words_FullIndex' (位于文件 1 上)处理了 4208 页。
已处理百分之 100。
RESTORE DATABASE 成功处理了 248001 页,花费 139.573 秒(14.555 MB/秒)。
*/
--还原差异备份---------失败
RESTORE DATABASE [w] FROM DISK = N'E:/bak/Words/Words_backup_200907090100.diff' WITH FILE = 1,
MOVE N'Words' TO N'D:/database/W.mdf',
MOVE N'Words_log' TO N'D:/database/W_1.ldf',
MOVE N'sysft_Words_FullIndex' TO N'D:/database/w_2.Words_FullIndex',
NOUNLOAD, STATS = 10
GO
/*--------------失败
消息 3136,级别 16,状态 1,第 1 行
无法还原此差异备份,因为该数据库尚未还原到正确的早期状态。
消息 3013,级别 16,状态 1,第 1 行
RESTORE DATABASE 正在异常终止。
自己查下在你的差异备和指定全备之间是否还有全备吧:
select server_name , --'服务器名'
database_name ,
round(backup_size/1024.0/1024.0 , 2) as backup_size ,
backup_start_date ,
backup_finish_date ,
datediff(second , backup_start_date , backup_finish_date) as spendtime ,
type,
m.physical_device_name ,
getdate()
from msdb.dbo.backupset b join msdb.dbo.backupmediafamily m on b.backup_set_id = m.media_set_id
where backup_start_date > = '2009-07-01 15:39:30.933' --在这里修改时间
order by database_name,backup_start_date
总结:中间还有一次全量备份,破坏了我的完整备份和差异备份的连接点,