web-dev-qa-db-ja.com

非同期レプリカ上のSQL Server 2016 AlwaysOn DBCC CHECKDB

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年に何かが変更されたのは明らかですが、私は何を知らないのですか?

7
Adrian Sugden

表示されているエラーメッセージは、SQL Server 2016のバグが原因であると言えます。Microsoftはそれを認識しており、SQL Server 2016 RTMのCU3で修正しています。

注:ユーザーエラーが報告されますが、CHECKDBはそのまま続行する必要があります。

参照 FIX:エラー976は、SQL Server 2016可用性グループの読み取り不可能なセカンダリレプリカでDBCC CHECKDBコマンドを実行すると発生します

Workaround

データベースのスナップショットを取得し、checkdbを実行できます。この場合は失敗しません。データベーススナップショットはエンタープライズ機能です。基本的な可用性グループを使用していないと思います

6
Shanky