現象
Microsoft SQL Server 2016 および 2017 の分散型 Always On 可用性グループ (AG) 内に多数のデータベースがあるとします。 フォワーダーとセカンダリ レプリカの間で 2 番目の AG に対して手動フェールオーバーを実行すると、すべてのレプリカが同期されていても失敗することがあります。 また、次のようなエラー メッセージが表示されます。
メッセージ 41104、レベル 16、状態 12、行 LineNumber
前のエラーが原因で可用性グループ リソースがオンラインにならなかったため、可用性グループのローカル レプリカへのフェールオーバーに失敗しました。
エラーを特定するには、SQL Server エラー ログ、Windows Server フェールオーバー クラスター ログ、およびシステム イベント ログをチェックできます。 Windows Server フェールオーバー クラスタリング (WSFC) クラスターのイベントとログを表示する方法の詳細については、Windows Server のドキュメントを参照してください。 エラー ログをチェックすると、次のようなエラー メッセージが表示されます。
SQL Server のこのインスタンス上の可用性グループ '<AGName>' の可用性レプリカをプライマリ レプリカにすることはできません。 1 つ以上のデータベースが同期していないか、可用性グループに参加していません。
状態
Microsoft は、これが "適用対象" セクションに記載されている Microsoft 製品の問題であることを確認しました。
解決策
この問題は、SQL Server 用の次の累積的な更新プログラムで修正されています。
- SQL Server 2017 の累積的な更新プログラム 15
- SQL Server 2016 SP2 の累積的な更新プログラム 7
- SQL Server 2016 SP1 の累積的な更新プログラム 15
SQL Server の累積的な更新プログラムについて:
SQL Server 用の新しい累積的な更新プログラムには、以前の累積的な更新プログラムに含まれていたすべての修正プログラムとすべてのセキュリティ修正プログラムが含まれています。 SQL Server の最新の累積的な更新プログラムを確認してください。
参考資料
マイクロソフトでソフトウェア更新プログラムの説明に使用する用語集を参照してください。