今日のテクノロジー主導の世界では、ソフトウェアやIT関連の機能に依存しない私たちの生活の一部があります。テクノロジーへの依存度が高まるにつれ、定期的に使用するアプリケーションのパフォーマンスの問題に対する耐性が低下しています。
アプリケーションの最も重要なパフォーマンス基準の1つは、必要なときにいつでも利用できるようにすることです。今日の競争の激しいビジネス環境では、サーバーとデータベースのダウンタイムは許容できません。ユーザーがほとんどまたはまったく中断することなくアプリケーションにアクセスできるようにするには、DBAとITチームは、SQLServerデータベースの高可用性の維持に集中し続ける必要があります。
SQL Serverの高可用性とは何ですか?
SQL Serverの高可用性とは、クラッシュや障害が発生した場合に最小限のダウンタイムでSQLServerデータベースとインスタンスを稼働させ続けることです。多くのビジネスアプリケーションは、データベースが稼働していることに依存しているため、データベースがダウンすると、ユーザーは不満を感じ、ビジネスを失う可能性があります。
高可用性は、ダウンタイムが福祉や収益にすぐに悪影響を与える可能性があるミッションクリティカルなアプリケーションやeコマースサイトにとって特に重要です。
SQL Serverには、ログ配布、トランザクションレプリケーション、データミラーリングなど、いくつかの高可用性テクノロジがありますが、簡潔にするために、この投稿の焦点は、SQLServerのAlwaysOn可用性グループを使用して高可用性を実現する方法です。
SQLServerのAlwaysOn可用性グループとは何ですか?
Always On可用性グループは、可用性レプリカにフェールオーバーする定義済みの可用性データベースのセットに対して複製された環境をサポートします。
Microsoft SQL Serverのドキュメントで説明されているように、「可用性グループは、一連の読み取り/書き込みプライマリデータベースと1〜8セットの対応するセカンダリデータベースをサポートします。」
セカンダリデータベースを読み取り専用アクセスおよび一部のバックアップ操作に使用できるようにするオプションもあります。ただし、セカンダリデータベースはバックアップではないことに注意してください。データベースとそのトランザクションログを定期的にバックアップし続ける必要があります。
SQLServerのAlwaysOn可用性グループの利点
SQL Server Always On可用性グループには、組織が高可用性を維持するのに役立つ次のような多くの利点があります。
可用性レプリカ: 可用性レプリカは、指定されたSQL Serverインスタンスによってホストされます。このインスタンスは、可用性グループに属する各可用性データベースのローカルコピーを維持します。各可用性グループは、1つのプライマリレプリカと最大8つのセカンダリレプリカをサポートできます。
代替可用性モード: Always On可用性グループは、非同期コミットと同期コミットの2種類の代替可用性モードをサポートします。
非同期コミットモードは、可用性レプリカが高度に分散されている場合の優れたディザスタリカバリオプションです。
同期コミットモードは、高可用性とデータ保護を提供しますが、パフォーマンスに影響を与える可能性があります。可用性グループは、プライマリを含む最大3つの同期コミット可用性レプリカをサポートできます。
可用性-グループフェイルオーバー: Always On可用性グループは、データ損失の可能性が異なるいくつかの形式のフェイルオーバーとフェイルオーバーモードを提供します。自動フェイルオーバー(データ損失なし)、計画手動フェイルオーバー(データ損失なし)、および強制手動フェイルオーバー(データ損失の可能性)です。
可用性グループリスナー: 各AlwaysOn可用性グループは、可用性グループリスナーを提供します。これは、可用性グループのプライマリまたはセカンダリレプリカのデータベースにアクセスするためにクライアントが接続できるサーバーです。リスナーは着信接続をプライマリレプリカまたはセカンダリレプリカに転送し、可用性グループに障害が発生した場合のアプリケーションのフェイルオーバーを高速化します。
セキュリティ機能: SQL Server Always On可用性グループは、ページの破損から保護するための自動ページ修復と、安全で高性能なトランスポートのための暗号化と圧縮をサポートしています。
常時オンの可用性グループの前提条件と制限
SQL Server Always On可用性グループを展開する前に、それらに関連する前提条件と制限を理解することが重要です。 SQL Server Always On可用性グループの詳細については、MicrosoftのSQL Serverドキュメントを参照してください。ただし、ここではいくつかのハイライトについて説明します。
可用性グループの要件と制限
可用性グループを設定するプロセスは、特定の前提条件と制限によって管理されます。詳細(および仮想環境の設定がいくつかの制限を回避するのにどのように役立つか)について詳しくは、こちらをご覧ください:
- 前提条件
- 制限
可用性データベースの要件と制限
データベースをAlwaysOn可用性グループに追加する前に、データベースがここで概説されている要件と制限を満たしていることを確認する必要があります。
- 要件チェックリスト
- 制限
SQLServerインスタンスの前提条件と制限
可用性グループは、SQLServerインスタンスによってホストされる可用性レプリカの定義済みセットにフェールオーバーします。可用性レプリカを効果的にホストするには、これらのインスタンスを適切に構成する必要があります。これらのリソースは、必要な前提条件、スレッドの使用要件、および必要な権限に関する詳細を提供します。
- 前提条件のチェックリスト
- スレッドの使用法
- 許可
SQLServerフェールオーバークラスターインスタンスを使用した可用性レプリカのホスト
SQL Serverフェールオーバークラスターインスタンスは、Windows Serverフェールオーバークラスタリングノード全体にインストールされ、データベースレベルでのリカバリを提供する単一のSQLServerインスタンスです。フェールオーバークラスターインスタンスで可用性レプリカをホストすることについて知っておくべき重要なことがいくつかあるため、チェックリストと制限を注意深く確認してください。
- 前提条件のチェックリスト
- 制限
常時オンの可用性グループの使用を開始する
前提条件と制限事項を並べ替えたら、SQLServerのAlwaysOn可用性グループのセットアップと展開を進めることができます。可用性グループの初期設定と構成には4つの主要なステップがあり、それぞれにいくつかのサブタスクがあります。手順を以下に示します。詳細については、MicrosoftSQLServerのドキュメントを参照してください。
- 常にオンの可用性グループをサポートするようにSQLServerのインスタンスを構成する
- 新しい可用性グループを作成して構成します
- 可用性グループ、レプリカ、およびデータベースを管理する
- 可用性グループを監視する
SQL Server Always On可用性グループは、企業の高可用性を維持するための簡単で信頼性の高い方法です。 Always On可用性グループは、データベースの可用性を最大化し、ユーザーが要求するシームレスで信頼性の高いアプリケーションエクスペリエンスをユーザーに提供します。