症状
请考虑以下情形:
- 您有一个数据库,其文件组已失效,您正尝试将其添加到 Microsoft SQL Server 2014、2016 和 2017 中 (AG) 的Always On可用性组。
- 可以将数据库添加到主要副本 (replica) ,并在次要副本 (replica) 上使用恢复还原完整备份和日志备份,而不会出现问题。
在这种情况下,尝试使用 ALTER DATABASE <DatabaseName> SET HADR AVAILABILITY GROUP = <AGName> 将数据库加入次要副本 (replica) 上的可用性组或使用自动种子配置次要副本 (replica) 时,会注意到已失效文件组中的数据文件报告了错误 17207 和 5120:
## spid## 正在启动数据库 “DatabaseName”。
## spid## 错误:17207,严重性:16,状态:1。
## spid## FileMgr::StartSecondaryDataFiles: 操作系统错误 2 (系统找不到指定的文件。创建或打开文件 “FilePath” 时发生 ) 。 诊断并更正操作系统错误,然后重试操作。
## spid## 错误:5120,严重性:16,状态:5。
## spid## 无法打开物理文件 “FilePath”。 操作系统错误 2:“2 (系统找不到指定的文件。) ”。
执行 ALTER DATABASE 命令后,你还将看到数据库在次要副本 (replica) 上进入“不同步/恢复挂起”模式。
状态
Microsoft 已确认在 "适用于" 部分中所列的 Microsoft 产品中存在问题。
解决方法
此问题已在 SQL Server 的以下累积更新中修复:
关于 SQL Server 的累积更新:
SQL Server 的每个新累积更新都包含上一个累积更新中包含的所有修补程序和所有安全修补程序。 查看 SQL Server 的最新累积更新:
参考资料
了解 Microsoft 用于描述软件更新的术语。