症状
请考虑以下情况:
-
在 Microsoft SQL Server 2012 或 Microsoft SQL Server 2014 中有两个事务日志文件的数据库。
-
在 "完全恢复" 模式下执行完整备份。
-
删除其中一个事务日志文件,然后将恢复模式更改为 "简单恢复模式"。
-
执行完整备份和差异备份。
-
使用最新的完整备份文件和差异备份文件还原数据库。
在这种情况下,您会收到以下错误消息:
消息3127、级别16、状态1、行3The 文件 "% s" 已被还原的数据库 "% s" 保留为 "已失效" 状态,因为数据库使用的是简单恢复模型,并且文件标记为读写访问。 因此,只有只读文件才能通过逐段还原进行恢复。在状态为 "已失效" 的 sys.master_files 中再次显示已删除的日志文件
此外,当您尝试备份数据库时,会收到以下错误消息:
消息3636、级别16、状态2、行1An 在处理数据库 id 16 的 "BackupMetadata" 元数据时出错。消息3046,级别16,状态2,已遇到行1Inconsistent 元数据。 唯一可能的备份操作是使用 WITH CONTINUE_AFTER_ERROR 或 NO_TRUNCATE 选项进行尾日志备份。消息3013、级别16、状态1、行1BACKUP 数据库异常终止。
解决方案
在 SQL Server 的以下累积更新中,此问题首先已修复。
SQL Server 2014 累积更新5 /en-us/help/3011055
SQL Server 2012 SP2 的累积更新3 /en-us/help/3002049
SQL Server 的每个新的累积更新均包含以前的累积更新中包含的所有修补程序和所有安全修补程序。 查看 SQL Server 的最新累积更新:
状态
Microsoft 已确认这是在“适用范围”部分中列出的 Microsoft 产品存在的问题。