SQL Server AlwaysOn Availability Groupsは、MicrosoftがSQL Server 2012で初めてリリースしたテクノロジーです。
その主なコンセプトは、データを同時に複数のサイトで利用できるようにすることです。 この目的のために、プライマリ・レプリカとセカンダリ・レプリカを持つデータベースのグループがあります。
- 非同期コミット アベイラビリティー モード
- 同期コミット アベイラビリティー モード
非同期コミット アベイラビリティー グループ
非同期コミット モードでは、セカンダリ レプリカはプライマリ レプリカと完全には同期しません。 その理由は、非同期コミットの性質上、セカンダリ データベースがいつでも遅れをとる可能性があるからです。
可用性グループの同期コミット モード
同期コミット モードでは、可用性グループに参加した後、セカンダリ データベースが対応するデータベースに追いつき、「同期済み」の状態になります。 もちろん、データの同期(つまりデータの移動)が継続し、何らかの理由(ネットワークの問題、ディスクスペースの問題など)で停止していないことが前提条件です。 データ同期が継続され、同期コミット モードが使用されている場合、あるプライマリ データベース上でコミットされたすべてのトランザクションは、セカンダリ データベース上でもコミットされています。
Example of a SQL Server Always On Availability Groups Architecture
以下の図は、SQL Server Always On Availability Groups を使用した 2 ノード レプリカのセットアップを示しています。
上記のアーキテクチャ図に示されている概念について、さらに詳しく説明しましょう。
議論と提案
非常に重要な点として、可用性グループ アーキテクチャに基づいて、各レプリカが専用のストレージを持っていることが挙げられます。
サイトAとサイトBという2つの異なるサイトに2つのノードを持つジオクラスターがあり、それぞれのサイトにSQL Server Availability Groupsのレプリカがあります。 上の例では、サイトAにはプライマリのレプリカがあり、サイトBにはセカンダリのレプリカがあります。
もう1つ重要なことは、本当に高可用性を実現したいのであれば、ファイル共有ウィットネスとしてサーバーを務めるために、第3のサイトが必要だということです。
How to Connect my Application to a Database in a SQL Server Availability Group?
SQL Server Availability Groups に慣れていない人は、「アプリケーションはどうやってデータベースに接続するのだろう」と思うかもしれません。 “私のアプリケーションはどうやってデータベースに接続するのだろう」と疑問に思うかもしれません。 と疑問に思うかもしれませんが、これはとても簡単なことなので、心配しないでください。 各空室グループには独自のリスナー(仮想ネットワーク名と仮想IPのペア)があり、空室グループの作成時にこれを設定する必要があります。 アプリケーションの接続文字列の設定では、アプリケーションが特定の可用性グループのデータベースを「見る」ことができるように、リスナー名/IPとそのポート番号を入力する必要があります。
重要な注意点として、ソリューション/アプリケーションがこの高可用性アーキテクチャをサポートしている場合にのみ、ソリューションに可用性グループを使用することをお勧めします。
フェイルオーバー中に何が起こるのか SQL Server 可用性グループ アーキテクチャでのフェイルオーバーは、従来の SQL Server フェイルオーバー クラスタ インスタンス (FCI) でのフェイルオーバーとは異なります (そしてより速くなります)。 大きな違いは、SQL Server 可用性グループでフェイルオーバーが行われるときには、オーナーが変わるのはリスナーだけだということです。 つまり、フェイルオーバーの後、特定のアベイラビリティグループのリスナーは、そのレプリカが新しいプライマリレプリカになり、もう1つのレプリカ(それまでプライマリだったもの)がセカンダリレプリカになったため、もう1つのレプリカを指すようになります。
まとめ
上記の議論と例からわかるように、SQL Server Always On は非常に強力な高可用性ソリューションであり、アクティブ-アクティブ データ センターを設計する際には必ず考慮しなければなりません。
最後に、上記は SQL Server 可用性グループの基本と、可用性の高い SQL Server インスタンスの実現にどのように貢献しているかを理解してもらうための簡単な例であることに注意してください。
この後の記事では、SQL Server Always On Availability Groups についてさらに詳しく解説していきますので、お楽しみに!
SQL Server の管理スキルを強化しよう – オンライン コースに参加しよう
このコースでは、SQL Server のメンテナンス、セキュリティ、パフォーマンス、統合、エラー処理など、SQL Server の管理に関する基本的なヒントを実践的に学ぶことができます。 多くのライブデモとダウンロード可能なリソースが含まれています!
今なら割引価格でお申込みいただけます。
Featured Online Courses:
- Boost SQL Server Database Performance with In-Memory OLTP
- Essential SQL Server Administration Tips
- SQL Server Fundamentals – SQL Database for Beginners
- Essential SQL Server Development Tips for SQL Developers
- The Philosophy and Fundamentals of Computer Programming
- .初心者のための.NETプログラミング-C#によるWindowsフォーム
- データサイエンスとSQL Server Machine Learning入門
- 初心者のためのAzure SQL Database入門
- SQL Server 2019: What’s New – 新機能と強化機能
- Entity Framework: Getting Started – 完全な初心者向けガイド
- SQL Serverデータベースでデータをインポート・エクスポートする方法
- 30分でわかるSQL Serverのインストールと使い始め方
- 成功するブログの始め方と収益化のガイド
関連するSQL Server管理記事です。
- Essential SQL Sever Administration Tips
- How to Patch a Standalone SQL Server Instance
- The SQL Server Browser Service and UDP Port 1434
- The Maximum Number of Concurrent Connections Setting in SQL Server
- Top 10 SQL Server DBA Daily Tasks List
- There is no SQL Server Failover Cluster Available to Join
- Encrypting a SQL Server Database Backup
- …more
この記事を評価してください。 (2件の投票、平均: 5.