还原事务日志备份 – 媒体系列错误

我们的备份过程如下:午夜完整备份,每8小时差异备份和每5分钟事务日志备份。 维护计划保持一切滚动和整齐。

要恢复到特定的时间点(比如昨天下午2:05)。 在使用SQL Server Management Studio 2012进行还原时,我们右键单击要还原到的数据库>任务>还原>数据库。 然后,我们恢复完整备份而不恢复(并覆盖现有数据)。 这使数据库处于“恢复…”状态。 然后我们去>任务>恢复>文件和文件组。 select我们最近的差异备份(中午)。 恢复没有恢复。

现在为事务日志 – 任务>恢复>事务日志。 在该对话框中,我们select“从文件或磁带”,然后点击buttonselect文件。 添加,然后select从12:00 PM到14:05 PM(其中25个)的5分钟事务日志。 当我们点击对话框上的“确定”时,SSMS崩溃并出现以下错误:

执行Transact-SQL语句或批处理时发生exception。 (Microsoft.SqlServer.ConnectionInfo)

加载在“C:… \ backup_2012_12_22_120500_4174134.trn”上的媒体格式化为支持1个媒体系列,但根据备份设备规范需要25个媒体系列。 RESTORE HEADERONLY正在exception终止。 (Microsoft SQL Server,错误:3231)

要获得帮助,请单击: http : //go.microsoft.com/fwlink?ProdName=Microsoft%20SQL%20Server&ProdVer=11.00.2218&EvtSrc=MSSQLServer&EvtID=3231&LinkId=20476

如果我记得这是我们在SQL Server 2008和2005中使用的确切过程,所以我不明白为什么这是失败的。 这是2012年特定的东西吗? 这是一个错误? 我无法在网上find任何信息。 我们根本没有使用磁带备份,而且大多数关于媒体系列的东西都与磁带备份有关。

故障排除:依次select每个事务日志(一次一个)并恢复工作。 但是,如此多的事务日志,这可以很容易地花费15分钟以上。

我还没有尝试过,但是我认为如果我们以这种forms写下普通的旧TSQL:

RESTORE DATABASE [OurDB] FILE = N'db_dat' FROM DISK = N'C:\...\diff\backup_2012_12_23_085000_4627006.bak' WITH FILE = 1, NORECOVERY, NOUNLOAD, STATS = 10 

并为每个xaction日志跑这个 – 它应该工作。 我可以写一些PowerShell或东西来恢复数据库…但不应该“pipe理工作室”能够处理这个? 这个答案似乎指向“不”。 https://dba.stackexchange.com/questions/1021/how-to-restore-multiple-backups …但是,GUI似乎暗示允许多个恢复“指定事务日志备份的来源和位置” – 不提及它可以让你首先select多个文件。

当您分割备份时,媒体家族中有多个文件。 所以,如果你这样称呼你的备份:

 backup log [OurDb] to file = 'c:\file1', file='c:\file2' 

在我的示例中,备份将分为两个文件(也就是说,一半的备份已经到了file1,另一半到了file2),并且这两个文件都需要进行恢复。 要查看需要哪些文件,请查看msdb中的backupmediafamily。 下面的查询应该让你在那里:

 select family_sequence_number, physical_device_name from backupmediafamily where media_family_id = ( select media_family_id from backupmediafamily where physical_device_name = N'C:\...\diff\backup_2012_12_23_085000_4627006.bak' ) 

然后,要恢复,您必须为每个要恢复的媒体家族做这样的事情:

 restore database [OurDb] from file = ''c:\file1', file='c:\file2', ... with norecovery 

最后,当你想要最终将数据库联机(即完成日志文件恢复)的时候,你需要:

 restore database [OurDb] with recovery 

我find了解决这个问题的方法

从pipe理工作室:

  1. 右键单击要恢复trn文件的数据库
  2. select任务
  3. select恢复
  4. select数据库…哟,那一个
  5. 点击设备
  6. 点击椭圆
  7. 添加文件
  8. 浏览到您的事务日志文件的位置。 确保它们按照date时间在备份位置sorting,如果不是,则会失败,失序
  9. select第一个文件,按住键盘上的Shift键并select最后一个文件。
  10. 点击添加
  11. 点击OK
  12. select你的目标数据库。 您可能需要转到“文件”并更改“还原为”位置以反映您的目标MDF和LDF文件。
  13. 然后单击确定

祝你好运。