我们的备份过程如下:午夜完整备份,每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)
- 将过期的SQL Server 2008R2评估升级到SQL Server 2012
- Powershell脚本在以特定方式执行时以无限循环运行
- 如何将ODBC DSN连接到默认端口上的非默认SQL Server实例?
- 我怎样才能启用SeSecurityPrivilege?
- 在SQL 2012中将Excel文件添加为链接的服务器
加载在“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理工作室:
祝你好运。