AlwaysOn 可用性グループでは最大 3 台で同期コミットモードを構築することができます。 ![]()
同期コミットモードではプライマリレプリカでデータの変更をした際のコミット時に、セカンダリレプリカでのコミットを保証するために、セカンダリでコミットが行われるのを確認してから処理を完了させるという動作になります。
複数台で同期コミットモードを構築した場合、コミットの完了がどのように動作するのかを見ていきたいと思います。
SQL Server の情報をメインに Microsoft 製品の勉強内容を日々投稿
AlwaysOn 可用性グループでデータの同期をしているデータベースをリストアする際の流れなどをつらつらとまとめてみたいと思います。
AlwaysOn 可用性グループの可用性モードは同期コミットと非同期コミットの 2 種類のモードがあります。
可用性モード (AlwaysOn 可用性グループ)
今回の投稿では同期コミットを使用した場合のスループットへの影響を確認するための考え方についてまとめてみたいと思います。
以前投稿した データベースミラーリングの同期モードによる遅延について と近い内容ですね。
トランザクションの同時実行性を低下させる原因の一因としてロックの競合によるブロッキングとデッドロックの発生があります。
これらの事象は瞬間で発生するため、事前に後追いをできる仕組みを考えておかないと、どのような要因で発生したかを確認することが難しいです。
今回の投稿ではブロッキングとデッドロックの発生状況をあとから確認できるようにするための設定をまとめてみたいと思います。
TechNet フォーラムを見ていて、どうやるんだったかなと思い軽くまとめてみました。
内容については SQL Server 2005 評価版から製品版へのアップグレードについて にまとまっています。
紹介されている以下の情報を読んでおくとよさそうですね。
サポートされているバージョンとエディションのアップグレード
SQL Server 2005 の評価版の有効期限が切れたインストールは、SQL Server 2005 の製品版にアップグレードしようとするとエラー メッセージが表示されます。
本投稿は 8/28 に大幅に修正しました。
AlwaysOn 可用性グループの非同期モードはプライマリレプリカの更新をセカンダリレプリカに反映する前にトランザクションを完了させるため、トランザクション量に応じてプライマリレプリカとセカンダリレプリカ間でデータの差異が発生する可能性があります。
今回の投稿では非同期モードを使用している場合のフェールオーバーについてまとめてみたいと思います。
SQL Server 2012 ではマルチサブネットフェールオーバークラスターがサポートされます。
実際には、AlwaysOn フェールオーバークラスターインスタンス (FCI) や AlwaysOn 可用性グループ (AG) でマルチサブネット構成を使用することになるかと思います。
マルチサブネットフェールオーバークラスターを使用する場合の注意点について少しまとめてみたいと思います。
Data Case01 緊急時に備えてデータを堅守 のような環境を作成する場合に考慮する必要が出てくるかと。
基本的な情報は
SQL Server マルチサブネット クラスタリング
SQL Server 2012 リリース ノート (ja-JP)
AlwaysOn 可用性グループ (HADR) はプライマリレプリカとセカンダリレプリカ間でデータの同期を行い、データの冗長化をすることができます。
このデータ同期に影響をする 2 種類のキューについて軽くまとめてみたいと思います。
関連する技術情報としては以下の情報になります。
sys.dm_hadr_database_replica_states (Transact-SQL)
SQL Server、Database Replica
AlwaysOn ダッシュボードの使用 (SQL Server Management Studio)
今朝、ぺんぎんししょーからこの辺についてのお手紙を頂いたので軽くまとめておこうかと思います。
データベースミラーリングについては
データベース ミラーリングのベスト プラクティスおよびパフォーマンスに関する考慮事項
SQL Server 2005 データ ベース ミラーリング検証
がまとまっています。
2006 年の Tech Ed で T3-404 SQL Server Always On Technologies 「データベース ミラーリング」 徹底検証 というセッションがあり、以前はこの内容が公開されていたのですが、さすがに 6 年もたつとリンク先がなくなってしまったようです…。
# このセッション、ミラーリングについての情報が凄くまとまっていたセッションでした。
CQI 以外の書籍では、アドバンストMicrosoft SQL Server 2008構築・管理 にミラーリングの運用について詳細に記載されていますので、こちらがおススメです。
AlwaysOn 可用性グループでは複数ノードで構築したフェールオーバークラスターインスタンス (Failover Cluster Instance : FCI) と単一サーバーで構築したスタンドアロンインスタンスを組み合わせて構築することが可能です。
この環境を構築する場合、スタンドアロンインスタンスの構築方法に注意点がありますので、その内容についてまとめてみたいと思います。