以前,有关备份和还原Server 2008文件组的ServerFault 我问了一个问题。
今天,当我尝试RESTORE其中一个FILEGROUP备份时,我得到了以下错误:
Processed 1895080 pages for database 'XWing', file 'XWing' on file 1.
Processed 4 pages for database 'XWing', file 'XWing_log' on file 1.
The database cannot be recovered because the log was not restored.
The database cannot be recovered because the log was not restored.
The roll forward start point is now at log sequence number (LSN) 221218000000010400001. Additional roll forward past LSN 221218000000010400001 is required to complete the restore sequence.
This RESTORE statement successfully performed some actions, but the database could not be brought online because one or more RESTORE steps are needed. Previous messages indicate reasons why recovery cannot occur at this point.
RESTORE DATABASE ... FILE=<name> successfully processed 1895084 pages in 69.504 seconds (213.014 MB/sec).我使用了以下Sql代码..。
alter Database [XWing] SET SINGLE_USER With ROLLBACK IMMEDIATE
restore database [XWing] filegroup = 'PRIMARY'
FROM DISK = N'C:\Temp\XWing Manual Full Primary Filegroup.bak'
with
MOVE N'XWing' TO N'D:\XWing.mdf',
MOVE N'XWing_log' TO N'L:\XWing_Log.ldf',
replace, recovery所以我假设DB没有被正确备份?
这是我用来备份PRIMARY FILEGROUP的脚本
BACKUP DATABASE [XWing] FILEGROUP = N'PRIMARY'
TO DISK = N'F:\Sql DB Backups\XWing Manual Full Primary Filegroup.bak' WITH NOFORMAT, INIT,
NAME = N'XWing-Full Filegroup Backup', SKIP, NOREWIND, NOUNLOAD, COMPRESSION, STATS = 10
GO
declare @backupSetId as int
select @backupSetId = position from msdb..backupset where database_name=N'XWing' and backup_set_id=(select max(backup_set_id) from msdb..backupset where database_name=N'XWing' )
if @backupSetId is null begin raiserror(N'Verify failed. Backup information for database ''XWing'' not found.', 16, 1) end
RESTORE VERIFYONLY FROM DISK = N'F:\Sql DB Backups\XWing Manual Full Primary Filegroup.bak' WITH FILE = @backupSetId, NOUNLOAD, NOREWIND
GO干杯!
发布于 2011-09-08 05:18:02
您需要还原事务日志,以便有一个一致的数据库。当前,您还原的文件组与数据库的其他部分处于不同的时间点。一旦日志被前滚,并且所有内容都是一致的,那么您就可以将数据库联机。
如果您查看msdb数据库中的数据,您将能够看到需要还原哪些事务日志文件才能使数据库联机。
备份和恢复语法没有什么问题。
发布于 2011-09-08 04:32:47
正如它在消息中所述,您必须将日志备份还原到文件组备份的时间点。为了使数据库联机,需要将日志回放到相同的时间点,以便数据库保持一致。但是,仅还原主文件组是一种特殊情况。我相信,为了恢复主文件组,您必须完成一个完整的恢复,而不仅仅是一个文件组。(我对此并不肯定,但相信下面的案文指出了这一要求。)
了解服务器中备份的还原和恢复工作方式
在重做阶段,数据总是前滚到与恢复点上的数据库状态一致的点。所有数据都已前滚到可能发生撤消的点。数据库的状态由主文件定义,如下所示:如果恢复主文件,则恢复点决定整个数据库的状态。例如,如果数据库正在恢复到表被意外删除之前的某个时间点,则必须将整个数据库恢复到相同的时间点。如果未还原主文件,则已知数据库状态,并将还原的数据前滚到与数据库事务一致的恢复点。Server强制执行此操作。但是,数据库可能包含在恢复点未提交的事务所做的更改。对于联机还原,数据恢复到与数据库联机部分的当前状态一致的时间点。
https://dba.stackexchange.com/questions/5511
复制相似问题