我们有一个 AlwaysOn 环境,其中包括我们的 DR 站点中的一个副本,该副本设置为异步提交和可读辅助 = 否。
当我们在 SQL Server 2014 SP2 上运行时,我们能够针对 DR 副本上的数据库运行 DBCC CHECKDB。但自从升级到 SQL Server 2016 后,我们无法升级,而且我们每周的完整性工作因错误而失败。
'The target database is participating in an availability group and is currently not accessible for queries.
Either data movement is suspended or the availability replica is not enabled for read access.
To allow read-only access to this and other databases in the availability group, enable read access to one or more secondary availability replicas in the group. For more information,
see the ALTER AVAILABILITY GROUP statement in SQL Server Books Online.
显然,为了防止这种情况在 2016 年发生了一些变化,我只是不知道是什么?
我可以说您收到的错误消息是因为 SQL Server 2016 中的错误。Microsoft 知道这一点,并已在 SQL Server 2016 RTM 的 CU3 中修复了它。
注意:报告了用户错误,但
CHECKDB
应按原样继续。请参阅修复:在 SQL Server 2016 可用性组的不可读辅助副本上运行 DBCC CHECKDB 命令时出现错误 976
解决方法
您可以拍摄数据库的快照并可以在其上运行 checkdb。在这种情况下它不会失败。数据库快照是企业功能我确定您没有使用基本可用性组
Microsoft 已在 SQL 2016 CU3 中针对此问题发布了修复程序 https://support.microsoft.com/en-us/kb/3194923