SQL Serverの高可用性と冗長化: AlwaysOn 可用性グループのデータ同期モード(同期コミット vs. 非同期コミット)の違いとトレードオフ

データベースシステムの可用性とデータ保護は、エンタープライズ環境での重要な要件です。Microsoft SQL ServerのAlwaysOn 可用性グループ(AG: Availability Group)は、高可用性(HA: High Availability)と災害復旧(DR: Disaster Recovery)を実現する強力な機能です。

本記事では、AlwaysOn 可用性グループにおけるデータ同期モードである 同期コミット(Synchronous Commit)非同期コミット(Asynchronous Commit) の違いと、そのトレードオフについて詳しく解説します。

また、適切なモード選択の判断基準についても考察します。


データ同期モードの種類

AlwaysOn 可用性グループでは、プライマリレプリカ(Primary Replica)からセカンダリレプリカ(Secondary Replica)へのデータ転送を行う際に、2つのデータ同期モードを選択できます。

モード説明適用シナリオメリットデメリット
同期コミット(Synchronous Commit)プライマリレプリカとセカンダリレプリカがトランザクションの同期を保証高可用性(HA)を求めるシステムデータ整合性の保証、即時フェールオーバーが可能書き込み遅延が発生しやすい
非同期コミット(Asynchronous Commit)プライマリレプリカは即座にトランザクションを完了し、非同期でセカンダリレプリカにデータを送信災害復旧(DR)目的の遠隔地レプリケーションパフォーマンス影響が少ない、地理的に離れた場所でも利用可能データ損失のリスクがある、フェールオーバー時に最新データが保証されない

次に、それぞれのモードの詳細を解説し、具体的なトレードオフを考察します。


同期コミット(Synchronous Commit)モード

仕組み

  • プライマリレプリカがトランザクションを実行すると、セカンダリレプリカにも即座にトランザクションを送信
  • セカンダリレプリカがトランザクションを適用し、確認応答を返した後に、プライマリレプリカがトランザクションの確定(COMMIT)を実行。

メリット

  • データ整合性が保証される:トランザクションの整合性が維持されるため、データ損失リスクが低い。
  • 自動フェールオーバーが可能:セカンダリレプリカが最新のデータを保持しているため、即座にフェールオーバーが実行可能。

デメリット

  • パフォーマンスの低下:トランザクションの確定にセカンダリレプリカの応答を待つため、ネットワーク遅延が影響。
  • レプリカ間のネットワーク品質が重要:遅延が大きい場合、システム全体のレスポンスタイムが悪化。

非同期コミット(Asynchronous Commit)モード

仕組み

  • プライマリレプリカはトランザクションのコミットを即座に確定し、その後セカンダリレプリカへデータを送信。
  • セカンダリレプリカは遅れてデータを適用するため、リアルタイムの同期は保証されない

メリット

  • パフォーマンスが向上:プライマリレプリカはセカンダリの応答を待たないため、トランザクション処理が高速。
  • ネットワーク遅延の影響が少ない:地理的に遠い拠点へのデータレプリケーションが可能。

デメリット

  • データ損失リスクがある:プライマリレプリカが障害を起こした場合、最新のデータがセカンダリレプリカに反映されていない可能性がある。
  • 自動フェールオーバー不可:セカンダリレプリカは即座に昇格できないため、手動フェールオーバーが必要。

どちらのモードを選ぶべきか?

  • 高可用性(HA)を重視する場合は、同期コミットを選択し、自動フェールオーバーを有効化。
  • 災害復旧(DR)を目的とし、遠隔地へのレプリケーションが必要な場合は、非同期コミットが適切。

演習問題

問題 1

SQL Server AlwaysOn 可用性グループの同期コミットモードと非同期コミットモードの違いについて、以下の選択肢の中から正しいものを選びなさい。

  1. 同期コミットモードではトランザクションは即座に確定する。
  2. 非同期コミットモードではプライマリレプリカの障害時にデータ損失リスクがある。
  3. 非同期コミットモードは自動フェールオーバーが可能。
  4. 同期コミットモードはパフォーマンスへの影響が少ない。

解答

正解: 2

解説: 非同期コミットモードでは、セカンダリレプリカへのデータ適用が遅れるため、障害発生時にデータ損失のリスクがあります。


まとめ

AlwaysOn 可用性グループの同期モードと非同期モードには、それぞれメリットとデメリットがあります。

システム要件やビジネスの優先度に応じて、適切なモードを選択することが重要です。