高可用性と災害復旧の概念download.microsoft.com/download/6/b/e/6be0c3f3-2991-4766... ·...

28
高高高高高高高高高高高高高 Microsoft SQL Server AlwaysOn 高高高高高高高 高高高 執執執: LeRoy Tuttle, Jr. (Microsoft) 執執執: Cephas Lin (Microsoft)Justin Erickson (Microsoft)Lindsey Allen (Microsoft)Min He (Microsoft)Sanjay Mishra (Microsoft) 執執執: Alexei Khalyako (Microsoft)Allan Hirt (SQLHA)Ayad Shammout (Caregroup)Benjamin Wright-Jones (Microsoft)Charles Matthews (Microsoft)David P. Smith (ServiceU)Juergen Thomas (Microsoft)Kevin Farlee (Microsoft)Shahryar G. Hashemi (Motricity)Wolfgang Kutschera (Bwin Party) 執執執: 2012 高 1 高 執執執執: SQL Server 2012 執執: 高高高高高高 高高高高高高SQL Server 2012 高 AlwaysOn 高高高高高高高/高 、、 高高高高高高 高高 、。 高高高高高高 高高高高高高高高高高高高高 高高高高高高高高高 、、、、 、、一 。 高高高高 2 高高高高高高 高高高高高 、、、。、SQL Server 2012 AlwaysOn 高高高 Windows Server 高高高高高高高高高 、。 SQL Server AlwaysOn 執 SQL Server AlwaysOn 高 高高高 、、。、SQL Server 高高高高高高高高高高高高 高高高 高高高高高高高高高高 、、。 高高高高高高高高高高高高高 Microsoft SQL Server AlwaysOn 高高高高高高高 高高高 i

Upload: others

Post on 04-Feb-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 高可用性と災害復旧の概念download.microsoft.com/download/6/B/E/6BE0C3F3-2991-4766... · Web view高可用性と災害復旧のソリューションのために最適なデータベース

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド

執筆者 LeRoy Tuttle Jr (Microsoft)

寄稿者 Cephas Lin (Microsoft)Justin Erickson (Microsoft)Lindsey Allen (Microsoft)Min He (Microsoft)Sanjay Mishra (Microsoft)

校閲者 Alexei Khalyako (Microsoft)Allan Hirt (SQLHA)Ayad Shammout (Caregroup)Benjamin Wright-Jones (Microsoft)Charles Matthews (Microsoft)David P Smith (ServiceU)Juergen Thomas (Microsoft)Kevin Farlee (Microsoft)Shahryar G Hashemi (Motricity)Wolfgang Kutschera (Bwin Party)

発行日 2012 年 1 月

適用対象 SQL Server 2012

概要 このホワイト ペーパーではSQL Server 2012 の AlwaysOn による高可用性災害復旧ソリューションを使用して予定されたダウンタイムや予定外のダウンタイムを短縮したりアプリケーションの可用性を最大限に高めたりデータを保護したりする方法について説明します

本書の主な目的はビジネス関係者や技術上の意思決定者システム設計者インフラストラクチャ エンジニアデータベース管理者などがこの問題について議論する際の拠りどころとなる一般的なコンテキストを確立することです

主に次の 2 つの内容について取り上げます

高可用性と災害復旧の概念高可用性データベース環境に関するビジネス目標の計画管理測定についてそれぞれの利点や課題を簡単に説明しますその後SQL Server 2012 AlwaysOn および Windows Server のソリューションでサポートされる高可用性と災害復旧の機能について概説します

SQL Server AlwaysOn の保護レイヤーSQL Server AlwaysOn のソリューションで提供される保護レイヤーの主な機能それらを使用する理由および依存関係について詳細に説明します

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド i

インフラストラクチャの可用性SQL Server インスタンス レベルの保護データベース レベルの保護およびデータ層アプリケーションの機能について解説します

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド ii

著作権

このドキュメントは現状有姿で提供されますこのドキュメントに記載されている情報や見解 (URL 等のインターネット Web サイトに関する情報を含む) は将来予告なしに変更されることがありますお客様はその使用に関するリスクを負うものとします

ここで使用される例は架空のものであり説明のためだけに使用されます実在するものとは一切関係ありません

このドキュメントはMicrosoft 製品の無体財産権に関する法的な権利をお客さまに許諾するものではありません内部的な参照目的に限りこのドキュメントを複製して使用することができます

copy 2012 Microsoft All rights reserved

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド iii

目次高可用性と災害復旧の概念1

高可用性について1

予定されたダウンタイムと予定外のダウンタイム2

段階的な可用性2

ダウンタイムの定量化3

復旧目標3

ROI または機会費用の正当化4

可用性の健全度の監視4

災害復旧の計画5

概要 Microsoft SQL Server 2012 での高可用性5

SQL Server AlwaysOn6

計画的なダウンタイムの大幅な削減6

アイドル状態のハードウェアをなくしてコスト効率とパフォーマンスを向上7

簡単な配置と管理7

RPO と RTO の機能比較7

SQL Server AlwaysOn の保護レイヤー8

インフラストラクチャの可用性9

Windows オペレーティング システム9

Windows Server フェールオーバー クラスタリング10

WSFC のクラスター検証ウィザード13

WSFC クォーラム モードと投票の構成14

WSFC の強制クォーラムによる災害復旧17

SQL Server インスタンス レベルでの保護19

可用性の向上 ndash SQL Server インスタンス19

AlwaysOn フェールオーバー クラスター インスタンス20

データベースの可用性23

AlwaysOn 可用性グループ23

可用性グループのフェールオーバー25

可用性グループ リスナー26

可用性の向上 ndash データベース28

クライアント接続の推奨事項29

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド iv

結論31

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド v

高可用性と災害復旧の概念高可用性と災害復旧のソリューションのために最適なデータベース テクノロジを選択するにはRTO と RPO の計画管理測定に関連するビジネス上の利点課題および目的についてすべての関係者が理解を共有している必要があります

これらの概念を既に理解されている方は「概要 Microsoft SQL Server 2012 での高可用性 」のセクションから読み始めてもかまいません

高可用性についてソフトウェア アプリケーションやサービスで高可用性は最終的にはエンド ユーザーの体感や期待に基づいて計測されますダウンタイムが生じることでビジネスに与える影響には情報の損失物的損害生産性の低下機会費用契約上の損害信用の損失などさまざまな目に見える影響や目に見えない影響があります

高可用性ソリューションの主な目的はダウンタイムの影響を最小限に抑えるまたは少なくともある程度軽減することですそのための堅実な戦略の 1 つはビジネス プロセスやサービス レベル契約 (SLA) と技術的な機能やインフラストラクチャのコストとの間で最適なバランスを取ることです

プラットフォームの可用性の高さは契約に基づいてさらには顧客や関係者からの期待に応じて判断されますシステムの可用性は次の式で表すことができます

実際のアップタイム予定されたアップタイム

times100

可用性の値は業界ではよく 9 がいくつ並んでいるかによって表現されますそれによって年間の可能なアップタイムの長さ逆に言えばダウンタイムの長さがわかります

9 の個数 可用性の割合 年間合計ダウンタイム2 99 3 日15 時間3 999 8 時間45 分4 9999 52 分34 秒5 99999 5 分15 秒

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 1

予定されたダウンタイムと予定外のダウンタイムシステムの停止には予測または計画されたものと予定外の障害によって生じるものとがありますダウンタイムは適切に管理されているのならば否定的に考える必要はありません予測可能なダウンタイムには主に次の 2 種類があります

計画的なメンテナンスあらかじめ時間枠を予告したうえで計画されたメンテナンス タスクが行われますたとえばソフトウェア修正プログラムの適用ハードウェアのアップグレードパスワードの更新オフラインでのインデックス再作成データの読み込み災害復旧手順のリハーサルなどです操作手順を入念に準備することでダウンタイムを最小限に抑えデータ損失を防ぐことができます計画的なメンテナンス作業は予定外の停止によってさらに深刻な事態を招くのを防いだりそのような場合の被害を軽減したりするために必要な投資と考えることができます

予定外の停止システムインフラストラクチャまたはプロセスのレベルで障害が発生した場合ですそれらは予定外で制御できないものであったり予測可能ではあってもまず発生しないだろうと考えられたり影響は許容範囲だろうと考えられたりしたものです堅牢な高可用性ソリューションはそのような障害を検出し停止状態から自動的に復旧してフォールト トレランスを再確立することができます

高可用性に関するサービス レベル契約 (SLA) を規定するときには計画的なメンテナンス作業と予定外のダウンタイムの両方についてそれぞれ個別に主要業績評価指標 (KPI) を計算する必要がありますそうすることで計画的なメンテナンス作業への投資を予定外のダウンタイムを回避できた場合の利益と比較して検討することができます

段階的な可用性高可用性は100 か 0 かの問題として捉えるべきではありませんシステムが完全に停止するのではなく部分的に使用できるのであれば機能が制限されたりパフォーマンスが低下したりしてもエンド ユーザーに許容される場合もよくあります可用性には次のようにさまざまな段階があります

読み取りのみ可能および操作の遅延メンテナンス期間中や災害復旧の処理中にデータを取得することはできても新しいワークフローやバックグラウンド処理は一時的に中断されたりキューに入れられたりする場合があります

データ待機時間とアプリケーションの応答時間大量のワークロードバックログの処理プラットフォームの部分的な障害などが原因で限りのあるハードウェア リソースが負荷過剰になったりサイズ不足になったりする場合がありますこれはユーザー エクスペリエンスに影響し生産性は低下しますが作業は続けることができます

部分的一時的または差し迫った障害アプリケーション ロジックやハードウェア スタックが堅牢にできていればエラーが発生しても再試行や自己修正が行われますこのような場合エンド ユーザーはデータの待ち時間やアプリケーションの応答時間を長く感じることがあります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 2

部分的なエンド ツー エンドの障害予定された停止または予定外の停止がソリューション スタックの垂直的なレイヤー (インフラストラクチャプラットフォームおよびアプリケーション) 内でまたは水平的な各種の機能コンポーネント間で整然と行われる場合がありますユーザーは影響を受ける機能またはコンポーネントに応じて部分的に操作が成功したりパフォーマンスの低下を感じたりします

これらの状況はそれぞれ完全な停止に至るまでの可用性の一段階であると同時に災害復旧フェーズの中間段階とも考えることができそれぞれの状況がどの程度許容できるかを判断する必要があります

ダウンタイムの定量化ダウンタイムが発生した場合にはそれが予定されたものであったか予定外のものであったかにかかわらずシステムをオンラインに戻しデータ損失を最小限に抑えることがビジネスとして第一の目標となりますダウンタイムが 1 分経過するごとに直接または間接のコストが刻々と増えていきます予定外のダウンタイムが発生したのであれば時間と労力を適切に配分しながら停止の理由を調査し現在のシステム状態を把握し復旧手順を決定する必要があります

どのような場合でも事前に決めておいた時間になったらビジネス上の意思決定を行う必要があります停止の原因調査やメンテナンス操作を中止してシステムをオンラインに戻すかどうか必要に応じてフォールト トレランスを再構築するかどうかなどを判断します

復旧目標データの冗長性は高可用性データベース ソリューションの重要な要素の 1 つですプライマリ SQL Server インスタンスに対するトランザクションの操作は同期または非同期で1 つ以上のセカンダリ インスタンスにも適用されます障害が発生すると処理中のトランザクションはロールバックされるかまたはデータ伝達の遅れのためにセカンダリ インスタンスでは失われる可能性もあります

影響を見積もりながら機能の復旧にどれくらいの時間がかかるか最後のトランザクションを回復するためにどれくらいの遅延が生じるかという観点で次の復旧目標を設定します

目標復旧時間 (RTO)これはシステムが停止している時間の長さを意味します最初の目標は少なくとも読み取り専用の状態でシステムをオンラインに戻し障害について調査できるようにすることですただし最終的な目的は新しいトランザクションを実行できる状態まで完全にサービスを復元することです

目標復旧時点 (RPO)これは多くの場合どのくらいのデータ損失が許容されるかの基準として考えられます障害発生前に最後にコミットされたデータ トランザクションと障害発生後に復元された最新のデータとの時間差や遅延が示されます実際に失われるデータの量は障害発生時のシステムのワークロード障害の種類および使用されている高可用性ソリューションの種類に応じて異なります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 3

RTO と RPO の値はビジネスで許容できるダウンタイムとデータ損失の目安としてまた可用性が健全であるかどうかを監視する際の指標として使用します

ROI または機会費用の正当化ダウンタイムによって生じるビジネス上のコストには金銭的なコストだけでなく顧客からの信用も含まれますこれらのコストには時間の経過と共に発生するものもあれば停止期間中の特定の時点で発生するものもあります復旧時間とデータ復旧ポイントに基づいて停止のコストを見積もる以外にRTO および RPO の達成や停止自体の回避に必要なビジネス プロセスを考えたりインフラストラクチャへの投資を計算したりすることもできますこれらの投資の目的は次のようなものです

ダウンタイムの回避そもそも停止状態にならなければ復旧のコストをまとめて回避できますこの投資にはフォールト トレランスと冗長性のためのハードウェアまたはインフラストラクチャ各障害点を分離した分散ワークロード予防メンテナンスのための計画的なダウンタイムなどのコストが含まれます

復旧の自動化システム障害が発生した場合自動的で透過的な復元が行われればダウンタイムによるカスタマー エクスペリエンスへの影響を大幅に抑えることができます

リソース使用率セカンダリまたはスタンバイ インフラストラクチャは障害に備えてアイドル状態にしておくことができますまた読み取り専用ワークロードのために利用したり利用可能なすべてのハードウェアにワークロードを分散してシステム全体のパフォーマンスを向上させたりもできます

RTO と RPO の目標実現に必要な可用性と復旧のための投資は予測されるダウンタイムのコストと組み合わせて時間の関数として表現し正当化することができますこれによって実際の停止中にダウンタイムの経過時間に基づいてコスト ベースの判断を行うことができます

可用性の健全度の監視運用上の観点からは実際の停止中に関連するすべての変数を考慮しリアルタイムで ROI または機会費用を計算しようとするべきではありません実際にはRPO の期待値に代わるものとしてスタンバイ インスタンスのデータ遅延を監視します

停止の際根本的な原因の調査に費やす時間は制限し代わりに復旧環境の正常性の検証に集中する必要がありますその後詳細なシステム ログとデータのセカンダリ コピーに基づいて原因究明の分析を行います

災害復旧の計画

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 4

高可用性のための取り組みでは停止を回避するために何をするかが問題になりますが災害復旧のための取り組みでは停止後に高可用性を再構築するために何をするかが問題になります

できる限り実際に停止状態になる前に災害復旧の手順と役割分担を策定しておくようにします実行中の監視と警告に基づいて自動または手動のフェールオーバーと復旧計画を開始するかどうかは事前に決められた RTO および RPO のしきい値を考慮しつつ判断する必要があります災害復旧計画には次のようなものを含める必要があります

障害と復旧の適用範囲障害の場所や種類に応じてデータ センター レベルインフラストラクチャ レベルプラットフォーム レベルアプリケーション レベルワークロード レベルなどさまざまなレベルで修正措置が行われます

調査のための資料ベースラインと最新の監視の履歴システム警告イベント ログ診断クエリなどを関係者がいつでも利用できるようにしておく必要があります

依存関係の調整アプリケーション スタック内でまたは関係者間でシステムやビジネスの依存関係を把握しておきます

デシジョン ツリー繰り返し使用できるデシジョン ツリーを事前に定義して検証しておきますこれにはロールの役割障害の優先順位RPO と RTO を実現するためのフェールオーバーの条件所定の復旧手順などを含めます

検証停止状態からの復旧手順を実行した後でシステムが通常の状態に戻ったことを検証するために何をしなければならないかを整理しておきます

文書化新しい担当者でも最低限の補助があれば復旧計画を実行できるように上記のすべての項目を詳細で明確な一連の文書として記録しておきますこのような文書は一般的にラン ブック または クック ブック と呼ばれます

復旧のリハーサル定期的に災害復旧計画の演習を行いRTO のベースラインとなる期待値を確立しプライマリ サイトと各災害復旧サイトでの本番運用のローテーションを検討します

概要 Microsoft SQL Server 2012 での高可用性要求される RPO と RTO を実現するには主要アプリケーションの継続的なアップタイムを確保することと予定外のダウンタイムや予定されたダウンタイム時に重要なデータを保護することが必要ですSQL Server では低コストで簡単にこれらの目標を実現できる一連の機能が用意されています

新しい AlwaysOn の機能について既によくご存じの方は「SQL Server AlwaysOn の保護レイ ヤー」のセクションに進んでより詳細な説明をご覧ください

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 5

SQL Server AlwaysOnAlwaysOn は高い統合性柔軟性およびコスト効率を特徴とした新しい高可用性災害復旧ソリューションですデータ センター内およびデータ センター間でデータとハードウェアの冗長性を実現しアプリケーションのフェールオーバー時間を短縮することでミッション クリティカル アプリケーションの可用性を高めますAlwaysOn は構成の柔軟性が高く既存のハードウェア投資を再利用できます

AlwaysOn ソリューションではデータベース レベルとインスタンス レベルの両方で可用性を構成するためにSQL Server 2012 の次の 2 つの主要な機能を利用できます

AlwaysOn 可用性グループSQL Server 2012 の新機能の 1 つですデータベース ミラーリング機能の大幅な強化によってアプリケーション データベースの可用性の確保に役立ちますログに基づくデータの移動によってデータ保護を実現し共有ディスクを使用せずにデータ損失をゼロにすることができます

複数のデータベースから成る論理グループの単位で自動および手動のフェールオーバーを実行できますまた最大で 4 つのセカンダリ レプリカのサポート高速なアプリケーション フェールオーバー自動ページ修復など多彩なオプションが用意されています

AlwaysOn フェールオーバー クラスター インスタンス (FCI)SQL Server フェールオーバー クラスタリング機能を拡張し複数のサブネットにわたるマルチサイト クラスタリングをサポートしますこれにより異なるデータ センター間での SQL Server インスタンスのフェールオーバーが可能になりますインスタンスのフェールオーバーがより高速となり予測可能となることでアプリケーションをさらにすばやく復旧させることができます

計画的なダウンタイムの大幅な削減どの組織でもアプリケーション ダウンタイムの主な理由はオペレーティング システムへの修正プログラムの適用ハードウェア メンテナンスなどのための計画的なダウンタイムですこうしたダウンタイムがIT 環境の停止の約 80 を占めています

SQL Server 2012 は修正プログラムの要件を減らしより多くのメンテナンス操作をオンラインで実行できるようにすることで計画的なダウンタイムの大幅な削減に役立ちます

Windows Server CoreSQL Server 2012 ではWindows Server Core への配置がサポートされていますこれはWindows Server 2008 および Windows Server 2008 R2 の最小限の合理化された配置オプションですこれによりオペレーティング システムの修正プログラムの要件を最小限に抑え約 60 削減することで計画的なダウンタイムを減らすことができます

オンライン操作LOB のインデックスを再作成したり既定値を使用して列を追加したりするオンライン操作のサポート強化によってデータベース メンテナンス時のダウンタイムが削減されます

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 6

ローリング アップグレードと修正プログラムAlwaysOn 機能はインスタンスのローリング アップグレードと修正プログラムの適用を容易にしますこれによりアプリケーションのダウンタイムが大幅に削減されます

Hyper-V 上の SQL ServerHyper-V 環境でホストされている SQL Server インスタンスではライブ マイグレーションの利点を活用することでホスト間の仮想マシンの移行をダウンタイムなしで実行できます管理者はアプリケーションに影響を与えずにホスト上でメンテナンス操作を実行できます

アイドル状態のハードウェアをなくしてコスト効率とパフォーマンスを向上典型的な高可用性ソリューションでは高コストで冗長なパッシブ サーバーが配置されますAlwaysOn 可用性グループを使用するとパッシブまたはアイドルな状態のセカンダリ データベース レプリカを読み取り専用のワークロード (SQL Server Reporting Services のレポート クエリバックアップ操作など) に活用できますプライマリとセカンダリの両方のデータベース レプリカを同時に使用できるためサーバー ハードウェア間のリソースのバランスが良くなりすべてのワークロードのパフォーマンスが向上します

簡単な配置と管理構成ウィザードWindows PowerShell コマンド ライン インターフェイスのサポートダッシュボード動的管理ビュー (DMV)ポリシー ベースの管理System Center 統合などの機能によって可用性グループの配置と管理が簡単になります

RPO と RTO の機能比較目標復旧時点 (RPO) と目標復旧時間 (RTO) のビジネス目標は高可用性災害復旧ソリューションのために使用する SQL Server テクノロジを選択する際に重要な判断材料となります次の表はさまざまなソリューションで実現される結果を大まかに比較したものです

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 7

高可用性と災害復旧のSQL Server ソリューション

データ損失の可能性 (RPO)

可能な復旧時間 (RTO)

自動フェールオーバー

読み取り可能な

セカンダリ(1)

AlwaysOn 可用性グループ - 同期コミット ゼロ 数秒 (4) 0 - 2

AlwaysOn 可用性グループ - 非同期コミット 数秒 数分 times 0 - 4

AlwaysOn フェールオーバー クラスター インスタンス

該当せず(5) 数秒~ 数分

該当せず

データベース ミラーリング(2) - 高い安全性 (同期 + 監視)

ゼロ 数秒 該当せず

データベース ミラーリング(2) - 高パフォーマンス (非同期)

数秒(6) 数分(6) times 該当せず

ログ配布 数分(6) 数分~ 数時間(6)

times 復元中はなし

バックアップコピー復元(3) 数時間(6) 数時間~ 数日(6)

times 復元中はなし

(1) AlwaysOn 可用性グループで使用できるセカンダリ レプリカは種類に関係なく最大 4 つです(2) この機能は将来のバージョンの Microsoft SQL Server では削除される予定です代わりに AlwaysOn 可用性グループを使用

してください(3) バックアップコピー復元は障害復旧には適していますが高可用性には適していません(4) 可用性グループの自動フェールオーバーはフェールオーバー クラスター インスタンスとの間ではサポートされていま

せん(5) FCI 自体にはデータ保護機能はありませんデータ損失はストレージ システムの実装に依存します(6) ワークロードデータ量およびフェールオーバーの手順に大きく依存します

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 8

SQL Server AlwaysOn の保護レイヤーSQL Server AlwaysOn ソリューションではインフラストラクチャとアプリケーション コンポーネントのいくつかの論理レイヤーおよび物理レイヤーにまたがってフォールト トレランスと災害復旧を実現できます従来はさまざまな関係者と役割ごとに業務と責任を振り分けそれぞれが主に自分のソリューションのレイヤー部分だけに関心を持つことが一般的でした

このセクションではこれらのレイヤーのそれぞれについて詳細に説明しデザインに関する議論や実装についての意思決定に役立つ論点やガイダンスを提示します

SQL Server AlwaysOn ソリューションをうまく利用するには以下のレイヤーについて理解しそれぞれを協調させる必要があります

インフラストラクチャ レベルサーバー レベルのフォールト トレランスとノード内のネットワーク通信が含まれますWindows Server フェールオーバー クラスタリング (WSFC) 機能を使用して稼働状態の監視とフェールオーバーの調整を行います

SQL Server インスタンス レベルSQL Server AlwaysOn フェールオーバー クラスター インスタンス (FCI) はWSFC クラスター内の複数のサーバー ノードにまたがってインストールされる SQL Server インスタンスであり各サーバー ノードへのフェールオーバーが可能ですFCI をホストするノードは堅牢な対称型共有ストレージ (SAN または SMB) に接続されます

データベース レベル可用性グループは共にフェールオーバーされるユーザー データベースのセットです可用性グループは1 つのプライマリ レプリカと最大 4 つのセカンダリ レプリカで構成されます各レプリカはWSFC クラスターの別々のノードにある SQL Server インスタンス (FCI または非 FCI) によってホストされます

クライアント接続データベース クライアント アプリケーションは指定した SQL Server インスタンス ネットワーク名に直接接続できますまたは可用性グループ リスナーにバインドされている仮想ネットワーク名 (VNN) に接続することもできますVNN はWSFC クラスターおよび可用性グループのトポロジを抽象化するものであり接続要求を適切な SQL Server インスタンスとデータベース レプリカに論理的にリダイレクトします

代表的な AlwaysOn ソリューションの論理トポロジは次の図のようになります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 9

インフラストラクチャの可用性AlwaysOn 可用性グループと AlwaysOn フェールオーバー クラスター インスタンスのどちらもWindows Server オペレーティング システムと WSFC をプラットフォーム テクノロジとして利用します今まで以上にMicrosoft SQL Server データベース管理者はこれらのテクノロジについて十分に理解することが必要です

Windows オペレーティング システムSQL Server は基礎的なインフラストラクチャとネットワークストレージセキュリティ更新プログラムおよび監視のサービスを Windows プラットフォームに依存しています

SQL Server 2012 の各エディションはWindows Server 2008 R2 オペレーティング システムの対応するエディション (Windows Server 2008 R2 Standard オペレーティング システムWindows Server 2008 R2 Enterprise オペレーティング システムWindows Server 2008 R2 Datacenter オペレーティング システムなど) の機能や能力をさらに進歩させて構築されています

詳細については「SQL Server 2012 のインストールに必要なハードウェアおよびソフトウェ ア」(httpmsdnmicrosoftcomja-jplibraryms143506(SQL110)aspx) を参照してください

Windows Server Core インストール オプションSQL Server 2012 では高可用性のための主要な機能の 1 つとしてWindows Server 2008 以降で Server Core インストール オプションによる配置をサポートしていますServer Core インストール オプションでは制限された機能と非常に限定的な GUI アプリケーション サポートで特定のサーバー ロールを実行するための最低限の環境が提供されます既定では必要なサービスとコマンド プロンプト環境のみが有効です

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 10

この操作モードではオペレーティング システムへの攻撃の危険性とシステム オーバーヘッドが低下し継続的なメンテナンスサービス修正プログラムなどの要件が大幅に削減されます

SQL Server 2012 を Windows Server Core に配置する場合の主な注意点はSQL Server およびオペレーティング システムのすべての配置構成管理およびメンテナンスをWindows PowerShell などのスクリプト環境やコマンド ラインまたはリモート ツールを使用して行う必要があることです

プライベート クラウド用の SQL Server の最適化高可用性と災害復旧はプライベート クラウド環境ではさらに重要になってきていますプライベート クラウドに SQL Server を配置すればコンピューターネットワークおよびストレージのリソースが効率的に使用され物理的な場所や資本と運営費用の両方の削減に役立ちます配置の統合リソースの効率的なスケーリングオンデマンドでのリソースの配置が容易になり制御の自由度が失われることもありません

SQL Server ではHyper-V のホストとゲストの両方のシステムに対して Windows Server フェールオーバー クラスタリングをサポートするほかライブ マイグレーションもサポートしていますこれは意識されるほどのダウンタイムを生じることなくホスト間で仮想マシンを移動できる機能ですライブ マイグレーションはゲスト クラスタリングとも協調して動作します

詳細については「プライベート クラウド コンピューティング - プライベート クラウド用の SQL Server の最適化 」(httpwwwmicrosoftcomSqlServerPrivateCloud) を参照してください

Windows Server フェールオーバー クラスタリングWindows Server フェールオーバー クラスタリング (WSFC) はMicrosoft SQL Server などのサーバー アプリケーションに対して高可用性と災害復旧をサポートするインフラストラクチャ機能を提供します

WSFC クラスター ノードまたはサービスに障害が発生するとそのノードでホストされていたサービスまたはリソースは自動的にまたは手動で他の可用性ノードに転送されますこのプロセスをフェールオーバーと呼びますAlwaysOn ソリューションではこのプロセスが FCI と可用性グループの両方に適用されます

WSFC クラスター内の各ノードは連携して次のような機能を提供します

分散メタデータと通知WSFC サービスとホストされるアプリケーション メタデータはクラスター内の各ノードで維持されますこのメタデータにはホストされるアプリケーションの設定に加えWSFC の構成と状態が含まれます1 つのノードでのメタデータまたは状態の変更はクラスター内の他のノードに自動的に反映されます

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 11

リソース管理クラスター内の各ノードは直接アタッチされたストレージ (DAS)ネットワーク インターフェイス共有ディスク ストレージへのアクセスなど物理的リソースを提供する場合がありますSQL Server などホストされるアプリケーション自体もクラスター リソースとして登録されますまた他のリソースに対するスタートアップと正常性にかかわる依存関係を構成できます

正常性の監視ノード間の正常性およびプライマリ ノードの正常性はハートビート ネットワーク通信とリソースの監視を組み合わせることで検出されますクラスターの全体的な正常性状態はクラスター内のノードのクォーラムの投票によって決定されます

フェールオーバーの調整各リソースはプライマリ ノードでホストされるように構成されそれぞれ自動的にまたは手動で 1 つ以上のセカンダリ ノードに転送されます正常性ベースのフェールオーバー ポリシーによってノード間でのリソース所有権の自動転送が制御されますフェールオーバーが発生すると適切に対応できるように各ノードおよびホストされているアプリケーションに通知されます

詳細については「Windows Server | フェールオーバー クラスタリングとノード バランシン グ」(httpwwwmicrosoftcomwindowsserver2008enusfailover-clustering-mainaspx) を参照してください

注 データベース管理者が WSFC クラスターおよびクォーラム管理の内部動作を理解しておくことが非常に重要になりましたAlwaysOn の正常性の監視管理および障害復旧の手順はすべてが本質的に WSFC 構成と関連しています

WSFC ストレージ構成Windows Server フェールオーバー クラスタリングでは接続されているストレージ デバイスディスク ボリュームおよびファイル システムの管理をクラスター内の各ノードに依存していますWSFC はストレージ サブシステムが非常に堅牢であると想定しているためノードに接続されたストレージ デバイスが使用できない場合はクラスター ノードが障害状態であると見なします

書き込みベースの操作ではディスク ボリュームは SCSI-3 の永続的な予約を使用して一度に 1 つのクラスター ノードに論理的に接続されますノードで障害が発生した場合にはストレージ サブシステムの機能と構成に応じてディスク ボリュームの論理的所有権をクラスター内の別のノードに移すことができます

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 12

SQL Server AlwaysOn ソリューションでは次のような WSFC ストレージ構成の組み合わせを利用しその制限も受けます

直接接続とリモートストレージ デバイスはサーバーに物理的に直接接続されるかまたはネットワークやホスト バス アダプター (HBA) を介してリモートのストレージ デバイスを使用しますリモート ストレージのテクノロジにはiSCSI やファイバー チャネルなどのストレージ エリア ネットワーク (SAN) ベースのソリューションとサーバー メッセージ ブロック (SMB) というファイル共有ベースのソリューションがあります

対称と非対称ストレージ デバイスの論理ディスク ボリューム構成とファイル パスがクラスターの各ノードでまったく同じである場合それらのストレージ デバイスは対称的であると見なされます基になるディスク ボリュームの物理的な実装と容量は異なっていてもかまいません

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 13

専用と共有専用ストレージは使用するために予約されクラスター内の 1 つのノードに割り当てられます共有ストレージはクラスターの複数のノードからアクセスできます共有ストレージ デバイスが SCSI-3 プロトコルに準拠していればそれらの制御と所有権をノード間で移動させることができますWSFC ではファイル共有のためにクラスター共有ボリュームを同時に複数のノードでホスティングできますただしSQL Server は複数のノードからの共有ボリュームへの同時アクセスをサポートしていません

注 SQL Server FCI では対称共有ストレージを使用してインスタンスのすべてのノード所有者 (およびその候補) からアクセスできるようにする必要がありますただしAlwaysOn 可用性グループの導入に伴いそれぞれが独自に専用のローカルまたはリモート ストレージを持つ非 FCI の SQL Server インスタンスを WSFC クラスターに配置できるようになりました

WSFC リソースの正常性の検出とフェールオーバーWSFC クラスター ノード内の各リソースの状態と正常性は定期的にまたは要求に応じて報告されますクラスター リソースの障害を示す状況としてはたとえば電源障害ディスクまたはメモリのエラーネットワーク通信エラー構成エラー応答しないサービスなどがあります

ネットワークストレージサービスなどの WSFC クラスター リソースは互いに依存するように構成できますあるリソースの累積的な正常性は依存関係を持つリソースの正常性を連続的にたどってゆくことで決定されます

AlwaysOn 可用性グループでは可用性グループと可用性グループ リスナーがそれぞれ WSFC クラスター リソースとして登録されますAlwaysOn フェールオーバー クラスター インスタンスではSQL Server サービスおよび SQL Server エージェント サービスが WSFC クラスター リソースとして登録されどちらもインスタンスの仮想ネットワーク名リソースに依存します

WSFC クラスター リソースで設定された数のエラーまたは障害が一定期間内に発生した場合構成されたフェールオーバー ポリシーによってクラスター サービスは次のいずれかの操作を行います

現在のノードでのリソースの再起動 リソースをオフライン化 リソースとその依存関係を別のノードへ自動的にフェールオーバー

注 WSFC クラスター リソースの正常性の検出は個々のノードの正常性やクラスターの全体的な正常性には直接影響しません

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 14

WSFC のクラスター検証ウィザードクラスター検証ウィザードはWindows Server 2008 および Windows Server 2008 R2 のフェールオーバー クラスタリングに統合されている機能ですこれはSQL Server AlwaysOn ソリューションの配置前 にクリーンで正常な安定した WSFC 環境が存在していることをデータベース管理者が確認するために使用する主要なツールです

クラスター検証ウィザードではクラスターのノードとして使用するサーバーの集合または既存のクラスターを対象にして一連のテストを実行できますこのプロセスでは基になるハードウェアおよびソフトウェアが個別に直接テストされWSFC クラスターが特定の構成でどの程度良好にサポートされるかについての正確な評価が得られます

この検証プロセスでは各ノードに対して次のようなカテゴリの一連のテストとデータ収集が実施されます

一覧作成BIOS のバージョン環境レベルホスト バス アダプターRAMオペレーティング システムのバージョンデバイスサービスドライバーなどの情報です

ネットワークNIC のバインド順序ネットワーク通信IP 構成ファイアウォール構成などの情報ですすべての NIC でノード間の通信が検証されます

ストレージディスクドライブの容量アクセス待機時間ファイル システムなどの情報ですSCSI コマンドディスク フェールオーバー機能対称的または非対称的なストレージ構成が検証されます

システム構成Active Directory の構成ドライバーの登録メモリ ダンプの設定必要なオペレーティング システムの機能とサービス互換性のあるプロセッサ アーキテクチャおよびサービス パックと Windows Software Update のレベルが検証されます

これらの検証テストの結果を利用してクラスターの構成を微調整したり構成を追跡したりダウンタイムを引き起こすかもしれない潜在的なクラスター構成の問題を特定したりできますテスト結果のレポートは後で参照できるようにHTML ドキュメントとして保存できます

これらのテストはWSFC の構成に何か変更を加える前と加えた後に実行するほかSQL Server をインストールする前および災害復旧プロセスの一環として実行する必要がありますマイクロソフトで特定の WSFC クラスター構成がサポートされるためにはマイクロソフト カスタマー サポート サービス (CSS) にクラスター検証レポートを提出する必要があります

詳細については「フェールオーバー クラスター ステップ バイ ステップ ガイド フェール オーバー クラスター用ハードウェアを検証する」(httptechnetmicrosoftcomja-jplibrarycc732035(WS10)aspx) を参照してください

注 ハードウェアベースの地理的クラスタリング ストレージ ソリューションの場合やAlwaysOn 可用性グループの場合のようにクラスター構成に非対称ストレージがあるとクラスター検証ウィザードでストレージの検証手順を成功させるために多数の修正プログラムを適用しなければならないことがあります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 15

詳細については「AlwaysOn 可用性グループの前提条件制限事項および推奨事項 」(httpmsdnmicrosoftcomja-jplibraryff878487(SQL110)aspxSystemReqsForAOAG) を参照してください

WSFC クォーラム モードと投票の構成WSFC ではクォーラム ベースのアプローチを使用してクラスターの全体的な正常性を監視することでノード レベルのフォールト トレランスを最大限に高めますWSFC のクォーラム モードおよびノード投票構成の基本について理解することはAlwaysOn 高可用性災害復旧ソリューションの設計運用トラブルシューティングのために非常に重要です

クォーラムによるクラスター状態検出WSFC クラスター内の各ノードは定期的なハートビート通信に参加しノードの正常性状態を他のノードと共有します応答しないノードはエラー状態であると見なされます

クォーラム ノード セットとはWSFC クラスター内の投票ノードおよび監視サーバーのうち過半数を占めるノードの集合ですWSFC クラスターの全体的な正常性と状態は定期的なクォーラムの投票 によって決定されますクォーラムはクラスターが正常でありノード レベルのフォールト トレランスを提供できることを意味します

クォーラムに達していない状態はクラスターが正常でないことを示しますプライマリ ノードのフェールオーバー先として正常なセカンダリ ノードを使用できるようにするにはWSFC クラスターの全体的な正常性が維持されている必要があります投票数がクォーラムに達しなかった場合にはWSFC クラスター全体が予防策としてオフラインに設定されますその場合クラスターに登録されている SQL Server インスタンスがすべて停止します

注 クォーラム障害のために WSFC クラスターがオフラインに設定されるとオンラインに戻すために手動の操作が必要です詳細については後の「WSFC の強制クォーラムによる災害 復旧」のセクションを参照してください

クォーラム モードクォーラム モードはWSFC クラスター レベルで構成されクォーラム投票の方法を指定しますフェールオーバー クラスター マネージャー ユーティリティではクラスター内のノード数に基づいて推奨するクォーラム モードが提示されます

次のいずれかのクォーラム モードによって投票クォーラムの構成が決定されます

ノード マジョリティクラスターが正常であるためにはクラスター内の半分以上の投票ノードが肯定的に投票する必要があります

ノードおよびファイル共有マジョリティノード マジョリティ クォーラム モードに似ていますがリモート ファイル共有も投票監視サーバーとして構成され各ノードからそのリモート ファイル共有への接続も肯定的な投票としてカウントされますクラスターが正常であるためには投票の過半数が肯定的である必要があります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 16

推奨事項として監視ファイル共有はクラスター内のノードに存在せずクラスター内のすべてのノードから見える必要があります

ノードおよびディスク マジョリティノード マジョリティ クォーラム モードに似ていますが共有ディスク クラスター リソースも投票監視サーバーとして使用され各ノードからその共有ディスクへの接続も肯定的な投票としてカウントされますクラスターが正常であるためには投票の過半数が肯定的である必要があります

ディスクのみ共有ディスク クラスター リソースが監視サーバーとして使用され各ノードからその共有ディスクへの接続が肯定的な投票としてカウントされます

詳細については「フェールオーバー クラスター ステップ バイ ステップ ガイド フェール オーバー クラスターのクォーラムの構成」(httptechnetmicrosoftcomja-jplibrarycc770620(WS10)aspx) で説明されています

注 クラスターの各ノードが同じ共有ストレージ クォーラム監視ディスクを使用するように構成されていない限り通常投票ノード数が奇数の場合は ノード マジョリティ クォーラム モード投票ノード数が偶数の場合は ノードおよびファイル共有マジョリティ クォーラム モードを使用してください

投票ノードと非投票ノード既定ではWSFC クラスター内の各ノードがクラスター クォーラムのメンバーとなります各ノードファイル共有監視サーバーディスク監視サーバーがクラスターの全体的な正常性の決定においてそれぞれ 1 票ずつの投票権を持ちますクォーラムに関するここまでの説明ではクラスター状態について投票する WSFC クラスター ノードのセットを投票ノードとして注意深く限定してきました状況によってはすべてのノードに投票権を与えることが適切でない場合もあります

WSFC クラスターの各ノードはクォーラムを確立しようとし続けますクラスター内の個々のノードはクラスターが全体として正常であるか正常でないかを明確に決定することはできません特定の時点で各ノードからは他のノードの一部がオフラインフェールオーバー中またはネットワーク通信のエラーにより応答不能に見えますクォーラム投票の主な機能はWSFC クラスターの各ノードの見かけの状態が本当にそれらのノードの実際の状態であるかどうかを判断することです

ディスクのみ 以外のすべてのクォーラム モデルではクォーラム投票の有効性はクラスター内のすべての投票ノード間に信頼できる通信が確立されていることに依存しますすべてのノードが同じ物理サブネット上にある場合はクォーラムの投票を信頼できます

しかしクォーラム投票で他のサブネット上のノードが応答しないように見えても実際はオンラインで正常である場合はサブネット間のネットワーク通信のエラーが原因であることが考えられますクラスター トポロジクォーラム モードおよびフェールオーバー ポリシーの構成によってはネットワーク通信エラーによって投票ノードのセット (またはサブセット) が実質的に複数作成されてしまう可能性があります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 17

投票ノードの複数のサブセットがそれぞれ独自のクォーラムを構築できる状態はスプリット ブレイン と呼ばれますこの状態では各クォーラム上のノードが別々の動作をし相互に矛盾する可能性があります

注 スプリット ブレイン の状況が発生するのはシステム管理者が強制クォーラム動作を手動で実行するかまたは非常にまれですが強制的な手動フェールオーバーを実行することでクォーラム ノード セットが明示的に細分化された場合のみです詳細については後の「WSFC の強制クォーラムによる災害復旧 」のセクションを参照してください

クォーラム構成を単純化し稼働時間を長くする目的でノードの投票がクォーラムにカウントされないように各ノードの NodeWeight 設定 (値 0 または 1) を調整することができます

クォーラム投票に推奨される調整以下のガイドラインをこの順番に適用することでクラスターに対して推奨されるクォーラム投票の構成を判断できます

1 既定は投票権なしにします明確な理由がない限り各ノードには投票権を与えないと考えてください

2 すべてのプライマリ ノードに投票権を与えますAlwaysOn 可用性グループのプライマリ レプリカをホストする各ノードおよび AlwaysOn フェールオーバー クラスター インスタンスの優先所有者である各ノードは投票権を持つ必要があります

3 可能性のある自動フェールオーバーの所有者を含めます自動フェールオーバーの結果としてプライマリ レプリカまたは FCI をホストする可能性がある各ノードは投票を持つ必要があります

4 セカンダリ サイト ノードを除外します通常はセカンダリ災害復旧サイトに存在するノードには投票を提供しないでくださいプライマリ サイトに問題がない場合クラスターをオフラインにする判断にセカンダリ サイト内のノードが影響を与えることは避ける必要があります

5 投票数を奇数にします必要に応じて監視ファイル共有監視ノード (SQL Server インスタンスの有無は問いません)または監視ディスクをクラスターに追加してクォーラム モードを調整しクォーラムの投票結果が同数に分かれるのを防ぎます

6 フェールオーバー後の投票割り当てを再評価します正常なクォーラムをサポートしないクラスター構成にフェールオーバーすることは避けます

ノードの投票の調整の詳細については「クラスター クォーラムの NodeWeight の設定の構 成」(httpmsdnmicrosoftcomja-jplibraryhh270281(SQL110)aspx) を参照してください

ファイル共有監視サーバーの投票は調整できませんその投票を含めるか除外するかを決めるには別のクォーラム モードを選択する必要があります

注 SQL Server ではWSFC クラスター構成およびノード クォーラム投票に関する設定を管理するためにいくつかのシステム動的管理ビュー (DMV) が公開されています

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 18

詳細については「可用性グループの監視」(httpmsdnmicrosoftcomja-jplibraryff878305(SQL110)aspx) を参照してください

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 19

WSFC の強制クォーラムによる災害復旧通常クォーラム障害は災害発生時または WSFC クラスター内の複数のノード間で永続的な通信障害が生じた場合に発生しますクォーラム障害が発生するとクラスターがノード レベルのフォールト トレランスを確保できなくなるためその WSFC クラスター内の SQL Server インスタンス可用性グループおよびクラスター化されているサービスがすべてオフラインになりますクォーラム障害はWSFC クラスター内の正常な投票ノード数がクォーラム モデルを満たさなくなったことを意味しますノードによってまったく機能しなくなるものもあればWSFC サービスがシャットダウンしただけでクォーラムと通信できなくなったことを除けば正常なものもあります

WSFC クラスターをオンラインに戻すには既存の構成の少なくとも 1 つのノードでクォーラム障害の根本的な原因を解決する必要があります災害発生時には使用できる代替ハードウェアの再構成や識別が必要となる場合もあります現状のクラスター トポロジを反映するためにWSFC クラスターの残りのノードを再構成する場合もあります

WSFC クラスター ノードで強制クォーラムの手順を使用するとクラスターがオフラインになる原因となった安全管理機能を無効にすることができますこれによりクラスターでのクォーラム投票のチェックが実質的に中断されクラスター内の任意のノードで WSFC クラスター リソースと SQL Server をオンラインに戻すことができます

このような災害復旧プロセスの手順を次に示します

1) 障害の範囲を特定します応答しない可用性グループや SQL Server インスタンス災害後に使用できるオンラインのクラスター ノードをそれぞれ特定しWindows イベント ログと SQL Server システム ログを確認します必要に応じて後で分析できるように解析データやシステム ログを保存しておきます

2) 1 つのノードで強制クォーラムを使用して WSFC クラスターを起動します他の点では正常なノードで強制クォーラムの手順に従ってクラスターを手動で強制的にオンラインにしますこの場合データ損失の可能性を最小限に抑えるには可用性グループのプライマリ レプリカを最後にホストしていたノードを選択します

詳細については「クォーラムを使用せずに WSFC クラスターを強制的に起動する 」(httpmsdnmicrosoftcomja-jplibraryhh270275(v=SQL110)aspx) を参照してください

注 強制クォーラムの設定を使用するとWSFC クラスターの投票が過半数に達することで通常のクォーラム モードの動作に自動的に切り替わるまでクラスター全体のクォーラムのチェックがブロックされます

3) 他の点では正常な各ノードでWSFC サービスを 1 つずつ通常の方法で起動します他のノードでクラスター サービスを起動するときは強制クォーラム オプションを指定する必要はありません

各ノードの WSFC サービスがオンラインに戻ると他の正常なノードとの間でネゴシエーションが行われ新しいクラスター構成の状態が同期されますクラスターの最新の状態

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 20

を判断するときに競合状態の発生を避けるためこの手順は必ず一度に 1 つのノードで行うようにしてください

注 起動した各ノードが新たにオンラインにした他のノードと通信できることを確認しますそうしないと複数のクォーラム ノード セットが作成されて スプリット ブレイン の状況に陥るおそれがあります手順 1 の結果に問題がなければこの現象は発生しません

4) 新しいクォーラム モードとノードの投票の構成を適用します強制クォーラムの手順によってクラスターのすべてのノードを正常に再起動させクォーラムのエラーの根本原因を修正した場合クォーラム モードとノードの投票を元の構成から変更する必要はありません

それ以外の場合は新たに復元されたクラスター ノードと可用性レプリカのトポロジを評価し必要に応じてクォーラム モードと各ノードの投票割り当てを変更します未復旧のノード上ではWSFC クラスター サービスをオフラインにするかノードの投票をゼロに設定します

注 この時点でクラスター内のノードと SQL Server インスタンスが通常の動作に戻っているように見えることがありますがまだ正常なクォーラムには達していない可能性がありますフェールオーバー クラスター マネージャーやSQL Server Management Studio の AlwaysOn ダッシュボードまたは適切な DMV を使用して正常なクォーラムが復元されたことを確認してください

5) 必要に応じて可用性グループのデータベース レプリカを復旧します一部のデータベースはSQL Server の通常の起動処理の一環として自動的に復旧されオンラインに戻ることがありますそれ以外のデータベースの復旧には追加で手動の手順を実行する必要があります

可用性グループ レプリカのデータ損失の可能性や復旧にかかる時間を最小限に抑えるにはできればプライマリ レプリカ同期セカンダリ レプリカ非同期セカンダリ レプリカの順にオンラインに戻します

6) 障害が発生したコンポーネントを修復するか交換しクラスターを再検証しますこれで最初の災害およびクォーラム障害から復旧できたので障害が発生したノードを修復するか交換しWSFC と AlwaysOn の関連する構成を適切に調整する必要がありますこれには可用性グループ レプリカの削除クラスターからのノードの削除ノードへのソフトウェアの再インストールなどが含まれます

注 停止したすべての可用性レプリカを修復または削除する必要がありますSQL Server 2012 では最も古い可用性レプリカを最後に認識した時点以降トランザクション ログが切り捨てられません停止したレプリカを修復するか可用性グループから削除しないとトランザクション ログが大きくなり他のレプリカのトランザクション ログの領域が不足する可能性があります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 21

7) 必要に応じて手順 4 を繰り返しますこの目的は正常な動作を行うために適切なレベルのフォールト トレランスと高可用性を再確立することです

8) RPORTO 分析を実行しますSQL Server のシステム ログデータベースのタイムスタンプおよび Windows のイベント ログを分析して障害の根本的な原因を特定し実際の復旧ポイントと復旧時間を文書に記録します

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 22

SQL Server インスタンス レベルでの保護次に説明する AlwaysOn ソリューションの保護レイヤーはデータ プラットフォームそれ自体ですMicrosoft SQL Server 2012 とその Windows Server インフラストラクチャ コンポーネントとの統合によって次のような機能が提供されます

可用性の向上 ndash SQL Server インスタンスこれは SQL Server 2012 の新しいインスタンス レベルの機能でAlwaysOn フェールオーバー クラスター インスタンスとAlwaysOn 可用性グループをホストするスタンドアロン インスタンスの両方の可用性を強化します

以下の強化点によってフェールオーバーの管理およびトラブルシューティングが向上します

柔軟なフェールオーバー ポリシー信頼性の高いエラー検出に使用される新しいシステム ストアド プロシージャ sp_server_diagnostics の出力でSQL Server インスタンスに影響するエラーの重大度が FailureConditionLevel プロパティによって示されますWSFC のフェールオーバー ポリシーによってこの値が SQL Server インスタンスにどのように影響するかを制御できますある程度エラーを許容する設定からSQL Server の内部コンポーネント エラーを重点的に検出する設定までさまざまに構成できます

特定のレベルのエラーによってフェールオーバーを開始するように構成できますエラーのレベルにはサーバーの停止サーバーの応答停止重大なエラー中程度のエラーなんらかの条件付きエラーなどがありますFailureConditionLevel プロパティはFCI または可用性グループのフェールオーバー ポリシーのために使用できます

SQL Server 2012 よりも前のバージョンではフェールオーバーを制御できるようなエラー状態の区分がなくすべてのサービス レベルのエラーによってフェールオーバーが発生しました

詳細については「フェールオーバー クラスター インスタンスのフェールオーバー ポリシー」(httpmsdnmicrosoftcomja-jplibraryff878664(SQL110)aspx) を参照してください

強化されたインストルメンテーションとログAlwaysOn 専用のシステム構成ビューDMVパフォーマンス カウンターに加えて拡張されたイベント正常性セッションによってAlwaysOn 配置のトラブルシューティングチューニングおよび監視に必要な情報を取得して表示できますこれらの多くはSQL Server ポリシー管理の新しいファセットおよびポリシーを通じて公開されます

詳細については「AlwaysOn 可用性グループの動的管理ビューおよび関 数」(httpmsdnmicrosoftcomja-jplibraryff877943(SQL110)aspx) と「sysdm_os_cluster_nodes」(httpmsdnmicrosoftcomja-jplibraryms187341(SQL110)aspx) を参照してください

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 23

SMB ファイル共有のサポートWindows Server 2008 以降のスタンドアロン用またはフェールオーバー クラスター インスタンス用のリモート ファイル共有にデータベース ファイルを格納することができますこの場合FCI ごとに異なるドライブ文字を使用する必要がありませんこれはストレージを統合する場合やデータベース ファイルのストレージを仮想マシンのゲスト オペレーティング システム用物理サーバーでホストする場合などに便利なオプションです適切に構成すれば直接接続されたストレージとほぼ同等の IO パフォーマンスが得られます

詳細については「ファイル共有上の SQL データベース - シナリオを再検討すべきとき 」(httpblogsmsdncombsqlserverstorageenginearchive20111018sql-databases-on-file-shares-it-s-time-to-reconsider-the-scenarioaspx) を参照してください

注 WSFC クラスターではSMB ファイル共有リソースの依存関係を SQL Server リソース グループに追加することはできませんファイル共有の可用性を確保するには別の方法を用いる必要がありますファイル共有が使用できなくなった場合SQL Server は IO 例外をスローしオフラインになります

WSFC と DNS の相互運用性FCI または可用性グループ リスナーの仮想ネットワーク名 (VNN) はVNN の作成時または構成の変更時にのみDNS に登録されますすべての仮想 IP アドレスはオンライン状態かオフライン状態かに関係なく同じ仮想ネットワーク名で DNS に登録されますDNS の仮想ネットワーク名を解決するためのクライアント呼び出しは各種のラウンド ロビン シーケンスによってすべての登録済み IP アドレスを返します

AlwaysOn フェールオーバー クラスター インスタンスSQL Server の AlwaysOn フェールオーバー クラスター インスタンス (FCI) の主な目的は1 つのデータ センター内のローカル サーバーとストレージ ハードウェアでホストされている SQL Server インスタンスの可用性を高めることです

FCI はWindows Server フェールオーバー クラスタリング (WSFC) のクラスターに含まれる複数のノードにまたがってインストールされる1 つの論理的な SQL Server インスタンスですただし一度に 1 つのノードだけでアクティブになることができますクライアント アプリケーションはアクティブなクラスター ノードが所有している仮想ネットワーク名および仮想 IP アドレスに接続します

FCI をインストールした各ノードは同一の構成を持ち同一の SQL Server バイナリを含んでいますWSFC クラスター サービスはアクティブなインスタンス上にある Windows レジストリのエントリからFCI をインストールした各ノードに関連のある変更をレプリケートしますFCI がインストールされている各ノードはインスタンスとそのリソースの所有者の候補として指定されフェールオーバーの優先順位に従って所有者となります

共有対称ストレージ ボリュームに格納されているデータベース ファイルはリソースとして WSFC クラスターに登録され現在 FCI をホストしているノードによって所有されます

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 24

詳細については「AlwaysOn フェールオーバー クラスター インスタン ス」(httpmsdnmicrosoftcomja-jplibraryms189134(SQL110)aspx) を参照してください

FCI のフェールオーバー プロセス依存しているクラスター リソースで障害が発生した場合AlwaysOn フェールオーバー クラスター インスタンスはWSFC クラスター サービスと連携してフェールオーバーを行いますそのプロセスの概要を以下に示します

1) 再起動が指示されますWSFC の定期的なチェックまたは SQL Server のフェールオーバー ポリシー構成によってエラー状態が示されます既定では他のノードへのフェールオーバーを開始する前にサービスの再起動が試みられます再起動の試みがタイムアウトするようであればリソースの障害が発生しています

2) フェールオーバーが指示されますフェールオーバー ポリシー チェックによってノードのフェールオーバーが必要であることが示されます

3) SQL Server サービスが停止されますSQL Server サービスが現在実行されている場合はその正常なシャットダウンが試みられます

4) WSFC クラスター リソースが転送されますSQL Server クラスター リソース グループの所有権とそれが依存するネットワークおよび共有ストレージ リソースがFCI で次に優先されるノード所有者に転送されます

5) 新しいノードで SQL Server が起動されますSQL Server インスタンスは通常のスタートアップ プロシージャで起動されます所定のタイムアウト時間内にオンラインに戻らない場合クラスター サービスはこの新しいノード上のリソースをエラー状態と見なします

6) 新しいノードでユーザー データベースが復旧されます各ユーザー データベースは復旧モードに設定されます復旧モードではトランザクション ログの再実行操作が適用されコミットされていなかったトランザクションがロールバックされます

FCI の強化以前のバージョンの SQL Server でも FCI のインストール オプションは用意されていましたがSQL Server 2012 では次のような機能強化によって可用性の堅牢性と利便性が向上しました

マルチサブネット クラスタリングSQL Server 2012 では複数のサブネットに存在する WSFC クラスター ノードがサポートされていますWSFC クラスター ノードに存在する SQL Server インスタンスはいずれかのネットワーク インターフェイスが使用可能であれば起動できますこれはクラスター リソースの OR 依存関係と呼ばれます

以前のバージョンの SQL Server の場合SQL Server サービスを起動またはフェールオーバーするにはすべてのネットワーク インターフェイスが機能しそれらがすべて同じサブネットまたは VLAN に存在している必要がありました

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 25

注 マルチサブネット クラスタリングではクラスター ノード間のストレージ レベルのレプリケーションが自動的には有効になりませんマルチサブネットの FCI ソリューションでクラスター ノード間でデータのレプリケーションを行いストレージ フェールオーバーを調整するためにはサード パーティから提供される SAN ベースのソリューションを利用する必要があります

詳細については「SQL Server 2012 AlwaysOn マルチサイト フェールオーバー クラスター インスタンス」(httpsqlcatcomsqlcatbwhitepapersarchive20111222sql-server-2012-alwayson_3a00_-multisite-failover-cluster-instanceaspx) を参照してください

信頼性の高いエラー検出WSFC クラスター サービスではノードの各 SQL Server 2012 FCI に対してそれぞれ専用の管理者接続が維持されますこの接続では特殊なシステム ストアド プロシージャ sp_server_diagnostics を定期的に呼び出すことでシステムの正常性診断に役立つ豊富な情報を含む配列が返されます

SQL Server 2012 よりも前のバージョンではFCI の主な正常性検出メカニズムは単純な一方向のポーリング プロセスとして実装されていましたこのプロセスではWSFC クラスター サービスがインスタンスへの新しい SQL クライアント接続を定期的に作成しサーバー名を照会した後で接続を切断していました何かの理由で接続が失敗するかクエリがタイムアウトした場合フェールオーバーが開始されますが診断情報はほとんど提供されません

詳細については「sql_server_diagnostics」(httpmsdnmicrosoftcomja-jplibraryff878233(SQL110)aspx) を参照してください

現在ではFCI ストレージが次のように幅広い状況でサポートされています

向上したマウント ポイント サポートSQL Server のセットアップ時にクラスター ディスクのマウント ポイント設定が認識されるようになりました指定されたクラスター ディスクとそれにマウントされているすべてのディスクがセットアップ時に SQL Server リソースの依存関係に自動的に追加されます

ローカル ストレージの tempdbFCI ではローカルの非共有ストレージ (ローカル ソリッド ステート ドライブなど) に tempdb を配置できるようになったため共有 SAN での IO 動作の負荷を大幅に軽減できる可能性があります

SQL Server 2012 よりも前のバージョンの FCI ではtempdb が他のシステム データベースと共にフェールオーバーされる対称共有ストレージ ボリュームに配置される必要がありました

注 tempdb の場所はmaster データベースに格納されますこのデータベースはフェールオーバー時にノード間で移動されますtempdb は所有者候補となっているすべてのノード上で有効で対称的なファイル パス (ドライブフォルダーおよび権限) に配置されている必要がありますそうなっていない場合SQL Server サービスが一部のノードでは起動されません

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 26

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 27

データベースの可用性インフラストラクチャ レベルおよび SQL Server インスタンス レベルのコンポーネントで提供されている高可用性機能は互いに連係してホストされているデータベースを暗黙的に保護しますAlwaysOn ソリューションではデータベースのデータおよびデータ層アプリケーションを明示的に保護するために一連のオプションが追加で用意されています

AlwaysOn 可用性グループ可用性グループは1 つの SQL Server インスタンスから同じ WSFC クラスター内の別のインスタンスへと同時にフェールオーバーされるユーザー データベースのセットですクライアント アプリケーションは可用性グループ リスナーと呼ばれる WSFC 仮想ネットワーク名を通じて可用性グループのデータベースに接続できますこうすることで基になる SQL Server インスタンスが抽象化されます

AlwaysOn 可用性グループは正常性監視フェールオーバーの調整およびサーバー接続を Windows Server フェールオーバー クラスタリングに依存していますWSFC クラスター ノード上の SQL Server インスタンスでAlwaysOn サポートを有効にする必要がありますただしそのインスタンスが FCI である必要はなく対称共有ストレージを使用する必要もありません

詳細については「AlwaysOn 可用性グループの概要 」(httpmsdnmicrosoftcomja-jplibraryff877884(SQL110)aspx) を参照してください

可用性レプリカとロール可用性グループの各 SQL Server インスタンスは可用性グループのユーザー データベースのコピーを保持している可用性レプリカをホストしますSQL Server インスタンスは特定の可用性グループの可用性レプリカを 1 つだけホストすることができますが複数の可用性グループを同じインスタンスに置くことは可能ですSQL Server インスタンスは専用の (非共有) ストレージ ボリュームを持つ必要があります

可用性レプリカの 1 つがプライマリ レプリカの役割を果たしますこれは可用性グループ データベースのマスター コピーとして指定されていて読み取り書き込み操作を行うことができます

可用性グループには読み取り専用の可用性レプリカを最大 4 つまで追加で含めることができますこれらは個別にセカンダリ レプリカの役割を果たします

可用性レプリカの同期可用性グループの各データベースの内容はSQL Server によるログ ベースのデータ移動メカニズムを通じてプライマリ レプリカから各セカンダリ レプリカに同期されますそのため可用性グループのすべてのデータベースは完全復旧モデルに設定する必要があります

セカンダリ レプリカはプライマリ レプリカのデータベースとトランザクション ログの完全なバックアップと復元によって初期化されますプライマリ レプリカで新しいトランザクションがコミットされるとトランザクション ログの対応する部分がキャッシュされ

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 28

キューに入れられてネットワーク経由でセカンダリ レプリカ ノード上のデータベース ミラーリング エンドポイントに送信されます

この方法によりプライマリ レプリカのトランザクション ログの新しいエントリが各セカンダリ レプリカのトランザクション ログに追加されます各セカンダリ レプリカはログ シーケンス番号 (LSN) をプライマリ レプリカに定期的に送り返しトランザクション ログのどのくらいの量がリモート ディスクに書き込まれフラッシュされたかを示します

注 各可用性レプリカはそれぞれ独自に独立したトランザクション ログ再実行スレッドのセットを保持していますこれは可用性レプリカの同期プロセスには含まれませんセカンダリ レプリカ上ではログ再実行プロセスによって遅延時間が生じるためユーザーはそれをデータの待機時間として感じる場合があります

プライマリまたはセカンダリの役割を果たす他に各可用性レプリカには可用性モードもありますこのモードは次のようにCOMMIT TRAN ステートメントの実行時にトランザクション ログの書き込みの連係を制御します

同期コミット モードすべての同期コミット セカンダリ レプリカからそれぞれ独自のトランザクション ログの書き込み完了 (LSN 以降) が通知されるまでプライマリ レプリカはそのトランザクションをコミットしません可用性グループでは最大で 2 つの同期コミット セカンダリ レプリカを使用できます

同期コミット モードではプライマリ レプリカ データベースでトランザクションの遅延が生じますがコミットされたトランザクションに対するセカンダリ レプリカでのデータ損失を確実に防ぐことができます

非同期コミット モードプライマリ レプリカはローカル トランザクション ログの書き込み後にトランザクションをコミットしますが非同期コミット セカンダリ レプリカからトランザクション ログの書き込み完了通知を待つことはしません可用性グループでは最大で 4 つの非同期コミット セカンダリ レプリカを使用できますただし両方の種類を合わせて使用できるセカンダリ レプリカの合計は最大 4 つです

非同期コミット モードではプライマリ レプリカ データベースで生じるトランザクションの遅延が最小になりますがセカンダリ レプリカでのトランザクション ログが遅れる場合があるため一部のデータが失われる可能性があります

詳細については「可用性モード」(httpmsdnmicrosoftcomja-jplibraryff877931(SQL110)aspx) を参照してください

可用性レプリカ間のデータ フローの全体的な正常性は各レプリカの同期状態によって示されますセカンダリ レプリカにフェールオーバーしたときに同期状態が 同期済み または 同期中 になっていなければほとんどの場合はデータ損失が発生することになります

各セカンダリ レプリカの同期ストリームにはセッション タイムアウト プロパティがあります同期コミット モードに構成されているセカンダリ レプリカがセッション タイムアウトでエラーになると内部的には一時的に非同期としてマークされますこれはセカンダ

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 29

リ レプリカのエラーがプライマリ レプリカでのトランザクション ログの書き込みに影響しないようにするためですそのセカンダリ レプリカが正常に戻ってプライマリ レプリカの状態に追いつくと自動的に通常の同期コミット モード動作に戻されます

可用性グループのフェールオーバー可用性グループとそれに対応する仮想ネットワーク名はWSFC クラスターのリソースとして登録されます可用性グループはプライマリ レプリカの正常性とフェールオーバー ポリシーに基づいて可用性レプリカのレベルでフェールオーバーを行います

可用性グループのフェールオーバー ポリシーではsp_server_diagnostics システム ストアド プロシージャと FailureConditionLevel プロパティを使用して可用性グループに対して許容されるエラーの重大度のレベルを示しますこの同じメカニズムがFCI のフェールオーバー ポリシーにも使用されます

フェールオーバーが発生した場合は共有物理リソースの所有権を他のノードに移す代わりにWSFC を利用して他の SQL Server インスタンス上でセカンダリ レプリカを再構成しプライマリ レプリカの役割を引き継がせますその後可用性グループの仮想ネットワーク名リソースがそのインスタンスに転送されます関連する可用性レプリカへのすべてのクライアント接続がリセットされます

レプリカの現在の正常性同期状態および可用性モードに基づいて各レプリカには複合的な フェールオーバーの準備 状態が定義されますこの状態の値はデータ損失の可能性を示していますレプリカの正常性情報はAlwaysOn ダッシュボードまたは sysdm_hadr_availability_replica_states システム ビューで確認できます

各可用性レプリカにはフェールオーバー モードも構成されていますこのモードはフェールオーバーが指示された場合にレプリカの動作を制御します

自動フェールオーバー (データ損失なし)セカンダリ レプリカのトランザクション ログが既に書き込まれ同期されているのですべての AlwaysOn 構成の中でフェールオーバー時間が最短になりますプライマリ レプリカ上の開かれているトランザクションはロールバックされプライマリ レプリカの役割はユーザーによる操作なしでセカンダリ レプリカに転送されます

この場合プライマリ レプリカとセカンダリ レプリカの両方を自動フェールオーバー モードに設定し両方の可用性モードを同期コミットに設定する必要がありますレプリカ間の同期状態は同期済み である必要がありますまたWSFC クラスターは正常なクォーラム状態になっている必要があります

自動フェールオーバーはプライマリ レプリカまたはセカンダリ レプリカが FCI 上にある場合はサポートされませんこれは可用性グループと FCI のフェールオーバー間で競合状態が発生することを防ぐためです

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 30

手動フェールオーバーこの場合管理者はプライマリ レプリカの状態を評価してセカンダリ レプリカにフェールオーバーするかどうかを慎重に判断できます

可用性モードと同期状態に応じて次のような選択が可能です

o 計画的な手動フェールオーバー (データ損失なし)この種類のフェールオーバーを実行できるのはプライマリ レプリカとセカンダリ レプリカの両方が正常で同期済み 状態である場合だけですこれは機能的には自動フェールオーバーと同じです

o 強制手動フェールオーバー (データ損失の可能性を許容)これは対象のセカンダリ レプリカの可用性モードが非同期コミットである場合またはプライマリ レプリカに同期されない場合に使用できる唯一のフェールオーバー形式です

警告 このフェールオーバー オプションは災害復旧の状況に限って使用する必要がありますプライマリ レプリカが正常で使用可能である場合は関連する各レプリカの可用性モードを同期コミットに変更し計画的な手動フェールオーバーを実行してください

詳細については「可用性グループの強制手動フェールオーバーの実行」(httpmsdnmicrosoftcomja-jplibraryff877957(SQL110)aspx) を参照してください

フェールオーバー対象のプライマリ レプリカまたはセカンダリ レプリカが次の条件のいずれかに該当する場合は手動フェールオーバーを実行する必要があります

フェールオーバー モードが手動に設定されている 可用性モードが非同期コミットに設定されている レプリカが FCI 上にある

詳細については「フェールオーバーとフェールオーバー モード (AlwaysOn 可用性グルー プ ) 」(httpmsdnmicrosoftcomja-jplibraryhh213151(SQL110)aspx) を参照してください

注 フェールオーバー後新しいプライマリ レプリカが同期コミット モードに設定されていない場合セカンダリ レプリカの同期状態は 中断状態 になりますプライマリ レプリカが同期コミット モードに設定されるまでデータはセカンダリ レプリカに移動されません

可用性グループ リスナー可用性グループ リスナーはクライアントが可用性グループ内のデータベースにアクセスするために使用できる WSFC 仮想ネットワーク名 (VNN) ですVNN クラスター リソースはプライマリ レプリカをホストしている SQL Server インスタンスによって所有されます

仮想ネットワーク名は可用性グループ リスナーの作成時または構成の変更時にのみDNS に登録されます可用性グループ リスナーで定義されているすべての仮想 IP アドレスは同じ仮想ネットワーク名で DNS に登録されます

可用性グループ リスナーを使用する場合クライアント接続要求ではサーバーとして仮想ネットワーク名を指定してから可用性グループ内のデータベース名を指定する必要があり

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 31

ます既定ではこれによってプライマリ レプリカをホストしている SQL Server インスタンスに接続されます

実行時にはクライアントはローカルの DNS リゾルバーを使用して仮想ネットワーク名にマップされている IP アドレスと TCP ポートの一覧を取得しますクライアントは各 IP アドレスへの接続を成功するか接続タイムアウトに達するまで試し続けますMultiSubnetFailover パラメーターが true に設定されているとクライアントは複数の接続を同時に試行するのでクライアント フェールオーバーが大幅に速くなります

フェールオーバーが行われるとサーバー上でクライアント接続がリセットされ可用性グループ リスナーの所有権はプライマリ レプリカの役割と共に新しい SQL Server インスタンスに移動しVNN エンドポイントは新しいインスタンスの仮想 IP アドレスと TCP ポートにバインドされます

詳細については「可用性グループ リスナークライアント接続およびアプリケーションのフェールオーバー」(httpmsdnmicrosoftcomja-jplibraryhh213417(SQL110)aspx) を参照してください

アプリケーションの目的によるフィルター処理可用性グループ リスナーを使用して接続している場合アプリケーションは接続の目的がデータの読み取りと書き込みの両方なのか読み取り専用操作を実行するだけなのかを指定できます指定しない場合クライアントのアプリケーションの目的は既定で読み取りと書き込みになります

各可用性レプリカのプライマリ ロールとセカンダリ ロールについてはクライアントのアプリケーションの目的に対する接続レベルのフィルターとして接続アクセス プロパティも指定できます既定ではアプリケーションの目的と接続アクセスとの組み合わせが無効であると接続が拒否されますSQL Server は次のルールを使用してクライアントの接続要求を振り分ける必要があります

可用性レプリカがプライマリ ロールであり接続アクセスが次のいずれかである場合

すべてのアプリケーションの目的を許可するアプリケーションの目的でクライアント接続をフィルター処理しません

明示的な読み取り書き込みの目的だけを許可するクライアントが読み取り専用を指定している場合接続を拒否します

可用性レプリカがセカンダリ ロールであり接続アクセスが次のいずれかである場合

接続を許可しないすべての接続を拒否しますレプリカは災害復旧だけに使用されます

すべてのアプリケーションの目的を許可するアプリケーションの目的でクライアント接続をフィルター処理しません

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 32

読み取り専用の目的を許可するクライアントが読み取り専用を指定していない場合接続を拒否します

詳細については「可用性レプリカでの読み取り専用アクセスの構成」(httpmsdnmicrosoftcomja-jplibraryhh213002(SQL110)aspx) を参照してください

アプリケーションの目的の読み取り専用ルーティングAlwaysOn 可用性グループの特に優れた点はスタンバイ ハードウェア インフラストラクチャを災害復旧以外の目的に利用できることです1 つ以上のセカンダリ レプリカを読み取り専用でアクセスできるように構成するとプライマリ レプリカからかなりの量のワークロードを軽減できます

読み取り専用セカンダリ レプリカに回すように簡単に調整できるワークロードはレポートデータベース バックアップデータベース整合性チェックインデックスの断片化の分析データ パイプライン抽出運用サポート操作サポートアドホック クエリなどです

各可用性レプリカではSQL Server インスタンスのエンドポイントについて順次的な読み取り専用ルーティング リストを構成することもできますこのリストはレプリカがプライマリ ロールであるときに適用されますこのリストが存在する場合アプリケーションの目的が読み取り専用と指定されているクライアント接続要求はそのリスト内に記載されていて前述のアプリケーションの目的フィルターに適合する最初のセカンダリ レプリカにリダイレクトされます

注 読み取り専用ルーティングによるリダイレクトはプライマリ レプリカにバインドされている可用性グループ リスナーによって実行されますプライマリ レプリカがオフラインの場合クライアントのリダイレクトは機能しません

詳細については「可用性グループの読み取り専用ルーティングの構成 (SQL Server) 」(httpmsdnmicrosoftcomja-jplibraryhh710054(SQL110)aspx) を参照してください

可用性の向上 ndash データベースSQL Server 2012 ではデータベースの構成と機能に関してさまざまな点が強化されています

以下の機能は復旧時間の短縮に役立ちます

予測可能な復旧時間データベースごとにターゲット復旧時間の長さを設定することでバックグラウンドで実行される CHECKPOINT コマンドのスケジュールを制御できますこのコマンドは間接的なチェックポイントとして再起動時またはフェールオーバー時にトランザクション ログの復旧に必要となる時間の推定値に基づいて定期的に実行されますそれによってチェックポイントごとに IO 操作がほぼ均等に配分され復旧時間 (RTO) の予測可能性が高まります

SQL Server 2012 よりも前のバージョンではバックグラウンドの CHECKPOINT コマンドがトランザクションの量や負荷とは無関係に一定間隔で実行されていたので復旧時間を予測することはできませんでした

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 33

詳細については「データベース チェックポイント」(httpmsdnmicrosoftcomja-jplibraryms189573(SQL110)aspx) を参照してください

以下の向上点は計画的なダウンタイムが必要になる一般的な状況を減らすのに役立ちます

LOB 列のオンライン インデックス操作varbinary(max)varchar(max)nvarchar(max)または XML データ型の列が含まれているインデックスをオンラインで再構築または再構成できるようになりました

新しい NOT NULL 列のオンライン スキーマ修正既定値を使用して新しい NOT NULL 列を SQL Server 2012 データベース テーブルに追加する場合システム メタデータの更新にはスキーマ ロックだけが必要ですALTER TABLE ステートメントですべての行にデータを設定する必要はありません

いずれかの行で実際に変更またはインデックスの再作成が行われない限り列の既定値は物理的に格納されませんクエリでは列に実際の値が存在しない場合メタデータから既定値を返します

ストレージのサポート強化の例として次のようなものがあります

ページの自動修復ある種のストレージ サブシステム エラーが発生するとデータ ページが破損し読み取り不可能になる場合がありますAlwaysOn 可用性グループではそのような種類のエラーを検出し自動的に復旧できます復旧のために影響を受けたデータ ページの最新のコピーが別の可用性レプリカから非同期で取得され適用されます

以前のバージョンでもデータベース ミラーリングに同様の機能がありましたが新しい機能では複数のレプリカをサポートできるようになっています

詳細については「ページの自動修復」(httpmsdnmicrosoftcomja-jplibrarybb677167(SQL110)aspx) を参照してください

クライアント接続の推奨事項クライアント アプリケーションが Microsoft SQL Server 2012 AlwaysOn テクノロジの利点を十分に活用できるようにするには次のガイドラインに従います

AlwaysOn 対応のクライアント ライブラリ表形式のデータ ストリーム (TDS) プロトコル Version 74 以降をサポートしているクライアント ライブラリを使用しますこれによってAlwaysOn の機能に対応した適切な機能がクライアント側でも提供されますクライアント ライブラリの例としてはData Provider for SQL Server in NET Framework 402SQL Native Client 110 などがあります

接続プロバイダー プロパティ MultiSubnetFailover = True接続文字列にこのキーワードを使用することでクライアント ライブラリでは(複数のサブネットに IP アドレスを持つ) 可用性グループ リスナーまたは FCI に登録されているすべての IP アドレスに同時に接

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 34

続できるようになります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 35

接続プロバイダー プロパティ ApplicationIntent = ReadOnly必要に応じてプライマリ レプリカの読み取り専用ワークロードをセカンダリ レプリカに移管することができます

レガシ クライアントの接続タイムアウトレガシ クライアントのデータベース ライブラリには並列で接続を試行する機能が実装されていないため複数の IP アドレスがある場合にはTCP タイムアウトに達するか正常に接続できるまで1 つずつ順番に接続を試行します

複数の IP アドレスが存在する場合はタイムアウトと再試行が逐次的に繰り返される可能性に備えてレガシ クライアントの接続タイムアウトを調整する必要があります値は少なくとも 15 秒 + 21 秒 times セカンダリ レプリカ数にします

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 36

結論このホワイト ペーパーではSQL Server 2012 の AlwaysOn による高可用性災害復旧ソリューションを使用し予定されたダウンタイムや予定外のダウンタイムを短縮したりアプリケーションの可用性を最大限に高めたりデータを保護したりする方法について基本的なコンテキストを確立しました

高可用性データベース環境の計画管理測定に関連したビジネス上の目的と課題は多くの場合目標復旧時点 (RPO) と目標復旧時間 (RTO) という形で数量化して表すことができます

SQL Server 2012 AlwaysOn は組織が高可用性や災害復旧に関する一般的な状況に対処するための機能をRPO と RTO を適切に達成できることを念頭にインフラストラクチャ レベルデータ プラットフォーム レベルデータベース レベルのそれぞれで提供します

詳細情報

httpwwwmicrosoftcomja-jpsqlserver2012defaultaspx SQL Server Web サイト

httptechnetmicrosoftcomja-jpsqlserver SQL Server TechCenter

httpmsdnmicrosoftcomja-jpsqlserver SQL Server 開発者向け技術情報

このホワイト ペーパーはお役に立ちましたか フィードバックをお寄せください1 (役に立たなかった) ~ 5 (非常に役に立った) の 5 段階で評価してくださいまたその評価の理由もお知らせください以下に例を示します

評価が高い 例が適切図がわかりやすい説明が明快といったことが理由である 評価が低い 例が少ない図がわかりにくい説明があいまいといったことが理由で

ある

このようなフィードバックをお寄せいただくと今後のホワイト ペーパーの品質向上につながります

フィードバックの送信

loz Version 112012 年 2 月 21 日

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 37

  • 高可用性と災害復旧の概念
    • 高可用性について
      • 予定されたダウンタイムと予定外のダウンタイム
      • 段階的な可用性
        • ダウンタイムの定量化
          • 復旧目標
          • ROI または機会費用の正当化
          • 可用性の健全度の監視
          • 災害復旧の計画
            • 概要 Microsoft SQL Server 2012 での高可用性
              • SQL Server AlwaysOn
              • 計画的なダウンタイムの大幅な削減
              • アイドル状態のハードウェアをなくしてコスト効率とパフォーマンスを向上
              • 簡単な配置と管理
              • RPO と RTO の機能比較
                  • SQL Server AlwaysOn の保護レイヤー
                    • インフラストラクチャの可用性
                      • Windows オペレーティング システム
                        • Windows Server Core インストール オプション
                        • プライベート クラウド用の SQL Server の最適化
                          • Windows Server フェールオーバー クラスタリング
                            • WSFC ストレージ構成
                            • WSFC リソースの正常性の検出とフェールオーバー
                              • WSFC のクラスター検証ウィザード
                              • WSFC クォーラム モードと投票の構成
                                • クォーラムによるクラスター状態検出
                                • クォーラム モード
                                • 投票ノードと非投票ノード
                                • クォーラム投票に推奨される調整
                                  • WSFC の強制クォーラムによる災害復旧
                                    • SQL Server インスタンス レベルでの保護
                                      • 可用性の向上 ndash SQL Server インスタンス
                                      • AlwaysOn フェールオーバー クラスター インスタンス
                                        • FCI のフェールオーバー プロセス
                                        • FCI の強化
                                            • データベースの可用性
                                              • AlwaysOn 可用性グループ
                                                • 可用性レプリカとロール
                                                • 可用性レプリカの同期
                                                  • 可用性グループのフェールオーバー
                                                  • 可用性グループ リスナー
                                                    • アプリケーションの目的によるフィルター処理
                                                    • アプリケーションの目的の読み取り専用ルーティング
                                                      • 可用性の向上 ndash データベース
                                                        • クライアント接続の推奨事項
                                                          • 結論
Page 2: 高可用性と災害復旧の概念download.microsoft.com/download/6/B/E/6BE0C3F3-2991-4766... · Web view高可用性と災害復旧のソリューションのために最適なデータベース

インフラストラクチャの可用性SQL Server インスタンス レベルの保護データベース レベルの保護およびデータ層アプリケーションの機能について解説します

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド ii

著作権

このドキュメントは現状有姿で提供されますこのドキュメントに記載されている情報や見解 (URL 等のインターネット Web サイトに関する情報を含む) は将来予告なしに変更されることがありますお客様はその使用に関するリスクを負うものとします

ここで使用される例は架空のものであり説明のためだけに使用されます実在するものとは一切関係ありません

このドキュメントはMicrosoft 製品の無体財産権に関する法的な権利をお客さまに許諾するものではありません内部的な参照目的に限りこのドキュメントを複製して使用することができます

copy 2012 Microsoft All rights reserved

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド iii

目次高可用性と災害復旧の概念1

高可用性について1

予定されたダウンタイムと予定外のダウンタイム2

段階的な可用性2

ダウンタイムの定量化3

復旧目標3

ROI または機会費用の正当化4

可用性の健全度の監視4

災害復旧の計画5

概要 Microsoft SQL Server 2012 での高可用性5

SQL Server AlwaysOn6

計画的なダウンタイムの大幅な削減6

アイドル状態のハードウェアをなくしてコスト効率とパフォーマンスを向上7

簡単な配置と管理7

RPO と RTO の機能比較7

SQL Server AlwaysOn の保護レイヤー8

インフラストラクチャの可用性9

Windows オペレーティング システム9

Windows Server フェールオーバー クラスタリング10

WSFC のクラスター検証ウィザード13

WSFC クォーラム モードと投票の構成14

WSFC の強制クォーラムによる災害復旧17

SQL Server インスタンス レベルでの保護19

可用性の向上 ndash SQL Server インスタンス19

AlwaysOn フェールオーバー クラスター インスタンス20

データベースの可用性23

AlwaysOn 可用性グループ23

可用性グループのフェールオーバー25

可用性グループ リスナー26

可用性の向上 ndash データベース28

クライアント接続の推奨事項29

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド iv

結論31

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド v

高可用性と災害復旧の概念高可用性と災害復旧のソリューションのために最適なデータベース テクノロジを選択するにはRTO と RPO の計画管理測定に関連するビジネス上の利点課題および目的についてすべての関係者が理解を共有している必要があります

これらの概念を既に理解されている方は「概要 Microsoft SQL Server 2012 での高可用性 」のセクションから読み始めてもかまいません

高可用性についてソフトウェア アプリケーションやサービスで高可用性は最終的にはエンド ユーザーの体感や期待に基づいて計測されますダウンタイムが生じることでビジネスに与える影響には情報の損失物的損害生産性の低下機会費用契約上の損害信用の損失などさまざまな目に見える影響や目に見えない影響があります

高可用性ソリューションの主な目的はダウンタイムの影響を最小限に抑えるまたは少なくともある程度軽減することですそのための堅実な戦略の 1 つはビジネス プロセスやサービス レベル契約 (SLA) と技術的な機能やインフラストラクチャのコストとの間で最適なバランスを取ることです

プラットフォームの可用性の高さは契約に基づいてさらには顧客や関係者からの期待に応じて判断されますシステムの可用性は次の式で表すことができます

実際のアップタイム予定されたアップタイム

times100

可用性の値は業界ではよく 9 がいくつ並んでいるかによって表現されますそれによって年間の可能なアップタイムの長さ逆に言えばダウンタイムの長さがわかります

9 の個数 可用性の割合 年間合計ダウンタイム2 99 3 日15 時間3 999 8 時間45 分4 9999 52 分34 秒5 99999 5 分15 秒

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 1

予定されたダウンタイムと予定外のダウンタイムシステムの停止には予測または計画されたものと予定外の障害によって生じるものとがありますダウンタイムは適切に管理されているのならば否定的に考える必要はありません予測可能なダウンタイムには主に次の 2 種類があります

計画的なメンテナンスあらかじめ時間枠を予告したうえで計画されたメンテナンス タスクが行われますたとえばソフトウェア修正プログラムの適用ハードウェアのアップグレードパスワードの更新オフラインでのインデックス再作成データの読み込み災害復旧手順のリハーサルなどです操作手順を入念に準備することでダウンタイムを最小限に抑えデータ損失を防ぐことができます計画的なメンテナンス作業は予定外の停止によってさらに深刻な事態を招くのを防いだりそのような場合の被害を軽減したりするために必要な投資と考えることができます

予定外の停止システムインフラストラクチャまたはプロセスのレベルで障害が発生した場合ですそれらは予定外で制御できないものであったり予測可能ではあってもまず発生しないだろうと考えられたり影響は許容範囲だろうと考えられたりしたものです堅牢な高可用性ソリューションはそのような障害を検出し停止状態から自動的に復旧してフォールト トレランスを再確立することができます

高可用性に関するサービス レベル契約 (SLA) を規定するときには計画的なメンテナンス作業と予定外のダウンタイムの両方についてそれぞれ個別に主要業績評価指標 (KPI) を計算する必要がありますそうすることで計画的なメンテナンス作業への投資を予定外のダウンタイムを回避できた場合の利益と比較して検討することができます

段階的な可用性高可用性は100 か 0 かの問題として捉えるべきではありませんシステムが完全に停止するのではなく部分的に使用できるのであれば機能が制限されたりパフォーマンスが低下したりしてもエンド ユーザーに許容される場合もよくあります可用性には次のようにさまざまな段階があります

読み取りのみ可能および操作の遅延メンテナンス期間中や災害復旧の処理中にデータを取得することはできても新しいワークフローやバックグラウンド処理は一時的に中断されたりキューに入れられたりする場合があります

データ待機時間とアプリケーションの応答時間大量のワークロードバックログの処理プラットフォームの部分的な障害などが原因で限りのあるハードウェア リソースが負荷過剰になったりサイズ不足になったりする場合がありますこれはユーザー エクスペリエンスに影響し生産性は低下しますが作業は続けることができます

部分的一時的または差し迫った障害アプリケーション ロジックやハードウェア スタックが堅牢にできていればエラーが発生しても再試行や自己修正が行われますこのような場合エンド ユーザーはデータの待ち時間やアプリケーションの応答時間を長く感じることがあります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 2

部分的なエンド ツー エンドの障害予定された停止または予定外の停止がソリューション スタックの垂直的なレイヤー (インフラストラクチャプラットフォームおよびアプリケーション) 内でまたは水平的な各種の機能コンポーネント間で整然と行われる場合がありますユーザーは影響を受ける機能またはコンポーネントに応じて部分的に操作が成功したりパフォーマンスの低下を感じたりします

これらの状況はそれぞれ完全な停止に至るまでの可用性の一段階であると同時に災害復旧フェーズの中間段階とも考えることができそれぞれの状況がどの程度許容できるかを判断する必要があります

ダウンタイムの定量化ダウンタイムが発生した場合にはそれが予定されたものであったか予定外のものであったかにかかわらずシステムをオンラインに戻しデータ損失を最小限に抑えることがビジネスとして第一の目標となりますダウンタイムが 1 分経過するごとに直接または間接のコストが刻々と増えていきます予定外のダウンタイムが発生したのであれば時間と労力を適切に配分しながら停止の理由を調査し現在のシステム状態を把握し復旧手順を決定する必要があります

どのような場合でも事前に決めておいた時間になったらビジネス上の意思決定を行う必要があります停止の原因調査やメンテナンス操作を中止してシステムをオンラインに戻すかどうか必要に応じてフォールト トレランスを再構築するかどうかなどを判断します

復旧目標データの冗長性は高可用性データベース ソリューションの重要な要素の 1 つですプライマリ SQL Server インスタンスに対するトランザクションの操作は同期または非同期で1 つ以上のセカンダリ インスタンスにも適用されます障害が発生すると処理中のトランザクションはロールバックされるかまたはデータ伝達の遅れのためにセカンダリ インスタンスでは失われる可能性もあります

影響を見積もりながら機能の復旧にどれくらいの時間がかかるか最後のトランザクションを回復するためにどれくらいの遅延が生じるかという観点で次の復旧目標を設定します

目標復旧時間 (RTO)これはシステムが停止している時間の長さを意味します最初の目標は少なくとも読み取り専用の状態でシステムをオンラインに戻し障害について調査できるようにすることですただし最終的な目的は新しいトランザクションを実行できる状態まで完全にサービスを復元することです

目標復旧時点 (RPO)これは多くの場合どのくらいのデータ損失が許容されるかの基準として考えられます障害発生前に最後にコミットされたデータ トランザクションと障害発生後に復元された最新のデータとの時間差や遅延が示されます実際に失われるデータの量は障害発生時のシステムのワークロード障害の種類および使用されている高可用性ソリューションの種類に応じて異なります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 3

RTO と RPO の値はビジネスで許容できるダウンタイムとデータ損失の目安としてまた可用性が健全であるかどうかを監視する際の指標として使用します

ROI または機会費用の正当化ダウンタイムによって生じるビジネス上のコストには金銭的なコストだけでなく顧客からの信用も含まれますこれらのコストには時間の経過と共に発生するものもあれば停止期間中の特定の時点で発生するものもあります復旧時間とデータ復旧ポイントに基づいて停止のコストを見積もる以外にRTO および RPO の達成や停止自体の回避に必要なビジネス プロセスを考えたりインフラストラクチャへの投資を計算したりすることもできますこれらの投資の目的は次のようなものです

ダウンタイムの回避そもそも停止状態にならなければ復旧のコストをまとめて回避できますこの投資にはフォールト トレランスと冗長性のためのハードウェアまたはインフラストラクチャ各障害点を分離した分散ワークロード予防メンテナンスのための計画的なダウンタイムなどのコストが含まれます

復旧の自動化システム障害が発生した場合自動的で透過的な復元が行われればダウンタイムによるカスタマー エクスペリエンスへの影響を大幅に抑えることができます

リソース使用率セカンダリまたはスタンバイ インフラストラクチャは障害に備えてアイドル状態にしておくことができますまた読み取り専用ワークロードのために利用したり利用可能なすべてのハードウェアにワークロードを分散してシステム全体のパフォーマンスを向上させたりもできます

RTO と RPO の目標実現に必要な可用性と復旧のための投資は予測されるダウンタイムのコストと組み合わせて時間の関数として表現し正当化することができますこれによって実際の停止中にダウンタイムの経過時間に基づいてコスト ベースの判断を行うことができます

可用性の健全度の監視運用上の観点からは実際の停止中に関連するすべての変数を考慮しリアルタイムで ROI または機会費用を計算しようとするべきではありません実際にはRPO の期待値に代わるものとしてスタンバイ インスタンスのデータ遅延を監視します

停止の際根本的な原因の調査に費やす時間は制限し代わりに復旧環境の正常性の検証に集中する必要がありますその後詳細なシステム ログとデータのセカンダリ コピーに基づいて原因究明の分析を行います

災害復旧の計画

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 4

高可用性のための取り組みでは停止を回避するために何をするかが問題になりますが災害復旧のための取り組みでは停止後に高可用性を再構築するために何をするかが問題になります

できる限り実際に停止状態になる前に災害復旧の手順と役割分担を策定しておくようにします実行中の監視と警告に基づいて自動または手動のフェールオーバーと復旧計画を開始するかどうかは事前に決められた RTO および RPO のしきい値を考慮しつつ判断する必要があります災害復旧計画には次のようなものを含める必要があります

障害と復旧の適用範囲障害の場所や種類に応じてデータ センター レベルインフラストラクチャ レベルプラットフォーム レベルアプリケーション レベルワークロード レベルなどさまざまなレベルで修正措置が行われます

調査のための資料ベースラインと最新の監視の履歴システム警告イベント ログ診断クエリなどを関係者がいつでも利用できるようにしておく必要があります

依存関係の調整アプリケーション スタック内でまたは関係者間でシステムやビジネスの依存関係を把握しておきます

デシジョン ツリー繰り返し使用できるデシジョン ツリーを事前に定義して検証しておきますこれにはロールの役割障害の優先順位RPO と RTO を実現するためのフェールオーバーの条件所定の復旧手順などを含めます

検証停止状態からの復旧手順を実行した後でシステムが通常の状態に戻ったことを検証するために何をしなければならないかを整理しておきます

文書化新しい担当者でも最低限の補助があれば復旧計画を実行できるように上記のすべての項目を詳細で明確な一連の文書として記録しておきますこのような文書は一般的にラン ブック または クック ブック と呼ばれます

復旧のリハーサル定期的に災害復旧計画の演習を行いRTO のベースラインとなる期待値を確立しプライマリ サイトと各災害復旧サイトでの本番運用のローテーションを検討します

概要 Microsoft SQL Server 2012 での高可用性要求される RPO と RTO を実現するには主要アプリケーションの継続的なアップタイムを確保することと予定外のダウンタイムや予定されたダウンタイム時に重要なデータを保護することが必要ですSQL Server では低コストで簡単にこれらの目標を実現できる一連の機能が用意されています

新しい AlwaysOn の機能について既によくご存じの方は「SQL Server AlwaysOn の保護レイ ヤー」のセクションに進んでより詳細な説明をご覧ください

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 5

SQL Server AlwaysOnAlwaysOn は高い統合性柔軟性およびコスト効率を特徴とした新しい高可用性災害復旧ソリューションですデータ センター内およびデータ センター間でデータとハードウェアの冗長性を実現しアプリケーションのフェールオーバー時間を短縮することでミッション クリティカル アプリケーションの可用性を高めますAlwaysOn は構成の柔軟性が高く既存のハードウェア投資を再利用できます

AlwaysOn ソリューションではデータベース レベルとインスタンス レベルの両方で可用性を構成するためにSQL Server 2012 の次の 2 つの主要な機能を利用できます

AlwaysOn 可用性グループSQL Server 2012 の新機能の 1 つですデータベース ミラーリング機能の大幅な強化によってアプリケーション データベースの可用性の確保に役立ちますログに基づくデータの移動によってデータ保護を実現し共有ディスクを使用せずにデータ損失をゼロにすることができます

複数のデータベースから成る論理グループの単位で自動および手動のフェールオーバーを実行できますまた最大で 4 つのセカンダリ レプリカのサポート高速なアプリケーション フェールオーバー自動ページ修復など多彩なオプションが用意されています

AlwaysOn フェールオーバー クラスター インスタンス (FCI)SQL Server フェールオーバー クラスタリング機能を拡張し複数のサブネットにわたるマルチサイト クラスタリングをサポートしますこれにより異なるデータ センター間での SQL Server インスタンスのフェールオーバーが可能になりますインスタンスのフェールオーバーがより高速となり予測可能となることでアプリケーションをさらにすばやく復旧させることができます

計画的なダウンタイムの大幅な削減どの組織でもアプリケーション ダウンタイムの主な理由はオペレーティング システムへの修正プログラムの適用ハードウェア メンテナンスなどのための計画的なダウンタイムですこうしたダウンタイムがIT 環境の停止の約 80 を占めています

SQL Server 2012 は修正プログラムの要件を減らしより多くのメンテナンス操作をオンラインで実行できるようにすることで計画的なダウンタイムの大幅な削減に役立ちます

Windows Server CoreSQL Server 2012 ではWindows Server Core への配置がサポートされていますこれはWindows Server 2008 および Windows Server 2008 R2 の最小限の合理化された配置オプションですこれによりオペレーティング システムの修正プログラムの要件を最小限に抑え約 60 削減することで計画的なダウンタイムを減らすことができます

オンライン操作LOB のインデックスを再作成したり既定値を使用して列を追加したりするオンライン操作のサポート強化によってデータベース メンテナンス時のダウンタイムが削減されます

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 6

ローリング アップグレードと修正プログラムAlwaysOn 機能はインスタンスのローリング アップグレードと修正プログラムの適用を容易にしますこれによりアプリケーションのダウンタイムが大幅に削減されます

Hyper-V 上の SQL ServerHyper-V 環境でホストされている SQL Server インスタンスではライブ マイグレーションの利点を活用することでホスト間の仮想マシンの移行をダウンタイムなしで実行できます管理者はアプリケーションに影響を与えずにホスト上でメンテナンス操作を実行できます

アイドル状態のハードウェアをなくしてコスト効率とパフォーマンスを向上典型的な高可用性ソリューションでは高コストで冗長なパッシブ サーバーが配置されますAlwaysOn 可用性グループを使用するとパッシブまたはアイドルな状態のセカンダリ データベース レプリカを読み取り専用のワークロード (SQL Server Reporting Services のレポート クエリバックアップ操作など) に活用できますプライマリとセカンダリの両方のデータベース レプリカを同時に使用できるためサーバー ハードウェア間のリソースのバランスが良くなりすべてのワークロードのパフォーマンスが向上します

簡単な配置と管理構成ウィザードWindows PowerShell コマンド ライン インターフェイスのサポートダッシュボード動的管理ビュー (DMV)ポリシー ベースの管理System Center 統合などの機能によって可用性グループの配置と管理が簡単になります

RPO と RTO の機能比較目標復旧時点 (RPO) と目標復旧時間 (RTO) のビジネス目標は高可用性災害復旧ソリューションのために使用する SQL Server テクノロジを選択する際に重要な判断材料となります次の表はさまざまなソリューションで実現される結果を大まかに比較したものです

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 7

高可用性と災害復旧のSQL Server ソリューション

データ損失の可能性 (RPO)

可能な復旧時間 (RTO)

自動フェールオーバー

読み取り可能な

セカンダリ(1)

AlwaysOn 可用性グループ - 同期コミット ゼロ 数秒 (4) 0 - 2

AlwaysOn 可用性グループ - 非同期コミット 数秒 数分 times 0 - 4

AlwaysOn フェールオーバー クラスター インスタンス

該当せず(5) 数秒~ 数分

該当せず

データベース ミラーリング(2) - 高い安全性 (同期 + 監視)

ゼロ 数秒 該当せず

データベース ミラーリング(2) - 高パフォーマンス (非同期)

数秒(6) 数分(6) times 該当せず

ログ配布 数分(6) 数分~ 数時間(6)

times 復元中はなし

バックアップコピー復元(3) 数時間(6) 数時間~ 数日(6)

times 復元中はなし

(1) AlwaysOn 可用性グループで使用できるセカンダリ レプリカは種類に関係なく最大 4 つです(2) この機能は将来のバージョンの Microsoft SQL Server では削除される予定です代わりに AlwaysOn 可用性グループを使用

してください(3) バックアップコピー復元は障害復旧には適していますが高可用性には適していません(4) 可用性グループの自動フェールオーバーはフェールオーバー クラスター インスタンスとの間ではサポートされていま

せん(5) FCI 自体にはデータ保護機能はありませんデータ損失はストレージ システムの実装に依存します(6) ワークロードデータ量およびフェールオーバーの手順に大きく依存します

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 8

SQL Server AlwaysOn の保護レイヤーSQL Server AlwaysOn ソリューションではインフラストラクチャとアプリケーション コンポーネントのいくつかの論理レイヤーおよび物理レイヤーにまたがってフォールト トレランスと災害復旧を実現できます従来はさまざまな関係者と役割ごとに業務と責任を振り分けそれぞれが主に自分のソリューションのレイヤー部分だけに関心を持つことが一般的でした

このセクションではこれらのレイヤーのそれぞれについて詳細に説明しデザインに関する議論や実装についての意思決定に役立つ論点やガイダンスを提示します

SQL Server AlwaysOn ソリューションをうまく利用するには以下のレイヤーについて理解しそれぞれを協調させる必要があります

インフラストラクチャ レベルサーバー レベルのフォールト トレランスとノード内のネットワーク通信が含まれますWindows Server フェールオーバー クラスタリング (WSFC) 機能を使用して稼働状態の監視とフェールオーバーの調整を行います

SQL Server インスタンス レベルSQL Server AlwaysOn フェールオーバー クラスター インスタンス (FCI) はWSFC クラスター内の複数のサーバー ノードにまたがってインストールされる SQL Server インスタンスであり各サーバー ノードへのフェールオーバーが可能ですFCI をホストするノードは堅牢な対称型共有ストレージ (SAN または SMB) に接続されます

データベース レベル可用性グループは共にフェールオーバーされるユーザー データベースのセットです可用性グループは1 つのプライマリ レプリカと最大 4 つのセカンダリ レプリカで構成されます各レプリカはWSFC クラスターの別々のノードにある SQL Server インスタンス (FCI または非 FCI) によってホストされます

クライアント接続データベース クライアント アプリケーションは指定した SQL Server インスタンス ネットワーク名に直接接続できますまたは可用性グループ リスナーにバインドされている仮想ネットワーク名 (VNN) に接続することもできますVNN はWSFC クラスターおよび可用性グループのトポロジを抽象化するものであり接続要求を適切な SQL Server インスタンスとデータベース レプリカに論理的にリダイレクトします

代表的な AlwaysOn ソリューションの論理トポロジは次の図のようになります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 9

インフラストラクチャの可用性AlwaysOn 可用性グループと AlwaysOn フェールオーバー クラスター インスタンスのどちらもWindows Server オペレーティング システムと WSFC をプラットフォーム テクノロジとして利用します今まで以上にMicrosoft SQL Server データベース管理者はこれらのテクノロジについて十分に理解することが必要です

Windows オペレーティング システムSQL Server は基礎的なインフラストラクチャとネットワークストレージセキュリティ更新プログラムおよび監視のサービスを Windows プラットフォームに依存しています

SQL Server 2012 の各エディションはWindows Server 2008 R2 オペレーティング システムの対応するエディション (Windows Server 2008 R2 Standard オペレーティング システムWindows Server 2008 R2 Enterprise オペレーティング システムWindows Server 2008 R2 Datacenter オペレーティング システムなど) の機能や能力をさらに進歩させて構築されています

詳細については「SQL Server 2012 のインストールに必要なハードウェアおよびソフトウェ ア」(httpmsdnmicrosoftcomja-jplibraryms143506(SQL110)aspx) を参照してください

Windows Server Core インストール オプションSQL Server 2012 では高可用性のための主要な機能の 1 つとしてWindows Server 2008 以降で Server Core インストール オプションによる配置をサポートしていますServer Core インストール オプションでは制限された機能と非常に限定的な GUI アプリケーション サポートで特定のサーバー ロールを実行するための最低限の環境が提供されます既定では必要なサービスとコマンド プロンプト環境のみが有効です

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 10

この操作モードではオペレーティング システムへの攻撃の危険性とシステム オーバーヘッドが低下し継続的なメンテナンスサービス修正プログラムなどの要件が大幅に削減されます

SQL Server 2012 を Windows Server Core に配置する場合の主な注意点はSQL Server およびオペレーティング システムのすべての配置構成管理およびメンテナンスをWindows PowerShell などのスクリプト環境やコマンド ラインまたはリモート ツールを使用して行う必要があることです

プライベート クラウド用の SQL Server の最適化高可用性と災害復旧はプライベート クラウド環境ではさらに重要になってきていますプライベート クラウドに SQL Server を配置すればコンピューターネットワークおよびストレージのリソースが効率的に使用され物理的な場所や資本と運営費用の両方の削減に役立ちます配置の統合リソースの効率的なスケーリングオンデマンドでのリソースの配置が容易になり制御の自由度が失われることもありません

SQL Server ではHyper-V のホストとゲストの両方のシステムに対して Windows Server フェールオーバー クラスタリングをサポートするほかライブ マイグレーションもサポートしていますこれは意識されるほどのダウンタイムを生じることなくホスト間で仮想マシンを移動できる機能ですライブ マイグレーションはゲスト クラスタリングとも協調して動作します

詳細については「プライベート クラウド コンピューティング - プライベート クラウド用の SQL Server の最適化 」(httpwwwmicrosoftcomSqlServerPrivateCloud) を参照してください

Windows Server フェールオーバー クラスタリングWindows Server フェールオーバー クラスタリング (WSFC) はMicrosoft SQL Server などのサーバー アプリケーションに対して高可用性と災害復旧をサポートするインフラストラクチャ機能を提供します

WSFC クラスター ノードまたはサービスに障害が発生するとそのノードでホストされていたサービスまたはリソースは自動的にまたは手動で他の可用性ノードに転送されますこのプロセスをフェールオーバーと呼びますAlwaysOn ソリューションではこのプロセスが FCI と可用性グループの両方に適用されます

WSFC クラスター内の各ノードは連携して次のような機能を提供します

分散メタデータと通知WSFC サービスとホストされるアプリケーション メタデータはクラスター内の各ノードで維持されますこのメタデータにはホストされるアプリケーションの設定に加えWSFC の構成と状態が含まれます1 つのノードでのメタデータまたは状態の変更はクラスター内の他のノードに自動的に反映されます

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 11

リソース管理クラスター内の各ノードは直接アタッチされたストレージ (DAS)ネットワーク インターフェイス共有ディスク ストレージへのアクセスなど物理的リソースを提供する場合がありますSQL Server などホストされるアプリケーション自体もクラスター リソースとして登録されますまた他のリソースに対するスタートアップと正常性にかかわる依存関係を構成できます

正常性の監視ノード間の正常性およびプライマリ ノードの正常性はハートビート ネットワーク通信とリソースの監視を組み合わせることで検出されますクラスターの全体的な正常性状態はクラスター内のノードのクォーラムの投票によって決定されます

フェールオーバーの調整各リソースはプライマリ ノードでホストされるように構成されそれぞれ自動的にまたは手動で 1 つ以上のセカンダリ ノードに転送されます正常性ベースのフェールオーバー ポリシーによってノード間でのリソース所有権の自動転送が制御されますフェールオーバーが発生すると適切に対応できるように各ノードおよびホストされているアプリケーションに通知されます

詳細については「Windows Server | フェールオーバー クラスタリングとノード バランシン グ」(httpwwwmicrosoftcomwindowsserver2008enusfailover-clustering-mainaspx) を参照してください

注 データベース管理者が WSFC クラスターおよびクォーラム管理の内部動作を理解しておくことが非常に重要になりましたAlwaysOn の正常性の監視管理および障害復旧の手順はすべてが本質的に WSFC 構成と関連しています

WSFC ストレージ構成Windows Server フェールオーバー クラスタリングでは接続されているストレージ デバイスディスク ボリュームおよびファイル システムの管理をクラスター内の各ノードに依存していますWSFC はストレージ サブシステムが非常に堅牢であると想定しているためノードに接続されたストレージ デバイスが使用できない場合はクラスター ノードが障害状態であると見なします

書き込みベースの操作ではディスク ボリュームは SCSI-3 の永続的な予約を使用して一度に 1 つのクラスター ノードに論理的に接続されますノードで障害が発生した場合にはストレージ サブシステムの機能と構成に応じてディスク ボリュームの論理的所有権をクラスター内の別のノードに移すことができます

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 12

SQL Server AlwaysOn ソリューションでは次のような WSFC ストレージ構成の組み合わせを利用しその制限も受けます

直接接続とリモートストレージ デバイスはサーバーに物理的に直接接続されるかまたはネットワークやホスト バス アダプター (HBA) を介してリモートのストレージ デバイスを使用しますリモート ストレージのテクノロジにはiSCSI やファイバー チャネルなどのストレージ エリア ネットワーク (SAN) ベースのソリューションとサーバー メッセージ ブロック (SMB) というファイル共有ベースのソリューションがあります

対称と非対称ストレージ デバイスの論理ディスク ボリューム構成とファイル パスがクラスターの各ノードでまったく同じである場合それらのストレージ デバイスは対称的であると見なされます基になるディスク ボリュームの物理的な実装と容量は異なっていてもかまいません

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 13

専用と共有専用ストレージは使用するために予約されクラスター内の 1 つのノードに割り当てられます共有ストレージはクラスターの複数のノードからアクセスできます共有ストレージ デバイスが SCSI-3 プロトコルに準拠していればそれらの制御と所有権をノード間で移動させることができますWSFC ではファイル共有のためにクラスター共有ボリュームを同時に複数のノードでホスティングできますただしSQL Server は複数のノードからの共有ボリュームへの同時アクセスをサポートしていません

注 SQL Server FCI では対称共有ストレージを使用してインスタンスのすべてのノード所有者 (およびその候補) からアクセスできるようにする必要がありますただしAlwaysOn 可用性グループの導入に伴いそれぞれが独自に専用のローカルまたはリモート ストレージを持つ非 FCI の SQL Server インスタンスを WSFC クラスターに配置できるようになりました

WSFC リソースの正常性の検出とフェールオーバーWSFC クラスター ノード内の各リソースの状態と正常性は定期的にまたは要求に応じて報告されますクラスター リソースの障害を示す状況としてはたとえば電源障害ディスクまたはメモリのエラーネットワーク通信エラー構成エラー応答しないサービスなどがあります

ネットワークストレージサービスなどの WSFC クラスター リソースは互いに依存するように構成できますあるリソースの累積的な正常性は依存関係を持つリソースの正常性を連続的にたどってゆくことで決定されます

AlwaysOn 可用性グループでは可用性グループと可用性グループ リスナーがそれぞれ WSFC クラスター リソースとして登録されますAlwaysOn フェールオーバー クラスター インスタンスではSQL Server サービスおよび SQL Server エージェント サービスが WSFC クラスター リソースとして登録されどちらもインスタンスの仮想ネットワーク名リソースに依存します

WSFC クラスター リソースで設定された数のエラーまたは障害が一定期間内に発生した場合構成されたフェールオーバー ポリシーによってクラスター サービスは次のいずれかの操作を行います

現在のノードでのリソースの再起動 リソースをオフライン化 リソースとその依存関係を別のノードへ自動的にフェールオーバー

注 WSFC クラスター リソースの正常性の検出は個々のノードの正常性やクラスターの全体的な正常性には直接影響しません

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 14

WSFC のクラスター検証ウィザードクラスター検証ウィザードはWindows Server 2008 および Windows Server 2008 R2 のフェールオーバー クラスタリングに統合されている機能ですこれはSQL Server AlwaysOn ソリューションの配置前 にクリーンで正常な安定した WSFC 環境が存在していることをデータベース管理者が確認するために使用する主要なツールです

クラスター検証ウィザードではクラスターのノードとして使用するサーバーの集合または既存のクラスターを対象にして一連のテストを実行できますこのプロセスでは基になるハードウェアおよびソフトウェアが個別に直接テストされWSFC クラスターが特定の構成でどの程度良好にサポートされるかについての正確な評価が得られます

この検証プロセスでは各ノードに対して次のようなカテゴリの一連のテストとデータ収集が実施されます

一覧作成BIOS のバージョン環境レベルホスト バス アダプターRAMオペレーティング システムのバージョンデバイスサービスドライバーなどの情報です

ネットワークNIC のバインド順序ネットワーク通信IP 構成ファイアウォール構成などの情報ですすべての NIC でノード間の通信が検証されます

ストレージディスクドライブの容量アクセス待機時間ファイル システムなどの情報ですSCSI コマンドディスク フェールオーバー機能対称的または非対称的なストレージ構成が検証されます

システム構成Active Directory の構成ドライバーの登録メモリ ダンプの設定必要なオペレーティング システムの機能とサービス互換性のあるプロセッサ アーキテクチャおよびサービス パックと Windows Software Update のレベルが検証されます

これらの検証テストの結果を利用してクラスターの構成を微調整したり構成を追跡したりダウンタイムを引き起こすかもしれない潜在的なクラスター構成の問題を特定したりできますテスト結果のレポートは後で参照できるようにHTML ドキュメントとして保存できます

これらのテストはWSFC の構成に何か変更を加える前と加えた後に実行するほかSQL Server をインストールする前および災害復旧プロセスの一環として実行する必要がありますマイクロソフトで特定の WSFC クラスター構成がサポートされるためにはマイクロソフト カスタマー サポート サービス (CSS) にクラスター検証レポートを提出する必要があります

詳細については「フェールオーバー クラスター ステップ バイ ステップ ガイド フェール オーバー クラスター用ハードウェアを検証する」(httptechnetmicrosoftcomja-jplibrarycc732035(WS10)aspx) を参照してください

注 ハードウェアベースの地理的クラスタリング ストレージ ソリューションの場合やAlwaysOn 可用性グループの場合のようにクラスター構成に非対称ストレージがあるとクラスター検証ウィザードでストレージの検証手順を成功させるために多数の修正プログラムを適用しなければならないことがあります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 15

詳細については「AlwaysOn 可用性グループの前提条件制限事項および推奨事項 」(httpmsdnmicrosoftcomja-jplibraryff878487(SQL110)aspxSystemReqsForAOAG) を参照してください

WSFC クォーラム モードと投票の構成WSFC ではクォーラム ベースのアプローチを使用してクラスターの全体的な正常性を監視することでノード レベルのフォールト トレランスを最大限に高めますWSFC のクォーラム モードおよびノード投票構成の基本について理解することはAlwaysOn 高可用性災害復旧ソリューションの設計運用トラブルシューティングのために非常に重要です

クォーラムによるクラスター状態検出WSFC クラスター内の各ノードは定期的なハートビート通信に参加しノードの正常性状態を他のノードと共有します応答しないノードはエラー状態であると見なされます

クォーラム ノード セットとはWSFC クラスター内の投票ノードおよび監視サーバーのうち過半数を占めるノードの集合ですWSFC クラスターの全体的な正常性と状態は定期的なクォーラムの投票 によって決定されますクォーラムはクラスターが正常でありノード レベルのフォールト トレランスを提供できることを意味します

クォーラムに達していない状態はクラスターが正常でないことを示しますプライマリ ノードのフェールオーバー先として正常なセカンダリ ノードを使用できるようにするにはWSFC クラスターの全体的な正常性が維持されている必要があります投票数がクォーラムに達しなかった場合にはWSFC クラスター全体が予防策としてオフラインに設定されますその場合クラスターに登録されている SQL Server インスタンスがすべて停止します

注 クォーラム障害のために WSFC クラスターがオフラインに設定されるとオンラインに戻すために手動の操作が必要です詳細については後の「WSFC の強制クォーラムによる災害 復旧」のセクションを参照してください

クォーラム モードクォーラム モードはWSFC クラスター レベルで構成されクォーラム投票の方法を指定しますフェールオーバー クラスター マネージャー ユーティリティではクラスター内のノード数に基づいて推奨するクォーラム モードが提示されます

次のいずれかのクォーラム モードによって投票クォーラムの構成が決定されます

ノード マジョリティクラスターが正常であるためにはクラスター内の半分以上の投票ノードが肯定的に投票する必要があります

ノードおよびファイル共有マジョリティノード マジョリティ クォーラム モードに似ていますがリモート ファイル共有も投票監視サーバーとして構成され各ノードからそのリモート ファイル共有への接続も肯定的な投票としてカウントされますクラスターが正常であるためには投票の過半数が肯定的である必要があります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 16

推奨事項として監視ファイル共有はクラスター内のノードに存在せずクラスター内のすべてのノードから見える必要があります

ノードおよびディスク マジョリティノード マジョリティ クォーラム モードに似ていますが共有ディスク クラスター リソースも投票監視サーバーとして使用され各ノードからその共有ディスクへの接続も肯定的な投票としてカウントされますクラスターが正常であるためには投票の過半数が肯定的である必要があります

ディスクのみ共有ディスク クラスター リソースが監視サーバーとして使用され各ノードからその共有ディスクへの接続が肯定的な投票としてカウントされます

詳細については「フェールオーバー クラスター ステップ バイ ステップ ガイド フェール オーバー クラスターのクォーラムの構成」(httptechnetmicrosoftcomja-jplibrarycc770620(WS10)aspx) で説明されています

注 クラスターの各ノードが同じ共有ストレージ クォーラム監視ディスクを使用するように構成されていない限り通常投票ノード数が奇数の場合は ノード マジョリティ クォーラム モード投票ノード数が偶数の場合は ノードおよびファイル共有マジョリティ クォーラム モードを使用してください

投票ノードと非投票ノード既定ではWSFC クラスター内の各ノードがクラスター クォーラムのメンバーとなります各ノードファイル共有監視サーバーディスク監視サーバーがクラスターの全体的な正常性の決定においてそれぞれ 1 票ずつの投票権を持ちますクォーラムに関するここまでの説明ではクラスター状態について投票する WSFC クラスター ノードのセットを投票ノードとして注意深く限定してきました状況によってはすべてのノードに投票権を与えることが適切でない場合もあります

WSFC クラスターの各ノードはクォーラムを確立しようとし続けますクラスター内の個々のノードはクラスターが全体として正常であるか正常でないかを明確に決定することはできません特定の時点で各ノードからは他のノードの一部がオフラインフェールオーバー中またはネットワーク通信のエラーにより応答不能に見えますクォーラム投票の主な機能はWSFC クラスターの各ノードの見かけの状態が本当にそれらのノードの実際の状態であるかどうかを判断することです

ディスクのみ 以外のすべてのクォーラム モデルではクォーラム投票の有効性はクラスター内のすべての投票ノード間に信頼できる通信が確立されていることに依存しますすべてのノードが同じ物理サブネット上にある場合はクォーラムの投票を信頼できます

しかしクォーラム投票で他のサブネット上のノードが応答しないように見えても実際はオンラインで正常である場合はサブネット間のネットワーク通信のエラーが原因であることが考えられますクラスター トポロジクォーラム モードおよびフェールオーバー ポリシーの構成によってはネットワーク通信エラーによって投票ノードのセット (またはサブセット) が実質的に複数作成されてしまう可能性があります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 17

投票ノードの複数のサブセットがそれぞれ独自のクォーラムを構築できる状態はスプリット ブレイン と呼ばれますこの状態では各クォーラム上のノードが別々の動作をし相互に矛盾する可能性があります

注 スプリット ブレイン の状況が発生するのはシステム管理者が強制クォーラム動作を手動で実行するかまたは非常にまれですが強制的な手動フェールオーバーを実行することでクォーラム ノード セットが明示的に細分化された場合のみです詳細については後の「WSFC の強制クォーラムによる災害復旧 」のセクションを参照してください

クォーラム構成を単純化し稼働時間を長くする目的でノードの投票がクォーラムにカウントされないように各ノードの NodeWeight 設定 (値 0 または 1) を調整することができます

クォーラム投票に推奨される調整以下のガイドラインをこの順番に適用することでクラスターに対して推奨されるクォーラム投票の構成を判断できます

1 既定は投票権なしにします明確な理由がない限り各ノードには投票権を与えないと考えてください

2 すべてのプライマリ ノードに投票権を与えますAlwaysOn 可用性グループのプライマリ レプリカをホストする各ノードおよび AlwaysOn フェールオーバー クラスター インスタンスの優先所有者である各ノードは投票権を持つ必要があります

3 可能性のある自動フェールオーバーの所有者を含めます自動フェールオーバーの結果としてプライマリ レプリカまたは FCI をホストする可能性がある各ノードは投票を持つ必要があります

4 セカンダリ サイト ノードを除外します通常はセカンダリ災害復旧サイトに存在するノードには投票を提供しないでくださいプライマリ サイトに問題がない場合クラスターをオフラインにする判断にセカンダリ サイト内のノードが影響を与えることは避ける必要があります

5 投票数を奇数にします必要に応じて監視ファイル共有監視ノード (SQL Server インスタンスの有無は問いません)または監視ディスクをクラスターに追加してクォーラム モードを調整しクォーラムの投票結果が同数に分かれるのを防ぎます

6 フェールオーバー後の投票割り当てを再評価します正常なクォーラムをサポートしないクラスター構成にフェールオーバーすることは避けます

ノードの投票の調整の詳細については「クラスター クォーラムの NodeWeight の設定の構 成」(httpmsdnmicrosoftcomja-jplibraryhh270281(SQL110)aspx) を参照してください

ファイル共有監視サーバーの投票は調整できませんその投票を含めるか除外するかを決めるには別のクォーラム モードを選択する必要があります

注 SQL Server ではWSFC クラスター構成およびノード クォーラム投票に関する設定を管理するためにいくつかのシステム動的管理ビュー (DMV) が公開されています

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 18

詳細については「可用性グループの監視」(httpmsdnmicrosoftcomja-jplibraryff878305(SQL110)aspx) を参照してください

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 19

WSFC の強制クォーラムによる災害復旧通常クォーラム障害は災害発生時または WSFC クラスター内の複数のノード間で永続的な通信障害が生じた場合に発生しますクォーラム障害が発生するとクラスターがノード レベルのフォールト トレランスを確保できなくなるためその WSFC クラスター内の SQL Server インスタンス可用性グループおよびクラスター化されているサービスがすべてオフラインになりますクォーラム障害はWSFC クラスター内の正常な投票ノード数がクォーラム モデルを満たさなくなったことを意味しますノードによってまったく機能しなくなるものもあればWSFC サービスがシャットダウンしただけでクォーラムと通信できなくなったことを除けば正常なものもあります

WSFC クラスターをオンラインに戻すには既存の構成の少なくとも 1 つのノードでクォーラム障害の根本的な原因を解決する必要があります災害発生時には使用できる代替ハードウェアの再構成や識別が必要となる場合もあります現状のクラスター トポロジを反映するためにWSFC クラスターの残りのノードを再構成する場合もあります

WSFC クラスター ノードで強制クォーラムの手順を使用するとクラスターがオフラインになる原因となった安全管理機能を無効にすることができますこれによりクラスターでのクォーラム投票のチェックが実質的に中断されクラスター内の任意のノードで WSFC クラスター リソースと SQL Server をオンラインに戻すことができます

このような災害復旧プロセスの手順を次に示します

1) 障害の範囲を特定します応答しない可用性グループや SQL Server インスタンス災害後に使用できるオンラインのクラスター ノードをそれぞれ特定しWindows イベント ログと SQL Server システム ログを確認します必要に応じて後で分析できるように解析データやシステム ログを保存しておきます

2) 1 つのノードで強制クォーラムを使用して WSFC クラスターを起動します他の点では正常なノードで強制クォーラムの手順に従ってクラスターを手動で強制的にオンラインにしますこの場合データ損失の可能性を最小限に抑えるには可用性グループのプライマリ レプリカを最後にホストしていたノードを選択します

詳細については「クォーラムを使用せずに WSFC クラスターを強制的に起動する 」(httpmsdnmicrosoftcomja-jplibraryhh270275(v=SQL110)aspx) を参照してください

注 強制クォーラムの設定を使用するとWSFC クラスターの投票が過半数に達することで通常のクォーラム モードの動作に自動的に切り替わるまでクラスター全体のクォーラムのチェックがブロックされます

3) 他の点では正常な各ノードでWSFC サービスを 1 つずつ通常の方法で起動します他のノードでクラスター サービスを起動するときは強制クォーラム オプションを指定する必要はありません

各ノードの WSFC サービスがオンラインに戻ると他の正常なノードとの間でネゴシエーションが行われ新しいクラスター構成の状態が同期されますクラスターの最新の状態

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 20

を判断するときに競合状態の発生を避けるためこの手順は必ず一度に 1 つのノードで行うようにしてください

注 起動した各ノードが新たにオンラインにした他のノードと通信できることを確認しますそうしないと複数のクォーラム ノード セットが作成されて スプリット ブレイン の状況に陥るおそれがあります手順 1 の結果に問題がなければこの現象は発生しません

4) 新しいクォーラム モードとノードの投票の構成を適用します強制クォーラムの手順によってクラスターのすべてのノードを正常に再起動させクォーラムのエラーの根本原因を修正した場合クォーラム モードとノードの投票を元の構成から変更する必要はありません

それ以外の場合は新たに復元されたクラスター ノードと可用性レプリカのトポロジを評価し必要に応じてクォーラム モードと各ノードの投票割り当てを変更します未復旧のノード上ではWSFC クラスター サービスをオフラインにするかノードの投票をゼロに設定します

注 この時点でクラスター内のノードと SQL Server インスタンスが通常の動作に戻っているように見えることがありますがまだ正常なクォーラムには達していない可能性がありますフェールオーバー クラスター マネージャーやSQL Server Management Studio の AlwaysOn ダッシュボードまたは適切な DMV を使用して正常なクォーラムが復元されたことを確認してください

5) 必要に応じて可用性グループのデータベース レプリカを復旧します一部のデータベースはSQL Server の通常の起動処理の一環として自動的に復旧されオンラインに戻ることがありますそれ以外のデータベースの復旧には追加で手動の手順を実行する必要があります

可用性グループ レプリカのデータ損失の可能性や復旧にかかる時間を最小限に抑えるにはできればプライマリ レプリカ同期セカンダリ レプリカ非同期セカンダリ レプリカの順にオンラインに戻します

6) 障害が発生したコンポーネントを修復するか交換しクラスターを再検証しますこれで最初の災害およびクォーラム障害から復旧できたので障害が発生したノードを修復するか交換しWSFC と AlwaysOn の関連する構成を適切に調整する必要がありますこれには可用性グループ レプリカの削除クラスターからのノードの削除ノードへのソフトウェアの再インストールなどが含まれます

注 停止したすべての可用性レプリカを修復または削除する必要がありますSQL Server 2012 では最も古い可用性レプリカを最後に認識した時点以降トランザクション ログが切り捨てられません停止したレプリカを修復するか可用性グループから削除しないとトランザクション ログが大きくなり他のレプリカのトランザクション ログの領域が不足する可能性があります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 21

7) 必要に応じて手順 4 を繰り返しますこの目的は正常な動作を行うために適切なレベルのフォールト トレランスと高可用性を再確立することです

8) RPORTO 分析を実行しますSQL Server のシステム ログデータベースのタイムスタンプおよび Windows のイベント ログを分析して障害の根本的な原因を特定し実際の復旧ポイントと復旧時間を文書に記録します

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 22

SQL Server インスタンス レベルでの保護次に説明する AlwaysOn ソリューションの保護レイヤーはデータ プラットフォームそれ自体ですMicrosoft SQL Server 2012 とその Windows Server インフラストラクチャ コンポーネントとの統合によって次のような機能が提供されます

可用性の向上 ndash SQL Server インスタンスこれは SQL Server 2012 の新しいインスタンス レベルの機能でAlwaysOn フェールオーバー クラスター インスタンスとAlwaysOn 可用性グループをホストするスタンドアロン インスタンスの両方の可用性を強化します

以下の強化点によってフェールオーバーの管理およびトラブルシューティングが向上します

柔軟なフェールオーバー ポリシー信頼性の高いエラー検出に使用される新しいシステム ストアド プロシージャ sp_server_diagnostics の出力でSQL Server インスタンスに影響するエラーの重大度が FailureConditionLevel プロパティによって示されますWSFC のフェールオーバー ポリシーによってこの値が SQL Server インスタンスにどのように影響するかを制御できますある程度エラーを許容する設定からSQL Server の内部コンポーネント エラーを重点的に検出する設定までさまざまに構成できます

特定のレベルのエラーによってフェールオーバーを開始するように構成できますエラーのレベルにはサーバーの停止サーバーの応答停止重大なエラー中程度のエラーなんらかの条件付きエラーなどがありますFailureConditionLevel プロパティはFCI または可用性グループのフェールオーバー ポリシーのために使用できます

SQL Server 2012 よりも前のバージョンではフェールオーバーを制御できるようなエラー状態の区分がなくすべてのサービス レベルのエラーによってフェールオーバーが発生しました

詳細については「フェールオーバー クラスター インスタンスのフェールオーバー ポリシー」(httpmsdnmicrosoftcomja-jplibraryff878664(SQL110)aspx) を参照してください

強化されたインストルメンテーションとログAlwaysOn 専用のシステム構成ビューDMVパフォーマンス カウンターに加えて拡張されたイベント正常性セッションによってAlwaysOn 配置のトラブルシューティングチューニングおよび監視に必要な情報を取得して表示できますこれらの多くはSQL Server ポリシー管理の新しいファセットおよびポリシーを通じて公開されます

詳細については「AlwaysOn 可用性グループの動的管理ビューおよび関 数」(httpmsdnmicrosoftcomja-jplibraryff877943(SQL110)aspx) と「sysdm_os_cluster_nodes」(httpmsdnmicrosoftcomja-jplibraryms187341(SQL110)aspx) を参照してください

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 23

SMB ファイル共有のサポートWindows Server 2008 以降のスタンドアロン用またはフェールオーバー クラスター インスタンス用のリモート ファイル共有にデータベース ファイルを格納することができますこの場合FCI ごとに異なるドライブ文字を使用する必要がありませんこれはストレージを統合する場合やデータベース ファイルのストレージを仮想マシンのゲスト オペレーティング システム用物理サーバーでホストする場合などに便利なオプションです適切に構成すれば直接接続されたストレージとほぼ同等の IO パフォーマンスが得られます

詳細については「ファイル共有上の SQL データベース - シナリオを再検討すべきとき 」(httpblogsmsdncombsqlserverstorageenginearchive20111018sql-databases-on-file-shares-it-s-time-to-reconsider-the-scenarioaspx) を参照してください

注 WSFC クラスターではSMB ファイル共有リソースの依存関係を SQL Server リソース グループに追加することはできませんファイル共有の可用性を確保するには別の方法を用いる必要がありますファイル共有が使用できなくなった場合SQL Server は IO 例外をスローしオフラインになります

WSFC と DNS の相互運用性FCI または可用性グループ リスナーの仮想ネットワーク名 (VNN) はVNN の作成時または構成の変更時にのみDNS に登録されますすべての仮想 IP アドレスはオンライン状態かオフライン状態かに関係なく同じ仮想ネットワーク名で DNS に登録されますDNS の仮想ネットワーク名を解決するためのクライアント呼び出しは各種のラウンド ロビン シーケンスによってすべての登録済み IP アドレスを返します

AlwaysOn フェールオーバー クラスター インスタンスSQL Server の AlwaysOn フェールオーバー クラスター インスタンス (FCI) の主な目的は1 つのデータ センター内のローカル サーバーとストレージ ハードウェアでホストされている SQL Server インスタンスの可用性を高めることです

FCI はWindows Server フェールオーバー クラスタリング (WSFC) のクラスターに含まれる複数のノードにまたがってインストールされる1 つの論理的な SQL Server インスタンスですただし一度に 1 つのノードだけでアクティブになることができますクライアント アプリケーションはアクティブなクラスター ノードが所有している仮想ネットワーク名および仮想 IP アドレスに接続します

FCI をインストールした各ノードは同一の構成を持ち同一の SQL Server バイナリを含んでいますWSFC クラスター サービスはアクティブなインスタンス上にある Windows レジストリのエントリからFCI をインストールした各ノードに関連のある変更をレプリケートしますFCI がインストールされている各ノードはインスタンスとそのリソースの所有者の候補として指定されフェールオーバーの優先順位に従って所有者となります

共有対称ストレージ ボリュームに格納されているデータベース ファイルはリソースとして WSFC クラスターに登録され現在 FCI をホストしているノードによって所有されます

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 24

詳細については「AlwaysOn フェールオーバー クラスター インスタン ス」(httpmsdnmicrosoftcomja-jplibraryms189134(SQL110)aspx) を参照してください

FCI のフェールオーバー プロセス依存しているクラスター リソースで障害が発生した場合AlwaysOn フェールオーバー クラスター インスタンスはWSFC クラスター サービスと連携してフェールオーバーを行いますそのプロセスの概要を以下に示します

1) 再起動が指示されますWSFC の定期的なチェックまたは SQL Server のフェールオーバー ポリシー構成によってエラー状態が示されます既定では他のノードへのフェールオーバーを開始する前にサービスの再起動が試みられます再起動の試みがタイムアウトするようであればリソースの障害が発生しています

2) フェールオーバーが指示されますフェールオーバー ポリシー チェックによってノードのフェールオーバーが必要であることが示されます

3) SQL Server サービスが停止されますSQL Server サービスが現在実行されている場合はその正常なシャットダウンが試みられます

4) WSFC クラスター リソースが転送されますSQL Server クラスター リソース グループの所有権とそれが依存するネットワークおよび共有ストレージ リソースがFCI で次に優先されるノード所有者に転送されます

5) 新しいノードで SQL Server が起動されますSQL Server インスタンスは通常のスタートアップ プロシージャで起動されます所定のタイムアウト時間内にオンラインに戻らない場合クラスター サービスはこの新しいノード上のリソースをエラー状態と見なします

6) 新しいノードでユーザー データベースが復旧されます各ユーザー データベースは復旧モードに設定されます復旧モードではトランザクション ログの再実行操作が適用されコミットされていなかったトランザクションがロールバックされます

FCI の強化以前のバージョンの SQL Server でも FCI のインストール オプションは用意されていましたがSQL Server 2012 では次のような機能強化によって可用性の堅牢性と利便性が向上しました

マルチサブネット クラスタリングSQL Server 2012 では複数のサブネットに存在する WSFC クラスター ノードがサポートされていますWSFC クラスター ノードに存在する SQL Server インスタンスはいずれかのネットワーク インターフェイスが使用可能であれば起動できますこれはクラスター リソースの OR 依存関係と呼ばれます

以前のバージョンの SQL Server の場合SQL Server サービスを起動またはフェールオーバーするにはすべてのネットワーク インターフェイスが機能しそれらがすべて同じサブネットまたは VLAN に存在している必要がありました

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 25

注 マルチサブネット クラスタリングではクラスター ノード間のストレージ レベルのレプリケーションが自動的には有効になりませんマルチサブネットの FCI ソリューションでクラスター ノード間でデータのレプリケーションを行いストレージ フェールオーバーを調整するためにはサード パーティから提供される SAN ベースのソリューションを利用する必要があります

詳細については「SQL Server 2012 AlwaysOn マルチサイト フェールオーバー クラスター インスタンス」(httpsqlcatcomsqlcatbwhitepapersarchive20111222sql-server-2012-alwayson_3a00_-multisite-failover-cluster-instanceaspx) を参照してください

信頼性の高いエラー検出WSFC クラスター サービスではノードの各 SQL Server 2012 FCI に対してそれぞれ専用の管理者接続が維持されますこの接続では特殊なシステム ストアド プロシージャ sp_server_diagnostics を定期的に呼び出すことでシステムの正常性診断に役立つ豊富な情報を含む配列が返されます

SQL Server 2012 よりも前のバージョンではFCI の主な正常性検出メカニズムは単純な一方向のポーリング プロセスとして実装されていましたこのプロセスではWSFC クラスター サービスがインスタンスへの新しい SQL クライアント接続を定期的に作成しサーバー名を照会した後で接続を切断していました何かの理由で接続が失敗するかクエリがタイムアウトした場合フェールオーバーが開始されますが診断情報はほとんど提供されません

詳細については「sql_server_diagnostics」(httpmsdnmicrosoftcomja-jplibraryff878233(SQL110)aspx) を参照してください

現在ではFCI ストレージが次のように幅広い状況でサポートされています

向上したマウント ポイント サポートSQL Server のセットアップ時にクラスター ディスクのマウント ポイント設定が認識されるようになりました指定されたクラスター ディスクとそれにマウントされているすべてのディスクがセットアップ時に SQL Server リソースの依存関係に自動的に追加されます

ローカル ストレージの tempdbFCI ではローカルの非共有ストレージ (ローカル ソリッド ステート ドライブなど) に tempdb を配置できるようになったため共有 SAN での IO 動作の負荷を大幅に軽減できる可能性があります

SQL Server 2012 よりも前のバージョンの FCI ではtempdb が他のシステム データベースと共にフェールオーバーされる対称共有ストレージ ボリュームに配置される必要がありました

注 tempdb の場所はmaster データベースに格納されますこのデータベースはフェールオーバー時にノード間で移動されますtempdb は所有者候補となっているすべてのノード上で有効で対称的なファイル パス (ドライブフォルダーおよび権限) に配置されている必要がありますそうなっていない場合SQL Server サービスが一部のノードでは起動されません

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 26

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 27

データベースの可用性インフラストラクチャ レベルおよび SQL Server インスタンス レベルのコンポーネントで提供されている高可用性機能は互いに連係してホストされているデータベースを暗黙的に保護しますAlwaysOn ソリューションではデータベースのデータおよびデータ層アプリケーションを明示的に保護するために一連のオプションが追加で用意されています

AlwaysOn 可用性グループ可用性グループは1 つの SQL Server インスタンスから同じ WSFC クラスター内の別のインスタンスへと同時にフェールオーバーされるユーザー データベースのセットですクライアント アプリケーションは可用性グループ リスナーと呼ばれる WSFC 仮想ネットワーク名を通じて可用性グループのデータベースに接続できますこうすることで基になる SQL Server インスタンスが抽象化されます

AlwaysOn 可用性グループは正常性監視フェールオーバーの調整およびサーバー接続を Windows Server フェールオーバー クラスタリングに依存していますWSFC クラスター ノード上の SQL Server インスタンスでAlwaysOn サポートを有効にする必要がありますただしそのインスタンスが FCI である必要はなく対称共有ストレージを使用する必要もありません

詳細については「AlwaysOn 可用性グループの概要 」(httpmsdnmicrosoftcomja-jplibraryff877884(SQL110)aspx) を参照してください

可用性レプリカとロール可用性グループの各 SQL Server インスタンスは可用性グループのユーザー データベースのコピーを保持している可用性レプリカをホストしますSQL Server インスタンスは特定の可用性グループの可用性レプリカを 1 つだけホストすることができますが複数の可用性グループを同じインスタンスに置くことは可能ですSQL Server インスタンスは専用の (非共有) ストレージ ボリュームを持つ必要があります

可用性レプリカの 1 つがプライマリ レプリカの役割を果たしますこれは可用性グループ データベースのマスター コピーとして指定されていて読み取り書き込み操作を行うことができます

可用性グループには読み取り専用の可用性レプリカを最大 4 つまで追加で含めることができますこれらは個別にセカンダリ レプリカの役割を果たします

可用性レプリカの同期可用性グループの各データベースの内容はSQL Server によるログ ベースのデータ移動メカニズムを通じてプライマリ レプリカから各セカンダリ レプリカに同期されますそのため可用性グループのすべてのデータベースは完全復旧モデルに設定する必要があります

セカンダリ レプリカはプライマリ レプリカのデータベースとトランザクション ログの完全なバックアップと復元によって初期化されますプライマリ レプリカで新しいトランザクションがコミットされるとトランザクション ログの対応する部分がキャッシュされ

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 28

キューに入れられてネットワーク経由でセカンダリ レプリカ ノード上のデータベース ミラーリング エンドポイントに送信されます

この方法によりプライマリ レプリカのトランザクション ログの新しいエントリが各セカンダリ レプリカのトランザクション ログに追加されます各セカンダリ レプリカはログ シーケンス番号 (LSN) をプライマリ レプリカに定期的に送り返しトランザクション ログのどのくらいの量がリモート ディスクに書き込まれフラッシュされたかを示します

注 各可用性レプリカはそれぞれ独自に独立したトランザクション ログ再実行スレッドのセットを保持していますこれは可用性レプリカの同期プロセスには含まれませんセカンダリ レプリカ上ではログ再実行プロセスによって遅延時間が生じるためユーザーはそれをデータの待機時間として感じる場合があります

プライマリまたはセカンダリの役割を果たす他に各可用性レプリカには可用性モードもありますこのモードは次のようにCOMMIT TRAN ステートメントの実行時にトランザクション ログの書き込みの連係を制御します

同期コミット モードすべての同期コミット セカンダリ レプリカからそれぞれ独自のトランザクション ログの書き込み完了 (LSN 以降) が通知されるまでプライマリ レプリカはそのトランザクションをコミットしません可用性グループでは最大で 2 つの同期コミット セカンダリ レプリカを使用できます

同期コミット モードではプライマリ レプリカ データベースでトランザクションの遅延が生じますがコミットされたトランザクションに対するセカンダリ レプリカでのデータ損失を確実に防ぐことができます

非同期コミット モードプライマリ レプリカはローカル トランザクション ログの書き込み後にトランザクションをコミットしますが非同期コミット セカンダリ レプリカからトランザクション ログの書き込み完了通知を待つことはしません可用性グループでは最大で 4 つの非同期コミット セカンダリ レプリカを使用できますただし両方の種類を合わせて使用できるセカンダリ レプリカの合計は最大 4 つです

非同期コミット モードではプライマリ レプリカ データベースで生じるトランザクションの遅延が最小になりますがセカンダリ レプリカでのトランザクション ログが遅れる場合があるため一部のデータが失われる可能性があります

詳細については「可用性モード」(httpmsdnmicrosoftcomja-jplibraryff877931(SQL110)aspx) を参照してください

可用性レプリカ間のデータ フローの全体的な正常性は各レプリカの同期状態によって示されますセカンダリ レプリカにフェールオーバーしたときに同期状態が 同期済み または 同期中 になっていなければほとんどの場合はデータ損失が発生することになります

各セカンダリ レプリカの同期ストリームにはセッション タイムアウト プロパティがあります同期コミット モードに構成されているセカンダリ レプリカがセッション タイムアウトでエラーになると内部的には一時的に非同期としてマークされますこれはセカンダ

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 29

リ レプリカのエラーがプライマリ レプリカでのトランザクション ログの書き込みに影響しないようにするためですそのセカンダリ レプリカが正常に戻ってプライマリ レプリカの状態に追いつくと自動的に通常の同期コミット モード動作に戻されます

可用性グループのフェールオーバー可用性グループとそれに対応する仮想ネットワーク名はWSFC クラスターのリソースとして登録されます可用性グループはプライマリ レプリカの正常性とフェールオーバー ポリシーに基づいて可用性レプリカのレベルでフェールオーバーを行います

可用性グループのフェールオーバー ポリシーではsp_server_diagnostics システム ストアド プロシージャと FailureConditionLevel プロパティを使用して可用性グループに対して許容されるエラーの重大度のレベルを示しますこの同じメカニズムがFCI のフェールオーバー ポリシーにも使用されます

フェールオーバーが発生した場合は共有物理リソースの所有権を他のノードに移す代わりにWSFC を利用して他の SQL Server インスタンス上でセカンダリ レプリカを再構成しプライマリ レプリカの役割を引き継がせますその後可用性グループの仮想ネットワーク名リソースがそのインスタンスに転送されます関連する可用性レプリカへのすべてのクライアント接続がリセットされます

レプリカの現在の正常性同期状態および可用性モードに基づいて各レプリカには複合的な フェールオーバーの準備 状態が定義されますこの状態の値はデータ損失の可能性を示していますレプリカの正常性情報はAlwaysOn ダッシュボードまたは sysdm_hadr_availability_replica_states システム ビューで確認できます

各可用性レプリカにはフェールオーバー モードも構成されていますこのモードはフェールオーバーが指示された場合にレプリカの動作を制御します

自動フェールオーバー (データ損失なし)セカンダリ レプリカのトランザクション ログが既に書き込まれ同期されているのですべての AlwaysOn 構成の中でフェールオーバー時間が最短になりますプライマリ レプリカ上の開かれているトランザクションはロールバックされプライマリ レプリカの役割はユーザーによる操作なしでセカンダリ レプリカに転送されます

この場合プライマリ レプリカとセカンダリ レプリカの両方を自動フェールオーバー モードに設定し両方の可用性モードを同期コミットに設定する必要がありますレプリカ間の同期状態は同期済み である必要がありますまたWSFC クラスターは正常なクォーラム状態になっている必要があります

自動フェールオーバーはプライマリ レプリカまたはセカンダリ レプリカが FCI 上にある場合はサポートされませんこれは可用性グループと FCI のフェールオーバー間で競合状態が発生することを防ぐためです

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 30

手動フェールオーバーこの場合管理者はプライマリ レプリカの状態を評価してセカンダリ レプリカにフェールオーバーするかどうかを慎重に判断できます

可用性モードと同期状態に応じて次のような選択が可能です

o 計画的な手動フェールオーバー (データ損失なし)この種類のフェールオーバーを実行できるのはプライマリ レプリカとセカンダリ レプリカの両方が正常で同期済み 状態である場合だけですこれは機能的には自動フェールオーバーと同じです

o 強制手動フェールオーバー (データ損失の可能性を許容)これは対象のセカンダリ レプリカの可用性モードが非同期コミットである場合またはプライマリ レプリカに同期されない場合に使用できる唯一のフェールオーバー形式です

警告 このフェールオーバー オプションは災害復旧の状況に限って使用する必要がありますプライマリ レプリカが正常で使用可能である場合は関連する各レプリカの可用性モードを同期コミットに変更し計画的な手動フェールオーバーを実行してください

詳細については「可用性グループの強制手動フェールオーバーの実行」(httpmsdnmicrosoftcomja-jplibraryff877957(SQL110)aspx) を参照してください

フェールオーバー対象のプライマリ レプリカまたはセカンダリ レプリカが次の条件のいずれかに該当する場合は手動フェールオーバーを実行する必要があります

フェールオーバー モードが手動に設定されている 可用性モードが非同期コミットに設定されている レプリカが FCI 上にある

詳細については「フェールオーバーとフェールオーバー モード (AlwaysOn 可用性グルー プ ) 」(httpmsdnmicrosoftcomja-jplibraryhh213151(SQL110)aspx) を参照してください

注 フェールオーバー後新しいプライマリ レプリカが同期コミット モードに設定されていない場合セカンダリ レプリカの同期状態は 中断状態 になりますプライマリ レプリカが同期コミット モードに設定されるまでデータはセカンダリ レプリカに移動されません

可用性グループ リスナー可用性グループ リスナーはクライアントが可用性グループ内のデータベースにアクセスするために使用できる WSFC 仮想ネットワーク名 (VNN) ですVNN クラスター リソースはプライマリ レプリカをホストしている SQL Server インスタンスによって所有されます

仮想ネットワーク名は可用性グループ リスナーの作成時または構成の変更時にのみDNS に登録されます可用性グループ リスナーで定義されているすべての仮想 IP アドレスは同じ仮想ネットワーク名で DNS に登録されます

可用性グループ リスナーを使用する場合クライアント接続要求ではサーバーとして仮想ネットワーク名を指定してから可用性グループ内のデータベース名を指定する必要があり

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 31

ます既定ではこれによってプライマリ レプリカをホストしている SQL Server インスタンスに接続されます

実行時にはクライアントはローカルの DNS リゾルバーを使用して仮想ネットワーク名にマップされている IP アドレスと TCP ポートの一覧を取得しますクライアントは各 IP アドレスへの接続を成功するか接続タイムアウトに達するまで試し続けますMultiSubnetFailover パラメーターが true に設定されているとクライアントは複数の接続を同時に試行するのでクライアント フェールオーバーが大幅に速くなります

フェールオーバーが行われるとサーバー上でクライアント接続がリセットされ可用性グループ リスナーの所有権はプライマリ レプリカの役割と共に新しい SQL Server インスタンスに移動しVNN エンドポイントは新しいインスタンスの仮想 IP アドレスと TCP ポートにバインドされます

詳細については「可用性グループ リスナークライアント接続およびアプリケーションのフェールオーバー」(httpmsdnmicrosoftcomja-jplibraryhh213417(SQL110)aspx) を参照してください

アプリケーションの目的によるフィルター処理可用性グループ リスナーを使用して接続している場合アプリケーションは接続の目的がデータの読み取りと書き込みの両方なのか読み取り専用操作を実行するだけなのかを指定できます指定しない場合クライアントのアプリケーションの目的は既定で読み取りと書き込みになります

各可用性レプリカのプライマリ ロールとセカンダリ ロールについてはクライアントのアプリケーションの目的に対する接続レベルのフィルターとして接続アクセス プロパティも指定できます既定ではアプリケーションの目的と接続アクセスとの組み合わせが無効であると接続が拒否されますSQL Server は次のルールを使用してクライアントの接続要求を振り分ける必要があります

可用性レプリカがプライマリ ロールであり接続アクセスが次のいずれかである場合

すべてのアプリケーションの目的を許可するアプリケーションの目的でクライアント接続をフィルター処理しません

明示的な読み取り書き込みの目的だけを許可するクライアントが読み取り専用を指定している場合接続を拒否します

可用性レプリカがセカンダリ ロールであり接続アクセスが次のいずれかである場合

接続を許可しないすべての接続を拒否しますレプリカは災害復旧だけに使用されます

すべてのアプリケーションの目的を許可するアプリケーションの目的でクライアント接続をフィルター処理しません

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 32

読み取り専用の目的を許可するクライアントが読み取り専用を指定していない場合接続を拒否します

詳細については「可用性レプリカでの読み取り専用アクセスの構成」(httpmsdnmicrosoftcomja-jplibraryhh213002(SQL110)aspx) を参照してください

アプリケーションの目的の読み取り専用ルーティングAlwaysOn 可用性グループの特に優れた点はスタンバイ ハードウェア インフラストラクチャを災害復旧以外の目的に利用できることです1 つ以上のセカンダリ レプリカを読み取り専用でアクセスできるように構成するとプライマリ レプリカからかなりの量のワークロードを軽減できます

読み取り専用セカンダリ レプリカに回すように簡単に調整できるワークロードはレポートデータベース バックアップデータベース整合性チェックインデックスの断片化の分析データ パイプライン抽出運用サポート操作サポートアドホック クエリなどです

各可用性レプリカではSQL Server インスタンスのエンドポイントについて順次的な読み取り専用ルーティング リストを構成することもできますこのリストはレプリカがプライマリ ロールであるときに適用されますこのリストが存在する場合アプリケーションの目的が読み取り専用と指定されているクライアント接続要求はそのリスト内に記載されていて前述のアプリケーションの目的フィルターに適合する最初のセカンダリ レプリカにリダイレクトされます

注 読み取り専用ルーティングによるリダイレクトはプライマリ レプリカにバインドされている可用性グループ リスナーによって実行されますプライマリ レプリカがオフラインの場合クライアントのリダイレクトは機能しません

詳細については「可用性グループの読み取り専用ルーティングの構成 (SQL Server) 」(httpmsdnmicrosoftcomja-jplibraryhh710054(SQL110)aspx) を参照してください

可用性の向上 ndash データベースSQL Server 2012 ではデータベースの構成と機能に関してさまざまな点が強化されています

以下の機能は復旧時間の短縮に役立ちます

予測可能な復旧時間データベースごとにターゲット復旧時間の長さを設定することでバックグラウンドで実行される CHECKPOINT コマンドのスケジュールを制御できますこのコマンドは間接的なチェックポイントとして再起動時またはフェールオーバー時にトランザクション ログの復旧に必要となる時間の推定値に基づいて定期的に実行されますそれによってチェックポイントごとに IO 操作がほぼ均等に配分され復旧時間 (RTO) の予測可能性が高まります

SQL Server 2012 よりも前のバージョンではバックグラウンドの CHECKPOINT コマンドがトランザクションの量や負荷とは無関係に一定間隔で実行されていたので復旧時間を予測することはできませんでした

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 33

詳細については「データベース チェックポイント」(httpmsdnmicrosoftcomja-jplibraryms189573(SQL110)aspx) を参照してください

以下の向上点は計画的なダウンタイムが必要になる一般的な状況を減らすのに役立ちます

LOB 列のオンライン インデックス操作varbinary(max)varchar(max)nvarchar(max)または XML データ型の列が含まれているインデックスをオンラインで再構築または再構成できるようになりました

新しい NOT NULL 列のオンライン スキーマ修正既定値を使用して新しい NOT NULL 列を SQL Server 2012 データベース テーブルに追加する場合システム メタデータの更新にはスキーマ ロックだけが必要ですALTER TABLE ステートメントですべての行にデータを設定する必要はありません

いずれかの行で実際に変更またはインデックスの再作成が行われない限り列の既定値は物理的に格納されませんクエリでは列に実際の値が存在しない場合メタデータから既定値を返します

ストレージのサポート強化の例として次のようなものがあります

ページの自動修復ある種のストレージ サブシステム エラーが発生するとデータ ページが破損し読み取り不可能になる場合がありますAlwaysOn 可用性グループではそのような種類のエラーを検出し自動的に復旧できます復旧のために影響を受けたデータ ページの最新のコピーが別の可用性レプリカから非同期で取得され適用されます

以前のバージョンでもデータベース ミラーリングに同様の機能がありましたが新しい機能では複数のレプリカをサポートできるようになっています

詳細については「ページの自動修復」(httpmsdnmicrosoftcomja-jplibrarybb677167(SQL110)aspx) を参照してください

クライアント接続の推奨事項クライアント アプリケーションが Microsoft SQL Server 2012 AlwaysOn テクノロジの利点を十分に活用できるようにするには次のガイドラインに従います

AlwaysOn 対応のクライアント ライブラリ表形式のデータ ストリーム (TDS) プロトコル Version 74 以降をサポートしているクライアント ライブラリを使用しますこれによってAlwaysOn の機能に対応した適切な機能がクライアント側でも提供されますクライアント ライブラリの例としてはData Provider for SQL Server in NET Framework 402SQL Native Client 110 などがあります

接続プロバイダー プロパティ MultiSubnetFailover = True接続文字列にこのキーワードを使用することでクライアント ライブラリでは(複数のサブネットに IP アドレスを持つ) 可用性グループ リスナーまたは FCI に登録されているすべての IP アドレスに同時に接

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 34

続できるようになります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 35

接続プロバイダー プロパティ ApplicationIntent = ReadOnly必要に応じてプライマリ レプリカの読み取り専用ワークロードをセカンダリ レプリカに移管することができます

レガシ クライアントの接続タイムアウトレガシ クライアントのデータベース ライブラリには並列で接続を試行する機能が実装されていないため複数の IP アドレスがある場合にはTCP タイムアウトに達するか正常に接続できるまで1 つずつ順番に接続を試行します

複数の IP アドレスが存在する場合はタイムアウトと再試行が逐次的に繰り返される可能性に備えてレガシ クライアントの接続タイムアウトを調整する必要があります値は少なくとも 15 秒 + 21 秒 times セカンダリ レプリカ数にします

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 36

結論このホワイト ペーパーではSQL Server 2012 の AlwaysOn による高可用性災害復旧ソリューションを使用し予定されたダウンタイムや予定外のダウンタイムを短縮したりアプリケーションの可用性を最大限に高めたりデータを保護したりする方法について基本的なコンテキストを確立しました

高可用性データベース環境の計画管理測定に関連したビジネス上の目的と課題は多くの場合目標復旧時点 (RPO) と目標復旧時間 (RTO) という形で数量化して表すことができます

SQL Server 2012 AlwaysOn は組織が高可用性や災害復旧に関する一般的な状況に対処するための機能をRPO と RTO を適切に達成できることを念頭にインフラストラクチャ レベルデータ プラットフォーム レベルデータベース レベルのそれぞれで提供します

詳細情報

httpwwwmicrosoftcomja-jpsqlserver2012defaultaspx SQL Server Web サイト

httptechnetmicrosoftcomja-jpsqlserver SQL Server TechCenter

httpmsdnmicrosoftcomja-jpsqlserver SQL Server 開発者向け技術情報

このホワイト ペーパーはお役に立ちましたか フィードバックをお寄せください1 (役に立たなかった) ~ 5 (非常に役に立った) の 5 段階で評価してくださいまたその評価の理由もお知らせください以下に例を示します

評価が高い 例が適切図がわかりやすい説明が明快といったことが理由である 評価が低い 例が少ない図がわかりにくい説明があいまいといったことが理由で

ある

このようなフィードバックをお寄せいただくと今後のホワイト ペーパーの品質向上につながります

フィードバックの送信

loz Version 112012 年 2 月 21 日

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 37

  • 高可用性と災害復旧の概念
    • 高可用性について
      • 予定されたダウンタイムと予定外のダウンタイム
      • 段階的な可用性
        • ダウンタイムの定量化
          • 復旧目標
          • ROI または機会費用の正当化
          • 可用性の健全度の監視
          • 災害復旧の計画
            • 概要 Microsoft SQL Server 2012 での高可用性
              • SQL Server AlwaysOn
              • 計画的なダウンタイムの大幅な削減
              • アイドル状態のハードウェアをなくしてコスト効率とパフォーマンスを向上
              • 簡単な配置と管理
              • RPO と RTO の機能比較
                  • SQL Server AlwaysOn の保護レイヤー
                    • インフラストラクチャの可用性
                      • Windows オペレーティング システム
                        • Windows Server Core インストール オプション
                        • プライベート クラウド用の SQL Server の最適化
                          • Windows Server フェールオーバー クラスタリング
                            • WSFC ストレージ構成
                            • WSFC リソースの正常性の検出とフェールオーバー
                              • WSFC のクラスター検証ウィザード
                              • WSFC クォーラム モードと投票の構成
                                • クォーラムによるクラスター状態検出
                                • クォーラム モード
                                • 投票ノードと非投票ノード
                                • クォーラム投票に推奨される調整
                                  • WSFC の強制クォーラムによる災害復旧
                                    • SQL Server インスタンス レベルでの保護
                                      • 可用性の向上 ndash SQL Server インスタンス
                                      • AlwaysOn フェールオーバー クラスター インスタンス
                                        • FCI のフェールオーバー プロセス
                                        • FCI の強化
                                            • データベースの可用性
                                              • AlwaysOn 可用性グループ
                                                • 可用性レプリカとロール
                                                • 可用性レプリカの同期
                                                  • 可用性グループのフェールオーバー
                                                  • 可用性グループ リスナー
                                                    • アプリケーションの目的によるフィルター処理
                                                    • アプリケーションの目的の読み取り専用ルーティング
                                                      • 可用性の向上 ndash データベース
                                                        • クライアント接続の推奨事項
                                                          • 結論
Page 3: 高可用性と災害復旧の概念download.microsoft.com/download/6/B/E/6BE0C3F3-2991-4766... · Web view高可用性と災害復旧のソリューションのために最適なデータベース

著作権

このドキュメントは現状有姿で提供されますこのドキュメントに記載されている情報や見解 (URL 等のインターネット Web サイトに関する情報を含む) は将来予告なしに変更されることがありますお客様はその使用に関するリスクを負うものとします

ここで使用される例は架空のものであり説明のためだけに使用されます実在するものとは一切関係ありません

このドキュメントはMicrosoft 製品の無体財産権に関する法的な権利をお客さまに許諾するものではありません内部的な参照目的に限りこのドキュメントを複製して使用することができます

copy 2012 Microsoft All rights reserved

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド iii

目次高可用性と災害復旧の概念1

高可用性について1

予定されたダウンタイムと予定外のダウンタイム2

段階的な可用性2

ダウンタイムの定量化3

復旧目標3

ROI または機会費用の正当化4

可用性の健全度の監視4

災害復旧の計画5

概要 Microsoft SQL Server 2012 での高可用性5

SQL Server AlwaysOn6

計画的なダウンタイムの大幅な削減6

アイドル状態のハードウェアをなくしてコスト効率とパフォーマンスを向上7

簡単な配置と管理7

RPO と RTO の機能比較7

SQL Server AlwaysOn の保護レイヤー8

インフラストラクチャの可用性9

Windows オペレーティング システム9

Windows Server フェールオーバー クラスタリング10

WSFC のクラスター検証ウィザード13

WSFC クォーラム モードと投票の構成14

WSFC の強制クォーラムによる災害復旧17

SQL Server インスタンス レベルでの保護19

可用性の向上 ndash SQL Server インスタンス19

AlwaysOn フェールオーバー クラスター インスタンス20

データベースの可用性23

AlwaysOn 可用性グループ23

可用性グループのフェールオーバー25

可用性グループ リスナー26

可用性の向上 ndash データベース28

クライアント接続の推奨事項29

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド iv

結論31

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド v

高可用性と災害復旧の概念高可用性と災害復旧のソリューションのために最適なデータベース テクノロジを選択するにはRTO と RPO の計画管理測定に関連するビジネス上の利点課題および目的についてすべての関係者が理解を共有している必要があります

これらの概念を既に理解されている方は「概要 Microsoft SQL Server 2012 での高可用性 」のセクションから読み始めてもかまいません

高可用性についてソフトウェア アプリケーションやサービスで高可用性は最終的にはエンド ユーザーの体感や期待に基づいて計測されますダウンタイムが生じることでビジネスに与える影響には情報の損失物的損害生産性の低下機会費用契約上の損害信用の損失などさまざまな目に見える影響や目に見えない影響があります

高可用性ソリューションの主な目的はダウンタイムの影響を最小限に抑えるまたは少なくともある程度軽減することですそのための堅実な戦略の 1 つはビジネス プロセスやサービス レベル契約 (SLA) と技術的な機能やインフラストラクチャのコストとの間で最適なバランスを取ることです

プラットフォームの可用性の高さは契約に基づいてさらには顧客や関係者からの期待に応じて判断されますシステムの可用性は次の式で表すことができます

実際のアップタイム予定されたアップタイム

times100

可用性の値は業界ではよく 9 がいくつ並んでいるかによって表現されますそれによって年間の可能なアップタイムの長さ逆に言えばダウンタイムの長さがわかります

9 の個数 可用性の割合 年間合計ダウンタイム2 99 3 日15 時間3 999 8 時間45 分4 9999 52 分34 秒5 99999 5 分15 秒

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 1

予定されたダウンタイムと予定外のダウンタイムシステムの停止には予測または計画されたものと予定外の障害によって生じるものとがありますダウンタイムは適切に管理されているのならば否定的に考える必要はありません予測可能なダウンタイムには主に次の 2 種類があります

計画的なメンテナンスあらかじめ時間枠を予告したうえで計画されたメンテナンス タスクが行われますたとえばソフトウェア修正プログラムの適用ハードウェアのアップグレードパスワードの更新オフラインでのインデックス再作成データの読み込み災害復旧手順のリハーサルなどです操作手順を入念に準備することでダウンタイムを最小限に抑えデータ損失を防ぐことができます計画的なメンテナンス作業は予定外の停止によってさらに深刻な事態を招くのを防いだりそのような場合の被害を軽減したりするために必要な投資と考えることができます

予定外の停止システムインフラストラクチャまたはプロセスのレベルで障害が発生した場合ですそれらは予定外で制御できないものであったり予測可能ではあってもまず発生しないだろうと考えられたり影響は許容範囲だろうと考えられたりしたものです堅牢な高可用性ソリューションはそのような障害を検出し停止状態から自動的に復旧してフォールト トレランスを再確立することができます

高可用性に関するサービス レベル契約 (SLA) を規定するときには計画的なメンテナンス作業と予定外のダウンタイムの両方についてそれぞれ個別に主要業績評価指標 (KPI) を計算する必要がありますそうすることで計画的なメンテナンス作業への投資を予定外のダウンタイムを回避できた場合の利益と比較して検討することができます

段階的な可用性高可用性は100 か 0 かの問題として捉えるべきではありませんシステムが完全に停止するのではなく部分的に使用できるのであれば機能が制限されたりパフォーマンスが低下したりしてもエンド ユーザーに許容される場合もよくあります可用性には次のようにさまざまな段階があります

読み取りのみ可能および操作の遅延メンテナンス期間中や災害復旧の処理中にデータを取得することはできても新しいワークフローやバックグラウンド処理は一時的に中断されたりキューに入れられたりする場合があります

データ待機時間とアプリケーションの応答時間大量のワークロードバックログの処理プラットフォームの部分的な障害などが原因で限りのあるハードウェア リソースが負荷過剰になったりサイズ不足になったりする場合がありますこれはユーザー エクスペリエンスに影響し生産性は低下しますが作業は続けることができます

部分的一時的または差し迫った障害アプリケーション ロジックやハードウェア スタックが堅牢にできていればエラーが発生しても再試行や自己修正が行われますこのような場合エンド ユーザーはデータの待ち時間やアプリケーションの応答時間を長く感じることがあります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 2

部分的なエンド ツー エンドの障害予定された停止または予定外の停止がソリューション スタックの垂直的なレイヤー (インフラストラクチャプラットフォームおよびアプリケーション) 内でまたは水平的な各種の機能コンポーネント間で整然と行われる場合がありますユーザーは影響を受ける機能またはコンポーネントに応じて部分的に操作が成功したりパフォーマンスの低下を感じたりします

これらの状況はそれぞれ完全な停止に至るまでの可用性の一段階であると同時に災害復旧フェーズの中間段階とも考えることができそれぞれの状況がどの程度許容できるかを判断する必要があります

ダウンタイムの定量化ダウンタイムが発生した場合にはそれが予定されたものであったか予定外のものであったかにかかわらずシステムをオンラインに戻しデータ損失を最小限に抑えることがビジネスとして第一の目標となりますダウンタイムが 1 分経過するごとに直接または間接のコストが刻々と増えていきます予定外のダウンタイムが発生したのであれば時間と労力を適切に配分しながら停止の理由を調査し現在のシステム状態を把握し復旧手順を決定する必要があります

どのような場合でも事前に決めておいた時間になったらビジネス上の意思決定を行う必要があります停止の原因調査やメンテナンス操作を中止してシステムをオンラインに戻すかどうか必要に応じてフォールト トレランスを再構築するかどうかなどを判断します

復旧目標データの冗長性は高可用性データベース ソリューションの重要な要素の 1 つですプライマリ SQL Server インスタンスに対するトランザクションの操作は同期または非同期で1 つ以上のセカンダリ インスタンスにも適用されます障害が発生すると処理中のトランザクションはロールバックされるかまたはデータ伝達の遅れのためにセカンダリ インスタンスでは失われる可能性もあります

影響を見積もりながら機能の復旧にどれくらいの時間がかかるか最後のトランザクションを回復するためにどれくらいの遅延が生じるかという観点で次の復旧目標を設定します

目標復旧時間 (RTO)これはシステムが停止している時間の長さを意味します最初の目標は少なくとも読み取り専用の状態でシステムをオンラインに戻し障害について調査できるようにすることですただし最終的な目的は新しいトランザクションを実行できる状態まで完全にサービスを復元することです

目標復旧時点 (RPO)これは多くの場合どのくらいのデータ損失が許容されるかの基準として考えられます障害発生前に最後にコミットされたデータ トランザクションと障害発生後に復元された最新のデータとの時間差や遅延が示されます実際に失われるデータの量は障害発生時のシステムのワークロード障害の種類および使用されている高可用性ソリューションの種類に応じて異なります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 3

RTO と RPO の値はビジネスで許容できるダウンタイムとデータ損失の目安としてまた可用性が健全であるかどうかを監視する際の指標として使用します

ROI または機会費用の正当化ダウンタイムによって生じるビジネス上のコストには金銭的なコストだけでなく顧客からの信用も含まれますこれらのコストには時間の経過と共に発生するものもあれば停止期間中の特定の時点で発生するものもあります復旧時間とデータ復旧ポイントに基づいて停止のコストを見積もる以外にRTO および RPO の達成や停止自体の回避に必要なビジネス プロセスを考えたりインフラストラクチャへの投資を計算したりすることもできますこれらの投資の目的は次のようなものです

ダウンタイムの回避そもそも停止状態にならなければ復旧のコストをまとめて回避できますこの投資にはフォールト トレランスと冗長性のためのハードウェアまたはインフラストラクチャ各障害点を分離した分散ワークロード予防メンテナンスのための計画的なダウンタイムなどのコストが含まれます

復旧の自動化システム障害が発生した場合自動的で透過的な復元が行われればダウンタイムによるカスタマー エクスペリエンスへの影響を大幅に抑えることができます

リソース使用率セカンダリまたはスタンバイ インフラストラクチャは障害に備えてアイドル状態にしておくことができますまた読み取り専用ワークロードのために利用したり利用可能なすべてのハードウェアにワークロードを分散してシステム全体のパフォーマンスを向上させたりもできます

RTO と RPO の目標実現に必要な可用性と復旧のための投資は予測されるダウンタイムのコストと組み合わせて時間の関数として表現し正当化することができますこれによって実際の停止中にダウンタイムの経過時間に基づいてコスト ベースの判断を行うことができます

可用性の健全度の監視運用上の観点からは実際の停止中に関連するすべての変数を考慮しリアルタイムで ROI または機会費用を計算しようとするべきではありません実際にはRPO の期待値に代わるものとしてスタンバイ インスタンスのデータ遅延を監視します

停止の際根本的な原因の調査に費やす時間は制限し代わりに復旧環境の正常性の検証に集中する必要がありますその後詳細なシステム ログとデータのセカンダリ コピーに基づいて原因究明の分析を行います

災害復旧の計画

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 4

高可用性のための取り組みでは停止を回避するために何をするかが問題になりますが災害復旧のための取り組みでは停止後に高可用性を再構築するために何をするかが問題になります

できる限り実際に停止状態になる前に災害復旧の手順と役割分担を策定しておくようにします実行中の監視と警告に基づいて自動または手動のフェールオーバーと復旧計画を開始するかどうかは事前に決められた RTO および RPO のしきい値を考慮しつつ判断する必要があります災害復旧計画には次のようなものを含める必要があります

障害と復旧の適用範囲障害の場所や種類に応じてデータ センター レベルインフラストラクチャ レベルプラットフォーム レベルアプリケーション レベルワークロード レベルなどさまざまなレベルで修正措置が行われます

調査のための資料ベースラインと最新の監視の履歴システム警告イベント ログ診断クエリなどを関係者がいつでも利用できるようにしておく必要があります

依存関係の調整アプリケーション スタック内でまたは関係者間でシステムやビジネスの依存関係を把握しておきます

デシジョン ツリー繰り返し使用できるデシジョン ツリーを事前に定義して検証しておきますこれにはロールの役割障害の優先順位RPO と RTO を実現するためのフェールオーバーの条件所定の復旧手順などを含めます

検証停止状態からの復旧手順を実行した後でシステムが通常の状態に戻ったことを検証するために何をしなければならないかを整理しておきます

文書化新しい担当者でも最低限の補助があれば復旧計画を実行できるように上記のすべての項目を詳細で明確な一連の文書として記録しておきますこのような文書は一般的にラン ブック または クック ブック と呼ばれます

復旧のリハーサル定期的に災害復旧計画の演習を行いRTO のベースラインとなる期待値を確立しプライマリ サイトと各災害復旧サイトでの本番運用のローテーションを検討します

概要 Microsoft SQL Server 2012 での高可用性要求される RPO と RTO を実現するには主要アプリケーションの継続的なアップタイムを確保することと予定外のダウンタイムや予定されたダウンタイム時に重要なデータを保護することが必要ですSQL Server では低コストで簡単にこれらの目標を実現できる一連の機能が用意されています

新しい AlwaysOn の機能について既によくご存じの方は「SQL Server AlwaysOn の保護レイ ヤー」のセクションに進んでより詳細な説明をご覧ください

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 5

SQL Server AlwaysOnAlwaysOn は高い統合性柔軟性およびコスト効率を特徴とした新しい高可用性災害復旧ソリューションですデータ センター内およびデータ センター間でデータとハードウェアの冗長性を実現しアプリケーションのフェールオーバー時間を短縮することでミッション クリティカル アプリケーションの可用性を高めますAlwaysOn は構成の柔軟性が高く既存のハードウェア投資を再利用できます

AlwaysOn ソリューションではデータベース レベルとインスタンス レベルの両方で可用性を構成するためにSQL Server 2012 の次の 2 つの主要な機能を利用できます

AlwaysOn 可用性グループSQL Server 2012 の新機能の 1 つですデータベース ミラーリング機能の大幅な強化によってアプリケーション データベースの可用性の確保に役立ちますログに基づくデータの移動によってデータ保護を実現し共有ディスクを使用せずにデータ損失をゼロにすることができます

複数のデータベースから成る論理グループの単位で自動および手動のフェールオーバーを実行できますまた最大で 4 つのセカンダリ レプリカのサポート高速なアプリケーション フェールオーバー自動ページ修復など多彩なオプションが用意されています

AlwaysOn フェールオーバー クラスター インスタンス (FCI)SQL Server フェールオーバー クラスタリング機能を拡張し複数のサブネットにわたるマルチサイト クラスタリングをサポートしますこれにより異なるデータ センター間での SQL Server インスタンスのフェールオーバーが可能になりますインスタンスのフェールオーバーがより高速となり予測可能となることでアプリケーションをさらにすばやく復旧させることができます

計画的なダウンタイムの大幅な削減どの組織でもアプリケーション ダウンタイムの主な理由はオペレーティング システムへの修正プログラムの適用ハードウェア メンテナンスなどのための計画的なダウンタイムですこうしたダウンタイムがIT 環境の停止の約 80 を占めています

SQL Server 2012 は修正プログラムの要件を減らしより多くのメンテナンス操作をオンラインで実行できるようにすることで計画的なダウンタイムの大幅な削減に役立ちます

Windows Server CoreSQL Server 2012 ではWindows Server Core への配置がサポートされていますこれはWindows Server 2008 および Windows Server 2008 R2 の最小限の合理化された配置オプションですこれによりオペレーティング システムの修正プログラムの要件を最小限に抑え約 60 削減することで計画的なダウンタイムを減らすことができます

オンライン操作LOB のインデックスを再作成したり既定値を使用して列を追加したりするオンライン操作のサポート強化によってデータベース メンテナンス時のダウンタイムが削減されます

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 6

ローリング アップグレードと修正プログラムAlwaysOn 機能はインスタンスのローリング アップグレードと修正プログラムの適用を容易にしますこれによりアプリケーションのダウンタイムが大幅に削減されます

Hyper-V 上の SQL ServerHyper-V 環境でホストされている SQL Server インスタンスではライブ マイグレーションの利点を活用することでホスト間の仮想マシンの移行をダウンタイムなしで実行できます管理者はアプリケーションに影響を与えずにホスト上でメンテナンス操作を実行できます

アイドル状態のハードウェアをなくしてコスト効率とパフォーマンスを向上典型的な高可用性ソリューションでは高コストで冗長なパッシブ サーバーが配置されますAlwaysOn 可用性グループを使用するとパッシブまたはアイドルな状態のセカンダリ データベース レプリカを読み取り専用のワークロード (SQL Server Reporting Services のレポート クエリバックアップ操作など) に活用できますプライマリとセカンダリの両方のデータベース レプリカを同時に使用できるためサーバー ハードウェア間のリソースのバランスが良くなりすべてのワークロードのパフォーマンスが向上します

簡単な配置と管理構成ウィザードWindows PowerShell コマンド ライン インターフェイスのサポートダッシュボード動的管理ビュー (DMV)ポリシー ベースの管理System Center 統合などの機能によって可用性グループの配置と管理が簡単になります

RPO と RTO の機能比較目標復旧時点 (RPO) と目標復旧時間 (RTO) のビジネス目標は高可用性災害復旧ソリューションのために使用する SQL Server テクノロジを選択する際に重要な判断材料となります次の表はさまざまなソリューションで実現される結果を大まかに比較したものです

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 7

高可用性と災害復旧のSQL Server ソリューション

データ損失の可能性 (RPO)

可能な復旧時間 (RTO)

自動フェールオーバー

読み取り可能な

セカンダリ(1)

AlwaysOn 可用性グループ - 同期コミット ゼロ 数秒 (4) 0 - 2

AlwaysOn 可用性グループ - 非同期コミット 数秒 数分 times 0 - 4

AlwaysOn フェールオーバー クラスター インスタンス

該当せず(5) 数秒~ 数分

該当せず

データベース ミラーリング(2) - 高い安全性 (同期 + 監視)

ゼロ 数秒 該当せず

データベース ミラーリング(2) - 高パフォーマンス (非同期)

数秒(6) 数分(6) times 該当せず

ログ配布 数分(6) 数分~ 数時間(6)

times 復元中はなし

バックアップコピー復元(3) 数時間(6) 数時間~ 数日(6)

times 復元中はなし

(1) AlwaysOn 可用性グループで使用できるセカンダリ レプリカは種類に関係なく最大 4 つです(2) この機能は将来のバージョンの Microsoft SQL Server では削除される予定です代わりに AlwaysOn 可用性グループを使用

してください(3) バックアップコピー復元は障害復旧には適していますが高可用性には適していません(4) 可用性グループの自動フェールオーバーはフェールオーバー クラスター インスタンスとの間ではサポートされていま

せん(5) FCI 自体にはデータ保護機能はありませんデータ損失はストレージ システムの実装に依存します(6) ワークロードデータ量およびフェールオーバーの手順に大きく依存します

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 8

SQL Server AlwaysOn の保護レイヤーSQL Server AlwaysOn ソリューションではインフラストラクチャとアプリケーション コンポーネントのいくつかの論理レイヤーおよび物理レイヤーにまたがってフォールト トレランスと災害復旧を実現できます従来はさまざまな関係者と役割ごとに業務と責任を振り分けそれぞれが主に自分のソリューションのレイヤー部分だけに関心を持つことが一般的でした

このセクションではこれらのレイヤーのそれぞれについて詳細に説明しデザインに関する議論や実装についての意思決定に役立つ論点やガイダンスを提示します

SQL Server AlwaysOn ソリューションをうまく利用するには以下のレイヤーについて理解しそれぞれを協調させる必要があります

インフラストラクチャ レベルサーバー レベルのフォールト トレランスとノード内のネットワーク通信が含まれますWindows Server フェールオーバー クラスタリング (WSFC) 機能を使用して稼働状態の監視とフェールオーバーの調整を行います

SQL Server インスタンス レベルSQL Server AlwaysOn フェールオーバー クラスター インスタンス (FCI) はWSFC クラスター内の複数のサーバー ノードにまたがってインストールされる SQL Server インスタンスであり各サーバー ノードへのフェールオーバーが可能ですFCI をホストするノードは堅牢な対称型共有ストレージ (SAN または SMB) に接続されます

データベース レベル可用性グループは共にフェールオーバーされるユーザー データベースのセットです可用性グループは1 つのプライマリ レプリカと最大 4 つのセカンダリ レプリカで構成されます各レプリカはWSFC クラスターの別々のノードにある SQL Server インスタンス (FCI または非 FCI) によってホストされます

クライアント接続データベース クライアント アプリケーションは指定した SQL Server インスタンス ネットワーク名に直接接続できますまたは可用性グループ リスナーにバインドされている仮想ネットワーク名 (VNN) に接続することもできますVNN はWSFC クラスターおよび可用性グループのトポロジを抽象化するものであり接続要求を適切な SQL Server インスタンスとデータベース レプリカに論理的にリダイレクトします

代表的な AlwaysOn ソリューションの論理トポロジは次の図のようになります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 9

インフラストラクチャの可用性AlwaysOn 可用性グループと AlwaysOn フェールオーバー クラスター インスタンスのどちらもWindows Server オペレーティング システムと WSFC をプラットフォーム テクノロジとして利用します今まで以上にMicrosoft SQL Server データベース管理者はこれらのテクノロジについて十分に理解することが必要です

Windows オペレーティング システムSQL Server は基礎的なインフラストラクチャとネットワークストレージセキュリティ更新プログラムおよび監視のサービスを Windows プラットフォームに依存しています

SQL Server 2012 の各エディションはWindows Server 2008 R2 オペレーティング システムの対応するエディション (Windows Server 2008 R2 Standard オペレーティング システムWindows Server 2008 R2 Enterprise オペレーティング システムWindows Server 2008 R2 Datacenter オペレーティング システムなど) の機能や能力をさらに進歩させて構築されています

詳細については「SQL Server 2012 のインストールに必要なハードウェアおよびソフトウェ ア」(httpmsdnmicrosoftcomja-jplibraryms143506(SQL110)aspx) を参照してください

Windows Server Core インストール オプションSQL Server 2012 では高可用性のための主要な機能の 1 つとしてWindows Server 2008 以降で Server Core インストール オプションによる配置をサポートしていますServer Core インストール オプションでは制限された機能と非常に限定的な GUI アプリケーション サポートで特定のサーバー ロールを実行するための最低限の環境が提供されます既定では必要なサービスとコマンド プロンプト環境のみが有効です

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 10

この操作モードではオペレーティング システムへの攻撃の危険性とシステム オーバーヘッドが低下し継続的なメンテナンスサービス修正プログラムなどの要件が大幅に削減されます

SQL Server 2012 を Windows Server Core に配置する場合の主な注意点はSQL Server およびオペレーティング システムのすべての配置構成管理およびメンテナンスをWindows PowerShell などのスクリプト環境やコマンド ラインまたはリモート ツールを使用して行う必要があることです

プライベート クラウド用の SQL Server の最適化高可用性と災害復旧はプライベート クラウド環境ではさらに重要になってきていますプライベート クラウドに SQL Server を配置すればコンピューターネットワークおよびストレージのリソースが効率的に使用され物理的な場所や資本と運営費用の両方の削減に役立ちます配置の統合リソースの効率的なスケーリングオンデマンドでのリソースの配置が容易になり制御の自由度が失われることもありません

SQL Server ではHyper-V のホストとゲストの両方のシステムに対して Windows Server フェールオーバー クラスタリングをサポートするほかライブ マイグレーションもサポートしていますこれは意識されるほどのダウンタイムを生じることなくホスト間で仮想マシンを移動できる機能ですライブ マイグレーションはゲスト クラスタリングとも協調して動作します

詳細については「プライベート クラウド コンピューティング - プライベート クラウド用の SQL Server の最適化 」(httpwwwmicrosoftcomSqlServerPrivateCloud) を参照してください

Windows Server フェールオーバー クラスタリングWindows Server フェールオーバー クラスタリング (WSFC) はMicrosoft SQL Server などのサーバー アプリケーションに対して高可用性と災害復旧をサポートするインフラストラクチャ機能を提供します

WSFC クラスター ノードまたはサービスに障害が発生するとそのノードでホストされていたサービスまたはリソースは自動的にまたは手動で他の可用性ノードに転送されますこのプロセスをフェールオーバーと呼びますAlwaysOn ソリューションではこのプロセスが FCI と可用性グループの両方に適用されます

WSFC クラスター内の各ノードは連携して次のような機能を提供します

分散メタデータと通知WSFC サービスとホストされるアプリケーション メタデータはクラスター内の各ノードで維持されますこのメタデータにはホストされるアプリケーションの設定に加えWSFC の構成と状態が含まれます1 つのノードでのメタデータまたは状態の変更はクラスター内の他のノードに自動的に反映されます

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 11

リソース管理クラスター内の各ノードは直接アタッチされたストレージ (DAS)ネットワーク インターフェイス共有ディスク ストレージへのアクセスなど物理的リソースを提供する場合がありますSQL Server などホストされるアプリケーション自体もクラスター リソースとして登録されますまた他のリソースに対するスタートアップと正常性にかかわる依存関係を構成できます

正常性の監視ノード間の正常性およびプライマリ ノードの正常性はハートビート ネットワーク通信とリソースの監視を組み合わせることで検出されますクラスターの全体的な正常性状態はクラスター内のノードのクォーラムの投票によって決定されます

フェールオーバーの調整各リソースはプライマリ ノードでホストされるように構成されそれぞれ自動的にまたは手動で 1 つ以上のセカンダリ ノードに転送されます正常性ベースのフェールオーバー ポリシーによってノード間でのリソース所有権の自動転送が制御されますフェールオーバーが発生すると適切に対応できるように各ノードおよびホストされているアプリケーションに通知されます

詳細については「Windows Server | フェールオーバー クラスタリングとノード バランシン グ」(httpwwwmicrosoftcomwindowsserver2008enusfailover-clustering-mainaspx) を参照してください

注 データベース管理者が WSFC クラスターおよびクォーラム管理の内部動作を理解しておくことが非常に重要になりましたAlwaysOn の正常性の監視管理および障害復旧の手順はすべてが本質的に WSFC 構成と関連しています

WSFC ストレージ構成Windows Server フェールオーバー クラスタリングでは接続されているストレージ デバイスディスク ボリュームおよびファイル システムの管理をクラスター内の各ノードに依存していますWSFC はストレージ サブシステムが非常に堅牢であると想定しているためノードに接続されたストレージ デバイスが使用できない場合はクラスター ノードが障害状態であると見なします

書き込みベースの操作ではディスク ボリュームは SCSI-3 の永続的な予約を使用して一度に 1 つのクラスター ノードに論理的に接続されますノードで障害が発生した場合にはストレージ サブシステムの機能と構成に応じてディスク ボリュームの論理的所有権をクラスター内の別のノードに移すことができます

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 12

SQL Server AlwaysOn ソリューションでは次のような WSFC ストレージ構成の組み合わせを利用しその制限も受けます

直接接続とリモートストレージ デバイスはサーバーに物理的に直接接続されるかまたはネットワークやホスト バス アダプター (HBA) を介してリモートのストレージ デバイスを使用しますリモート ストレージのテクノロジにはiSCSI やファイバー チャネルなどのストレージ エリア ネットワーク (SAN) ベースのソリューションとサーバー メッセージ ブロック (SMB) というファイル共有ベースのソリューションがあります

対称と非対称ストレージ デバイスの論理ディスク ボリューム構成とファイル パスがクラスターの各ノードでまったく同じである場合それらのストレージ デバイスは対称的であると見なされます基になるディスク ボリュームの物理的な実装と容量は異なっていてもかまいません

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 13

専用と共有専用ストレージは使用するために予約されクラスター内の 1 つのノードに割り当てられます共有ストレージはクラスターの複数のノードからアクセスできます共有ストレージ デバイスが SCSI-3 プロトコルに準拠していればそれらの制御と所有権をノード間で移動させることができますWSFC ではファイル共有のためにクラスター共有ボリュームを同時に複数のノードでホスティングできますただしSQL Server は複数のノードからの共有ボリュームへの同時アクセスをサポートしていません

注 SQL Server FCI では対称共有ストレージを使用してインスタンスのすべてのノード所有者 (およびその候補) からアクセスできるようにする必要がありますただしAlwaysOn 可用性グループの導入に伴いそれぞれが独自に専用のローカルまたはリモート ストレージを持つ非 FCI の SQL Server インスタンスを WSFC クラスターに配置できるようになりました

WSFC リソースの正常性の検出とフェールオーバーWSFC クラスター ノード内の各リソースの状態と正常性は定期的にまたは要求に応じて報告されますクラスター リソースの障害を示す状況としてはたとえば電源障害ディスクまたはメモリのエラーネットワーク通信エラー構成エラー応答しないサービスなどがあります

ネットワークストレージサービスなどの WSFC クラスター リソースは互いに依存するように構成できますあるリソースの累積的な正常性は依存関係を持つリソースの正常性を連続的にたどってゆくことで決定されます

AlwaysOn 可用性グループでは可用性グループと可用性グループ リスナーがそれぞれ WSFC クラスター リソースとして登録されますAlwaysOn フェールオーバー クラスター インスタンスではSQL Server サービスおよび SQL Server エージェント サービスが WSFC クラスター リソースとして登録されどちらもインスタンスの仮想ネットワーク名リソースに依存します

WSFC クラスター リソースで設定された数のエラーまたは障害が一定期間内に発生した場合構成されたフェールオーバー ポリシーによってクラスター サービスは次のいずれかの操作を行います

現在のノードでのリソースの再起動 リソースをオフライン化 リソースとその依存関係を別のノードへ自動的にフェールオーバー

注 WSFC クラスター リソースの正常性の検出は個々のノードの正常性やクラスターの全体的な正常性には直接影響しません

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 14

WSFC のクラスター検証ウィザードクラスター検証ウィザードはWindows Server 2008 および Windows Server 2008 R2 のフェールオーバー クラスタリングに統合されている機能ですこれはSQL Server AlwaysOn ソリューションの配置前 にクリーンで正常な安定した WSFC 環境が存在していることをデータベース管理者が確認するために使用する主要なツールです

クラスター検証ウィザードではクラスターのノードとして使用するサーバーの集合または既存のクラスターを対象にして一連のテストを実行できますこのプロセスでは基になるハードウェアおよびソフトウェアが個別に直接テストされWSFC クラスターが特定の構成でどの程度良好にサポートされるかについての正確な評価が得られます

この検証プロセスでは各ノードに対して次のようなカテゴリの一連のテストとデータ収集が実施されます

一覧作成BIOS のバージョン環境レベルホスト バス アダプターRAMオペレーティング システムのバージョンデバイスサービスドライバーなどの情報です

ネットワークNIC のバインド順序ネットワーク通信IP 構成ファイアウォール構成などの情報ですすべての NIC でノード間の通信が検証されます

ストレージディスクドライブの容量アクセス待機時間ファイル システムなどの情報ですSCSI コマンドディスク フェールオーバー機能対称的または非対称的なストレージ構成が検証されます

システム構成Active Directory の構成ドライバーの登録メモリ ダンプの設定必要なオペレーティング システムの機能とサービス互換性のあるプロセッサ アーキテクチャおよびサービス パックと Windows Software Update のレベルが検証されます

これらの検証テストの結果を利用してクラスターの構成を微調整したり構成を追跡したりダウンタイムを引き起こすかもしれない潜在的なクラスター構成の問題を特定したりできますテスト結果のレポートは後で参照できるようにHTML ドキュメントとして保存できます

これらのテストはWSFC の構成に何か変更を加える前と加えた後に実行するほかSQL Server をインストールする前および災害復旧プロセスの一環として実行する必要がありますマイクロソフトで特定の WSFC クラスター構成がサポートされるためにはマイクロソフト カスタマー サポート サービス (CSS) にクラスター検証レポートを提出する必要があります

詳細については「フェールオーバー クラスター ステップ バイ ステップ ガイド フェール オーバー クラスター用ハードウェアを検証する」(httptechnetmicrosoftcomja-jplibrarycc732035(WS10)aspx) を参照してください

注 ハードウェアベースの地理的クラスタリング ストレージ ソリューションの場合やAlwaysOn 可用性グループの場合のようにクラスター構成に非対称ストレージがあるとクラスター検証ウィザードでストレージの検証手順を成功させるために多数の修正プログラムを適用しなければならないことがあります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 15

詳細については「AlwaysOn 可用性グループの前提条件制限事項および推奨事項 」(httpmsdnmicrosoftcomja-jplibraryff878487(SQL110)aspxSystemReqsForAOAG) を参照してください

WSFC クォーラム モードと投票の構成WSFC ではクォーラム ベースのアプローチを使用してクラスターの全体的な正常性を監視することでノード レベルのフォールト トレランスを最大限に高めますWSFC のクォーラム モードおよびノード投票構成の基本について理解することはAlwaysOn 高可用性災害復旧ソリューションの設計運用トラブルシューティングのために非常に重要です

クォーラムによるクラスター状態検出WSFC クラスター内の各ノードは定期的なハートビート通信に参加しノードの正常性状態を他のノードと共有します応答しないノードはエラー状態であると見なされます

クォーラム ノード セットとはWSFC クラスター内の投票ノードおよび監視サーバーのうち過半数を占めるノードの集合ですWSFC クラスターの全体的な正常性と状態は定期的なクォーラムの投票 によって決定されますクォーラムはクラスターが正常でありノード レベルのフォールト トレランスを提供できることを意味します

クォーラムに達していない状態はクラスターが正常でないことを示しますプライマリ ノードのフェールオーバー先として正常なセカンダリ ノードを使用できるようにするにはWSFC クラスターの全体的な正常性が維持されている必要があります投票数がクォーラムに達しなかった場合にはWSFC クラスター全体が予防策としてオフラインに設定されますその場合クラスターに登録されている SQL Server インスタンスがすべて停止します

注 クォーラム障害のために WSFC クラスターがオフラインに設定されるとオンラインに戻すために手動の操作が必要です詳細については後の「WSFC の強制クォーラムによる災害 復旧」のセクションを参照してください

クォーラム モードクォーラム モードはWSFC クラスター レベルで構成されクォーラム投票の方法を指定しますフェールオーバー クラスター マネージャー ユーティリティではクラスター内のノード数に基づいて推奨するクォーラム モードが提示されます

次のいずれかのクォーラム モードによって投票クォーラムの構成が決定されます

ノード マジョリティクラスターが正常であるためにはクラスター内の半分以上の投票ノードが肯定的に投票する必要があります

ノードおよびファイル共有マジョリティノード マジョリティ クォーラム モードに似ていますがリモート ファイル共有も投票監視サーバーとして構成され各ノードからそのリモート ファイル共有への接続も肯定的な投票としてカウントされますクラスターが正常であるためには投票の過半数が肯定的である必要があります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 16

推奨事項として監視ファイル共有はクラスター内のノードに存在せずクラスター内のすべてのノードから見える必要があります

ノードおよびディスク マジョリティノード マジョリティ クォーラム モードに似ていますが共有ディスク クラスター リソースも投票監視サーバーとして使用され各ノードからその共有ディスクへの接続も肯定的な投票としてカウントされますクラスターが正常であるためには投票の過半数が肯定的である必要があります

ディスクのみ共有ディスク クラスター リソースが監視サーバーとして使用され各ノードからその共有ディスクへの接続が肯定的な投票としてカウントされます

詳細については「フェールオーバー クラスター ステップ バイ ステップ ガイド フェール オーバー クラスターのクォーラムの構成」(httptechnetmicrosoftcomja-jplibrarycc770620(WS10)aspx) で説明されています

注 クラスターの各ノードが同じ共有ストレージ クォーラム監視ディスクを使用するように構成されていない限り通常投票ノード数が奇数の場合は ノード マジョリティ クォーラム モード投票ノード数が偶数の場合は ノードおよびファイル共有マジョリティ クォーラム モードを使用してください

投票ノードと非投票ノード既定ではWSFC クラスター内の各ノードがクラスター クォーラムのメンバーとなります各ノードファイル共有監視サーバーディスク監視サーバーがクラスターの全体的な正常性の決定においてそれぞれ 1 票ずつの投票権を持ちますクォーラムに関するここまでの説明ではクラスター状態について投票する WSFC クラスター ノードのセットを投票ノードとして注意深く限定してきました状況によってはすべてのノードに投票権を与えることが適切でない場合もあります

WSFC クラスターの各ノードはクォーラムを確立しようとし続けますクラスター内の個々のノードはクラスターが全体として正常であるか正常でないかを明確に決定することはできません特定の時点で各ノードからは他のノードの一部がオフラインフェールオーバー中またはネットワーク通信のエラーにより応答不能に見えますクォーラム投票の主な機能はWSFC クラスターの各ノードの見かけの状態が本当にそれらのノードの実際の状態であるかどうかを判断することです

ディスクのみ 以外のすべてのクォーラム モデルではクォーラム投票の有効性はクラスター内のすべての投票ノード間に信頼できる通信が確立されていることに依存しますすべてのノードが同じ物理サブネット上にある場合はクォーラムの投票を信頼できます

しかしクォーラム投票で他のサブネット上のノードが応答しないように見えても実際はオンラインで正常である場合はサブネット間のネットワーク通信のエラーが原因であることが考えられますクラスター トポロジクォーラム モードおよびフェールオーバー ポリシーの構成によってはネットワーク通信エラーによって投票ノードのセット (またはサブセット) が実質的に複数作成されてしまう可能性があります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 17

投票ノードの複数のサブセットがそれぞれ独自のクォーラムを構築できる状態はスプリット ブレイン と呼ばれますこの状態では各クォーラム上のノードが別々の動作をし相互に矛盾する可能性があります

注 スプリット ブレイン の状況が発生するのはシステム管理者が強制クォーラム動作を手動で実行するかまたは非常にまれですが強制的な手動フェールオーバーを実行することでクォーラム ノード セットが明示的に細分化された場合のみです詳細については後の「WSFC の強制クォーラムによる災害復旧 」のセクションを参照してください

クォーラム構成を単純化し稼働時間を長くする目的でノードの投票がクォーラムにカウントされないように各ノードの NodeWeight 設定 (値 0 または 1) を調整することができます

クォーラム投票に推奨される調整以下のガイドラインをこの順番に適用することでクラスターに対して推奨されるクォーラム投票の構成を判断できます

1 既定は投票権なしにします明確な理由がない限り各ノードには投票権を与えないと考えてください

2 すべてのプライマリ ノードに投票権を与えますAlwaysOn 可用性グループのプライマリ レプリカをホストする各ノードおよび AlwaysOn フェールオーバー クラスター インスタンスの優先所有者である各ノードは投票権を持つ必要があります

3 可能性のある自動フェールオーバーの所有者を含めます自動フェールオーバーの結果としてプライマリ レプリカまたは FCI をホストする可能性がある各ノードは投票を持つ必要があります

4 セカンダリ サイト ノードを除外します通常はセカンダリ災害復旧サイトに存在するノードには投票を提供しないでくださいプライマリ サイトに問題がない場合クラスターをオフラインにする判断にセカンダリ サイト内のノードが影響を与えることは避ける必要があります

5 投票数を奇数にします必要に応じて監視ファイル共有監視ノード (SQL Server インスタンスの有無は問いません)または監視ディスクをクラスターに追加してクォーラム モードを調整しクォーラムの投票結果が同数に分かれるのを防ぎます

6 フェールオーバー後の投票割り当てを再評価します正常なクォーラムをサポートしないクラスター構成にフェールオーバーすることは避けます

ノードの投票の調整の詳細については「クラスター クォーラムの NodeWeight の設定の構 成」(httpmsdnmicrosoftcomja-jplibraryhh270281(SQL110)aspx) を参照してください

ファイル共有監視サーバーの投票は調整できませんその投票を含めるか除外するかを決めるには別のクォーラム モードを選択する必要があります

注 SQL Server ではWSFC クラスター構成およびノード クォーラム投票に関する設定を管理するためにいくつかのシステム動的管理ビュー (DMV) が公開されています

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 18

詳細については「可用性グループの監視」(httpmsdnmicrosoftcomja-jplibraryff878305(SQL110)aspx) を参照してください

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 19

WSFC の強制クォーラムによる災害復旧通常クォーラム障害は災害発生時または WSFC クラスター内の複数のノード間で永続的な通信障害が生じた場合に発生しますクォーラム障害が発生するとクラスターがノード レベルのフォールト トレランスを確保できなくなるためその WSFC クラスター内の SQL Server インスタンス可用性グループおよびクラスター化されているサービスがすべてオフラインになりますクォーラム障害はWSFC クラスター内の正常な投票ノード数がクォーラム モデルを満たさなくなったことを意味しますノードによってまったく機能しなくなるものもあればWSFC サービスがシャットダウンしただけでクォーラムと通信できなくなったことを除けば正常なものもあります

WSFC クラスターをオンラインに戻すには既存の構成の少なくとも 1 つのノードでクォーラム障害の根本的な原因を解決する必要があります災害発生時には使用できる代替ハードウェアの再構成や識別が必要となる場合もあります現状のクラスター トポロジを反映するためにWSFC クラスターの残りのノードを再構成する場合もあります

WSFC クラスター ノードで強制クォーラムの手順を使用するとクラスターがオフラインになる原因となった安全管理機能を無効にすることができますこれによりクラスターでのクォーラム投票のチェックが実質的に中断されクラスター内の任意のノードで WSFC クラスター リソースと SQL Server をオンラインに戻すことができます

このような災害復旧プロセスの手順を次に示します

1) 障害の範囲を特定します応答しない可用性グループや SQL Server インスタンス災害後に使用できるオンラインのクラスター ノードをそれぞれ特定しWindows イベント ログと SQL Server システム ログを確認します必要に応じて後で分析できるように解析データやシステム ログを保存しておきます

2) 1 つのノードで強制クォーラムを使用して WSFC クラスターを起動します他の点では正常なノードで強制クォーラムの手順に従ってクラスターを手動で強制的にオンラインにしますこの場合データ損失の可能性を最小限に抑えるには可用性グループのプライマリ レプリカを最後にホストしていたノードを選択します

詳細については「クォーラムを使用せずに WSFC クラスターを強制的に起動する 」(httpmsdnmicrosoftcomja-jplibraryhh270275(v=SQL110)aspx) を参照してください

注 強制クォーラムの設定を使用するとWSFC クラスターの投票が過半数に達することで通常のクォーラム モードの動作に自動的に切り替わるまでクラスター全体のクォーラムのチェックがブロックされます

3) 他の点では正常な各ノードでWSFC サービスを 1 つずつ通常の方法で起動します他のノードでクラスター サービスを起動するときは強制クォーラム オプションを指定する必要はありません

各ノードの WSFC サービスがオンラインに戻ると他の正常なノードとの間でネゴシエーションが行われ新しいクラスター構成の状態が同期されますクラスターの最新の状態

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 20

を判断するときに競合状態の発生を避けるためこの手順は必ず一度に 1 つのノードで行うようにしてください

注 起動した各ノードが新たにオンラインにした他のノードと通信できることを確認しますそうしないと複数のクォーラム ノード セットが作成されて スプリット ブレイン の状況に陥るおそれがあります手順 1 の結果に問題がなければこの現象は発生しません

4) 新しいクォーラム モードとノードの投票の構成を適用します強制クォーラムの手順によってクラスターのすべてのノードを正常に再起動させクォーラムのエラーの根本原因を修正した場合クォーラム モードとノードの投票を元の構成から変更する必要はありません

それ以外の場合は新たに復元されたクラスター ノードと可用性レプリカのトポロジを評価し必要に応じてクォーラム モードと各ノードの投票割り当てを変更します未復旧のノード上ではWSFC クラスター サービスをオフラインにするかノードの投票をゼロに設定します

注 この時点でクラスター内のノードと SQL Server インスタンスが通常の動作に戻っているように見えることがありますがまだ正常なクォーラムには達していない可能性がありますフェールオーバー クラスター マネージャーやSQL Server Management Studio の AlwaysOn ダッシュボードまたは適切な DMV を使用して正常なクォーラムが復元されたことを確認してください

5) 必要に応じて可用性グループのデータベース レプリカを復旧します一部のデータベースはSQL Server の通常の起動処理の一環として自動的に復旧されオンラインに戻ることがありますそれ以外のデータベースの復旧には追加で手動の手順を実行する必要があります

可用性グループ レプリカのデータ損失の可能性や復旧にかかる時間を最小限に抑えるにはできればプライマリ レプリカ同期セカンダリ レプリカ非同期セカンダリ レプリカの順にオンラインに戻します

6) 障害が発生したコンポーネントを修復するか交換しクラスターを再検証しますこれで最初の災害およびクォーラム障害から復旧できたので障害が発生したノードを修復するか交換しWSFC と AlwaysOn の関連する構成を適切に調整する必要がありますこれには可用性グループ レプリカの削除クラスターからのノードの削除ノードへのソフトウェアの再インストールなどが含まれます

注 停止したすべての可用性レプリカを修復または削除する必要がありますSQL Server 2012 では最も古い可用性レプリカを最後に認識した時点以降トランザクション ログが切り捨てられません停止したレプリカを修復するか可用性グループから削除しないとトランザクション ログが大きくなり他のレプリカのトランザクション ログの領域が不足する可能性があります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 21

7) 必要に応じて手順 4 を繰り返しますこの目的は正常な動作を行うために適切なレベルのフォールト トレランスと高可用性を再確立することです

8) RPORTO 分析を実行しますSQL Server のシステム ログデータベースのタイムスタンプおよび Windows のイベント ログを分析して障害の根本的な原因を特定し実際の復旧ポイントと復旧時間を文書に記録します

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 22

SQL Server インスタンス レベルでの保護次に説明する AlwaysOn ソリューションの保護レイヤーはデータ プラットフォームそれ自体ですMicrosoft SQL Server 2012 とその Windows Server インフラストラクチャ コンポーネントとの統合によって次のような機能が提供されます

可用性の向上 ndash SQL Server インスタンスこれは SQL Server 2012 の新しいインスタンス レベルの機能でAlwaysOn フェールオーバー クラスター インスタンスとAlwaysOn 可用性グループをホストするスタンドアロン インスタンスの両方の可用性を強化します

以下の強化点によってフェールオーバーの管理およびトラブルシューティングが向上します

柔軟なフェールオーバー ポリシー信頼性の高いエラー検出に使用される新しいシステム ストアド プロシージャ sp_server_diagnostics の出力でSQL Server インスタンスに影響するエラーの重大度が FailureConditionLevel プロパティによって示されますWSFC のフェールオーバー ポリシーによってこの値が SQL Server インスタンスにどのように影響するかを制御できますある程度エラーを許容する設定からSQL Server の内部コンポーネント エラーを重点的に検出する設定までさまざまに構成できます

特定のレベルのエラーによってフェールオーバーを開始するように構成できますエラーのレベルにはサーバーの停止サーバーの応答停止重大なエラー中程度のエラーなんらかの条件付きエラーなどがありますFailureConditionLevel プロパティはFCI または可用性グループのフェールオーバー ポリシーのために使用できます

SQL Server 2012 よりも前のバージョンではフェールオーバーを制御できるようなエラー状態の区分がなくすべてのサービス レベルのエラーによってフェールオーバーが発生しました

詳細については「フェールオーバー クラスター インスタンスのフェールオーバー ポリシー」(httpmsdnmicrosoftcomja-jplibraryff878664(SQL110)aspx) を参照してください

強化されたインストルメンテーションとログAlwaysOn 専用のシステム構成ビューDMVパフォーマンス カウンターに加えて拡張されたイベント正常性セッションによってAlwaysOn 配置のトラブルシューティングチューニングおよび監視に必要な情報を取得して表示できますこれらの多くはSQL Server ポリシー管理の新しいファセットおよびポリシーを通じて公開されます

詳細については「AlwaysOn 可用性グループの動的管理ビューおよび関 数」(httpmsdnmicrosoftcomja-jplibraryff877943(SQL110)aspx) と「sysdm_os_cluster_nodes」(httpmsdnmicrosoftcomja-jplibraryms187341(SQL110)aspx) を参照してください

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 23

SMB ファイル共有のサポートWindows Server 2008 以降のスタンドアロン用またはフェールオーバー クラスター インスタンス用のリモート ファイル共有にデータベース ファイルを格納することができますこの場合FCI ごとに異なるドライブ文字を使用する必要がありませんこれはストレージを統合する場合やデータベース ファイルのストレージを仮想マシンのゲスト オペレーティング システム用物理サーバーでホストする場合などに便利なオプションです適切に構成すれば直接接続されたストレージとほぼ同等の IO パフォーマンスが得られます

詳細については「ファイル共有上の SQL データベース - シナリオを再検討すべきとき 」(httpblogsmsdncombsqlserverstorageenginearchive20111018sql-databases-on-file-shares-it-s-time-to-reconsider-the-scenarioaspx) を参照してください

注 WSFC クラスターではSMB ファイル共有リソースの依存関係を SQL Server リソース グループに追加することはできませんファイル共有の可用性を確保するには別の方法を用いる必要がありますファイル共有が使用できなくなった場合SQL Server は IO 例外をスローしオフラインになります

WSFC と DNS の相互運用性FCI または可用性グループ リスナーの仮想ネットワーク名 (VNN) はVNN の作成時または構成の変更時にのみDNS に登録されますすべての仮想 IP アドレスはオンライン状態かオフライン状態かに関係なく同じ仮想ネットワーク名で DNS に登録されますDNS の仮想ネットワーク名を解決するためのクライアント呼び出しは各種のラウンド ロビン シーケンスによってすべての登録済み IP アドレスを返します

AlwaysOn フェールオーバー クラスター インスタンスSQL Server の AlwaysOn フェールオーバー クラスター インスタンス (FCI) の主な目的は1 つのデータ センター内のローカル サーバーとストレージ ハードウェアでホストされている SQL Server インスタンスの可用性を高めることです

FCI はWindows Server フェールオーバー クラスタリング (WSFC) のクラスターに含まれる複数のノードにまたがってインストールされる1 つの論理的な SQL Server インスタンスですただし一度に 1 つのノードだけでアクティブになることができますクライアント アプリケーションはアクティブなクラスター ノードが所有している仮想ネットワーク名および仮想 IP アドレスに接続します

FCI をインストールした各ノードは同一の構成を持ち同一の SQL Server バイナリを含んでいますWSFC クラスター サービスはアクティブなインスタンス上にある Windows レジストリのエントリからFCI をインストールした各ノードに関連のある変更をレプリケートしますFCI がインストールされている各ノードはインスタンスとそのリソースの所有者の候補として指定されフェールオーバーの優先順位に従って所有者となります

共有対称ストレージ ボリュームに格納されているデータベース ファイルはリソースとして WSFC クラスターに登録され現在 FCI をホストしているノードによって所有されます

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 24

詳細については「AlwaysOn フェールオーバー クラスター インスタン ス」(httpmsdnmicrosoftcomja-jplibraryms189134(SQL110)aspx) を参照してください

FCI のフェールオーバー プロセス依存しているクラスター リソースで障害が発生した場合AlwaysOn フェールオーバー クラスター インスタンスはWSFC クラスター サービスと連携してフェールオーバーを行いますそのプロセスの概要を以下に示します

1) 再起動が指示されますWSFC の定期的なチェックまたは SQL Server のフェールオーバー ポリシー構成によってエラー状態が示されます既定では他のノードへのフェールオーバーを開始する前にサービスの再起動が試みられます再起動の試みがタイムアウトするようであればリソースの障害が発生しています

2) フェールオーバーが指示されますフェールオーバー ポリシー チェックによってノードのフェールオーバーが必要であることが示されます

3) SQL Server サービスが停止されますSQL Server サービスが現在実行されている場合はその正常なシャットダウンが試みられます

4) WSFC クラスター リソースが転送されますSQL Server クラスター リソース グループの所有権とそれが依存するネットワークおよび共有ストレージ リソースがFCI で次に優先されるノード所有者に転送されます

5) 新しいノードで SQL Server が起動されますSQL Server インスタンスは通常のスタートアップ プロシージャで起動されます所定のタイムアウト時間内にオンラインに戻らない場合クラスター サービスはこの新しいノード上のリソースをエラー状態と見なします

6) 新しいノードでユーザー データベースが復旧されます各ユーザー データベースは復旧モードに設定されます復旧モードではトランザクション ログの再実行操作が適用されコミットされていなかったトランザクションがロールバックされます

FCI の強化以前のバージョンの SQL Server でも FCI のインストール オプションは用意されていましたがSQL Server 2012 では次のような機能強化によって可用性の堅牢性と利便性が向上しました

マルチサブネット クラスタリングSQL Server 2012 では複数のサブネットに存在する WSFC クラスター ノードがサポートされていますWSFC クラスター ノードに存在する SQL Server インスタンスはいずれかのネットワーク インターフェイスが使用可能であれば起動できますこれはクラスター リソースの OR 依存関係と呼ばれます

以前のバージョンの SQL Server の場合SQL Server サービスを起動またはフェールオーバーするにはすべてのネットワーク インターフェイスが機能しそれらがすべて同じサブネットまたは VLAN に存在している必要がありました

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 25

注 マルチサブネット クラスタリングではクラスター ノード間のストレージ レベルのレプリケーションが自動的には有効になりませんマルチサブネットの FCI ソリューションでクラスター ノード間でデータのレプリケーションを行いストレージ フェールオーバーを調整するためにはサード パーティから提供される SAN ベースのソリューションを利用する必要があります

詳細については「SQL Server 2012 AlwaysOn マルチサイト フェールオーバー クラスター インスタンス」(httpsqlcatcomsqlcatbwhitepapersarchive20111222sql-server-2012-alwayson_3a00_-multisite-failover-cluster-instanceaspx) を参照してください

信頼性の高いエラー検出WSFC クラスター サービスではノードの各 SQL Server 2012 FCI に対してそれぞれ専用の管理者接続が維持されますこの接続では特殊なシステム ストアド プロシージャ sp_server_diagnostics を定期的に呼び出すことでシステムの正常性診断に役立つ豊富な情報を含む配列が返されます

SQL Server 2012 よりも前のバージョンではFCI の主な正常性検出メカニズムは単純な一方向のポーリング プロセスとして実装されていましたこのプロセスではWSFC クラスター サービスがインスタンスへの新しい SQL クライアント接続を定期的に作成しサーバー名を照会した後で接続を切断していました何かの理由で接続が失敗するかクエリがタイムアウトした場合フェールオーバーが開始されますが診断情報はほとんど提供されません

詳細については「sql_server_diagnostics」(httpmsdnmicrosoftcomja-jplibraryff878233(SQL110)aspx) を参照してください

現在ではFCI ストレージが次のように幅広い状況でサポートされています

向上したマウント ポイント サポートSQL Server のセットアップ時にクラスター ディスクのマウント ポイント設定が認識されるようになりました指定されたクラスター ディスクとそれにマウントされているすべてのディスクがセットアップ時に SQL Server リソースの依存関係に自動的に追加されます

ローカル ストレージの tempdbFCI ではローカルの非共有ストレージ (ローカル ソリッド ステート ドライブなど) に tempdb を配置できるようになったため共有 SAN での IO 動作の負荷を大幅に軽減できる可能性があります

SQL Server 2012 よりも前のバージョンの FCI ではtempdb が他のシステム データベースと共にフェールオーバーされる対称共有ストレージ ボリュームに配置される必要がありました

注 tempdb の場所はmaster データベースに格納されますこのデータベースはフェールオーバー時にノード間で移動されますtempdb は所有者候補となっているすべてのノード上で有効で対称的なファイル パス (ドライブフォルダーおよび権限) に配置されている必要がありますそうなっていない場合SQL Server サービスが一部のノードでは起動されません

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 26

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 27

データベースの可用性インフラストラクチャ レベルおよび SQL Server インスタンス レベルのコンポーネントで提供されている高可用性機能は互いに連係してホストされているデータベースを暗黙的に保護しますAlwaysOn ソリューションではデータベースのデータおよびデータ層アプリケーションを明示的に保護するために一連のオプションが追加で用意されています

AlwaysOn 可用性グループ可用性グループは1 つの SQL Server インスタンスから同じ WSFC クラスター内の別のインスタンスへと同時にフェールオーバーされるユーザー データベースのセットですクライアント アプリケーションは可用性グループ リスナーと呼ばれる WSFC 仮想ネットワーク名を通じて可用性グループのデータベースに接続できますこうすることで基になる SQL Server インスタンスが抽象化されます

AlwaysOn 可用性グループは正常性監視フェールオーバーの調整およびサーバー接続を Windows Server フェールオーバー クラスタリングに依存していますWSFC クラスター ノード上の SQL Server インスタンスでAlwaysOn サポートを有効にする必要がありますただしそのインスタンスが FCI である必要はなく対称共有ストレージを使用する必要もありません

詳細については「AlwaysOn 可用性グループの概要 」(httpmsdnmicrosoftcomja-jplibraryff877884(SQL110)aspx) を参照してください

可用性レプリカとロール可用性グループの各 SQL Server インスタンスは可用性グループのユーザー データベースのコピーを保持している可用性レプリカをホストしますSQL Server インスタンスは特定の可用性グループの可用性レプリカを 1 つだけホストすることができますが複数の可用性グループを同じインスタンスに置くことは可能ですSQL Server インスタンスは専用の (非共有) ストレージ ボリュームを持つ必要があります

可用性レプリカの 1 つがプライマリ レプリカの役割を果たしますこれは可用性グループ データベースのマスター コピーとして指定されていて読み取り書き込み操作を行うことができます

可用性グループには読み取り専用の可用性レプリカを最大 4 つまで追加で含めることができますこれらは個別にセカンダリ レプリカの役割を果たします

可用性レプリカの同期可用性グループの各データベースの内容はSQL Server によるログ ベースのデータ移動メカニズムを通じてプライマリ レプリカから各セカンダリ レプリカに同期されますそのため可用性グループのすべてのデータベースは完全復旧モデルに設定する必要があります

セカンダリ レプリカはプライマリ レプリカのデータベースとトランザクション ログの完全なバックアップと復元によって初期化されますプライマリ レプリカで新しいトランザクションがコミットされるとトランザクション ログの対応する部分がキャッシュされ

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 28

キューに入れられてネットワーク経由でセカンダリ レプリカ ノード上のデータベース ミラーリング エンドポイントに送信されます

この方法によりプライマリ レプリカのトランザクション ログの新しいエントリが各セカンダリ レプリカのトランザクション ログに追加されます各セカンダリ レプリカはログ シーケンス番号 (LSN) をプライマリ レプリカに定期的に送り返しトランザクション ログのどのくらいの量がリモート ディスクに書き込まれフラッシュされたかを示します

注 各可用性レプリカはそれぞれ独自に独立したトランザクション ログ再実行スレッドのセットを保持していますこれは可用性レプリカの同期プロセスには含まれませんセカンダリ レプリカ上ではログ再実行プロセスによって遅延時間が生じるためユーザーはそれをデータの待機時間として感じる場合があります

プライマリまたはセカンダリの役割を果たす他に各可用性レプリカには可用性モードもありますこのモードは次のようにCOMMIT TRAN ステートメントの実行時にトランザクション ログの書き込みの連係を制御します

同期コミット モードすべての同期コミット セカンダリ レプリカからそれぞれ独自のトランザクション ログの書き込み完了 (LSN 以降) が通知されるまでプライマリ レプリカはそのトランザクションをコミットしません可用性グループでは最大で 2 つの同期コミット セカンダリ レプリカを使用できます

同期コミット モードではプライマリ レプリカ データベースでトランザクションの遅延が生じますがコミットされたトランザクションに対するセカンダリ レプリカでのデータ損失を確実に防ぐことができます

非同期コミット モードプライマリ レプリカはローカル トランザクション ログの書き込み後にトランザクションをコミットしますが非同期コミット セカンダリ レプリカからトランザクション ログの書き込み完了通知を待つことはしません可用性グループでは最大で 4 つの非同期コミット セカンダリ レプリカを使用できますただし両方の種類を合わせて使用できるセカンダリ レプリカの合計は最大 4 つです

非同期コミット モードではプライマリ レプリカ データベースで生じるトランザクションの遅延が最小になりますがセカンダリ レプリカでのトランザクション ログが遅れる場合があるため一部のデータが失われる可能性があります

詳細については「可用性モード」(httpmsdnmicrosoftcomja-jplibraryff877931(SQL110)aspx) を参照してください

可用性レプリカ間のデータ フローの全体的な正常性は各レプリカの同期状態によって示されますセカンダリ レプリカにフェールオーバーしたときに同期状態が 同期済み または 同期中 になっていなければほとんどの場合はデータ損失が発生することになります

各セカンダリ レプリカの同期ストリームにはセッション タイムアウト プロパティがあります同期コミット モードに構成されているセカンダリ レプリカがセッション タイムアウトでエラーになると内部的には一時的に非同期としてマークされますこれはセカンダ

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 29

リ レプリカのエラーがプライマリ レプリカでのトランザクション ログの書き込みに影響しないようにするためですそのセカンダリ レプリカが正常に戻ってプライマリ レプリカの状態に追いつくと自動的に通常の同期コミット モード動作に戻されます

可用性グループのフェールオーバー可用性グループとそれに対応する仮想ネットワーク名はWSFC クラスターのリソースとして登録されます可用性グループはプライマリ レプリカの正常性とフェールオーバー ポリシーに基づいて可用性レプリカのレベルでフェールオーバーを行います

可用性グループのフェールオーバー ポリシーではsp_server_diagnostics システム ストアド プロシージャと FailureConditionLevel プロパティを使用して可用性グループに対して許容されるエラーの重大度のレベルを示しますこの同じメカニズムがFCI のフェールオーバー ポリシーにも使用されます

フェールオーバーが発生した場合は共有物理リソースの所有権を他のノードに移す代わりにWSFC を利用して他の SQL Server インスタンス上でセカンダリ レプリカを再構成しプライマリ レプリカの役割を引き継がせますその後可用性グループの仮想ネットワーク名リソースがそのインスタンスに転送されます関連する可用性レプリカへのすべてのクライアント接続がリセットされます

レプリカの現在の正常性同期状態および可用性モードに基づいて各レプリカには複合的な フェールオーバーの準備 状態が定義されますこの状態の値はデータ損失の可能性を示していますレプリカの正常性情報はAlwaysOn ダッシュボードまたは sysdm_hadr_availability_replica_states システム ビューで確認できます

各可用性レプリカにはフェールオーバー モードも構成されていますこのモードはフェールオーバーが指示された場合にレプリカの動作を制御します

自動フェールオーバー (データ損失なし)セカンダリ レプリカのトランザクション ログが既に書き込まれ同期されているのですべての AlwaysOn 構成の中でフェールオーバー時間が最短になりますプライマリ レプリカ上の開かれているトランザクションはロールバックされプライマリ レプリカの役割はユーザーによる操作なしでセカンダリ レプリカに転送されます

この場合プライマリ レプリカとセカンダリ レプリカの両方を自動フェールオーバー モードに設定し両方の可用性モードを同期コミットに設定する必要がありますレプリカ間の同期状態は同期済み である必要がありますまたWSFC クラスターは正常なクォーラム状態になっている必要があります

自動フェールオーバーはプライマリ レプリカまたはセカンダリ レプリカが FCI 上にある場合はサポートされませんこれは可用性グループと FCI のフェールオーバー間で競合状態が発生することを防ぐためです

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 30

手動フェールオーバーこの場合管理者はプライマリ レプリカの状態を評価してセカンダリ レプリカにフェールオーバーするかどうかを慎重に判断できます

可用性モードと同期状態に応じて次のような選択が可能です

o 計画的な手動フェールオーバー (データ損失なし)この種類のフェールオーバーを実行できるのはプライマリ レプリカとセカンダリ レプリカの両方が正常で同期済み 状態である場合だけですこれは機能的には自動フェールオーバーと同じです

o 強制手動フェールオーバー (データ損失の可能性を許容)これは対象のセカンダリ レプリカの可用性モードが非同期コミットである場合またはプライマリ レプリカに同期されない場合に使用できる唯一のフェールオーバー形式です

警告 このフェールオーバー オプションは災害復旧の状況に限って使用する必要がありますプライマリ レプリカが正常で使用可能である場合は関連する各レプリカの可用性モードを同期コミットに変更し計画的な手動フェールオーバーを実行してください

詳細については「可用性グループの強制手動フェールオーバーの実行」(httpmsdnmicrosoftcomja-jplibraryff877957(SQL110)aspx) を参照してください

フェールオーバー対象のプライマリ レプリカまたはセカンダリ レプリカが次の条件のいずれかに該当する場合は手動フェールオーバーを実行する必要があります

フェールオーバー モードが手動に設定されている 可用性モードが非同期コミットに設定されている レプリカが FCI 上にある

詳細については「フェールオーバーとフェールオーバー モード (AlwaysOn 可用性グルー プ ) 」(httpmsdnmicrosoftcomja-jplibraryhh213151(SQL110)aspx) を参照してください

注 フェールオーバー後新しいプライマリ レプリカが同期コミット モードに設定されていない場合セカンダリ レプリカの同期状態は 中断状態 になりますプライマリ レプリカが同期コミット モードに設定されるまでデータはセカンダリ レプリカに移動されません

可用性グループ リスナー可用性グループ リスナーはクライアントが可用性グループ内のデータベースにアクセスするために使用できる WSFC 仮想ネットワーク名 (VNN) ですVNN クラスター リソースはプライマリ レプリカをホストしている SQL Server インスタンスによって所有されます

仮想ネットワーク名は可用性グループ リスナーの作成時または構成の変更時にのみDNS に登録されます可用性グループ リスナーで定義されているすべての仮想 IP アドレスは同じ仮想ネットワーク名で DNS に登録されます

可用性グループ リスナーを使用する場合クライアント接続要求ではサーバーとして仮想ネットワーク名を指定してから可用性グループ内のデータベース名を指定する必要があり

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 31

ます既定ではこれによってプライマリ レプリカをホストしている SQL Server インスタンスに接続されます

実行時にはクライアントはローカルの DNS リゾルバーを使用して仮想ネットワーク名にマップされている IP アドレスと TCP ポートの一覧を取得しますクライアントは各 IP アドレスへの接続を成功するか接続タイムアウトに達するまで試し続けますMultiSubnetFailover パラメーターが true に設定されているとクライアントは複数の接続を同時に試行するのでクライアント フェールオーバーが大幅に速くなります

フェールオーバーが行われるとサーバー上でクライアント接続がリセットされ可用性グループ リスナーの所有権はプライマリ レプリカの役割と共に新しい SQL Server インスタンスに移動しVNN エンドポイントは新しいインスタンスの仮想 IP アドレスと TCP ポートにバインドされます

詳細については「可用性グループ リスナークライアント接続およびアプリケーションのフェールオーバー」(httpmsdnmicrosoftcomja-jplibraryhh213417(SQL110)aspx) を参照してください

アプリケーションの目的によるフィルター処理可用性グループ リスナーを使用して接続している場合アプリケーションは接続の目的がデータの読み取りと書き込みの両方なのか読み取り専用操作を実行するだけなのかを指定できます指定しない場合クライアントのアプリケーションの目的は既定で読み取りと書き込みになります

各可用性レプリカのプライマリ ロールとセカンダリ ロールについてはクライアントのアプリケーションの目的に対する接続レベルのフィルターとして接続アクセス プロパティも指定できます既定ではアプリケーションの目的と接続アクセスとの組み合わせが無効であると接続が拒否されますSQL Server は次のルールを使用してクライアントの接続要求を振り分ける必要があります

可用性レプリカがプライマリ ロールであり接続アクセスが次のいずれかである場合

すべてのアプリケーションの目的を許可するアプリケーションの目的でクライアント接続をフィルター処理しません

明示的な読み取り書き込みの目的だけを許可するクライアントが読み取り専用を指定している場合接続を拒否します

可用性レプリカがセカンダリ ロールであり接続アクセスが次のいずれかである場合

接続を許可しないすべての接続を拒否しますレプリカは災害復旧だけに使用されます

すべてのアプリケーションの目的を許可するアプリケーションの目的でクライアント接続をフィルター処理しません

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 32

読み取り専用の目的を許可するクライアントが読み取り専用を指定していない場合接続を拒否します

詳細については「可用性レプリカでの読み取り専用アクセスの構成」(httpmsdnmicrosoftcomja-jplibraryhh213002(SQL110)aspx) を参照してください

アプリケーションの目的の読み取り専用ルーティングAlwaysOn 可用性グループの特に優れた点はスタンバイ ハードウェア インフラストラクチャを災害復旧以外の目的に利用できることです1 つ以上のセカンダリ レプリカを読み取り専用でアクセスできるように構成するとプライマリ レプリカからかなりの量のワークロードを軽減できます

読み取り専用セカンダリ レプリカに回すように簡単に調整できるワークロードはレポートデータベース バックアップデータベース整合性チェックインデックスの断片化の分析データ パイプライン抽出運用サポート操作サポートアドホック クエリなどです

各可用性レプリカではSQL Server インスタンスのエンドポイントについて順次的な読み取り専用ルーティング リストを構成することもできますこのリストはレプリカがプライマリ ロールであるときに適用されますこのリストが存在する場合アプリケーションの目的が読み取り専用と指定されているクライアント接続要求はそのリスト内に記載されていて前述のアプリケーションの目的フィルターに適合する最初のセカンダリ レプリカにリダイレクトされます

注 読み取り専用ルーティングによるリダイレクトはプライマリ レプリカにバインドされている可用性グループ リスナーによって実行されますプライマリ レプリカがオフラインの場合クライアントのリダイレクトは機能しません

詳細については「可用性グループの読み取り専用ルーティングの構成 (SQL Server) 」(httpmsdnmicrosoftcomja-jplibraryhh710054(SQL110)aspx) を参照してください

可用性の向上 ndash データベースSQL Server 2012 ではデータベースの構成と機能に関してさまざまな点が強化されています

以下の機能は復旧時間の短縮に役立ちます

予測可能な復旧時間データベースごとにターゲット復旧時間の長さを設定することでバックグラウンドで実行される CHECKPOINT コマンドのスケジュールを制御できますこのコマンドは間接的なチェックポイントとして再起動時またはフェールオーバー時にトランザクション ログの復旧に必要となる時間の推定値に基づいて定期的に実行されますそれによってチェックポイントごとに IO 操作がほぼ均等に配分され復旧時間 (RTO) の予測可能性が高まります

SQL Server 2012 よりも前のバージョンではバックグラウンドの CHECKPOINT コマンドがトランザクションの量や負荷とは無関係に一定間隔で実行されていたので復旧時間を予測することはできませんでした

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 33

詳細については「データベース チェックポイント」(httpmsdnmicrosoftcomja-jplibraryms189573(SQL110)aspx) を参照してください

以下の向上点は計画的なダウンタイムが必要になる一般的な状況を減らすのに役立ちます

LOB 列のオンライン インデックス操作varbinary(max)varchar(max)nvarchar(max)または XML データ型の列が含まれているインデックスをオンラインで再構築または再構成できるようになりました

新しい NOT NULL 列のオンライン スキーマ修正既定値を使用して新しい NOT NULL 列を SQL Server 2012 データベース テーブルに追加する場合システム メタデータの更新にはスキーマ ロックだけが必要ですALTER TABLE ステートメントですべての行にデータを設定する必要はありません

いずれかの行で実際に変更またはインデックスの再作成が行われない限り列の既定値は物理的に格納されませんクエリでは列に実際の値が存在しない場合メタデータから既定値を返します

ストレージのサポート強化の例として次のようなものがあります

ページの自動修復ある種のストレージ サブシステム エラーが発生するとデータ ページが破損し読み取り不可能になる場合がありますAlwaysOn 可用性グループではそのような種類のエラーを検出し自動的に復旧できます復旧のために影響を受けたデータ ページの最新のコピーが別の可用性レプリカから非同期で取得され適用されます

以前のバージョンでもデータベース ミラーリングに同様の機能がありましたが新しい機能では複数のレプリカをサポートできるようになっています

詳細については「ページの自動修復」(httpmsdnmicrosoftcomja-jplibrarybb677167(SQL110)aspx) を参照してください

クライアント接続の推奨事項クライアント アプリケーションが Microsoft SQL Server 2012 AlwaysOn テクノロジの利点を十分に活用できるようにするには次のガイドラインに従います

AlwaysOn 対応のクライアント ライブラリ表形式のデータ ストリーム (TDS) プロトコル Version 74 以降をサポートしているクライアント ライブラリを使用しますこれによってAlwaysOn の機能に対応した適切な機能がクライアント側でも提供されますクライアント ライブラリの例としてはData Provider for SQL Server in NET Framework 402SQL Native Client 110 などがあります

接続プロバイダー プロパティ MultiSubnetFailover = True接続文字列にこのキーワードを使用することでクライアント ライブラリでは(複数のサブネットに IP アドレスを持つ) 可用性グループ リスナーまたは FCI に登録されているすべての IP アドレスに同時に接

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 34

続できるようになります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 35

接続プロバイダー プロパティ ApplicationIntent = ReadOnly必要に応じてプライマリ レプリカの読み取り専用ワークロードをセカンダリ レプリカに移管することができます

レガシ クライアントの接続タイムアウトレガシ クライアントのデータベース ライブラリには並列で接続を試行する機能が実装されていないため複数の IP アドレスがある場合にはTCP タイムアウトに達するか正常に接続できるまで1 つずつ順番に接続を試行します

複数の IP アドレスが存在する場合はタイムアウトと再試行が逐次的に繰り返される可能性に備えてレガシ クライアントの接続タイムアウトを調整する必要があります値は少なくとも 15 秒 + 21 秒 times セカンダリ レプリカ数にします

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 36

結論このホワイト ペーパーではSQL Server 2012 の AlwaysOn による高可用性災害復旧ソリューションを使用し予定されたダウンタイムや予定外のダウンタイムを短縮したりアプリケーションの可用性を最大限に高めたりデータを保護したりする方法について基本的なコンテキストを確立しました

高可用性データベース環境の計画管理測定に関連したビジネス上の目的と課題は多くの場合目標復旧時点 (RPO) と目標復旧時間 (RTO) という形で数量化して表すことができます

SQL Server 2012 AlwaysOn は組織が高可用性や災害復旧に関する一般的な状況に対処するための機能をRPO と RTO を適切に達成できることを念頭にインフラストラクチャ レベルデータ プラットフォーム レベルデータベース レベルのそれぞれで提供します

詳細情報

httpwwwmicrosoftcomja-jpsqlserver2012defaultaspx SQL Server Web サイト

httptechnetmicrosoftcomja-jpsqlserver SQL Server TechCenter

httpmsdnmicrosoftcomja-jpsqlserver SQL Server 開発者向け技術情報

このホワイト ペーパーはお役に立ちましたか フィードバックをお寄せください1 (役に立たなかった) ~ 5 (非常に役に立った) の 5 段階で評価してくださいまたその評価の理由もお知らせください以下に例を示します

評価が高い 例が適切図がわかりやすい説明が明快といったことが理由である 評価が低い 例が少ない図がわかりにくい説明があいまいといったことが理由で

ある

このようなフィードバックをお寄せいただくと今後のホワイト ペーパーの品質向上につながります

フィードバックの送信

loz Version 112012 年 2 月 21 日

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 37

  • 高可用性と災害復旧の概念
    • 高可用性について
      • 予定されたダウンタイムと予定外のダウンタイム
      • 段階的な可用性
        • ダウンタイムの定量化
          • 復旧目標
          • ROI または機会費用の正当化
          • 可用性の健全度の監視
          • 災害復旧の計画
            • 概要 Microsoft SQL Server 2012 での高可用性
              • SQL Server AlwaysOn
              • 計画的なダウンタイムの大幅な削減
              • アイドル状態のハードウェアをなくしてコスト効率とパフォーマンスを向上
              • 簡単な配置と管理
              • RPO と RTO の機能比較
                  • SQL Server AlwaysOn の保護レイヤー
                    • インフラストラクチャの可用性
                      • Windows オペレーティング システム
                        • Windows Server Core インストール オプション
                        • プライベート クラウド用の SQL Server の最適化
                          • Windows Server フェールオーバー クラスタリング
                            • WSFC ストレージ構成
                            • WSFC リソースの正常性の検出とフェールオーバー
                              • WSFC のクラスター検証ウィザード
                              • WSFC クォーラム モードと投票の構成
                                • クォーラムによるクラスター状態検出
                                • クォーラム モード
                                • 投票ノードと非投票ノード
                                • クォーラム投票に推奨される調整
                                  • WSFC の強制クォーラムによる災害復旧
                                    • SQL Server インスタンス レベルでの保護
                                      • 可用性の向上 ndash SQL Server インスタンス
                                      • AlwaysOn フェールオーバー クラスター インスタンス
                                        • FCI のフェールオーバー プロセス
                                        • FCI の強化
                                            • データベースの可用性
                                              • AlwaysOn 可用性グループ
                                                • 可用性レプリカとロール
                                                • 可用性レプリカの同期
                                                  • 可用性グループのフェールオーバー
                                                  • 可用性グループ リスナー
                                                    • アプリケーションの目的によるフィルター処理
                                                    • アプリケーションの目的の読み取り専用ルーティング
                                                      • 可用性の向上 ndash データベース
                                                        • クライアント接続の推奨事項
                                                          • 結論
Page 4: 高可用性と災害復旧の概念download.microsoft.com/download/6/B/E/6BE0C3F3-2991-4766... · Web view高可用性と災害復旧のソリューションのために最適なデータベース

目次高可用性と災害復旧の概念1

高可用性について1

予定されたダウンタイムと予定外のダウンタイム2

段階的な可用性2

ダウンタイムの定量化3

復旧目標3

ROI または機会費用の正当化4

可用性の健全度の監視4

災害復旧の計画5

概要 Microsoft SQL Server 2012 での高可用性5

SQL Server AlwaysOn6

計画的なダウンタイムの大幅な削減6

アイドル状態のハードウェアをなくしてコスト効率とパフォーマンスを向上7

簡単な配置と管理7

RPO と RTO の機能比較7

SQL Server AlwaysOn の保護レイヤー8

インフラストラクチャの可用性9

Windows オペレーティング システム9

Windows Server フェールオーバー クラスタリング10

WSFC のクラスター検証ウィザード13

WSFC クォーラム モードと投票の構成14

WSFC の強制クォーラムによる災害復旧17

SQL Server インスタンス レベルでの保護19

可用性の向上 ndash SQL Server インスタンス19

AlwaysOn フェールオーバー クラスター インスタンス20

データベースの可用性23

AlwaysOn 可用性グループ23

可用性グループのフェールオーバー25

可用性グループ リスナー26

可用性の向上 ndash データベース28

クライアント接続の推奨事項29

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド iv

結論31

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド v

高可用性と災害復旧の概念高可用性と災害復旧のソリューションのために最適なデータベース テクノロジを選択するにはRTO と RPO の計画管理測定に関連するビジネス上の利点課題および目的についてすべての関係者が理解を共有している必要があります

これらの概念を既に理解されている方は「概要 Microsoft SQL Server 2012 での高可用性 」のセクションから読み始めてもかまいません

高可用性についてソフトウェア アプリケーションやサービスで高可用性は最終的にはエンド ユーザーの体感や期待に基づいて計測されますダウンタイムが生じることでビジネスに与える影響には情報の損失物的損害生産性の低下機会費用契約上の損害信用の損失などさまざまな目に見える影響や目に見えない影響があります

高可用性ソリューションの主な目的はダウンタイムの影響を最小限に抑えるまたは少なくともある程度軽減することですそのための堅実な戦略の 1 つはビジネス プロセスやサービス レベル契約 (SLA) と技術的な機能やインフラストラクチャのコストとの間で最適なバランスを取ることです

プラットフォームの可用性の高さは契約に基づいてさらには顧客や関係者からの期待に応じて判断されますシステムの可用性は次の式で表すことができます

実際のアップタイム予定されたアップタイム

times100

可用性の値は業界ではよく 9 がいくつ並んでいるかによって表現されますそれによって年間の可能なアップタイムの長さ逆に言えばダウンタイムの長さがわかります

9 の個数 可用性の割合 年間合計ダウンタイム2 99 3 日15 時間3 999 8 時間45 分4 9999 52 分34 秒5 99999 5 分15 秒

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 1

予定されたダウンタイムと予定外のダウンタイムシステムの停止には予測または計画されたものと予定外の障害によって生じるものとがありますダウンタイムは適切に管理されているのならば否定的に考える必要はありません予測可能なダウンタイムには主に次の 2 種類があります

計画的なメンテナンスあらかじめ時間枠を予告したうえで計画されたメンテナンス タスクが行われますたとえばソフトウェア修正プログラムの適用ハードウェアのアップグレードパスワードの更新オフラインでのインデックス再作成データの読み込み災害復旧手順のリハーサルなどです操作手順を入念に準備することでダウンタイムを最小限に抑えデータ損失を防ぐことができます計画的なメンテナンス作業は予定外の停止によってさらに深刻な事態を招くのを防いだりそのような場合の被害を軽減したりするために必要な投資と考えることができます

予定外の停止システムインフラストラクチャまたはプロセスのレベルで障害が発生した場合ですそれらは予定外で制御できないものであったり予測可能ではあってもまず発生しないだろうと考えられたり影響は許容範囲だろうと考えられたりしたものです堅牢な高可用性ソリューションはそのような障害を検出し停止状態から自動的に復旧してフォールト トレランスを再確立することができます

高可用性に関するサービス レベル契約 (SLA) を規定するときには計画的なメンテナンス作業と予定外のダウンタイムの両方についてそれぞれ個別に主要業績評価指標 (KPI) を計算する必要がありますそうすることで計画的なメンテナンス作業への投資を予定外のダウンタイムを回避できた場合の利益と比較して検討することができます

段階的な可用性高可用性は100 か 0 かの問題として捉えるべきではありませんシステムが完全に停止するのではなく部分的に使用できるのであれば機能が制限されたりパフォーマンスが低下したりしてもエンド ユーザーに許容される場合もよくあります可用性には次のようにさまざまな段階があります

読み取りのみ可能および操作の遅延メンテナンス期間中や災害復旧の処理中にデータを取得することはできても新しいワークフローやバックグラウンド処理は一時的に中断されたりキューに入れられたりする場合があります

データ待機時間とアプリケーションの応答時間大量のワークロードバックログの処理プラットフォームの部分的な障害などが原因で限りのあるハードウェア リソースが負荷過剰になったりサイズ不足になったりする場合がありますこれはユーザー エクスペリエンスに影響し生産性は低下しますが作業は続けることができます

部分的一時的または差し迫った障害アプリケーション ロジックやハードウェア スタックが堅牢にできていればエラーが発生しても再試行や自己修正が行われますこのような場合エンド ユーザーはデータの待ち時間やアプリケーションの応答時間を長く感じることがあります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 2

部分的なエンド ツー エンドの障害予定された停止または予定外の停止がソリューション スタックの垂直的なレイヤー (インフラストラクチャプラットフォームおよびアプリケーション) 内でまたは水平的な各種の機能コンポーネント間で整然と行われる場合がありますユーザーは影響を受ける機能またはコンポーネントに応じて部分的に操作が成功したりパフォーマンスの低下を感じたりします

これらの状況はそれぞれ完全な停止に至るまでの可用性の一段階であると同時に災害復旧フェーズの中間段階とも考えることができそれぞれの状況がどの程度許容できるかを判断する必要があります

ダウンタイムの定量化ダウンタイムが発生した場合にはそれが予定されたものであったか予定外のものであったかにかかわらずシステムをオンラインに戻しデータ損失を最小限に抑えることがビジネスとして第一の目標となりますダウンタイムが 1 分経過するごとに直接または間接のコストが刻々と増えていきます予定外のダウンタイムが発生したのであれば時間と労力を適切に配分しながら停止の理由を調査し現在のシステム状態を把握し復旧手順を決定する必要があります

どのような場合でも事前に決めておいた時間になったらビジネス上の意思決定を行う必要があります停止の原因調査やメンテナンス操作を中止してシステムをオンラインに戻すかどうか必要に応じてフォールト トレランスを再構築するかどうかなどを判断します

復旧目標データの冗長性は高可用性データベース ソリューションの重要な要素の 1 つですプライマリ SQL Server インスタンスに対するトランザクションの操作は同期または非同期で1 つ以上のセカンダリ インスタンスにも適用されます障害が発生すると処理中のトランザクションはロールバックされるかまたはデータ伝達の遅れのためにセカンダリ インスタンスでは失われる可能性もあります

影響を見積もりながら機能の復旧にどれくらいの時間がかかるか最後のトランザクションを回復するためにどれくらいの遅延が生じるかという観点で次の復旧目標を設定します

目標復旧時間 (RTO)これはシステムが停止している時間の長さを意味します最初の目標は少なくとも読み取り専用の状態でシステムをオンラインに戻し障害について調査できるようにすることですただし最終的な目的は新しいトランザクションを実行できる状態まで完全にサービスを復元することです

目標復旧時点 (RPO)これは多くの場合どのくらいのデータ損失が許容されるかの基準として考えられます障害発生前に最後にコミットされたデータ トランザクションと障害発生後に復元された最新のデータとの時間差や遅延が示されます実際に失われるデータの量は障害発生時のシステムのワークロード障害の種類および使用されている高可用性ソリューションの種類に応じて異なります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 3

RTO と RPO の値はビジネスで許容できるダウンタイムとデータ損失の目安としてまた可用性が健全であるかどうかを監視する際の指標として使用します

ROI または機会費用の正当化ダウンタイムによって生じるビジネス上のコストには金銭的なコストだけでなく顧客からの信用も含まれますこれらのコストには時間の経過と共に発生するものもあれば停止期間中の特定の時点で発生するものもあります復旧時間とデータ復旧ポイントに基づいて停止のコストを見積もる以外にRTO および RPO の達成や停止自体の回避に必要なビジネス プロセスを考えたりインフラストラクチャへの投資を計算したりすることもできますこれらの投資の目的は次のようなものです

ダウンタイムの回避そもそも停止状態にならなければ復旧のコストをまとめて回避できますこの投資にはフォールト トレランスと冗長性のためのハードウェアまたはインフラストラクチャ各障害点を分離した分散ワークロード予防メンテナンスのための計画的なダウンタイムなどのコストが含まれます

復旧の自動化システム障害が発生した場合自動的で透過的な復元が行われればダウンタイムによるカスタマー エクスペリエンスへの影響を大幅に抑えることができます

リソース使用率セカンダリまたはスタンバイ インフラストラクチャは障害に備えてアイドル状態にしておくことができますまた読み取り専用ワークロードのために利用したり利用可能なすべてのハードウェアにワークロードを分散してシステム全体のパフォーマンスを向上させたりもできます

RTO と RPO の目標実現に必要な可用性と復旧のための投資は予測されるダウンタイムのコストと組み合わせて時間の関数として表現し正当化することができますこれによって実際の停止中にダウンタイムの経過時間に基づいてコスト ベースの判断を行うことができます

可用性の健全度の監視運用上の観点からは実際の停止中に関連するすべての変数を考慮しリアルタイムで ROI または機会費用を計算しようとするべきではありません実際にはRPO の期待値に代わるものとしてスタンバイ インスタンスのデータ遅延を監視します

停止の際根本的な原因の調査に費やす時間は制限し代わりに復旧環境の正常性の検証に集中する必要がありますその後詳細なシステム ログとデータのセカンダリ コピーに基づいて原因究明の分析を行います

災害復旧の計画

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 4

高可用性のための取り組みでは停止を回避するために何をするかが問題になりますが災害復旧のための取り組みでは停止後に高可用性を再構築するために何をするかが問題になります

できる限り実際に停止状態になる前に災害復旧の手順と役割分担を策定しておくようにします実行中の監視と警告に基づいて自動または手動のフェールオーバーと復旧計画を開始するかどうかは事前に決められた RTO および RPO のしきい値を考慮しつつ判断する必要があります災害復旧計画には次のようなものを含める必要があります

障害と復旧の適用範囲障害の場所や種類に応じてデータ センター レベルインフラストラクチャ レベルプラットフォーム レベルアプリケーション レベルワークロード レベルなどさまざまなレベルで修正措置が行われます

調査のための資料ベースラインと最新の監視の履歴システム警告イベント ログ診断クエリなどを関係者がいつでも利用できるようにしておく必要があります

依存関係の調整アプリケーション スタック内でまたは関係者間でシステムやビジネスの依存関係を把握しておきます

デシジョン ツリー繰り返し使用できるデシジョン ツリーを事前に定義して検証しておきますこれにはロールの役割障害の優先順位RPO と RTO を実現するためのフェールオーバーの条件所定の復旧手順などを含めます

検証停止状態からの復旧手順を実行した後でシステムが通常の状態に戻ったことを検証するために何をしなければならないかを整理しておきます

文書化新しい担当者でも最低限の補助があれば復旧計画を実行できるように上記のすべての項目を詳細で明確な一連の文書として記録しておきますこのような文書は一般的にラン ブック または クック ブック と呼ばれます

復旧のリハーサル定期的に災害復旧計画の演習を行いRTO のベースラインとなる期待値を確立しプライマリ サイトと各災害復旧サイトでの本番運用のローテーションを検討します

概要 Microsoft SQL Server 2012 での高可用性要求される RPO と RTO を実現するには主要アプリケーションの継続的なアップタイムを確保することと予定外のダウンタイムや予定されたダウンタイム時に重要なデータを保護することが必要ですSQL Server では低コストで簡単にこれらの目標を実現できる一連の機能が用意されています

新しい AlwaysOn の機能について既によくご存じの方は「SQL Server AlwaysOn の保護レイ ヤー」のセクションに進んでより詳細な説明をご覧ください

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 5

SQL Server AlwaysOnAlwaysOn は高い統合性柔軟性およびコスト効率を特徴とした新しい高可用性災害復旧ソリューションですデータ センター内およびデータ センター間でデータとハードウェアの冗長性を実現しアプリケーションのフェールオーバー時間を短縮することでミッション クリティカル アプリケーションの可用性を高めますAlwaysOn は構成の柔軟性が高く既存のハードウェア投資を再利用できます

AlwaysOn ソリューションではデータベース レベルとインスタンス レベルの両方で可用性を構成するためにSQL Server 2012 の次の 2 つの主要な機能を利用できます

AlwaysOn 可用性グループSQL Server 2012 の新機能の 1 つですデータベース ミラーリング機能の大幅な強化によってアプリケーション データベースの可用性の確保に役立ちますログに基づくデータの移動によってデータ保護を実現し共有ディスクを使用せずにデータ損失をゼロにすることができます

複数のデータベースから成る論理グループの単位で自動および手動のフェールオーバーを実行できますまた最大で 4 つのセカンダリ レプリカのサポート高速なアプリケーション フェールオーバー自動ページ修復など多彩なオプションが用意されています

AlwaysOn フェールオーバー クラスター インスタンス (FCI)SQL Server フェールオーバー クラスタリング機能を拡張し複数のサブネットにわたるマルチサイト クラスタリングをサポートしますこれにより異なるデータ センター間での SQL Server インスタンスのフェールオーバーが可能になりますインスタンスのフェールオーバーがより高速となり予測可能となることでアプリケーションをさらにすばやく復旧させることができます

計画的なダウンタイムの大幅な削減どの組織でもアプリケーション ダウンタイムの主な理由はオペレーティング システムへの修正プログラムの適用ハードウェア メンテナンスなどのための計画的なダウンタイムですこうしたダウンタイムがIT 環境の停止の約 80 を占めています

SQL Server 2012 は修正プログラムの要件を減らしより多くのメンテナンス操作をオンラインで実行できるようにすることで計画的なダウンタイムの大幅な削減に役立ちます

Windows Server CoreSQL Server 2012 ではWindows Server Core への配置がサポートされていますこれはWindows Server 2008 および Windows Server 2008 R2 の最小限の合理化された配置オプションですこれによりオペレーティング システムの修正プログラムの要件を最小限に抑え約 60 削減することで計画的なダウンタイムを減らすことができます

オンライン操作LOB のインデックスを再作成したり既定値を使用して列を追加したりするオンライン操作のサポート強化によってデータベース メンテナンス時のダウンタイムが削減されます

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 6

ローリング アップグレードと修正プログラムAlwaysOn 機能はインスタンスのローリング アップグレードと修正プログラムの適用を容易にしますこれによりアプリケーションのダウンタイムが大幅に削減されます

Hyper-V 上の SQL ServerHyper-V 環境でホストされている SQL Server インスタンスではライブ マイグレーションの利点を活用することでホスト間の仮想マシンの移行をダウンタイムなしで実行できます管理者はアプリケーションに影響を与えずにホスト上でメンテナンス操作を実行できます

アイドル状態のハードウェアをなくしてコスト効率とパフォーマンスを向上典型的な高可用性ソリューションでは高コストで冗長なパッシブ サーバーが配置されますAlwaysOn 可用性グループを使用するとパッシブまたはアイドルな状態のセカンダリ データベース レプリカを読み取り専用のワークロード (SQL Server Reporting Services のレポート クエリバックアップ操作など) に活用できますプライマリとセカンダリの両方のデータベース レプリカを同時に使用できるためサーバー ハードウェア間のリソースのバランスが良くなりすべてのワークロードのパフォーマンスが向上します

簡単な配置と管理構成ウィザードWindows PowerShell コマンド ライン インターフェイスのサポートダッシュボード動的管理ビュー (DMV)ポリシー ベースの管理System Center 統合などの機能によって可用性グループの配置と管理が簡単になります

RPO と RTO の機能比較目標復旧時点 (RPO) と目標復旧時間 (RTO) のビジネス目標は高可用性災害復旧ソリューションのために使用する SQL Server テクノロジを選択する際に重要な判断材料となります次の表はさまざまなソリューションで実現される結果を大まかに比較したものです

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 7

高可用性と災害復旧のSQL Server ソリューション

データ損失の可能性 (RPO)

可能な復旧時間 (RTO)

自動フェールオーバー

読み取り可能な

セカンダリ(1)

AlwaysOn 可用性グループ - 同期コミット ゼロ 数秒 (4) 0 - 2

AlwaysOn 可用性グループ - 非同期コミット 数秒 数分 times 0 - 4

AlwaysOn フェールオーバー クラスター インスタンス

該当せず(5) 数秒~ 数分

該当せず

データベース ミラーリング(2) - 高い安全性 (同期 + 監視)

ゼロ 数秒 該当せず

データベース ミラーリング(2) - 高パフォーマンス (非同期)

数秒(6) 数分(6) times 該当せず

ログ配布 数分(6) 数分~ 数時間(6)

times 復元中はなし

バックアップコピー復元(3) 数時間(6) 数時間~ 数日(6)

times 復元中はなし

(1) AlwaysOn 可用性グループで使用できるセカンダリ レプリカは種類に関係なく最大 4 つです(2) この機能は将来のバージョンの Microsoft SQL Server では削除される予定です代わりに AlwaysOn 可用性グループを使用

してください(3) バックアップコピー復元は障害復旧には適していますが高可用性には適していません(4) 可用性グループの自動フェールオーバーはフェールオーバー クラスター インスタンスとの間ではサポートされていま

せん(5) FCI 自体にはデータ保護機能はありませんデータ損失はストレージ システムの実装に依存します(6) ワークロードデータ量およびフェールオーバーの手順に大きく依存します

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 8

SQL Server AlwaysOn の保護レイヤーSQL Server AlwaysOn ソリューションではインフラストラクチャとアプリケーション コンポーネントのいくつかの論理レイヤーおよび物理レイヤーにまたがってフォールト トレランスと災害復旧を実現できます従来はさまざまな関係者と役割ごとに業務と責任を振り分けそれぞれが主に自分のソリューションのレイヤー部分だけに関心を持つことが一般的でした

このセクションではこれらのレイヤーのそれぞれについて詳細に説明しデザインに関する議論や実装についての意思決定に役立つ論点やガイダンスを提示します

SQL Server AlwaysOn ソリューションをうまく利用するには以下のレイヤーについて理解しそれぞれを協調させる必要があります

インフラストラクチャ レベルサーバー レベルのフォールト トレランスとノード内のネットワーク通信が含まれますWindows Server フェールオーバー クラスタリング (WSFC) 機能を使用して稼働状態の監視とフェールオーバーの調整を行います

SQL Server インスタンス レベルSQL Server AlwaysOn フェールオーバー クラスター インスタンス (FCI) はWSFC クラスター内の複数のサーバー ノードにまたがってインストールされる SQL Server インスタンスであり各サーバー ノードへのフェールオーバーが可能ですFCI をホストするノードは堅牢な対称型共有ストレージ (SAN または SMB) に接続されます

データベース レベル可用性グループは共にフェールオーバーされるユーザー データベースのセットです可用性グループは1 つのプライマリ レプリカと最大 4 つのセカンダリ レプリカで構成されます各レプリカはWSFC クラスターの別々のノードにある SQL Server インスタンス (FCI または非 FCI) によってホストされます

クライアント接続データベース クライアント アプリケーションは指定した SQL Server インスタンス ネットワーク名に直接接続できますまたは可用性グループ リスナーにバインドされている仮想ネットワーク名 (VNN) に接続することもできますVNN はWSFC クラスターおよび可用性グループのトポロジを抽象化するものであり接続要求を適切な SQL Server インスタンスとデータベース レプリカに論理的にリダイレクトします

代表的な AlwaysOn ソリューションの論理トポロジは次の図のようになります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 9

インフラストラクチャの可用性AlwaysOn 可用性グループと AlwaysOn フェールオーバー クラスター インスタンスのどちらもWindows Server オペレーティング システムと WSFC をプラットフォーム テクノロジとして利用します今まで以上にMicrosoft SQL Server データベース管理者はこれらのテクノロジについて十分に理解することが必要です

Windows オペレーティング システムSQL Server は基礎的なインフラストラクチャとネットワークストレージセキュリティ更新プログラムおよび監視のサービスを Windows プラットフォームに依存しています

SQL Server 2012 の各エディションはWindows Server 2008 R2 オペレーティング システムの対応するエディション (Windows Server 2008 R2 Standard オペレーティング システムWindows Server 2008 R2 Enterprise オペレーティング システムWindows Server 2008 R2 Datacenter オペレーティング システムなど) の機能や能力をさらに進歩させて構築されています

詳細については「SQL Server 2012 のインストールに必要なハードウェアおよびソフトウェ ア」(httpmsdnmicrosoftcomja-jplibraryms143506(SQL110)aspx) を参照してください

Windows Server Core インストール オプションSQL Server 2012 では高可用性のための主要な機能の 1 つとしてWindows Server 2008 以降で Server Core インストール オプションによる配置をサポートしていますServer Core インストール オプションでは制限された機能と非常に限定的な GUI アプリケーション サポートで特定のサーバー ロールを実行するための最低限の環境が提供されます既定では必要なサービスとコマンド プロンプト環境のみが有効です

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 10

この操作モードではオペレーティング システムへの攻撃の危険性とシステム オーバーヘッドが低下し継続的なメンテナンスサービス修正プログラムなどの要件が大幅に削減されます

SQL Server 2012 を Windows Server Core に配置する場合の主な注意点はSQL Server およびオペレーティング システムのすべての配置構成管理およびメンテナンスをWindows PowerShell などのスクリプト環境やコマンド ラインまたはリモート ツールを使用して行う必要があることです

プライベート クラウド用の SQL Server の最適化高可用性と災害復旧はプライベート クラウド環境ではさらに重要になってきていますプライベート クラウドに SQL Server を配置すればコンピューターネットワークおよびストレージのリソースが効率的に使用され物理的な場所や資本と運営費用の両方の削減に役立ちます配置の統合リソースの効率的なスケーリングオンデマンドでのリソースの配置が容易になり制御の自由度が失われることもありません

SQL Server ではHyper-V のホストとゲストの両方のシステムに対して Windows Server フェールオーバー クラスタリングをサポートするほかライブ マイグレーションもサポートしていますこれは意識されるほどのダウンタイムを生じることなくホスト間で仮想マシンを移動できる機能ですライブ マイグレーションはゲスト クラスタリングとも協調して動作します

詳細については「プライベート クラウド コンピューティング - プライベート クラウド用の SQL Server の最適化 」(httpwwwmicrosoftcomSqlServerPrivateCloud) を参照してください

Windows Server フェールオーバー クラスタリングWindows Server フェールオーバー クラスタリング (WSFC) はMicrosoft SQL Server などのサーバー アプリケーションに対して高可用性と災害復旧をサポートするインフラストラクチャ機能を提供します

WSFC クラスター ノードまたはサービスに障害が発生するとそのノードでホストされていたサービスまたはリソースは自動的にまたは手動で他の可用性ノードに転送されますこのプロセスをフェールオーバーと呼びますAlwaysOn ソリューションではこのプロセスが FCI と可用性グループの両方に適用されます

WSFC クラスター内の各ノードは連携して次のような機能を提供します

分散メタデータと通知WSFC サービスとホストされるアプリケーション メタデータはクラスター内の各ノードで維持されますこのメタデータにはホストされるアプリケーションの設定に加えWSFC の構成と状態が含まれます1 つのノードでのメタデータまたは状態の変更はクラスター内の他のノードに自動的に反映されます

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 11

リソース管理クラスター内の各ノードは直接アタッチされたストレージ (DAS)ネットワーク インターフェイス共有ディスク ストレージへのアクセスなど物理的リソースを提供する場合がありますSQL Server などホストされるアプリケーション自体もクラスター リソースとして登録されますまた他のリソースに対するスタートアップと正常性にかかわる依存関係を構成できます

正常性の監視ノード間の正常性およびプライマリ ノードの正常性はハートビート ネットワーク通信とリソースの監視を組み合わせることで検出されますクラスターの全体的な正常性状態はクラスター内のノードのクォーラムの投票によって決定されます

フェールオーバーの調整各リソースはプライマリ ノードでホストされるように構成されそれぞれ自動的にまたは手動で 1 つ以上のセカンダリ ノードに転送されます正常性ベースのフェールオーバー ポリシーによってノード間でのリソース所有権の自動転送が制御されますフェールオーバーが発生すると適切に対応できるように各ノードおよびホストされているアプリケーションに通知されます

詳細については「Windows Server | フェールオーバー クラスタリングとノード バランシン グ」(httpwwwmicrosoftcomwindowsserver2008enusfailover-clustering-mainaspx) を参照してください

注 データベース管理者が WSFC クラスターおよびクォーラム管理の内部動作を理解しておくことが非常に重要になりましたAlwaysOn の正常性の監視管理および障害復旧の手順はすべてが本質的に WSFC 構成と関連しています

WSFC ストレージ構成Windows Server フェールオーバー クラスタリングでは接続されているストレージ デバイスディスク ボリュームおよびファイル システムの管理をクラスター内の各ノードに依存していますWSFC はストレージ サブシステムが非常に堅牢であると想定しているためノードに接続されたストレージ デバイスが使用できない場合はクラスター ノードが障害状態であると見なします

書き込みベースの操作ではディスク ボリュームは SCSI-3 の永続的な予約を使用して一度に 1 つのクラスター ノードに論理的に接続されますノードで障害が発生した場合にはストレージ サブシステムの機能と構成に応じてディスク ボリュームの論理的所有権をクラスター内の別のノードに移すことができます

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 12

SQL Server AlwaysOn ソリューションでは次のような WSFC ストレージ構成の組み合わせを利用しその制限も受けます

直接接続とリモートストレージ デバイスはサーバーに物理的に直接接続されるかまたはネットワークやホスト バス アダプター (HBA) を介してリモートのストレージ デバイスを使用しますリモート ストレージのテクノロジにはiSCSI やファイバー チャネルなどのストレージ エリア ネットワーク (SAN) ベースのソリューションとサーバー メッセージ ブロック (SMB) というファイル共有ベースのソリューションがあります

対称と非対称ストレージ デバイスの論理ディスク ボリューム構成とファイル パスがクラスターの各ノードでまったく同じである場合それらのストレージ デバイスは対称的であると見なされます基になるディスク ボリュームの物理的な実装と容量は異なっていてもかまいません

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 13

専用と共有専用ストレージは使用するために予約されクラスター内の 1 つのノードに割り当てられます共有ストレージはクラスターの複数のノードからアクセスできます共有ストレージ デバイスが SCSI-3 プロトコルに準拠していればそれらの制御と所有権をノード間で移動させることができますWSFC ではファイル共有のためにクラスター共有ボリュームを同時に複数のノードでホスティングできますただしSQL Server は複数のノードからの共有ボリュームへの同時アクセスをサポートしていません

注 SQL Server FCI では対称共有ストレージを使用してインスタンスのすべてのノード所有者 (およびその候補) からアクセスできるようにする必要がありますただしAlwaysOn 可用性グループの導入に伴いそれぞれが独自に専用のローカルまたはリモート ストレージを持つ非 FCI の SQL Server インスタンスを WSFC クラスターに配置できるようになりました

WSFC リソースの正常性の検出とフェールオーバーWSFC クラスター ノード内の各リソースの状態と正常性は定期的にまたは要求に応じて報告されますクラスター リソースの障害を示す状況としてはたとえば電源障害ディスクまたはメモリのエラーネットワーク通信エラー構成エラー応答しないサービスなどがあります

ネットワークストレージサービスなどの WSFC クラスター リソースは互いに依存するように構成できますあるリソースの累積的な正常性は依存関係を持つリソースの正常性を連続的にたどってゆくことで決定されます

AlwaysOn 可用性グループでは可用性グループと可用性グループ リスナーがそれぞれ WSFC クラスター リソースとして登録されますAlwaysOn フェールオーバー クラスター インスタンスではSQL Server サービスおよび SQL Server エージェント サービスが WSFC クラスター リソースとして登録されどちらもインスタンスの仮想ネットワーク名リソースに依存します

WSFC クラスター リソースで設定された数のエラーまたは障害が一定期間内に発生した場合構成されたフェールオーバー ポリシーによってクラスター サービスは次のいずれかの操作を行います

現在のノードでのリソースの再起動 リソースをオフライン化 リソースとその依存関係を別のノードへ自動的にフェールオーバー

注 WSFC クラスター リソースの正常性の検出は個々のノードの正常性やクラスターの全体的な正常性には直接影響しません

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 14

WSFC のクラスター検証ウィザードクラスター検証ウィザードはWindows Server 2008 および Windows Server 2008 R2 のフェールオーバー クラスタリングに統合されている機能ですこれはSQL Server AlwaysOn ソリューションの配置前 にクリーンで正常な安定した WSFC 環境が存在していることをデータベース管理者が確認するために使用する主要なツールです

クラスター検証ウィザードではクラスターのノードとして使用するサーバーの集合または既存のクラスターを対象にして一連のテストを実行できますこのプロセスでは基になるハードウェアおよびソフトウェアが個別に直接テストされWSFC クラスターが特定の構成でどの程度良好にサポートされるかについての正確な評価が得られます

この検証プロセスでは各ノードに対して次のようなカテゴリの一連のテストとデータ収集が実施されます

一覧作成BIOS のバージョン環境レベルホスト バス アダプターRAMオペレーティング システムのバージョンデバイスサービスドライバーなどの情報です

ネットワークNIC のバインド順序ネットワーク通信IP 構成ファイアウォール構成などの情報ですすべての NIC でノード間の通信が検証されます

ストレージディスクドライブの容量アクセス待機時間ファイル システムなどの情報ですSCSI コマンドディスク フェールオーバー機能対称的または非対称的なストレージ構成が検証されます

システム構成Active Directory の構成ドライバーの登録メモリ ダンプの設定必要なオペレーティング システムの機能とサービス互換性のあるプロセッサ アーキテクチャおよびサービス パックと Windows Software Update のレベルが検証されます

これらの検証テストの結果を利用してクラスターの構成を微調整したり構成を追跡したりダウンタイムを引き起こすかもしれない潜在的なクラスター構成の問題を特定したりできますテスト結果のレポートは後で参照できるようにHTML ドキュメントとして保存できます

これらのテストはWSFC の構成に何か変更を加える前と加えた後に実行するほかSQL Server をインストールする前および災害復旧プロセスの一環として実行する必要がありますマイクロソフトで特定の WSFC クラスター構成がサポートされるためにはマイクロソフト カスタマー サポート サービス (CSS) にクラスター検証レポートを提出する必要があります

詳細については「フェールオーバー クラスター ステップ バイ ステップ ガイド フェール オーバー クラスター用ハードウェアを検証する」(httptechnetmicrosoftcomja-jplibrarycc732035(WS10)aspx) を参照してください

注 ハードウェアベースの地理的クラスタリング ストレージ ソリューションの場合やAlwaysOn 可用性グループの場合のようにクラスター構成に非対称ストレージがあるとクラスター検証ウィザードでストレージの検証手順を成功させるために多数の修正プログラムを適用しなければならないことがあります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 15

詳細については「AlwaysOn 可用性グループの前提条件制限事項および推奨事項 」(httpmsdnmicrosoftcomja-jplibraryff878487(SQL110)aspxSystemReqsForAOAG) を参照してください

WSFC クォーラム モードと投票の構成WSFC ではクォーラム ベースのアプローチを使用してクラスターの全体的な正常性を監視することでノード レベルのフォールト トレランスを最大限に高めますWSFC のクォーラム モードおよびノード投票構成の基本について理解することはAlwaysOn 高可用性災害復旧ソリューションの設計運用トラブルシューティングのために非常に重要です

クォーラムによるクラスター状態検出WSFC クラスター内の各ノードは定期的なハートビート通信に参加しノードの正常性状態を他のノードと共有します応答しないノードはエラー状態であると見なされます

クォーラム ノード セットとはWSFC クラスター内の投票ノードおよび監視サーバーのうち過半数を占めるノードの集合ですWSFC クラスターの全体的な正常性と状態は定期的なクォーラムの投票 によって決定されますクォーラムはクラスターが正常でありノード レベルのフォールト トレランスを提供できることを意味します

クォーラムに達していない状態はクラスターが正常でないことを示しますプライマリ ノードのフェールオーバー先として正常なセカンダリ ノードを使用できるようにするにはWSFC クラスターの全体的な正常性が維持されている必要があります投票数がクォーラムに達しなかった場合にはWSFC クラスター全体が予防策としてオフラインに設定されますその場合クラスターに登録されている SQL Server インスタンスがすべて停止します

注 クォーラム障害のために WSFC クラスターがオフラインに設定されるとオンラインに戻すために手動の操作が必要です詳細については後の「WSFC の強制クォーラムによる災害 復旧」のセクションを参照してください

クォーラム モードクォーラム モードはWSFC クラスター レベルで構成されクォーラム投票の方法を指定しますフェールオーバー クラスター マネージャー ユーティリティではクラスター内のノード数に基づいて推奨するクォーラム モードが提示されます

次のいずれかのクォーラム モードによって投票クォーラムの構成が決定されます

ノード マジョリティクラスターが正常であるためにはクラスター内の半分以上の投票ノードが肯定的に投票する必要があります

ノードおよびファイル共有マジョリティノード マジョリティ クォーラム モードに似ていますがリモート ファイル共有も投票監視サーバーとして構成され各ノードからそのリモート ファイル共有への接続も肯定的な投票としてカウントされますクラスターが正常であるためには投票の過半数が肯定的である必要があります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 16

推奨事項として監視ファイル共有はクラスター内のノードに存在せずクラスター内のすべてのノードから見える必要があります

ノードおよびディスク マジョリティノード マジョリティ クォーラム モードに似ていますが共有ディスク クラスター リソースも投票監視サーバーとして使用され各ノードからその共有ディスクへの接続も肯定的な投票としてカウントされますクラスターが正常であるためには投票の過半数が肯定的である必要があります

ディスクのみ共有ディスク クラスター リソースが監視サーバーとして使用され各ノードからその共有ディスクへの接続が肯定的な投票としてカウントされます

詳細については「フェールオーバー クラスター ステップ バイ ステップ ガイド フェール オーバー クラスターのクォーラムの構成」(httptechnetmicrosoftcomja-jplibrarycc770620(WS10)aspx) で説明されています

注 クラスターの各ノードが同じ共有ストレージ クォーラム監視ディスクを使用するように構成されていない限り通常投票ノード数が奇数の場合は ノード マジョリティ クォーラム モード投票ノード数が偶数の場合は ノードおよびファイル共有マジョリティ クォーラム モードを使用してください

投票ノードと非投票ノード既定ではWSFC クラスター内の各ノードがクラスター クォーラムのメンバーとなります各ノードファイル共有監視サーバーディスク監視サーバーがクラスターの全体的な正常性の決定においてそれぞれ 1 票ずつの投票権を持ちますクォーラムに関するここまでの説明ではクラスター状態について投票する WSFC クラスター ノードのセットを投票ノードとして注意深く限定してきました状況によってはすべてのノードに投票権を与えることが適切でない場合もあります

WSFC クラスターの各ノードはクォーラムを確立しようとし続けますクラスター内の個々のノードはクラスターが全体として正常であるか正常でないかを明確に決定することはできません特定の時点で各ノードからは他のノードの一部がオフラインフェールオーバー中またはネットワーク通信のエラーにより応答不能に見えますクォーラム投票の主な機能はWSFC クラスターの各ノードの見かけの状態が本当にそれらのノードの実際の状態であるかどうかを判断することです

ディスクのみ 以外のすべてのクォーラム モデルではクォーラム投票の有効性はクラスター内のすべての投票ノード間に信頼できる通信が確立されていることに依存しますすべてのノードが同じ物理サブネット上にある場合はクォーラムの投票を信頼できます

しかしクォーラム投票で他のサブネット上のノードが応答しないように見えても実際はオンラインで正常である場合はサブネット間のネットワーク通信のエラーが原因であることが考えられますクラスター トポロジクォーラム モードおよびフェールオーバー ポリシーの構成によってはネットワーク通信エラーによって投票ノードのセット (またはサブセット) が実質的に複数作成されてしまう可能性があります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 17

投票ノードの複数のサブセットがそれぞれ独自のクォーラムを構築できる状態はスプリット ブレイン と呼ばれますこの状態では各クォーラム上のノードが別々の動作をし相互に矛盾する可能性があります

注 スプリット ブレイン の状況が発生するのはシステム管理者が強制クォーラム動作を手動で実行するかまたは非常にまれですが強制的な手動フェールオーバーを実行することでクォーラム ノード セットが明示的に細分化された場合のみです詳細については後の「WSFC の強制クォーラムによる災害復旧 」のセクションを参照してください

クォーラム構成を単純化し稼働時間を長くする目的でノードの投票がクォーラムにカウントされないように各ノードの NodeWeight 設定 (値 0 または 1) を調整することができます

クォーラム投票に推奨される調整以下のガイドラインをこの順番に適用することでクラスターに対して推奨されるクォーラム投票の構成を判断できます

1 既定は投票権なしにします明確な理由がない限り各ノードには投票権を与えないと考えてください

2 すべてのプライマリ ノードに投票権を与えますAlwaysOn 可用性グループのプライマリ レプリカをホストする各ノードおよび AlwaysOn フェールオーバー クラスター インスタンスの優先所有者である各ノードは投票権を持つ必要があります

3 可能性のある自動フェールオーバーの所有者を含めます自動フェールオーバーの結果としてプライマリ レプリカまたは FCI をホストする可能性がある各ノードは投票を持つ必要があります

4 セカンダリ サイト ノードを除外します通常はセカンダリ災害復旧サイトに存在するノードには投票を提供しないでくださいプライマリ サイトに問題がない場合クラスターをオフラインにする判断にセカンダリ サイト内のノードが影響を与えることは避ける必要があります

5 投票数を奇数にします必要に応じて監視ファイル共有監視ノード (SQL Server インスタンスの有無は問いません)または監視ディスクをクラスターに追加してクォーラム モードを調整しクォーラムの投票結果が同数に分かれるのを防ぎます

6 フェールオーバー後の投票割り当てを再評価します正常なクォーラムをサポートしないクラスター構成にフェールオーバーすることは避けます

ノードの投票の調整の詳細については「クラスター クォーラムの NodeWeight の設定の構 成」(httpmsdnmicrosoftcomja-jplibraryhh270281(SQL110)aspx) を参照してください

ファイル共有監視サーバーの投票は調整できませんその投票を含めるか除外するかを決めるには別のクォーラム モードを選択する必要があります

注 SQL Server ではWSFC クラスター構成およびノード クォーラム投票に関する設定を管理するためにいくつかのシステム動的管理ビュー (DMV) が公開されています

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 18

詳細については「可用性グループの監視」(httpmsdnmicrosoftcomja-jplibraryff878305(SQL110)aspx) を参照してください

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 19

WSFC の強制クォーラムによる災害復旧通常クォーラム障害は災害発生時または WSFC クラスター内の複数のノード間で永続的な通信障害が生じた場合に発生しますクォーラム障害が発生するとクラスターがノード レベルのフォールト トレランスを確保できなくなるためその WSFC クラスター内の SQL Server インスタンス可用性グループおよびクラスター化されているサービスがすべてオフラインになりますクォーラム障害はWSFC クラスター内の正常な投票ノード数がクォーラム モデルを満たさなくなったことを意味しますノードによってまったく機能しなくなるものもあればWSFC サービスがシャットダウンしただけでクォーラムと通信できなくなったことを除けば正常なものもあります

WSFC クラスターをオンラインに戻すには既存の構成の少なくとも 1 つのノードでクォーラム障害の根本的な原因を解決する必要があります災害発生時には使用できる代替ハードウェアの再構成や識別が必要となる場合もあります現状のクラスター トポロジを反映するためにWSFC クラスターの残りのノードを再構成する場合もあります

WSFC クラスター ノードで強制クォーラムの手順を使用するとクラスターがオフラインになる原因となった安全管理機能を無効にすることができますこれによりクラスターでのクォーラム投票のチェックが実質的に中断されクラスター内の任意のノードで WSFC クラスター リソースと SQL Server をオンラインに戻すことができます

このような災害復旧プロセスの手順を次に示します

1) 障害の範囲を特定します応答しない可用性グループや SQL Server インスタンス災害後に使用できるオンラインのクラスター ノードをそれぞれ特定しWindows イベント ログと SQL Server システム ログを確認します必要に応じて後で分析できるように解析データやシステム ログを保存しておきます

2) 1 つのノードで強制クォーラムを使用して WSFC クラスターを起動します他の点では正常なノードで強制クォーラムの手順に従ってクラスターを手動で強制的にオンラインにしますこの場合データ損失の可能性を最小限に抑えるには可用性グループのプライマリ レプリカを最後にホストしていたノードを選択します

詳細については「クォーラムを使用せずに WSFC クラスターを強制的に起動する 」(httpmsdnmicrosoftcomja-jplibraryhh270275(v=SQL110)aspx) を参照してください

注 強制クォーラムの設定を使用するとWSFC クラスターの投票が過半数に達することで通常のクォーラム モードの動作に自動的に切り替わるまでクラスター全体のクォーラムのチェックがブロックされます

3) 他の点では正常な各ノードでWSFC サービスを 1 つずつ通常の方法で起動します他のノードでクラスター サービスを起動するときは強制クォーラム オプションを指定する必要はありません

各ノードの WSFC サービスがオンラインに戻ると他の正常なノードとの間でネゴシエーションが行われ新しいクラスター構成の状態が同期されますクラスターの最新の状態

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 20

を判断するときに競合状態の発生を避けるためこの手順は必ず一度に 1 つのノードで行うようにしてください

注 起動した各ノードが新たにオンラインにした他のノードと通信できることを確認しますそうしないと複数のクォーラム ノード セットが作成されて スプリット ブレイン の状況に陥るおそれがあります手順 1 の結果に問題がなければこの現象は発生しません

4) 新しいクォーラム モードとノードの投票の構成を適用します強制クォーラムの手順によってクラスターのすべてのノードを正常に再起動させクォーラムのエラーの根本原因を修正した場合クォーラム モードとノードの投票を元の構成から変更する必要はありません

それ以外の場合は新たに復元されたクラスター ノードと可用性レプリカのトポロジを評価し必要に応じてクォーラム モードと各ノードの投票割り当てを変更します未復旧のノード上ではWSFC クラスター サービスをオフラインにするかノードの投票をゼロに設定します

注 この時点でクラスター内のノードと SQL Server インスタンスが通常の動作に戻っているように見えることがありますがまだ正常なクォーラムには達していない可能性がありますフェールオーバー クラスター マネージャーやSQL Server Management Studio の AlwaysOn ダッシュボードまたは適切な DMV を使用して正常なクォーラムが復元されたことを確認してください

5) 必要に応じて可用性グループのデータベース レプリカを復旧します一部のデータベースはSQL Server の通常の起動処理の一環として自動的に復旧されオンラインに戻ることがありますそれ以外のデータベースの復旧には追加で手動の手順を実行する必要があります

可用性グループ レプリカのデータ損失の可能性や復旧にかかる時間を最小限に抑えるにはできればプライマリ レプリカ同期セカンダリ レプリカ非同期セカンダリ レプリカの順にオンラインに戻します

6) 障害が発生したコンポーネントを修復するか交換しクラスターを再検証しますこれで最初の災害およびクォーラム障害から復旧できたので障害が発生したノードを修復するか交換しWSFC と AlwaysOn の関連する構成を適切に調整する必要がありますこれには可用性グループ レプリカの削除クラスターからのノードの削除ノードへのソフトウェアの再インストールなどが含まれます

注 停止したすべての可用性レプリカを修復または削除する必要がありますSQL Server 2012 では最も古い可用性レプリカを最後に認識した時点以降トランザクション ログが切り捨てられません停止したレプリカを修復するか可用性グループから削除しないとトランザクション ログが大きくなり他のレプリカのトランザクション ログの領域が不足する可能性があります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 21

7) 必要に応じて手順 4 を繰り返しますこの目的は正常な動作を行うために適切なレベルのフォールト トレランスと高可用性を再確立することです

8) RPORTO 分析を実行しますSQL Server のシステム ログデータベースのタイムスタンプおよび Windows のイベント ログを分析して障害の根本的な原因を特定し実際の復旧ポイントと復旧時間を文書に記録します

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 22

SQL Server インスタンス レベルでの保護次に説明する AlwaysOn ソリューションの保護レイヤーはデータ プラットフォームそれ自体ですMicrosoft SQL Server 2012 とその Windows Server インフラストラクチャ コンポーネントとの統合によって次のような機能が提供されます

可用性の向上 ndash SQL Server インスタンスこれは SQL Server 2012 の新しいインスタンス レベルの機能でAlwaysOn フェールオーバー クラスター インスタンスとAlwaysOn 可用性グループをホストするスタンドアロン インスタンスの両方の可用性を強化します

以下の強化点によってフェールオーバーの管理およびトラブルシューティングが向上します

柔軟なフェールオーバー ポリシー信頼性の高いエラー検出に使用される新しいシステム ストアド プロシージャ sp_server_diagnostics の出力でSQL Server インスタンスに影響するエラーの重大度が FailureConditionLevel プロパティによって示されますWSFC のフェールオーバー ポリシーによってこの値が SQL Server インスタンスにどのように影響するかを制御できますある程度エラーを許容する設定からSQL Server の内部コンポーネント エラーを重点的に検出する設定までさまざまに構成できます

特定のレベルのエラーによってフェールオーバーを開始するように構成できますエラーのレベルにはサーバーの停止サーバーの応答停止重大なエラー中程度のエラーなんらかの条件付きエラーなどがありますFailureConditionLevel プロパティはFCI または可用性グループのフェールオーバー ポリシーのために使用できます

SQL Server 2012 よりも前のバージョンではフェールオーバーを制御できるようなエラー状態の区分がなくすべてのサービス レベルのエラーによってフェールオーバーが発生しました

詳細については「フェールオーバー クラスター インスタンスのフェールオーバー ポリシー」(httpmsdnmicrosoftcomja-jplibraryff878664(SQL110)aspx) を参照してください

強化されたインストルメンテーションとログAlwaysOn 専用のシステム構成ビューDMVパフォーマンス カウンターに加えて拡張されたイベント正常性セッションによってAlwaysOn 配置のトラブルシューティングチューニングおよび監視に必要な情報を取得して表示できますこれらの多くはSQL Server ポリシー管理の新しいファセットおよびポリシーを通じて公開されます

詳細については「AlwaysOn 可用性グループの動的管理ビューおよび関 数」(httpmsdnmicrosoftcomja-jplibraryff877943(SQL110)aspx) と「sysdm_os_cluster_nodes」(httpmsdnmicrosoftcomja-jplibraryms187341(SQL110)aspx) を参照してください

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 23

SMB ファイル共有のサポートWindows Server 2008 以降のスタンドアロン用またはフェールオーバー クラスター インスタンス用のリモート ファイル共有にデータベース ファイルを格納することができますこの場合FCI ごとに異なるドライブ文字を使用する必要がありませんこれはストレージを統合する場合やデータベース ファイルのストレージを仮想マシンのゲスト オペレーティング システム用物理サーバーでホストする場合などに便利なオプションです適切に構成すれば直接接続されたストレージとほぼ同等の IO パフォーマンスが得られます

詳細については「ファイル共有上の SQL データベース - シナリオを再検討すべきとき 」(httpblogsmsdncombsqlserverstorageenginearchive20111018sql-databases-on-file-shares-it-s-time-to-reconsider-the-scenarioaspx) を参照してください

注 WSFC クラスターではSMB ファイル共有リソースの依存関係を SQL Server リソース グループに追加することはできませんファイル共有の可用性を確保するには別の方法を用いる必要がありますファイル共有が使用できなくなった場合SQL Server は IO 例外をスローしオフラインになります

WSFC と DNS の相互運用性FCI または可用性グループ リスナーの仮想ネットワーク名 (VNN) はVNN の作成時または構成の変更時にのみDNS に登録されますすべての仮想 IP アドレスはオンライン状態かオフライン状態かに関係なく同じ仮想ネットワーク名で DNS に登録されますDNS の仮想ネットワーク名を解決するためのクライアント呼び出しは各種のラウンド ロビン シーケンスによってすべての登録済み IP アドレスを返します

AlwaysOn フェールオーバー クラスター インスタンスSQL Server の AlwaysOn フェールオーバー クラスター インスタンス (FCI) の主な目的は1 つのデータ センター内のローカル サーバーとストレージ ハードウェアでホストされている SQL Server インスタンスの可用性を高めることです

FCI はWindows Server フェールオーバー クラスタリング (WSFC) のクラスターに含まれる複数のノードにまたがってインストールされる1 つの論理的な SQL Server インスタンスですただし一度に 1 つのノードだけでアクティブになることができますクライアント アプリケーションはアクティブなクラスター ノードが所有している仮想ネットワーク名および仮想 IP アドレスに接続します

FCI をインストールした各ノードは同一の構成を持ち同一の SQL Server バイナリを含んでいますWSFC クラスター サービスはアクティブなインスタンス上にある Windows レジストリのエントリからFCI をインストールした各ノードに関連のある変更をレプリケートしますFCI がインストールされている各ノードはインスタンスとそのリソースの所有者の候補として指定されフェールオーバーの優先順位に従って所有者となります

共有対称ストレージ ボリュームに格納されているデータベース ファイルはリソースとして WSFC クラスターに登録され現在 FCI をホストしているノードによって所有されます

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 24

詳細については「AlwaysOn フェールオーバー クラスター インスタン ス」(httpmsdnmicrosoftcomja-jplibraryms189134(SQL110)aspx) を参照してください

FCI のフェールオーバー プロセス依存しているクラスター リソースで障害が発生した場合AlwaysOn フェールオーバー クラスター インスタンスはWSFC クラスター サービスと連携してフェールオーバーを行いますそのプロセスの概要を以下に示します

1) 再起動が指示されますWSFC の定期的なチェックまたは SQL Server のフェールオーバー ポリシー構成によってエラー状態が示されます既定では他のノードへのフェールオーバーを開始する前にサービスの再起動が試みられます再起動の試みがタイムアウトするようであればリソースの障害が発生しています

2) フェールオーバーが指示されますフェールオーバー ポリシー チェックによってノードのフェールオーバーが必要であることが示されます

3) SQL Server サービスが停止されますSQL Server サービスが現在実行されている場合はその正常なシャットダウンが試みられます

4) WSFC クラスター リソースが転送されますSQL Server クラスター リソース グループの所有権とそれが依存するネットワークおよび共有ストレージ リソースがFCI で次に優先されるノード所有者に転送されます

5) 新しいノードで SQL Server が起動されますSQL Server インスタンスは通常のスタートアップ プロシージャで起動されます所定のタイムアウト時間内にオンラインに戻らない場合クラスター サービスはこの新しいノード上のリソースをエラー状態と見なします

6) 新しいノードでユーザー データベースが復旧されます各ユーザー データベースは復旧モードに設定されます復旧モードではトランザクション ログの再実行操作が適用されコミットされていなかったトランザクションがロールバックされます

FCI の強化以前のバージョンの SQL Server でも FCI のインストール オプションは用意されていましたがSQL Server 2012 では次のような機能強化によって可用性の堅牢性と利便性が向上しました

マルチサブネット クラスタリングSQL Server 2012 では複数のサブネットに存在する WSFC クラスター ノードがサポートされていますWSFC クラスター ノードに存在する SQL Server インスタンスはいずれかのネットワーク インターフェイスが使用可能であれば起動できますこれはクラスター リソースの OR 依存関係と呼ばれます

以前のバージョンの SQL Server の場合SQL Server サービスを起動またはフェールオーバーするにはすべてのネットワーク インターフェイスが機能しそれらがすべて同じサブネットまたは VLAN に存在している必要がありました

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 25

注 マルチサブネット クラスタリングではクラスター ノード間のストレージ レベルのレプリケーションが自動的には有効になりませんマルチサブネットの FCI ソリューションでクラスター ノード間でデータのレプリケーションを行いストレージ フェールオーバーを調整するためにはサード パーティから提供される SAN ベースのソリューションを利用する必要があります

詳細については「SQL Server 2012 AlwaysOn マルチサイト フェールオーバー クラスター インスタンス」(httpsqlcatcomsqlcatbwhitepapersarchive20111222sql-server-2012-alwayson_3a00_-multisite-failover-cluster-instanceaspx) を参照してください

信頼性の高いエラー検出WSFC クラスター サービスではノードの各 SQL Server 2012 FCI に対してそれぞれ専用の管理者接続が維持されますこの接続では特殊なシステム ストアド プロシージャ sp_server_diagnostics を定期的に呼び出すことでシステムの正常性診断に役立つ豊富な情報を含む配列が返されます

SQL Server 2012 よりも前のバージョンではFCI の主な正常性検出メカニズムは単純な一方向のポーリング プロセスとして実装されていましたこのプロセスではWSFC クラスター サービスがインスタンスへの新しい SQL クライアント接続を定期的に作成しサーバー名を照会した後で接続を切断していました何かの理由で接続が失敗するかクエリがタイムアウトした場合フェールオーバーが開始されますが診断情報はほとんど提供されません

詳細については「sql_server_diagnostics」(httpmsdnmicrosoftcomja-jplibraryff878233(SQL110)aspx) を参照してください

現在ではFCI ストレージが次のように幅広い状況でサポートされています

向上したマウント ポイント サポートSQL Server のセットアップ時にクラスター ディスクのマウント ポイント設定が認識されるようになりました指定されたクラスター ディスクとそれにマウントされているすべてのディスクがセットアップ時に SQL Server リソースの依存関係に自動的に追加されます

ローカル ストレージの tempdbFCI ではローカルの非共有ストレージ (ローカル ソリッド ステート ドライブなど) に tempdb を配置できるようになったため共有 SAN での IO 動作の負荷を大幅に軽減できる可能性があります

SQL Server 2012 よりも前のバージョンの FCI ではtempdb が他のシステム データベースと共にフェールオーバーされる対称共有ストレージ ボリュームに配置される必要がありました

注 tempdb の場所はmaster データベースに格納されますこのデータベースはフェールオーバー時にノード間で移動されますtempdb は所有者候補となっているすべてのノード上で有効で対称的なファイル パス (ドライブフォルダーおよび権限) に配置されている必要がありますそうなっていない場合SQL Server サービスが一部のノードでは起動されません

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 26

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 27

データベースの可用性インフラストラクチャ レベルおよび SQL Server インスタンス レベルのコンポーネントで提供されている高可用性機能は互いに連係してホストされているデータベースを暗黙的に保護しますAlwaysOn ソリューションではデータベースのデータおよびデータ層アプリケーションを明示的に保護するために一連のオプションが追加で用意されています

AlwaysOn 可用性グループ可用性グループは1 つの SQL Server インスタンスから同じ WSFC クラスター内の別のインスタンスへと同時にフェールオーバーされるユーザー データベースのセットですクライアント アプリケーションは可用性グループ リスナーと呼ばれる WSFC 仮想ネットワーク名を通じて可用性グループのデータベースに接続できますこうすることで基になる SQL Server インスタンスが抽象化されます

AlwaysOn 可用性グループは正常性監視フェールオーバーの調整およびサーバー接続を Windows Server フェールオーバー クラスタリングに依存していますWSFC クラスター ノード上の SQL Server インスタンスでAlwaysOn サポートを有効にする必要がありますただしそのインスタンスが FCI である必要はなく対称共有ストレージを使用する必要もありません

詳細については「AlwaysOn 可用性グループの概要 」(httpmsdnmicrosoftcomja-jplibraryff877884(SQL110)aspx) を参照してください

可用性レプリカとロール可用性グループの各 SQL Server インスタンスは可用性グループのユーザー データベースのコピーを保持している可用性レプリカをホストしますSQL Server インスタンスは特定の可用性グループの可用性レプリカを 1 つだけホストすることができますが複数の可用性グループを同じインスタンスに置くことは可能ですSQL Server インスタンスは専用の (非共有) ストレージ ボリュームを持つ必要があります

可用性レプリカの 1 つがプライマリ レプリカの役割を果たしますこれは可用性グループ データベースのマスター コピーとして指定されていて読み取り書き込み操作を行うことができます

可用性グループには読み取り専用の可用性レプリカを最大 4 つまで追加で含めることができますこれらは個別にセカンダリ レプリカの役割を果たします

可用性レプリカの同期可用性グループの各データベースの内容はSQL Server によるログ ベースのデータ移動メカニズムを通じてプライマリ レプリカから各セカンダリ レプリカに同期されますそのため可用性グループのすべてのデータベースは完全復旧モデルに設定する必要があります

セカンダリ レプリカはプライマリ レプリカのデータベースとトランザクション ログの完全なバックアップと復元によって初期化されますプライマリ レプリカで新しいトランザクションがコミットされるとトランザクション ログの対応する部分がキャッシュされ

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 28

キューに入れられてネットワーク経由でセカンダリ レプリカ ノード上のデータベース ミラーリング エンドポイントに送信されます

この方法によりプライマリ レプリカのトランザクション ログの新しいエントリが各セカンダリ レプリカのトランザクション ログに追加されます各セカンダリ レプリカはログ シーケンス番号 (LSN) をプライマリ レプリカに定期的に送り返しトランザクション ログのどのくらいの量がリモート ディスクに書き込まれフラッシュされたかを示します

注 各可用性レプリカはそれぞれ独自に独立したトランザクション ログ再実行スレッドのセットを保持していますこれは可用性レプリカの同期プロセスには含まれませんセカンダリ レプリカ上ではログ再実行プロセスによって遅延時間が生じるためユーザーはそれをデータの待機時間として感じる場合があります

プライマリまたはセカンダリの役割を果たす他に各可用性レプリカには可用性モードもありますこのモードは次のようにCOMMIT TRAN ステートメントの実行時にトランザクション ログの書き込みの連係を制御します

同期コミット モードすべての同期コミット セカンダリ レプリカからそれぞれ独自のトランザクション ログの書き込み完了 (LSN 以降) が通知されるまでプライマリ レプリカはそのトランザクションをコミットしません可用性グループでは最大で 2 つの同期コミット セカンダリ レプリカを使用できます

同期コミット モードではプライマリ レプリカ データベースでトランザクションの遅延が生じますがコミットされたトランザクションに対するセカンダリ レプリカでのデータ損失を確実に防ぐことができます

非同期コミット モードプライマリ レプリカはローカル トランザクション ログの書き込み後にトランザクションをコミットしますが非同期コミット セカンダリ レプリカからトランザクション ログの書き込み完了通知を待つことはしません可用性グループでは最大で 4 つの非同期コミット セカンダリ レプリカを使用できますただし両方の種類を合わせて使用できるセカンダリ レプリカの合計は最大 4 つです

非同期コミット モードではプライマリ レプリカ データベースで生じるトランザクションの遅延が最小になりますがセカンダリ レプリカでのトランザクション ログが遅れる場合があるため一部のデータが失われる可能性があります

詳細については「可用性モード」(httpmsdnmicrosoftcomja-jplibraryff877931(SQL110)aspx) を参照してください

可用性レプリカ間のデータ フローの全体的な正常性は各レプリカの同期状態によって示されますセカンダリ レプリカにフェールオーバーしたときに同期状態が 同期済み または 同期中 になっていなければほとんどの場合はデータ損失が発生することになります

各セカンダリ レプリカの同期ストリームにはセッション タイムアウト プロパティがあります同期コミット モードに構成されているセカンダリ レプリカがセッション タイムアウトでエラーになると内部的には一時的に非同期としてマークされますこれはセカンダ

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 29

リ レプリカのエラーがプライマリ レプリカでのトランザクション ログの書き込みに影響しないようにするためですそのセカンダリ レプリカが正常に戻ってプライマリ レプリカの状態に追いつくと自動的に通常の同期コミット モード動作に戻されます

可用性グループのフェールオーバー可用性グループとそれに対応する仮想ネットワーク名はWSFC クラスターのリソースとして登録されます可用性グループはプライマリ レプリカの正常性とフェールオーバー ポリシーに基づいて可用性レプリカのレベルでフェールオーバーを行います

可用性グループのフェールオーバー ポリシーではsp_server_diagnostics システム ストアド プロシージャと FailureConditionLevel プロパティを使用して可用性グループに対して許容されるエラーの重大度のレベルを示しますこの同じメカニズムがFCI のフェールオーバー ポリシーにも使用されます

フェールオーバーが発生した場合は共有物理リソースの所有権を他のノードに移す代わりにWSFC を利用して他の SQL Server インスタンス上でセカンダリ レプリカを再構成しプライマリ レプリカの役割を引き継がせますその後可用性グループの仮想ネットワーク名リソースがそのインスタンスに転送されます関連する可用性レプリカへのすべてのクライアント接続がリセットされます

レプリカの現在の正常性同期状態および可用性モードに基づいて各レプリカには複合的な フェールオーバーの準備 状態が定義されますこの状態の値はデータ損失の可能性を示していますレプリカの正常性情報はAlwaysOn ダッシュボードまたは sysdm_hadr_availability_replica_states システム ビューで確認できます

各可用性レプリカにはフェールオーバー モードも構成されていますこのモードはフェールオーバーが指示された場合にレプリカの動作を制御します

自動フェールオーバー (データ損失なし)セカンダリ レプリカのトランザクション ログが既に書き込まれ同期されているのですべての AlwaysOn 構成の中でフェールオーバー時間が最短になりますプライマリ レプリカ上の開かれているトランザクションはロールバックされプライマリ レプリカの役割はユーザーによる操作なしでセカンダリ レプリカに転送されます

この場合プライマリ レプリカとセカンダリ レプリカの両方を自動フェールオーバー モードに設定し両方の可用性モードを同期コミットに設定する必要がありますレプリカ間の同期状態は同期済み である必要がありますまたWSFC クラスターは正常なクォーラム状態になっている必要があります

自動フェールオーバーはプライマリ レプリカまたはセカンダリ レプリカが FCI 上にある場合はサポートされませんこれは可用性グループと FCI のフェールオーバー間で競合状態が発生することを防ぐためです

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 30

手動フェールオーバーこの場合管理者はプライマリ レプリカの状態を評価してセカンダリ レプリカにフェールオーバーするかどうかを慎重に判断できます

可用性モードと同期状態に応じて次のような選択が可能です

o 計画的な手動フェールオーバー (データ損失なし)この種類のフェールオーバーを実行できるのはプライマリ レプリカとセカンダリ レプリカの両方が正常で同期済み 状態である場合だけですこれは機能的には自動フェールオーバーと同じです

o 強制手動フェールオーバー (データ損失の可能性を許容)これは対象のセカンダリ レプリカの可用性モードが非同期コミットである場合またはプライマリ レプリカに同期されない場合に使用できる唯一のフェールオーバー形式です

警告 このフェールオーバー オプションは災害復旧の状況に限って使用する必要がありますプライマリ レプリカが正常で使用可能である場合は関連する各レプリカの可用性モードを同期コミットに変更し計画的な手動フェールオーバーを実行してください

詳細については「可用性グループの強制手動フェールオーバーの実行」(httpmsdnmicrosoftcomja-jplibraryff877957(SQL110)aspx) を参照してください

フェールオーバー対象のプライマリ レプリカまたはセカンダリ レプリカが次の条件のいずれかに該当する場合は手動フェールオーバーを実行する必要があります

フェールオーバー モードが手動に設定されている 可用性モードが非同期コミットに設定されている レプリカが FCI 上にある

詳細については「フェールオーバーとフェールオーバー モード (AlwaysOn 可用性グルー プ ) 」(httpmsdnmicrosoftcomja-jplibraryhh213151(SQL110)aspx) を参照してください

注 フェールオーバー後新しいプライマリ レプリカが同期コミット モードに設定されていない場合セカンダリ レプリカの同期状態は 中断状態 になりますプライマリ レプリカが同期コミット モードに設定されるまでデータはセカンダリ レプリカに移動されません

可用性グループ リスナー可用性グループ リスナーはクライアントが可用性グループ内のデータベースにアクセスするために使用できる WSFC 仮想ネットワーク名 (VNN) ですVNN クラスター リソースはプライマリ レプリカをホストしている SQL Server インスタンスによって所有されます

仮想ネットワーク名は可用性グループ リスナーの作成時または構成の変更時にのみDNS に登録されます可用性グループ リスナーで定義されているすべての仮想 IP アドレスは同じ仮想ネットワーク名で DNS に登録されます

可用性グループ リスナーを使用する場合クライアント接続要求ではサーバーとして仮想ネットワーク名を指定してから可用性グループ内のデータベース名を指定する必要があり

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 31

ます既定ではこれによってプライマリ レプリカをホストしている SQL Server インスタンスに接続されます

実行時にはクライアントはローカルの DNS リゾルバーを使用して仮想ネットワーク名にマップされている IP アドレスと TCP ポートの一覧を取得しますクライアントは各 IP アドレスへの接続を成功するか接続タイムアウトに達するまで試し続けますMultiSubnetFailover パラメーターが true に設定されているとクライアントは複数の接続を同時に試行するのでクライアント フェールオーバーが大幅に速くなります

フェールオーバーが行われるとサーバー上でクライアント接続がリセットされ可用性グループ リスナーの所有権はプライマリ レプリカの役割と共に新しい SQL Server インスタンスに移動しVNN エンドポイントは新しいインスタンスの仮想 IP アドレスと TCP ポートにバインドされます

詳細については「可用性グループ リスナークライアント接続およびアプリケーションのフェールオーバー」(httpmsdnmicrosoftcomja-jplibraryhh213417(SQL110)aspx) を参照してください

アプリケーションの目的によるフィルター処理可用性グループ リスナーを使用して接続している場合アプリケーションは接続の目的がデータの読み取りと書き込みの両方なのか読み取り専用操作を実行するだけなのかを指定できます指定しない場合クライアントのアプリケーションの目的は既定で読み取りと書き込みになります

各可用性レプリカのプライマリ ロールとセカンダリ ロールについてはクライアントのアプリケーションの目的に対する接続レベルのフィルターとして接続アクセス プロパティも指定できます既定ではアプリケーションの目的と接続アクセスとの組み合わせが無効であると接続が拒否されますSQL Server は次のルールを使用してクライアントの接続要求を振り分ける必要があります

可用性レプリカがプライマリ ロールであり接続アクセスが次のいずれかである場合

すべてのアプリケーションの目的を許可するアプリケーションの目的でクライアント接続をフィルター処理しません

明示的な読み取り書き込みの目的だけを許可するクライアントが読み取り専用を指定している場合接続を拒否します

可用性レプリカがセカンダリ ロールであり接続アクセスが次のいずれかである場合

接続を許可しないすべての接続を拒否しますレプリカは災害復旧だけに使用されます

すべてのアプリケーションの目的を許可するアプリケーションの目的でクライアント接続をフィルター処理しません

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 32

読み取り専用の目的を許可するクライアントが読み取り専用を指定していない場合接続を拒否します

詳細については「可用性レプリカでの読み取り専用アクセスの構成」(httpmsdnmicrosoftcomja-jplibraryhh213002(SQL110)aspx) を参照してください

アプリケーションの目的の読み取り専用ルーティングAlwaysOn 可用性グループの特に優れた点はスタンバイ ハードウェア インフラストラクチャを災害復旧以外の目的に利用できることです1 つ以上のセカンダリ レプリカを読み取り専用でアクセスできるように構成するとプライマリ レプリカからかなりの量のワークロードを軽減できます

読み取り専用セカンダリ レプリカに回すように簡単に調整できるワークロードはレポートデータベース バックアップデータベース整合性チェックインデックスの断片化の分析データ パイプライン抽出運用サポート操作サポートアドホック クエリなどです

各可用性レプリカではSQL Server インスタンスのエンドポイントについて順次的な読み取り専用ルーティング リストを構成することもできますこのリストはレプリカがプライマリ ロールであるときに適用されますこのリストが存在する場合アプリケーションの目的が読み取り専用と指定されているクライアント接続要求はそのリスト内に記載されていて前述のアプリケーションの目的フィルターに適合する最初のセカンダリ レプリカにリダイレクトされます

注 読み取り専用ルーティングによるリダイレクトはプライマリ レプリカにバインドされている可用性グループ リスナーによって実行されますプライマリ レプリカがオフラインの場合クライアントのリダイレクトは機能しません

詳細については「可用性グループの読み取り専用ルーティングの構成 (SQL Server) 」(httpmsdnmicrosoftcomja-jplibraryhh710054(SQL110)aspx) を参照してください

可用性の向上 ndash データベースSQL Server 2012 ではデータベースの構成と機能に関してさまざまな点が強化されています

以下の機能は復旧時間の短縮に役立ちます

予測可能な復旧時間データベースごとにターゲット復旧時間の長さを設定することでバックグラウンドで実行される CHECKPOINT コマンドのスケジュールを制御できますこのコマンドは間接的なチェックポイントとして再起動時またはフェールオーバー時にトランザクション ログの復旧に必要となる時間の推定値に基づいて定期的に実行されますそれによってチェックポイントごとに IO 操作がほぼ均等に配分され復旧時間 (RTO) の予測可能性が高まります

SQL Server 2012 よりも前のバージョンではバックグラウンドの CHECKPOINT コマンドがトランザクションの量や負荷とは無関係に一定間隔で実行されていたので復旧時間を予測することはできませんでした

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 33

詳細については「データベース チェックポイント」(httpmsdnmicrosoftcomja-jplibraryms189573(SQL110)aspx) を参照してください

以下の向上点は計画的なダウンタイムが必要になる一般的な状況を減らすのに役立ちます

LOB 列のオンライン インデックス操作varbinary(max)varchar(max)nvarchar(max)または XML データ型の列が含まれているインデックスをオンラインで再構築または再構成できるようになりました

新しい NOT NULL 列のオンライン スキーマ修正既定値を使用して新しい NOT NULL 列を SQL Server 2012 データベース テーブルに追加する場合システム メタデータの更新にはスキーマ ロックだけが必要ですALTER TABLE ステートメントですべての行にデータを設定する必要はありません

いずれかの行で実際に変更またはインデックスの再作成が行われない限り列の既定値は物理的に格納されませんクエリでは列に実際の値が存在しない場合メタデータから既定値を返します

ストレージのサポート強化の例として次のようなものがあります

ページの自動修復ある種のストレージ サブシステム エラーが発生するとデータ ページが破損し読み取り不可能になる場合がありますAlwaysOn 可用性グループではそのような種類のエラーを検出し自動的に復旧できます復旧のために影響を受けたデータ ページの最新のコピーが別の可用性レプリカから非同期で取得され適用されます

以前のバージョンでもデータベース ミラーリングに同様の機能がありましたが新しい機能では複数のレプリカをサポートできるようになっています

詳細については「ページの自動修復」(httpmsdnmicrosoftcomja-jplibrarybb677167(SQL110)aspx) を参照してください

クライアント接続の推奨事項クライアント アプリケーションが Microsoft SQL Server 2012 AlwaysOn テクノロジの利点を十分に活用できるようにするには次のガイドラインに従います

AlwaysOn 対応のクライアント ライブラリ表形式のデータ ストリーム (TDS) プロトコル Version 74 以降をサポートしているクライアント ライブラリを使用しますこれによってAlwaysOn の機能に対応した適切な機能がクライアント側でも提供されますクライアント ライブラリの例としてはData Provider for SQL Server in NET Framework 402SQL Native Client 110 などがあります

接続プロバイダー プロパティ MultiSubnetFailover = True接続文字列にこのキーワードを使用することでクライアント ライブラリでは(複数のサブネットに IP アドレスを持つ) 可用性グループ リスナーまたは FCI に登録されているすべての IP アドレスに同時に接

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 34

続できるようになります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 35

接続プロバイダー プロパティ ApplicationIntent = ReadOnly必要に応じてプライマリ レプリカの読み取り専用ワークロードをセカンダリ レプリカに移管することができます

レガシ クライアントの接続タイムアウトレガシ クライアントのデータベース ライブラリには並列で接続を試行する機能が実装されていないため複数の IP アドレスがある場合にはTCP タイムアウトに達するか正常に接続できるまで1 つずつ順番に接続を試行します

複数の IP アドレスが存在する場合はタイムアウトと再試行が逐次的に繰り返される可能性に備えてレガシ クライアントの接続タイムアウトを調整する必要があります値は少なくとも 15 秒 + 21 秒 times セカンダリ レプリカ数にします

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 36

結論このホワイト ペーパーではSQL Server 2012 の AlwaysOn による高可用性災害復旧ソリューションを使用し予定されたダウンタイムや予定外のダウンタイムを短縮したりアプリケーションの可用性を最大限に高めたりデータを保護したりする方法について基本的なコンテキストを確立しました

高可用性データベース環境の計画管理測定に関連したビジネス上の目的と課題は多くの場合目標復旧時点 (RPO) と目標復旧時間 (RTO) という形で数量化して表すことができます

SQL Server 2012 AlwaysOn は組織が高可用性や災害復旧に関する一般的な状況に対処するための機能をRPO と RTO を適切に達成できることを念頭にインフラストラクチャ レベルデータ プラットフォーム レベルデータベース レベルのそれぞれで提供します

詳細情報

httpwwwmicrosoftcomja-jpsqlserver2012defaultaspx SQL Server Web サイト

httptechnetmicrosoftcomja-jpsqlserver SQL Server TechCenter

httpmsdnmicrosoftcomja-jpsqlserver SQL Server 開発者向け技術情報

このホワイト ペーパーはお役に立ちましたか フィードバックをお寄せください1 (役に立たなかった) ~ 5 (非常に役に立った) の 5 段階で評価してくださいまたその評価の理由もお知らせください以下に例を示します

評価が高い 例が適切図がわかりやすい説明が明快といったことが理由である 評価が低い 例が少ない図がわかりにくい説明があいまいといったことが理由で

ある

このようなフィードバックをお寄せいただくと今後のホワイト ペーパーの品質向上につながります

フィードバックの送信

loz Version 112012 年 2 月 21 日

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 37

  • 高可用性と災害復旧の概念
    • 高可用性について
      • 予定されたダウンタイムと予定外のダウンタイム
      • 段階的な可用性
        • ダウンタイムの定量化
          • 復旧目標
          • ROI または機会費用の正当化
          • 可用性の健全度の監視
          • 災害復旧の計画
            • 概要 Microsoft SQL Server 2012 での高可用性
              • SQL Server AlwaysOn
              • 計画的なダウンタイムの大幅な削減
              • アイドル状態のハードウェアをなくしてコスト効率とパフォーマンスを向上
              • 簡単な配置と管理
              • RPO と RTO の機能比較
                  • SQL Server AlwaysOn の保護レイヤー
                    • インフラストラクチャの可用性
                      • Windows オペレーティング システム
                        • Windows Server Core インストール オプション
                        • プライベート クラウド用の SQL Server の最適化
                          • Windows Server フェールオーバー クラスタリング
                            • WSFC ストレージ構成
                            • WSFC リソースの正常性の検出とフェールオーバー
                              • WSFC のクラスター検証ウィザード
                              • WSFC クォーラム モードと投票の構成
                                • クォーラムによるクラスター状態検出
                                • クォーラム モード
                                • 投票ノードと非投票ノード
                                • クォーラム投票に推奨される調整
                                  • WSFC の強制クォーラムによる災害復旧
                                    • SQL Server インスタンス レベルでの保護
                                      • 可用性の向上 ndash SQL Server インスタンス
                                      • AlwaysOn フェールオーバー クラスター インスタンス
                                        • FCI のフェールオーバー プロセス
                                        • FCI の強化
                                            • データベースの可用性
                                              • AlwaysOn 可用性グループ
                                                • 可用性レプリカとロール
                                                • 可用性レプリカの同期
                                                  • 可用性グループのフェールオーバー
                                                  • 可用性グループ リスナー
                                                    • アプリケーションの目的によるフィルター処理
                                                    • アプリケーションの目的の読み取り専用ルーティング
                                                      • 可用性の向上 ndash データベース
                                                        • クライアント接続の推奨事項
                                                          • 結論
Page 5: 高可用性と災害復旧の概念download.microsoft.com/download/6/B/E/6BE0C3F3-2991-4766... · Web view高可用性と災害復旧のソリューションのために最適なデータベース

結論31

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド v

高可用性と災害復旧の概念高可用性と災害復旧のソリューションのために最適なデータベース テクノロジを選択するにはRTO と RPO の計画管理測定に関連するビジネス上の利点課題および目的についてすべての関係者が理解を共有している必要があります

これらの概念を既に理解されている方は「概要 Microsoft SQL Server 2012 での高可用性 」のセクションから読み始めてもかまいません

高可用性についてソフトウェア アプリケーションやサービスで高可用性は最終的にはエンド ユーザーの体感や期待に基づいて計測されますダウンタイムが生じることでビジネスに与える影響には情報の損失物的損害生産性の低下機会費用契約上の損害信用の損失などさまざまな目に見える影響や目に見えない影響があります

高可用性ソリューションの主な目的はダウンタイムの影響を最小限に抑えるまたは少なくともある程度軽減することですそのための堅実な戦略の 1 つはビジネス プロセスやサービス レベル契約 (SLA) と技術的な機能やインフラストラクチャのコストとの間で最適なバランスを取ることです

プラットフォームの可用性の高さは契約に基づいてさらには顧客や関係者からの期待に応じて判断されますシステムの可用性は次の式で表すことができます

実際のアップタイム予定されたアップタイム

times100

可用性の値は業界ではよく 9 がいくつ並んでいるかによって表現されますそれによって年間の可能なアップタイムの長さ逆に言えばダウンタイムの長さがわかります

9 の個数 可用性の割合 年間合計ダウンタイム2 99 3 日15 時間3 999 8 時間45 分4 9999 52 分34 秒5 99999 5 分15 秒

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 1

予定されたダウンタイムと予定外のダウンタイムシステムの停止には予測または計画されたものと予定外の障害によって生じるものとがありますダウンタイムは適切に管理されているのならば否定的に考える必要はありません予測可能なダウンタイムには主に次の 2 種類があります

計画的なメンテナンスあらかじめ時間枠を予告したうえで計画されたメンテナンス タスクが行われますたとえばソフトウェア修正プログラムの適用ハードウェアのアップグレードパスワードの更新オフラインでのインデックス再作成データの読み込み災害復旧手順のリハーサルなどです操作手順を入念に準備することでダウンタイムを最小限に抑えデータ損失を防ぐことができます計画的なメンテナンス作業は予定外の停止によってさらに深刻な事態を招くのを防いだりそのような場合の被害を軽減したりするために必要な投資と考えることができます

予定外の停止システムインフラストラクチャまたはプロセスのレベルで障害が発生した場合ですそれらは予定外で制御できないものであったり予測可能ではあってもまず発生しないだろうと考えられたり影響は許容範囲だろうと考えられたりしたものです堅牢な高可用性ソリューションはそのような障害を検出し停止状態から自動的に復旧してフォールト トレランスを再確立することができます

高可用性に関するサービス レベル契約 (SLA) を規定するときには計画的なメンテナンス作業と予定外のダウンタイムの両方についてそれぞれ個別に主要業績評価指標 (KPI) を計算する必要がありますそうすることで計画的なメンテナンス作業への投資を予定外のダウンタイムを回避できた場合の利益と比較して検討することができます

段階的な可用性高可用性は100 か 0 かの問題として捉えるべきではありませんシステムが完全に停止するのではなく部分的に使用できるのであれば機能が制限されたりパフォーマンスが低下したりしてもエンド ユーザーに許容される場合もよくあります可用性には次のようにさまざまな段階があります

読み取りのみ可能および操作の遅延メンテナンス期間中や災害復旧の処理中にデータを取得することはできても新しいワークフローやバックグラウンド処理は一時的に中断されたりキューに入れられたりする場合があります

データ待機時間とアプリケーションの応答時間大量のワークロードバックログの処理プラットフォームの部分的な障害などが原因で限りのあるハードウェア リソースが負荷過剰になったりサイズ不足になったりする場合がありますこれはユーザー エクスペリエンスに影響し生産性は低下しますが作業は続けることができます

部分的一時的または差し迫った障害アプリケーション ロジックやハードウェア スタックが堅牢にできていればエラーが発生しても再試行や自己修正が行われますこのような場合エンド ユーザーはデータの待ち時間やアプリケーションの応答時間を長く感じることがあります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 2

部分的なエンド ツー エンドの障害予定された停止または予定外の停止がソリューション スタックの垂直的なレイヤー (インフラストラクチャプラットフォームおよびアプリケーション) 内でまたは水平的な各種の機能コンポーネント間で整然と行われる場合がありますユーザーは影響を受ける機能またはコンポーネントに応じて部分的に操作が成功したりパフォーマンスの低下を感じたりします

これらの状況はそれぞれ完全な停止に至るまでの可用性の一段階であると同時に災害復旧フェーズの中間段階とも考えることができそれぞれの状況がどの程度許容できるかを判断する必要があります

ダウンタイムの定量化ダウンタイムが発生した場合にはそれが予定されたものであったか予定外のものであったかにかかわらずシステムをオンラインに戻しデータ損失を最小限に抑えることがビジネスとして第一の目標となりますダウンタイムが 1 分経過するごとに直接または間接のコストが刻々と増えていきます予定外のダウンタイムが発生したのであれば時間と労力を適切に配分しながら停止の理由を調査し現在のシステム状態を把握し復旧手順を決定する必要があります

どのような場合でも事前に決めておいた時間になったらビジネス上の意思決定を行う必要があります停止の原因調査やメンテナンス操作を中止してシステムをオンラインに戻すかどうか必要に応じてフォールト トレランスを再構築するかどうかなどを判断します

復旧目標データの冗長性は高可用性データベース ソリューションの重要な要素の 1 つですプライマリ SQL Server インスタンスに対するトランザクションの操作は同期または非同期で1 つ以上のセカンダリ インスタンスにも適用されます障害が発生すると処理中のトランザクションはロールバックされるかまたはデータ伝達の遅れのためにセカンダリ インスタンスでは失われる可能性もあります

影響を見積もりながら機能の復旧にどれくらいの時間がかかるか最後のトランザクションを回復するためにどれくらいの遅延が生じるかという観点で次の復旧目標を設定します

目標復旧時間 (RTO)これはシステムが停止している時間の長さを意味します最初の目標は少なくとも読み取り専用の状態でシステムをオンラインに戻し障害について調査できるようにすることですただし最終的な目的は新しいトランザクションを実行できる状態まで完全にサービスを復元することです

目標復旧時点 (RPO)これは多くの場合どのくらいのデータ損失が許容されるかの基準として考えられます障害発生前に最後にコミットされたデータ トランザクションと障害発生後に復元された最新のデータとの時間差や遅延が示されます実際に失われるデータの量は障害発生時のシステムのワークロード障害の種類および使用されている高可用性ソリューションの種類に応じて異なります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 3

RTO と RPO の値はビジネスで許容できるダウンタイムとデータ損失の目安としてまた可用性が健全であるかどうかを監視する際の指標として使用します

ROI または機会費用の正当化ダウンタイムによって生じるビジネス上のコストには金銭的なコストだけでなく顧客からの信用も含まれますこれらのコストには時間の経過と共に発生するものもあれば停止期間中の特定の時点で発生するものもあります復旧時間とデータ復旧ポイントに基づいて停止のコストを見積もる以外にRTO および RPO の達成や停止自体の回避に必要なビジネス プロセスを考えたりインフラストラクチャへの投資を計算したりすることもできますこれらの投資の目的は次のようなものです

ダウンタイムの回避そもそも停止状態にならなければ復旧のコストをまとめて回避できますこの投資にはフォールト トレランスと冗長性のためのハードウェアまたはインフラストラクチャ各障害点を分離した分散ワークロード予防メンテナンスのための計画的なダウンタイムなどのコストが含まれます

復旧の自動化システム障害が発生した場合自動的で透過的な復元が行われればダウンタイムによるカスタマー エクスペリエンスへの影響を大幅に抑えることができます

リソース使用率セカンダリまたはスタンバイ インフラストラクチャは障害に備えてアイドル状態にしておくことができますまた読み取り専用ワークロードのために利用したり利用可能なすべてのハードウェアにワークロードを分散してシステム全体のパフォーマンスを向上させたりもできます

RTO と RPO の目標実現に必要な可用性と復旧のための投資は予測されるダウンタイムのコストと組み合わせて時間の関数として表現し正当化することができますこれによって実際の停止中にダウンタイムの経過時間に基づいてコスト ベースの判断を行うことができます

可用性の健全度の監視運用上の観点からは実際の停止中に関連するすべての変数を考慮しリアルタイムで ROI または機会費用を計算しようとするべきではありません実際にはRPO の期待値に代わるものとしてスタンバイ インスタンスのデータ遅延を監視します

停止の際根本的な原因の調査に費やす時間は制限し代わりに復旧環境の正常性の検証に集中する必要がありますその後詳細なシステム ログとデータのセカンダリ コピーに基づいて原因究明の分析を行います

災害復旧の計画

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 4

高可用性のための取り組みでは停止を回避するために何をするかが問題になりますが災害復旧のための取り組みでは停止後に高可用性を再構築するために何をするかが問題になります

できる限り実際に停止状態になる前に災害復旧の手順と役割分担を策定しておくようにします実行中の監視と警告に基づいて自動または手動のフェールオーバーと復旧計画を開始するかどうかは事前に決められた RTO および RPO のしきい値を考慮しつつ判断する必要があります災害復旧計画には次のようなものを含める必要があります

障害と復旧の適用範囲障害の場所や種類に応じてデータ センター レベルインフラストラクチャ レベルプラットフォーム レベルアプリケーション レベルワークロード レベルなどさまざまなレベルで修正措置が行われます

調査のための資料ベースラインと最新の監視の履歴システム警告イベント ログ診断クエリなどを関係者がいつでも利用できるようにしておく必要があります

依存関係の調整アプリケーション スタック内でまたは関係者間でシステムやビジネスの依存関係を把握しておきます

デシジョン ツリー繰り返し使用できるデシジョン ツリーを事前に定義して検証しておきますこれにはロールの役割障害の優先順位RPO と RTO を実現するためのフェールオーバーの条件所定の復旧手順などを含めます

検証停止状態からの復旧手順を実行した後でシステムが通常の状態に戻ったことを検証するために何をしなければならないかを整理しておきます

文書化新しい担当者でも最低限の補助があれば復旧計画を実行できるように上記のすべての項目を詳細で明確な一連の文書として記録しておきますこのような文書は一般的にラン ブック または クック ブック と呼ばれます

復旧のリハーサル定期的に災害復旧計画の演習を行いRTO のベースラインとなる期待値を確立しプライマリ サイトと各災害復旧サイトでの本番運用のローテーションを検討します

概要 Microsoft SQL Server 2012 での高可用性要求される RPO と RTO を実現するには主要アプリケーションの継続的なアップタイムを確保することと予定外のダウンタイムや予定されたダウンタイム時に重要なデータを保護することが必要ですSQL Server では低コストで簡単にこれらの目標を実現できる一連の機能が用意されています

新しい AlwaysOn の機能について既によくご存じの方は「SQL Server AlwaysOn の保護レイ ヤー」のセクションに進んでより詳細な説明をご覧ください

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 5

SQL Server AlwaysOnAlwaysOn は高い統合性柔軟性およびコスト効率を特徴とした新しい高可用性災害復旧ソリューションですデータ センター内およびデータ センター間でデータとハードウェアの冗長性を実現しアプリケーションのフェールオーバー時間を短縮することでミッション クリティカル アプリケーションの可用性を高めますAlwaysOn は構成の柔軟性が高く既存のハードウェア投資を再利用できます

AlwaysOn ソリューションではデータベース レベルとインスタンス レベルの両方で可用性を構成するためにSQL Server 2012 の次の 2 つの主要な機能を利用できます

AlwaysOn 可用性グループSQL Server 2012 の新機能の 1 つですデータベース ミラーリング機能の大幅な強化によってアプリケーション データベースの可用性の確保に役立ちますログに基づくデータの移動によってデータ保護を実現し共有ディスクを使用せずにデータ損失をゼロにすることができます

複数のデータベースから成る論理グループの単位で自動および手動のフェールオーバーを実行できますまた最大で 4 つのセカンダリ レプリカのサポート高速なアプリケーション フェールオーバー自動ページ修復など多彩なオプションが用意されています

AlwaysOn フェールオーバー クラスター インスタンス (FCI)SQL Server フェールオーバー クラスタリング機能を拡張し複数のサブネットにわたるマルチサイト クラスタリングをサポートしますこれにより異なるデータ センター間での SQL Server インスタンスのフェールオーバーが可能になりますインスタンスのフェールオーバーがより高速となり予測可能となることでアプリケーションをさらにすばやく復旧させることができます

計画的なダウンタイムの大幅な削減どの組織でもアプリケーション ダウンタイムの主な理由はオペレーティング システムへの修正プログラムの適用ハードウェア メンテナンスなどのための計画的なダウンタイムですこうしたダウンタイムがIT 環境の停止の約 80 を占めています

SQL Server 2012 は修正プログラムの要件を減らしより多くのメンテナンス操作をオンラインで実行できるようにすることで計画的なダウンタイムの大幅な削減に役立ちます

Windows Server CoreSQL Server 2012 ではWindows Server Core への配置がサポートされていますこれはWindows Server 2008 および Windows Server 2008 R2 の最小限の合理化された配置オプションですこれによりオペレーティング システムの修正プログラムの要件を最小限に抑え約 60 削減することで計画的なダウンタイムを減らすことができます

オンライン操作LOB のインデックスを再作成したり既定値を使用して列を追加したりするオンライン操作のサポート強化によってデータベース メンテナンス時のダウンタイムが削減されます

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 6

ローリング アップグレードと修正プログラムAlwaysOn 機能はインスタンスのローリング アップグレードと修正プログラムの適用を容易にしますこれによりアプリケーションのダウンタイムが大幅に削減されます

Hyper-V 上の SQL ServerHyper-V 環境でホストされている SQL Server インスタンスではライブ マイグレーションの利点を活用することでホスト間の仮想マシンの移行をダウンタイムなしで実行できます管理者はアプリケーションに影響を与えずにホスト上でメンテナンス操作を実行できます

アイドル状態のハードウェアをなくしてコスト効率とパフォーマンスを向上典型的な高可用性ソリューションでは高コストで冗長なパッシブ サーバーが配置されますAlwaysOn 可用性グループを使用するとパッシブまたはアイドルな状態のセカンダリ データベース レプリカを読み取り専用のワークロード (SQL Server Reporting Services のレポート クエリバックアップ操作など) に活用できますプライマリとセカンダリの両方のデータベース レプリカを同時に使用できるためサーバー ハードウェア間のリソースのバランスが良くなりすべてのワークロードのパフォーマンスが向上します

簡単な配置と管理構成ウィザードWindows PowerShell コマンド ライン インターフェイスのサポートダッシュボード動的管理ビュー (DMV)ポリシー ベースの管理System Center 統合などの機能によって可用性グループの配置と管理が簡単になります

RPO と RTO の機能比較目標復旧時点 (RPO) と目標復旧時間 (RTO) のビジネス目標は高可用性災害復旧ソリューションのために使用する SQL Server テクノロジを選択する際に重要な判断材料となります次の表はさまざまなソリューションで実現される結果を大まかに比較したものです

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 7

高可用性と災害復旧のSQL Server ソリューション

データ損失の可能性 (RPO)

可能な復旧時間 (RTO)

自動フェールオーバー

読み取り可能な

セカンダリ(1)

AlwaysOn 可用性グループ - 同期コミット ゼロ 数秒 (4) 0 - 2

AlwaysOn 可用性グループ - 非同期コミット 数秒 数分 times 0 - 4

AlwaysOn フェールオーバー クラスター インスタンス

該当せず(5) 数秒~ 数分

該当せず

データベース ミラーリング(2) - 高い安全性 (同期 + 監視)

ゼロ 数秒 該当せず

データベース ミラーリング(2) - 高パフォーマンス (非同期)

数秒(6) 数分(6) times 該当せず

ログ配布 数分(6) 数分~ 数時間(6)

times 復元中はなし

バックアップコピー復元(3) 数時間(6) 数時間~ 数日(6)

times 復元中はなし

(1) AlwaysOn 可用性グループで使用できるセカンダリ レプリカは種類に関係なく最大 4 つです(2) この機能は将来のバージョンの Microsoft SQL Server では削除される予定です代わりに AlwaysOn 可用性グループを使用

してください(3) バックアップコピー復元は障害復旧には適していますが高可用性には適していません(4) 可用性グループの自動フェールオーバーはフェールオーバー クラスター インスタンスとの間ではサポートされていま

せん(5) FCI 自体にはデータ保護機能はありませんデータ損失はストレージ システムの実装に依存します(6) ワークロードデータ量およびフェールオーバーの手順に大きく依存します

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 8

SQL Server AlwaysOn の保護レイヤーSQL Server AlwaysOn ソリューションではインフラストラクチャとアプリケーション コンポーネントのいくつかの論理レイヤーおよび物理レイヤーにまたがってフォールト トレランスと災害復旧を実現できます従来はさまざまな関係者と役割ごとに業務と責任を振り分けそれぞれが主に自分のソリューションのレイヤー部分だけに関心を持つことが一般的でした

このセクションではこれらのレイヤーのそれぞれについて詳細に説明しデザインに関する議論や実装についての意思決定に役立つ論点やガイダンスを提示します

SQL Server AlwaysOn ソリューションをうまく利用するには以下のレイヤーについて理解しそれぞれを協調させる必要があります

インフラストラクチャ レベルサーバー レベルのフォールト トレランスとノード内のネットワーク通信が含まれますWindows Server フェールオーバー クラスタリング (WSFC) 機能を使用して稼働状態の監視とフェールオーバーの調整を行います

SQL Server インスタンス レベルSQL Server AlwaysOn フェールオーバー クラスター インスタンス (FCI) はWSFC クラスター内の複数のサーバー ノードにまたがってインストールされる SQL Server インスタンスであり各サーバー ノードへのフェールオーバーが可能ですFCI をホストするノードは堅牢な対称型共有ストレージ (SAN または SMB) に接続されます

データベース レベル可用性グループは共にフェールオーバーされるユーザー データベースのセットです可用性グループは1 つのプライマリ レプリカと最大 4 つのセカンダリ レプリカで構成されます各レプリカはWSFC クラスターの別々のノードにある SQL Server インスタンス (FCI または非 FCI) によってホストされます

クライアント接続データベース クライアント アプリケーションは指定した SQL Server インスタンス ネットワーク名に直接接続できますまたは可用性グループ リスナーにバインドされている仮想ネットワーク名 (VNN) に接続することもできますVNN はWSFC クラスターおよび可用性グループのトポロジを抽象化するものであり接続要求を適切な SQL Server インスタンスとデータベース レプリカに論理的にリダイレクトします

代表的な AlwaysOn ソリューションの論理トポロジは次の図のようになります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 9

インフラストラクチャの可用性AlwaysOn 可用性グループと AlwaysOn フェールオーバー クラスター インスタンスのどちらもWindows Server オペレーティング システムと WSFC をプラットフォーム テクノロジとして利用します今まで以上にMicrosoft SQL Server データベース管理者はこれらのテクノロジについて十分に理解することが必要です

Windows オペレーティング システムSQL Server は基礎的なインフラストラクチャとネットワークストレージセキュリティ更新プログラムおよび監視のサービスを Windows プラットフォームに依存しています

SQL Server 2012 の各エディションはWindows Server 2008 R2 オペレーティング システムの対応するエディション (Windows Server 2008 R2 Standard オペレーティング システムWindows Server 2008 R2 Enterprise オペレーティング システムWindows Server 2008 R2 Datacenter オペレーティング システムなど) の機能や能力をさらに進歩させて構築されています

詳細については「SQL Server 2012 のインストールに必要なハードウェアおよびソフトウェ ア」(httpmsdnmicrosoftcomja-jplibraryms143506(SQL110)aspx) を参照してください

Windows Server Core インストール オプションSQL Server 2012 では高可用性のための主要な機能の 1 つとしてWindows Server 2008 以降で Server Core インストール オプションによる配置をサポートしていますServer Core インストール オプションでは制限された機能と非常に限定的な GUI アプリケーション サポートで特定のサーバー ロールを実行するための最低限の環境が提供されます既定では必要なサービスとコマンド プロンプト環境のみが有効です

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 10

この操作モードではオペレーティング システムへの攻撃の危険性とシステム オーバーヘッドが低下し継続的なメンテナンスサービス修正プログラムなどの要件が大幅に削減されます

SQL Server 2012 を Windows Server Core に配置する場合の主な注意点はSQL Server およびオペレーティング システムのすべての配置構成管理およびメンテナンスをWindows PowerShell などのスクリプト環境やコマンド ラインまたはリモート ツールを使用して行う必要があることです

プライベート クラウド用の SQL Server の最適化高可用性と災害復旧はプライベート クラウド環境ではさらに重要になってきていますプライベート クラウドに SQL Server を配置すればコンピューターネットワークおよびストレージのリソースが効率的に使用され物理的な場所や資本と運営費用の両方の削減に役立ちます配置の統合リソースの効率的なスケーリングオンデマンドでのリソースの配置が容易になり制御の自由度が失われることもありません

SQL Server ではHyper-V のホストとゲストの両方のシステムに対して Windows Server フェールオーバー クラスタリングをサポートするほかライブ マイグレーションもサポートしていますこれは意識されるほどのダウンタイムを生じることなくホスト間で仮想マシンを移動できる機能ですライブ マイグレーションはゲスト クラスタリングとも協調して動作します

詳細については「プライベート クラウド コンピューティング - プライベート クラウド用の SQL Server の最適化 」(httpwwwmicrosoftcomSqlServerPrivateCloud) を参照してください

Windows Server フェールオーバー クラスタリングWindows Server フェールオーバー クラスタリング (WSFC) はMicrosoft SQL Server などのサーバー アプリケーションに対して高可用性と災害復旧をサポートするインフラストラクチャ機能を提供します

WSFC クラスター ノードまたはサービスに障害が発生するとそのノードでホストされていたサービスまたはリソースは自動的にまたは手動で他の可用性ノードに転送されますこのプロセスをフェールオーバーと呼びますAlwaysOn ソリューションではこのプロセスが FCI と可用性グループの両方に適用されます

WSFC クラスター内の各ノードは連携して次のような機能を提供します

分散メタデータと通知WSFC サービスとホストされるアプリケーション メタデータはクラスター内の各ノードで維持されますこのメタデータにはホストされるアプリケーションの設定に加えWSFC の構成と状態が含まれます1 つのノードでのメタデータまたは状態の変更はクラスター内の他のノードに自動的に反映されます

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 11

リソース管理クラスター内の各ノードは直接アタッチされたストレージ (DAS)ネットワーク インターフェイス共有ディスク ストレージへのアクセスなど物理的リソースを提供する場合がありますSQL Server などホストされるアプリケーション自体もクラスター リソースとして登録されますまた他のリソースに対するスタートアップと正常性にかかわる依存関係を構成できます

正常性の監視ノード間の正常性およびプライマリ ノードの正常性はハートビート ネットワーク通信とリソースの監視を組み合わせることで検出されますクラスターの全体的な正常性状態はクラスター内のノードのクォーラムの投票によって決定されます

フェールオーバーの調整各リソースはプライマリ ノードでホストされるように構成されそれぞれ自動的にまたは手動で 1 つ以上のセカンダリ ノードに転送されます正常性ベースのフェールオーバー ポリシーによってノード間でのリソース所有権の自動転送が制御されますフェールオーバーが発生すると適切に対応できるように各ノードおよびホストされているアプリケーションに通知されます

詳細については「Windows Server | フェールオーバー クラスタリングとノード バランシン グ」(httpwwwmicrosoftcomwindowsserver2008enusfailover-clustering-mainaspx) を参照してください

注 データベース管理者が WSFC クラスターおよびクォーラム管理の内部動作を理解しておくことが非常に重要になりましたAlwaysOn の正常性の監視管理および障害復旧の手順はすべてが本質的に WSFC 構成と関連しています

WSFC ストレージ構成Windows Server フェールオーバー クラスタリングでは接続されているストレージ デバイスディスク ボリュームおよびファイル システムの管理をクラスター内の各ノードに依存していますWSFC はストレージ サブシステムが非常に堅牢であると想定しているためノードに接続されたストレージ デバイスが使用できない場合はクラスター ノードが障害状態であると見なします

書き込みベースの操作ではディスク ボリュームは SCSI-3 の永続的な予約を使用して一度に 1 つのクラスター ノードに論理的に接続されますノードで障害が発生した場合にはストレージ サブシステムの機能と構成に応じてディスク ボリュームの論理的所有権をクラスター内の別のノードに移すことができます

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 12

SQL Server AlwaysOn ソリューションでは次のような WSFC ストレージ構成の組み合わせを利用しその制限も受けます

直接接続とリモートストレージ デバイスはサーバーに物理的に直接接続されるかまたはネットワークやホスト バス アダプター (HBA) を介してリモートのストレージ デバイスを使用しますリモート ストレージのテクノロジにはiSCSI やファイバー チャネルなどのストレージ エリア ネットワーク (SAN) ベースのソリューションとサーバー メッセージ ブロック (SMB) というファイル共有ベースのソリューションがあります

対称と非対称ストレージ デバイスの論理ディスク ボリューム構成とファイル パスがクラスターの各ノードでまったく同じである場合それらのストレージ デバイスは対称的であると見なされます基になるディスク ボリュームの物理的な実装と容量は異なっていてもかまいません

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 13

専用と共有専用ストレージは使用するために予約されクラスター内の 1 つのノードに割り当てられます共有ストレージはクラスターの複数のノードからアクセスできます共有ストレージ デバイスが SCSI-3 プロトコルに準拠していればそれらの制御と所有権をノード間で移動させることができますWSFC ではファイル共有のためにクラスター共有ボリュームを同時に複数のノードでホスティングできますただしSQL Server は複数のノードからの共有ボリュームへの同時アクセスをサポートしていません

注 SQL Server FCI では対称共有ストレージを使用してインスタンスのすべてのノード所有者 (およびその候補) からアクセスできるようにする必要がありますただしAlwaysOn 可用性グループの導入に伴いそれぞれが独自に専用のローカルまたはリモート ストレージを持つ非 FCI の SQL Server インスタンスを WSFC クラスターに配置できるようになりました

WSFC リソースの正常性の検出とフェールオーバーWSFC クラスター ノード内の各リソースの状態と正常性は定期的にまたは要求に応じて報告されますクラスター リソースの障害を示す状況としてはたとえば電源障害ディスクまたはメモリのエラーネットワーク通信エラー構成エラー応答しないサービスなどがあります

ネットワークストレージサービスなどの WSFC クラスター リソースは互いに依存するように構成できますあるリソースの累積的な正常性は依存関係を持つリソースの正常性を連続的にたどってゆくことで決定されます

AlwaysOn 可用性グループでは可用性グループと可用性グループ リスナーがそれぞれ WSFC クラスター リソースとして登録されますAlwaysOn フェールオーバー クラスター インスタンスではSQL Server サービスおよび SQL Server エージェント サービスが WSFC クラスター リソースとして登録されどちらもインスタンスの仮想ネットワーク名リソースに依存します

WSFC クラスター リソースで設定された数のエラーまたは障害が一定期間内に発生した場合構成されたフェールオーバー ポリシーによってクラスター サービスは次のいずれかの操作を行います

現在のノードでのリソースの再起動 リソースをオフライン化 リソースとその依存関係を別のノードへ自動的にフェールオーバー

注 WSFC クラスター リソースの正常性の検出は個々のノードの正常性やクラスターの全体的な正常性には直接影響しません

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 14

WSFC のクラスター検証ウィザードクラスター検証ウィザードはWindows Server 2008 および Windows Server 2008 R2 のフェールオーバー クラスタリングに統合されている機能ですこれはSQL Server AlwaysOn ソリューションの配置前 にクリーンで正常な安定した WSFC 環境が存在していることをデータベース管理者が確認するために使用する主要なツールです

クラスター検証ウィザードではクラスターのノードとして使用するサーバーの集合または既存のクラスターを対象にして一連のテストを実行できますこのプロセスでは基になるハードウェアおよびソフトウェアが個別に直接テストされWSFC クラスターが特定の構成でどの程度良好にサポートされるかについての正確な評価が得られます

この検証プロセスでは各ノードに対して次のようなカテゴリの一連のテストとデータ収集が実施されます

一覧作成BIOS のバージョン環境レベルホスト バス アダプターRAMオペレーティング システムのバージョンデバイスサービスドライバーなどの情報です

ネットワークNIC のバインド順序ネットワーク通信IP 構成ファイアウォール構成などの情報ですすべての NIC でノード間の通信が検証されます

ストレージディスクドライブの容量アクセス待機時間ファイル システムなどの情報ですSCSI コマンドディスク フェールオーバー機能対称的または非対称的なストレージ構成が検証されます

システム構成Active Directory の構成ドライバーの登録メモリ ダンプの設定必要なオペレーティング システムの機能とサービス互換性のあるプロセッサ アーキテクチャおよびサービス パックと Windows Software Update のレベルが検証されます

これらの検証テストの結果を利用してクラスターの構成を微調整したり構成を追跡したりダウンタイムを引き起こすかもしれない潜在的なクラスター構成の問題を特定したりできますテスト結果のレポートは後で参照できるようにHTML ドキュメントとして保存できます

これらのテストはWSFC の構成に何か変更を加える前と加えた後に実行するほかSQL Server をインストールする前および災害復旧プロセスの一環として実行する必要がありますマイクロソフトで特定の WSFC クラスター構成がサポートされるためにはマイクロソフト カスタマー サポート サービス (CSS) にクラスター検証レポートを提出する必要があります

詳細については「フェールオーバー クラスター ステップ バイ ステップ ガイド フェール オーバー クラスター用ハードウェアを検証する」(httptechnetmicrosoftcomja-jplibrarycc732035(WS10)aspx) を参照してください

注 ハードウェアベースの地理的クラスタリング ストレージ ソリューションの場合やAlwaysOn 可用性グループの場合のようにクラスター構成に非対称ストレージがあるとクラスター検証ウィザードでストレージの検証手順を成功させるために多数の修正プログラムを適用しなければならないことがあります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 15

詳細については「AlwaysOn 可用性グループの前提条件制限事項および推奨事項 」(httpmsdnmicrosoftcomja-jplibraryff878487(SQL110)aspxSystemReqsForAOAG) を参照してください

WSFC クォーラム モードと投票の構成WSFC ではクォーラム ベースのアプローチを使用してクラスターの全体的な正常性を監視することでノード レベルのフォールト トレランスを最大限に高めますWSFC のクォーラム モードおよびノード投票構成の基本について理解することはAlwaysOn 高可用性災害復旧ソリューションの設計運用トラブルシューティングのために非常に重要です

クォーラムによるクラスター状態検出WSFC クラスター内の各ノードは定期的なハートビート通信に参加しノードの正常性状態を他のノードと共有します応答しないノードはエラー状態であると見なされます

クォーラム ノード セットとはWSFC クラスター内の投票ノードおよび監視サーバーのうち過半数を占めるノードの集合ですWSFC クラスターの全体的な正常性と状態は定期的なクォーラムの投票 によって決定されますクォーラムはクラスターが正常でありノード レベルのフォールト トレランスを提供できることを意味します

クォーラムに達していない状態はクラスターが正常でないことを示しますプライマリ ノードのフェールオーバー先として正常なセカンダリ ノードを使用できるようにするにはWSFC クラスターの全体的な正常性が維持されている必要があります投票数がクォーラムに達しなかった場合にはWSFC クラスター全体が予防策としてオフラインに設定されますその場合クラスターに登録されている SQL Server インスタンスがすべて停止します

注 クォーラム障害のために WSFC クラスターがオフラインに設定されるとオンラインに戻すために手動の操作が必要です詳細については後の「WSFC の強制クォーラムによる災害 復旧」のセクションを参照してください

クォーラム モードクォーラム モードはWSFC クラスター レベルで構成されクォーラム投票の方法を指定しますフェールオーバー クラスター マネージャー ユーティリティではクラスター内のノード数に基づいて推奨するクォーラム モードが提示されます

次のいずれかのクォーラム モードによって投票クォーラムの構成が決定されます

ノード マジョリティクラスターが正常であるためにはクラスター内の半分以上の投票ノードが肯定的に投票する必要があります

ノードおよびファイル共有マジョリティノード マジョリティ クォーラム モードに似ていますがリモート ファイル共有も投票監視サーバーとして構成され各ノードからそのリモート ファイル共有への接続も肯定的な投票としてカウントされますクラスターが正常であるためには投票の過半数が肯定的である必要があります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 16

推奨事項として監視ファイル共有はクラスター内のノードに存在せずクラスター内のすべてのノードから見える必要があります

ノードおよびディスク マジョリティノード マジョリティ クォーラム モードに似ていますが共有ディスク クラスター リソースも投票監視サーバーとして使用され各ノードからその共有ディスクへの接続も肯定的な投票としてカウントされますクラスターが正常であるためには投票の過半数が肯定的である必要があります

ディスクのみ共有ディスク クラスター リソースが監視サーバーとして使用され各ノードからその共有ディスクへの接続が肯定的な投票としてカウントされます

詳細については「フェールオーバー クラスター ステップ バイ ステップ ガイド フェール オーバー クラスターのクォーラムの構成」(httptechnetmicrosoftcomja-jplibrarycc770620(WS10)aspx) で説明されています

注 クラスターの各ノードが同じ共有ストレージ クォーラム監視ディスクを使用するように構成されていない限り通常投票ノード数が奇数の場合は ノード マジョリティ クォーラム モード投票ノード数が偶数の場合は ノードおよびファイル共有マジョリティ クォーラム モードを使用してください

投票ノードと非投票ノード既定ではWSFC クラスター内の各ノードがクラスター クォーラムのメンバーとなります各ノードファイル共有監視サーバーディスク監視サーバーがクラスターの全体的な正常性の決定においてそれぞれ 1 票ずつの投票権を持ちますクォーラムに関するここまでの説明ではクラスター状態について投票する WSFC クラスター ノードのセットを投票ノードとして注意深く限定してきました状況によってはすべてのノードに投票権を与えることが適切でない場合もあります

WSFC クラスターの各ノードはクォーラムを確立しようとし続けますクラスター内の個々のノードはクラスターが全体として正常であるか正常でないかを明確に決定することはできません特定の時点で各ノードからは他のノードの一部がオフラインフェールオーバー中またはネットワーク通信のエラーにより応答不能に見えますクォーラム投票の主な機能はWSFC クラスターの各ノードの見かけの状態が本当にそれらのノードの実際の状態であるかどうかを判断することです

ディスクのみ 以外のすべてのクォーラム モデルではクォーラム投票の有効性はクラスター内のすべての投票ノード間に信頼できる通信が確立されていることに依存しますすべてのノードが同じ物理サブネット上にある場合はクォーラムの投票を信頼できます

しかしクォーラム投票で他のサブネット上のノードが応答しないように見えても実際はオンラインで正常である場合はサブネット間のネットワーク通信のエラーが原因であることが考えられますクラスター トポロジクォーラム モードおよびフェールオーバー ポリシーの構成によってはネットワーク通信エラーによって投票ノードのセット (またはサブセット) が実質的に複数作成されてしまう可能性があります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 17

投票ノードの複数のサブセットがそれぞれ独自のクォーラムを構築できる状態はスプリット ブレイン と呼ばれますこの状態では各クォーラム上のノードが別々の動作をし相互に矛盾する可能性があります

注 スプリット ブレイン の状況が発生するのはシステム管理者が強制クォーラム動作を手動で実行するかまたは非常にまれですが強制的な手動フェールオーバーを実行することでクォーラム ノード セットが明示的に細分化された場合のみです詳細については後の「WSFC の強制クォーラムによる災害復旧 」のセクションを参照してください

クォーラム構成を単純化し稼働時間を長くする目的でノードの投票がクォーラムにカウントされないように各ノードの NodeWeight 設定 (値 0 または 1) を調整することができます

クォーラム投票に推奨される調整以下のガイドラインをこの順番に適用することでクラスターに対して推奨されるクォーラム投票の構成を判断できます

1 既定は投票権なしにします明確な理由がない限り各ノードには投票権を与えないと考えてください

2 すべてのプライマリ ノードに投票権を与えますAlwaysOn 可用性グループのプライマリ レプリカをホストする各ノードおよび AlwaysOn フェールオーバー クラスター インスタンスの優先所有者である各ノードは投票権を持つ必要があります

3 可能性のある自動フェールオーバーの所有者を含めます自動フェールオーバーの結果としてプライマリ レプリカまたは FCI をホストする可能性がある各ノードは投票を持つ必要があります

4 セカンダリ サイト ノードを除外します通常はセカンダリ災害復旧サイトに存在するノードには投票を提供しないでくださいプライマリ サイトに問題がない場合クラスターをオフラインにする判断にセカンダリ サイト内のノードが影響を与えることは避ける必要があります

5 投票数を奇数にします必要に応じて監視ファイル共有監視ノード (SQL Server インスタンスの有無は問いません)または監視ディスクをクラスターに追加してクォーラム モードを調整しクォーラムの投票結果が同数に分かれるのを防ぎます

6 フェールオーバー後の投票割り当てを再評価します正常なクォーラムをサポートしないクラスター構成にフェールオーバーすることは避けます

ノードの投票の調整の詳細については「クラスター クォーラムの NodeWeight の設定の構 成」(httpmsdnmicrosoftcomja-jplibraryhh270281(SQL110)aspx) を参照してください

ファイル共有監視サーバーの投票は調整できませんその投票を含めるか除外するかを決めるには別のクォーラム モードを選択する必要があります

注 SQL Server ではWSFC クラスター構成およびノード クォーラム投票に関する設定を管理するためにいくつかのシステム動的管理ビュー (DMV) が公開されています

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 18

詳細については「可用性グループの監視」(httpmsdnmicrosoftcomja-jplibraryff878305(SQL110)aspx) を参照してください

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 19

WSFC の強制クォーラムによる災害復旧通常クォーラム障害は災害発生時または WSFC クラスター内の複数のノード間で永続的な通信障害が生じた場合に発生しますクォーラム障害が発生するとクラスターがノード レベルのフォールト トレランスを確保できなくなるためその WSFC クラスター内の SQL Server インスタンス可用性グループおよびクラスター化されているサービスがすべてオフラインになりますクォーラム障害はWSFC クラスター内の正常な投票ノード数がクォーラム モデルを満たさなくなったことを意味しますノードによってまったく機能しなくなるものもあればWSFC サービスがシャットダウンしただけでクォーラムと通信できなくなったことを除けば正常なものもあります

WSFC クラスターをオンラインに戻すには既存の構成の少なくとも 1 つのノードでクォーラム障害の根本的な原因を解決する必要があります災害発生時には使用できる代替ハードウェアの再構成や識別が必要となる場合もあります現状のクラスター トポロジを反映するためにWSFC クラスターの残りのノードを再構成する場合もあります

WSFC クラスター ノードで強制クォーラムの手順を使用するとクラスターがオフラインになる原因となった安全管理機能を無効にすることができますこれによりクラスターでのクォーラム投票のチェックが実質的に中断されクラスター内の任意のノードで WSFC クラスター リソースと SQL Server をオンラインに戻すことができます

このような災害復旧プロセスの手順を次に示します

1) 障害の範囲を特定します応答しない可用性グループや SQL Server インスタンス災害後に使用できるオンラインのクラスター ノードをそれぞれ特定しWindows イベント ログと SQL Server システム ログを確認します必要に応じて後で分析できるように解析データやシステム ログを保存しておきます

2) 1 つのノードで強制クォーラムを使用して WSFC クラスターを起動します他の点では正常なノードで強制クォーラムの手順に従ってクラスターを手動で強制的にオンラインにしますこの場合データ損失の可能性を最小限に抑えるには可用性グループのプライマリ レプリカを最後にホストしていたノードを選択します

詳細については「クォーラムを使用せずに WSFC クラスターを強制的に起動する 」(httpmsdnmicrosoftcomja-jplibraryhh270275(v=SQL110)aspx) を参照してください

注 強制クォーラムの設定を使用するとWSFC クラスターの投票が過半数に達することで通常のクォーラム モードの動作に自動的に切り替わるまでクラスター全体のクォーラムのチェックがブロックされます

3) 他の点では正常な各ノードでWSFC サービスを 1 つずつ通常の方法で起動します他のノードでクラスター サービスを起動するときは強制クォーラム オプションを指定する必要はありません

各ノードの WSFC サービスがオンラインに戻ると他の正常なノードとの間でネゴシエーションが行われ新しいクラスター構成の状態が同期されますクラスターの最新の状態

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 20

を判断するときに競合状態の発生を避けるためこの手順は必ず一度に 1 つのノードで行うようにしてください

注 起動した各ノードが新たにオンラインにした他のノードと通信できることを確認しますそうしないと複数のクォーラム ノード セットが作成されて スプリット ブレイン の状況に陥るおそれがあります手順 1 の結果に問題がなければこの現象は発生しません

4) 新しいクォーラム モードとノードの投票の構成を適用します強制クォーラムの手順によってクラスターのすべてのノードを正常に再起動させクォーラムのエラーの根本原因を修正した場合クォーラム モードとノードの投票を元の構成から変更する必要はありません

それ以外の場合は新たに復元されたクラスター ノードと可用性レプリカのトポロジを評価し必要に応じてクォーラム モードと各ノードの投票割り当てを変更します未復旧のノード上ではWSFC クラスター サービスをオフラインにするかノードの投票をゼロに設定します

注 この時点でクラスター内のノードと SQL Server インスタンスが通常の動作に戻っているように見えることがありますがまだ正常なクォーラムには達していない可能性がありますフェールオーバー クラスター マネージャーやSQL Server Management Studio の AlwaysOn ダッシュボードまたは適切な DMV を使用して正常なクォーラムが復元されたことを確認してください

5) 必要に応じて可用性グループのデータベース レプリカを復旧します一部のデータベースはSQL Server の通常の起動処理の一環として自動的に復旧されオンラインに戻ることがありますそれ以外のデータベースの復旧には追加で手動の手順を実行する必要があります

可用性グループ レプリカのデータ損失の可能性や復旧にかかる時間を最小限に抑えるにはできればプライマリ レプリカ同期セカンダリ レプリカ非同期セカンダリ レプリカの順にオンラインに戻します

6) 障害が発生したコンポーネントを修復するか交換しクラスターを再検証しますこれで最初の災害およびクォーラム障害から復旧できたので障害が発生したノードを修復するか交換しWSFC と AlwaysOn の関連する構成を適切に調整する必要がありますこれには可用性グループ レプリカの削除クラスターからのノードの削除ノードへのソフトウェアの再インストールなどが含まれます

注 停止したすべての可用性レプリカを修復または削除する必要がありますSQL Server 2012 では最も古い可用性レプリカを最後に認識した時点以降トランザクション ログが切り捨てられません停止したレプリカを修復するか可用性グループから削除しないとトランザクション ログが大きくなり他のレプリカのトランザクション ログの領域が不足する可能性があります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 21

7) 必要に応じて手順 4 を繰り返しますこの目的は正常な動作を行うために適切なレベルのフォールト トレランスと高可用性を再確立することです

8) RPORTO 分析を実行しますSQL Server のシステム ログデータベースのタイムスタンプおよび Windows のイベント ログを分析して障害の根本的な原因を特定し実際の復旧ポイントと復旧時間を文書に記録します

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 22

SQL Server インスタンス レベルでの保護次に説明する AlwaysOn ソリューションの保護レイヤーはデータ プラットフォームそれ自体ですMicrosoft SQL Server 2012 とその Windows Server インフラストラクチャ コンポーネントとの統合によって次のような機能が提供されます

可用性の向上 ndash SQL Server インスタンスこれは SQL Server 2012 の新しいインスタンス レベルの機能でAlwaysOn フェールオーバー クラスター インスタンスとAlwaysOn 可用性グループをホストするスタンドアロン インスタンスの両方の可用性を強化します

以下の強化点によってフェールオーバーの管理およびトラブルシューティングが向上します

柔軟なフェールオーバー ポリシー信頼性の高いエラー検出に使用される新しいシステム ストアド プロシージャ sp_server_diagnostics の出力でSQL Server インスタンスに影響するエラーの重大度が FailureConditionLevel プロパティによって示されますWSFC のフェールオーバー ポリシーによってこの値が SQL Server インスタンスにどのように影響するかを制御できますある程度エラーを許容する設定からSQL Server の内部コンポーネント エラーを重点的に検出する設定までさまざまに構成できます

特定のレベルのエラーによってフェールオーバーを開始するように構成できますエラーのレベルにはサーバーの停止サーバーの応答停止重大なエラー中程度のエラーなんらかの条件付きエラーなどがありますFailureConditionLevel プロパティはFCI または可用性グループのフェールオーバー ポリシーのために使用できます

SQL Server 2012 よりも前のバージョンではフェールオーバーを制御できるようなエラー状態の区分がなくすべてのサービス レベルのエラーによってフェールオーバーが発生しました

詳細については「フェールオーバー クラスター インスタンスのフェールオーバー ポリシー」(httpmsdnmicrosoftcomja-jplibraryff878664(SQL110)aspx) を参照してください

強化されたインストルメンテーションとログAlwaysOn 専用のシステム構成ビューDMVパフォーマンス カウンターに加えて拡張されたイベント正常性セッションによってAlwaysOn 配置のトラブルシューティングチューニングおよび監視に必要な情報を取得して表示できますこれらの多くはSQL Server ポリシー管理の新しいファセットおよびポリシーを通じて公開されます

詳細については「AlwaysOn 可用性グループの動的管理ビューおよび関 数」(httpmsdnmicrosoftcomja-jplibraryff877943(SQL110)aspx) と「sysdm_os_cluster_nodes」(httpmsdnmicrosoftcomja-jplibraryms187341(SQL110)aspx) を参照してください

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 23

SMB ファイル共有のサポートWindows Server 2008 以降のスタンドアロン用またはフェールオーバー クラスター インスタンス用のリモート ファイル共有にデータベース ファイルを格納することができますこの場合FCI ごとに異なるドライブ文字を使用する必要がありませんこれはストレージを統合する場合やデータベース ファイルのストレージを仮想マシンのゲスト オペレーティング システム用物理サーバーでホストする場合などに便利なオプションです適切に構成すれば直接接続されたストレージとほぼ同等の IO パフォーマンスが得られます

詳細については「ファイル共有上の SQL データベース - シナリオを再検討すべきとき 」(httpblogsmsdncombsqlserverstorageenginearchive20111018sql-databases-on-file-shares-it-s-time-to-reconsider-the-scenarioaspx) を参照してください

注 WSFC クラスターではSMB ファイル共有リソースの依存関係を SQL Server リソース グループに追加することはできませんファイル共有の可用性を確保するには別の方法を用いる必要がありますファイル共有が使用できなくなった場合SQL Server は IO 例外をスローしオフラインになります

WSFC と DNS の相互運用性FCI または可用性グループ リスナーの仮想ネットワーク名 (VNN) はVNN の作成時または構成の変更時にのみDNS に登録されますすべての仮想 IP アドレスはオンライン状態かオフライン状態かに関係なく同じ仮想ネットワーク名で DNS に登録されますDNS の仮想ネットワーク名を解決するためのクライアント呼び出しは各種のラウンド ロビン シーケンスによってすべての登録済み IP アドレスを返します

AlwaysOn フェールオーバー クラスター インスタンスSQL Server の AlwaysOn フェールオーバー クラスター インスタンス (FCI) の主な目的は1 つのデータ センター内のローカル サーバーとストレージ ハードウェアでホストされている SQL Server インスタンスの可用性を高めることです

FCI はWindows Server フェールオーバー クラスタリング (WSFC) のクラスターに含まれる複数のノードにまたがってインストールされる1 つの論理的な SQL Server インスタンスですただし一度に 1 つのノードだけでアクティブになることができますクライアント アプリケーションはアクティブなクラスター ノードが所有している仮想ネットワーク名および仮想 IP アドレスに接続します

FCI をインストールした各ノードは同一の構成を持ち同一の SQL Server バイナリを含んでいますWSFC クラスター サービスはアクティブなインスタンス上にある Windows レジストリのエントリからFCI をインストールした各ノードに関連のある変更をレプリケートしますFCI がインストールされている各ノードはインスタンスとそのリソースの所有者の候補として指定されフェールオーバーの優先順位に従って所有者となります

共有対称ストレージ ボリュームに格納されているデータベース ファイルはリソースとして WSFC クラスターに登録され現在 FCI をホストしているノードによって所有されます

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 24

詳細については「AlwaysOn フェールオーバー クラスター インスタン ス」(httpmsdnmicrosoftcomja-jplibraryms189134(SQL110)aspx) を参照してください

FCI のフェールオーバー プロセス依存しているクラスター リソースで障害が発生した場合AlwaysOn フェールオーバー クラスター インスタンスはWSFC クラスター サービスと連携してフェールオーバーを行いますそのプロセスの概要を以下に示します

1) 再起動が指示されますWSFC の定期的なチェックまたは SQL Server のフェールオーバー ポリシー構成によってエラー状態が示されます既定では他のノードへのフェールオーバーを開始する前にサービスの再起動が試みられます再起動の試みがタイムアウトするようであればリソースの障害が発生しています

2) フェールオーバーが指示されますフェールオーバー ポリシー チェックによってノードのフェールオーバーが必要であることが示されます

3) SQL Server サービスが停止されますSQL Server サービスが現在実行されている場合はその正常なシャットダウンが試みられます

4) WSFC クラスター リソースが転送されますSQL Server クラスター リソース グループの所有権とそれが依存するネットワークおよび共有ストレージ リソースがFCI で次に優先されるノード所有者に転送されます

5) 新しいノードで SQL Server が起動されますSQL Server インスタンスは通常のスタートアップ プロシージャで起動されます所定のタイムアウト時間内にオンラインに戻らない場合クラスター サービスはこの新しいノード上のリソースをエラー状態と見なします

6) 新しいノードでユーザー データベースが復旧されます各ユーザー データベースは復旧モードに設定されます復旧モードではトランザクション ログの再実行操作が適用されコミットされていなかったトランザクションがロールバックされます

FCI の強化以前のバージョンの SQL Server でも FCI のインストール オプションは用意されていましたがSQL Server 2012 では次のような機能強化によって可用性の堅牢性と利便性が向上しました

マルチサブネット クラスタリングSQL Server 2012 では複数のサブネットに存在する WSFC クラスター ノードがサポートされていますWSFC クラスター ノードに存在する SQL Server インスタンスはいずれかのネットワーク インターフェイスが使用可能であれば起動できますこれはクラスター リソースの OR 依存関係と呼ばれます

以前のバージョンの SQL Server の場合SQL Server サービスを起動またはフェールオーバーするにはすべてのネットワーク インターフェイスが機能しそれらがすべて同じサブネットまたは VLAN に存在している必要がありました

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 25

注 マルチサブネット クラスタリングではクラスター ノード間のストレージ レベルのレプリケーションが自動的には有効になりませんマルチサブネットの FCI ソリューションでクラスター ノード間でデータのレプリケーションを行いストレージ フェールオーバーを調整するためにはサード パーティから提供される SAN ベースのソリューションを利用する必要があります

詳細については「SQL Server 2012 AlwaysOn マルチサイト フェールオーバー クラスター インスタンス」(httpsqlcatcomsqlcatbwhitepapersarchive20111222sql-server-2012-alwayson_3a00_-multisite-failover-cluster-instanceaspx) を参照してください

信頼性の高いエラー検出WSFC クラスター サービスではノードの各 SQL Server 2012 FCI に対してそれぞれ専用の管理者接続が維持されますこの接続では特殊なシステム ストアド プロシージャ sp_server_diagnostics を定期的に呼び出すことでシステムの正常性診断に役立つ豊富な情報を含む配列が返されます

SQL Server 2012 よりも前のバージョンではFCI の主な正常性検出メカニズムは単純な一方向のポーリング プロセスとして実装されていましたこのプロセスではWSFC クラスター サービスがインスタンスへの新しい SQL クライアント接続を定期的に作成しサーバー名を照会した後で接続を切断していました何かの理由で接続が失敗するかクエリがタイムアウトした場合フェールオーバーが開始されますが診断情報はほとんど提供されません

詳細については「sql_server_diagnostics」(httpmsdnmicrosoftcomja-jplibraryff878233(SQL110)aspx) を参照してください

現在ではFCI ストレージが次のように幅広い状況でサポートされています

向上したマウント ポイント サポートSQL Server のセットアップ時にクラスター ディスクのマウント ポイント設定が認識されるようになりました指定されたクラスター ディスクとそれにマウントされているすべてのディスクがセットアップ時に SQL Server リソースの依存関係に自動的に追加されます

ローカル ストレージの tempdbFCI ではローカルの非共有ストレージ (ローカル ソリッド ステート ドライブなど) に tempdb を配置できるようになったため共有 SAN での IO 動作の負荷を大幅に軽減できる可能性があります

SQL Server 2012 よりも前のバージョンの FCI ではtempdb が他のシステム データベースと共にフェールオーバーされる対称共有ストレージ ボリュームに配置される必要がありました

注 tempdb の場所はmaster データベースに格納されますこのデータベースはフェールオーバー時にノード間で移動されますtempdb は所有者候補となっているすべてのノード上で有効で対称的なファイル パス (ドライブフォルダーおよび権限) に配置されている必要がありますそうなっていない場合SQL Server サービスが一部のノードでは起動されません

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 26

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 27

データベースの可用性インフラストラクチャ レベルおよび SQL Server インスタンス レベルのコンポーネントで提供されている高可用性機能は互いに連係してホストされているデータベースを暗黙的に保護しますAlwaysOn ソリューションではデータベースのデータおよびデータ層アプリケーションを明示的に保護するために一連のオプションが追加で用意されています

AlwaysOn 可用性グループ可用性グループは1 つの SQL Server インスタンスから同じ WSFC クラスター内の別のインスタンスへと同時にフェールオーバーされるユーザー データベースのセットですクライアント アプリケーションは可用性グループ リスナーと呼ばれる WSFC 仮想ネットワーク名を通じて可用性グループのデータベースに接続できますこうすることで基になる SQL Server インスタンスが抽象化されます

AlwaysOn 可用性グループは正常性監視フェールオーバーの調整およびサーバー接続を Windows Server フェールオーバー クラスタリングに依存していますWSFC クラスター ノード上の SQL Server インスタンスでAlwaysOn サポートを有効にする必要がありますただしそのインスタンスが FCI である必要はなく対称共有ストレージを使用する必要もありません

詳細については「AlwaysOn 可用性グループの概要 」(httpmsdnmicrosoftcomja-jplibraryff877884(SQL110)aspx) を参照してください

可用性レプリカとロール可用性グループの各 SQL Server インスタンスは可用性グループのユーザー データベースのコピーを保持している可用性レプリカをホストしますSQL Server インスタンスは特定の可用性グループの可用性レプリカを 1 つだけホストすることができますが複数の可用性グループを同じインスタンスに置くことは可能ですSQL Server インスタンスは専用の (非共有) ストレージ ボリュームを持つ必要があります

可用性レプリカの 1 つがプライマリ レプリカの役割を果たしますこれは可用性グループ データベースのマスター コピーとして指定されていて読み取り書き込み操作を行うことができます

可用性グループには読み取り専用の可用性レプリカを最大 4 つまで追加で含めることができますこれらは個別にセカンダリ レプリカの役割を果たします

可用性レプリカの同期可用性グループの各データベースの内容はSQL Server によるログ ベースのデータ移動メカニズムを通じてプライマリ レプリカから各セカンダリ レプリカに同期されますそのため可用性グループのすべてのデータベースは完全復旧モデルに設定する必要があります

セカンダリ レプリカはプライマリ レプリカのデータベースとトランザクション ログの完全なバックアップと復元によって初期化されますプライマリ レプリカで新しいトランザクションがコミットされるとトランザクション ログの対応する部分がキャッシュされ

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 28

キューに入れられてネットワーク経由でセカンダリ レプリカ ノード上のデータベース ミラーリング エンドポイントに送信されます

この方法によりプライマリ レプリカのトランザクション ログの新しいエントリが各セカンダリ レプリカのトランザクション ログに追加されます各セカンダリ レプリカはログ シーケンス番号 (LSN) をプライマリ レプリカに定期的に送り返しトランザクション ログのどのくらいの量がリモート ディスクに書き込まれフラッシュされたかを示します

注 各可用性レプリカはそれぞれ独自に独立したトランザクション ログ再実行スレッドのセットを保持していますこれは可用性レプリカの同期プロセスには含まれませんセカンダリ レプリカ上ではログ再実行プロセスによって遅延時間が生じるためユーザーはそれをデータの待機時間として感じる場合があります

プライマリまたはセカンダリの役割を果たす他に各可用性レプリカには可用性モードもありますこのモードは次のようにCOMMIT TRAN ステートメントの実行時にトランザクション ログの書き込みの連係を制御します

同期コミット モードすべての同期コミット セカンダリ レプリカからそれぞれ独自のトランザクション ログの書き込み完了 (LSN 以降) が通知されるまでプライマリ レプリカはそのトランザクションをコミットしません可用性グループでは最大で 2 つの同期コミット セカンダリ レプリカを使用できます

同期コミット モードではプライマリ レプリカ データベースでトランザクションの遅延が生じますがコミットされたトランザクションに対するセカンダリ レプリカでのデータ損失を確実に防ぐことができます

非同期コミット モードプライマリ レプリカはローカル トランザクション ログの書き込み後にトランザクションをコミットしますが非同期コミット セカンダリ レプリカからトランザクション ログの書き込み完了通知を待つことはしません可用性グループでは最大で 4 つの非同期コミット セカンダリ レプリカを使用できますただし両方の種類を合わせて使用できるセカンダリ レプリカの合計は最大 4 つです

非同期コミット モードではプライマリ レプリカ データベースで生じるトランザクションの遅延が最小になりますがセカンダリ レプリカでのトランザクション ログが遅れる場合があるため一部のデータが失われる可能性があります

詳細については「可用性モード」(httpmsdnmicrosoftcomja-jplibraryff877931(SQL110)aspx) を参照してください

可用性レプリカ間のデータ フローの全体的な正常性は各レプリカの同期状態によって示されますセカンダリ レプリカにフェールオーバーしたときに同期状態が 同期済み または 同期中 になっていなければほとんどの場合はデータ損失が発生することになります

各セカンダリ レプリカの同期ストリームにはセッション タイムアウト プロパティがあります同期コミット モードに構成されているセカンダリ レプリカがセッション タイムアウトでエラーになると内部的には一時的に非同期としてマークされますこれはセカンダ

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 29

リ レプリカのエラーがプライマリ レプリカでのトランザクション ログの書き込みに影響しないようにするためですそのセカンダリ レプリカが正常に戻ってプライマリ レプリカの状態に追いつくと自動的に通常の同期コミット モード動作に戻されます

可用性グループのフェールオーバー可用性グループとそれに対応する仮想ネットワーク名はWSFC クラスターのリソースとして登録されます可用性グループはプライマリ レプリカの正常性とフェールオーバー ポリシーに基づいて可用性レプリカのレベルでフェールオーバーを行います

可用性グループのフェールオーバー ポリシーではsp_server_diagnostics システム ストアド プロシージャと FailureConditionLevel プロパティを使用して可用性グループに対して許容されるエラーの重大度のレベルを示しますこの同じメカニズムがFCI のフェールオーバー ポリシーにも使用されます

フェールオーバーが発生した場合は共有物理リソースの所有権を他のノードに移す代わりにWSFC を利用して他の SQL Server インスタンス上でセカンダリ レプリカを再構成しプライマリ レプリカの役割を引き継がせますその後可用性グループの仮想ネットワーク名リソースがそのインスタンスに転送されます関連する可用性レプリカへのすべてのクライアント接続がリセットされます

レプリカの現在の正常性同期状態および可用性モードに基づいて各レプリカには複合的な フェールオーバーの準備 状態が定義されますこの状態の値はデータ損失の可能性を示していますレプリカの正常性情報はAlwaysOn ダッシュボードまたは sysdm_hadr_availability_replica_states システム ビューで確認できます

各可用性レプリカにはフェールオーバー モードも構成されていますこのモードはフェールオーバーが指示された場合にレプリカの動作を制御します

自動フェールオーバー (データ損失なし)セカンダリ レプリカのトランザクション ログが既に書き込まれ同期されているのですべての AlwaysOn 構成の中でフェールオーバー時間が最短になりますプライマリ レプリカ上の開かれているトランザクションはロールバックされプライマリ レプリカの役割はユーザーによる操作なしでセカンダリ レプリカに転送されます

この場合プライマリ レプリカとセカンダリ レプリカの両方を自動フェールオーバー モードに設定し両方の可用性モードを同期コミットに設定する必要がありますレプリカ間の同期状態は同期済み である必要がありますまたWSFC クラスターは正常なクォーラム状態になっている必要があります

自動フェールオーバーはプライマリ レプリカまたはセカンダリ レプリカが FCI 上にある場合はサポートされませんこれは可用性グループと FCI のフェールオーバー間で競合状態が発生することを防ぐためです

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 30

手動フェールオーバーこの場合管理者はプライマリ レプリカの状態を評価してセカンダリ レプリカにフェールオーバーするかどうかを慎重に判断できます

可用性モードと同期状態に応じて次のような選択が可能です

o 計画的な手動フェールオーバー (データ損失なし)この種類のフェールオーバーを実行できるのはプライマリ レプリカとセカンダリ レプリカの両方が正常で同期済み 状態である場合だけですこれは機能的には自動フェールオーバーと同じです

o 強制手動フェールオーバー (データ損失の可能性を許容)これは対象のセカンダリ レプリカの可用性モードが非同期コミットである場合またはプライマリ レプリカに同期されない場合に使用できる唯一のフェールオーバー形式です

警告 このフェールオーバー オプションは災害復旧の状況に限って使用する必要がありますプライマリ レプリカが正常で使用可能である場合は関連する各レプリカの可用性モードを同期コミットに変更し計画的な手動フェールオーバーを実行してください

詳細については「可用性グループの強制手動フェールオーバーの実行」(httpmsdnmicrosoftcomja-jplibraryff877957(SQL110)aspx) を参照してください

フェールオーバー対象のプライマリ レプリカまたはセカンダリ レプリカが次の条件のいずれかに該当する場合は手動フェールオーバーを実行する必要があります

フェールオーバー モードが手動に設定されている 可用性モードが非同期コミットに設定されている レプリカが FCI 上にある

詳細については「フェールオーバーとフェールオーバー モード (AlwaysOn 可用性グルー プ ) 」(httpmsdnmicrosoftcomja-jplibraryhh213151(SQL110)aspx) を参照してください

注 フェールオーバー後新しいプライマリ レプリカが同期コミット モードに設定されていない場合セカンダリ レプリカの同期状態は 中断状態 になりますプライマリ レプリカが同期コミット モードに設定されるまでデータはセカンダリ レプリカに移動されません

可用性グループ リスナー可用性グループ リスナーはクライアントが可用性グループ内のデータベースにアクセスするために使用できる WSFC 仮想ネットワーク名 (VNN) ですVNN クラスター リソースはプライマリ レプリカをホストしている SQL Server インスタンスによって所有されます

仮想ネットワーク名は可用性グループ リスナーの作成時または構成の変更時にのみDNS に登録されます可用性グループ リスナーで定義されているすべての仮想 IP アドレスは同じ仮想ネットワーク名で DNS に登録されます

可用性グループ リスナーを使用する場合クライアント接続要求ではサーバーとして仮想ネットワーク名を指定してから可用性グループ内のデータベース名を指定する必要があり

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 31

ます既定ではこれによってプライマリ レプリカをホストしている SQL Server インスタンスに接続されます

実行時にはクライアントはローカルの DNS リゾルバーを使用して仮想ネットワーク名にマップされている IP アドレスと TCP ポートの一覧を取得しますクライアントは各 IP アドレスへの接続を成功するか接続タイムアウトに達するまで試し続けますMultiSubnetFailover パラメーターが true に設定されているとクライアントは複数の接続を同時に試行するのでクライアント フェールオーバーが大幅に速くなります

フェールオーバーが行われるとサーバー上でクライアント接続がリセットされ可用性グループ リスナーの所有権はプライマリ レプリカの役割と共に新しい SQL Server インスタンスに移動しVNN エンドポイントは新しいインスタンスの仮想 IP アドレスと TCP ポートにバインドされます

詳細については「可用性グループ リスナークライアント接続およびアプリケーションのフェールオーバー」(httpmsdnmicrosoftcomja-jplibraryhh213417(SQL110)aspx) を参照してください

アプリケーションの目的によるフィルター処理可用性グループ リスナーを使用して接続している場合アプリケーションは接続の目的がデータの読み取りと書き込みの両方なのか読み取り専用操作を実行するだけなのかを指定できます指定しない場合クライアントのアプリケーションの目的は既定で読み取りと書き込みになります

各可用性レプリカのプライマリ ロールとセカンダリ ロールについてはクライアントのアプリケーションの目的に対する接続レベルのフィルターとして接続アクセス プロパティも指定できます既定ではアプリケーションの目的と接続アクセスとの組み合わせが無効であると接続が拒否されますSQL Server は次のルールを使用してクライアントの接続要求を振り分ける必要があります

可用性レプリカがプライマリ ロールであり接続アクセスが次のいずれかである場合

すべてのアプリケーションの目的を許可するアプリケーションの目的でクライアント接続をフィルター処理しません

明示的な読み取り書き込みの目的だけを許可するクライアントが読み取り専用を指定している場合接続を拒否します

可用性レプリカがセカンダリ ロールであり接続アクセスが次のいずれかである場合

接続を許可しないすべての接続を拒否しますレプリカは災害復旧だけに使用されます

すべてのアプリケーションの目的を許可するアプリケーションの目的でクライアント接続をフィルター処理しません

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 32

読み取り専用の目的を許可するクライアントが読み取り専用を指定していない場合接続を拒否します

詳細については「可用性レプリカでの読み取り専用アクセスの構成」(httpmsdnmicrosoftcomja-jplibraryhh213002(SQL110)aspx) を参照してください

アプリケーションの目的の読み取り専用ルーティングAlwaysOn 可用性グループの特に優れた点はスタンバイ ハードウェア インフラストラクチャを災害復旧以外の目的に利用できることです1 つ以上のセカンダリ レプリカを読み取り専用でアクセスできるように構成するとプライマリ レプリカからかなりの量のワークロードを軽減できます

読み取り専用セカンダリ レプリカに回すように簡単に調整できるワークロードはレポートデータベース バックアップデータベース整合性チェックインデックスの断片化の分析データ パイプライン抽出運用サポート操作サポートアドホック クエリなどです

各可用性レプリカではSQL Server インスタンスのエンドポイントについて順次的な読み取り専用ルーティング リストを構成することもできますこのリストはレプリカがプライマリ ロールであるときに適用されますこのリストが存在する場合アプリケーションの目的が読み取り専用と指定されているクライアント接続要求はそのリスト内に記載されていて前述のアプリケーションの目的フィルターに適合する最初のセカンダリ レプリカにリダイレクトされます

注 読み取り専用ルーティングによるリダイレクトはプライマリ レプリカにバインドされている可用性グループ リスナーによって実行されますプライマリ レプリカがオフラインの場合クライアントのリダイレクトは機能しません

詳細については「可用性グループの読み取り専用ルーティングの構成 (SQL Server) 」(httpmsdnmicrosoftcomja-jplibraryhh710054(SQL110)aspx) を参照してください

可用性の向上 ndash データベースSQL Server 2012 ではデータベースの構成と機能に関してさまざまな点が強化されています

以下の機能は復旧時間の短縮に役立ちます

予測可能な復旧時間データベースごとにターゲット復旧時間の長さを設定することでバックグラウンドで実行される CHECKPOINT コマンドのスケジュールを制御できますこのコマンドは間接的なチェックポイントとして再起動時またはフェールオーバー時にトランザクション ログの復旧に必要となる時間の推定値に基づいて定期的に実行されますそれによってチェックポイントごとに IO 操作がほぼ均等に配分され復旧時間 (RTO) の予測可能性が高まります

SQL Server 2012 よりも前のバージョンではバックグラウンドの CHECKPOINT コマンドがトランザクションの量や負荷とは無関係に一定間隔で実行されていたので復旧時間を予測することはできませんでした

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 33

詳細については「データベース チェックポイント」(httpmsdnmicrosoftcomja-jplibraryms189573(SQL110)aspx) を参照してください

以下の向上点は計画的なダウンタイムが必要になる一般的な状況を減らすのに役立ちます

LOB 列のオンライン インデックス操作varbinary(max)varchar(max)nvarchar(max)または XML データ型の列が含まれているインデックスをオンラインで再構築または再構成できるようになりました

新しい NOT NULL 列のオンライン スキーマ修正既定値を使用して新しい NOT NULL 列を SQL Server 2012 データベース テーブルに追加する場合システム メタデータの更新にはスキーマ ロックだけが必要ですALTER TABLE ステートメントですべての行にデータを設定する必要はありません

いずれかの行で実際に変更またはインデックスの再作成が行われない限り列の既定値は物理的に格納されませんクエリでは列に実際の値が存在しない場合メタデータから既定値を返します

ストレージのサポート強化の例として次のようなものがあります

ページの自動修復ある種のストレージ サブシステム エラーが発生するとデータ ページが破損し読み取り不可能になる場合がありますAlwaysOn 可用性グループではそのような種類のエラーを検出し自動的に復旧できます復旧のために影響を受けたデータ ページの最新のコピーが別の可用性レプリカから非同期で取得され適用されます

以前のバージョンでもデータベース ミラーリングに同様の機能がありましたが新しい機能では複数のレプリカをサポートできるようになっています

詳細については「ページの自動修復」(httpmsdnmicrosoftcomja-jplibrarybb677167(SQL110)aspx) を参照してください

クライアント接続の推奨事項クライアント アプリケーションが Microsoft SQL Server 2012 AlwaysOn テクノロジの利点を十分に活用できるようにするには次のガイドラインに従います

AlwaysOn 対応のクライアント ライブラリ表形式のデータ ストリーム (TDS) プロトコル Version 74 以降をサポートしているクライアント ライブラリを使用しますこれによってAlwaysOn の機能に対応した適切な機能がクライアント側でも提供されますクライアント ライブラリの例としてはData Provider for SQL Server in NET Framework 402SQL Native Client 110 などがあります

接続プロバイダー プロパティ MultiSubnetFailover = True接続文字列にこのキーワードを使用することでクライアント ライブラリでは(複数のサブネットに IP アドレスを持つ) 可用性グループ リスナーまたは FCI に登録されているすべての IP アドレスに同時に接

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 34

続できるようになります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 35

接続プロバイダー プロパティ ApplicationIntent = ReadOnly必要に応じてプライマリ レプリカの読み取り専用ワークロードをセカンダリ レプリカに移管することができます

レガシ クライアントの接続タイムアウトレガシ クライアントのデータベース ライブラリには並列で接続を試行する機能が実装されていないため複数の IP アドレスがある場合にはTCP タイムアウトに達するか正常に接続できるまで1 つずつ順番に接続を試行します

複数の IP アドレスが存在する場合はタイムアウトと再試行が逐次的に繰り返される可能性に備えてレガシ クライアントの接続タイムアウトを調整する必要があります値は少なくとも 15 秒 + 21 秒 times セカンダリ レプリカ数にします

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 36

結論このホワイト ペーパーではSQL Server 2012 の AlwaysOn による高可用性災害復旧ソリューションを使用し予定されたダウンタイムや予定外のダウンタイムを短縮したりアプリケーションの可用性を最大限に高めたりデータを保護したりする方法について基本的なコンテキストを確立しました

高可用性データベース環境の計画管理測定に関連したビジネス上の目的と課題は多くの場合目標復旧時点 (RPO) と目標復旧時間 (RTO) という形で数量化して表すことができます

SQL Server 2012 AlwaysOn は組織が高可用性や災害復旧に関する一般的な状況に対処するための機能をRPO と RTO を適切に達成できることを念頭にインフラストラクチャ レベルデータ プラットフォーム レベルデータベース レベルのそれぞれで提供します

詳細情報

httpwwwmicrosoftcomja-jpsqlserver2012defaultaspx SQL Server Web サイト

httptechnetmicrosoftcomja-jpsqlserver SQL Server TechCenter

httpmsdnmicrosoftcomja-jpsqlserver SQL Server 開発者向け技術情報

このホワイト ペーパーはお役に立ちましたか フィードバックをお寄せください1 (役に立たなかった) ~ 5 (非常に役に立った) の 5 段階で評価してくださいまたその評価の理由もお知らせください以下に例を示します

評価が高い 例が適切図がわかりやすい説明が明快といったことが理由である 評価が低い 例が少ない図がわかりにくい説明があいまいといったことが理由で

ある

このようなフィードバックをお寄せいただくと今後のホワイト ペーパーの品質向上につながります

フィードバックの送信

loz Version 112012 年 2 月 21 日

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 37

  • 高可用性と災害復旧の概念
    • 高可用性について
      • 予定されたダウンタイムと予定外のダウンタイム
      • 段階的な可用性
        • ダウンタイムの定量化
          • 復旧目標
          • ROI または機会費用の正当化
          • 可用性の健全度の監視
          • 災害復旧の計画
            • 概要 Microsoft SQL Server 2012 での高可用性
              • SQL Server AlwaysOn
              • 計画的なダウンタイムの大幅な削減
              • アイドル状態のハードウェアをなくしてコスト効率とパフォーマンスを向上
              • 簡単な配置と管理
              • RPO と RTO の機能比較
                  • SQL Server AlwaysOn の保護レイヤー
                    • インフラストラクチャの可用性
                      • Windows オペレーティング システム
                        • Windows Server Core インストール オプション
                        • プライベート クラウド用の SQL Server の最適化
                          • Windows Server フェールオーバー クラスタリング
                            • WSFC ストレージ構成
                            • WSFC リソースの正常性の検出とフェールオーバー
                              • WSFC のクラスター検証ウィザード
                              • WSFC クォーラム モードと投票の構成
                                • クォーラムによるクラスター状態検出
                                • クォーラム モード
                                • 投票ノードと非投票ノード
                                • クォーラム投票に推奨される調整
                                  • WSFC の強制クォーラムによる災害復旧
                                    • SQL Server インスタンス レベルでの保護
                                      • 可用性の向上 ndash SQL Server インスタンス
                                      • AlwaysOn フェールオーバー クラスター インスタンス
                                        • FCI のフェールオーバー プロセス
                                        • FCI の強化
                                            • データベースの可用性
                                              • AlwaysOn 可用性グループ
                                                • 可用性レプリカとロール
                                                • 可用性レプリカの同期
                                                  • 可用性グループのフェールオーバー
                                                  • 可用性グループ リスナー
                                                    • アプリケーションの目的によるフィルター処理
                                                    • アプリケーションの目的の読み取り専用ルーティング
                                                      • 可用性の向上 ndash データベース
                                                        • クライアント接続の推奨事項
                                                          • 結論
Page 6: 高可用性と災害復旧の概念download.microsoft.com/download/6/B/E/6BE0C3F3-2991-4766... · Web view高可用性と災害復旧のソリューションのために最適なデータベース

高可用性と災害復旧の概念高可用性と災害復旧のソリューションのために最適なデータベース テクノロジを選択するにはRTO と RPO の計画管理測定に関連するビジネス上の利点課題および目的についてすべての関係者が理解を共有している必要があります

これらの概念を既に理解されている方は「概要 Microsoft SQL Server 2012 での高可用性 」のセクションから読み始めてもかまいません

高可用性についてソフトウェア アプリケーションやサービスで高可用性は最終的にはエンド ユーザーの体感や期待に基づいて計測されますダウンタイムが生じることでビジネスに与える影響には情報の損失物的損害生産性の低下機会費用契約上の損害信用の損失などさまざまな目に見える影響や目に見えない影響があります

高可用性ソリューションの主な目的はダウンタイムの影響を最小限に抑えるまたは少なくともある程度軽減することですそのための堅実な戦略の 1 つはビジネス プロセスやサービス レベル契約 (SLA) と技術的な機能やインフラストラクチャのコストとの間で最適なバランスを取ることです

プラットフォームの可用性の高さは契約に基づいてさらには顧客や関係者からの期待に応じて判断されますシステムの可用性は次の式で表すことができます

実際のアップタイム予定されたアップタイム

times100

可用性の値は業界ではよく 9 がいくつ並んでいるかによって表現されますそれによって年間の可能なアップタイムの長さ逆に言えばダウンタイムの長さがわかります

9 の個数 可用性の割合 年間合計ダウンタイム2 99 3 日15 時間3 999 8 時間45 分4 9999 52 分34 秒5 99999 5 分15 秒

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 1

予定されたダウンタイムと予定外のダウンタイムシステムの停止には予測または計画されたものと予定外の障害によって生じるものとがありますダウンタイムは適切に管理されているのならば否定的に考える必要はありません予測可能なダウンタイムには主に次の 2 種類があります

計画的なメンテナンスあらかじめ時間枠を予告したうえで計画されたメンテナンス タスクが行われますたとえばソフトウェア修正プログラムの適用ハードウェアのアップグレードパスワードの更新オフラインでのインデックス再作成データの読み込み災害復旧手順のリハーサルなどです操作手順を入念に準備することでダウンタイムを最小限に抑えデータ損失を防ぐことができます計画的なメンテナンス作業は予定外の停止によってさらに深刻な事態を招くのを防いだりそのような場合の被害を軽減したりするために必要な投資と考えることができます

予定外の停止システムインフラストラクチャまたはプロセスのレベルで障害が発生した場合ですそれらは予定外で制御できないものであったり予測可能ではあってもまず発生しないだろうと考えられたり影響は許容範囲だろうと考えられたりしたものです堅牢な高可用性ソリューションはそのような障害を検出し停止状態から自動的に復旧してフォールト トレランスを再確立することができます

高可用性に関するサービス レベル契約 (SLA) を規定するときには計画的なメンテナンス作業と予定外のダウンタイムの両方についてそれぞれ個別に主要業績評価指標 (KPI) を計算する必要がありますそうすることで計画的なメンテナンス作業への投資を予定外のダウンタイムを回避できた場合の利益と比較して検討することができます

段階的な可用性高可用性は100 か 0 かの問題として捉えるべきではありませんシステムが完全に停止するのではなく部分的に使用できるのであれば機能が制限されたりパフォーマンスが低下したりしてもエンド ユーザーに許容される場合もよくあります可用性には次のようにさまざまな段階があります

読み取りのみ可能および操作の遅延メンテナンス期間中や災害復旧の処理中にデータを取得することはできても新しいワークフローやバックグラウンド処理は一時的に中断されたりキューに入れられたりする場合があります

データ待機時間とアプリケーションの応答時間大量のワークロードバックログの処理プラットフォームの部分的な障害などが原因で限りのあるハードウェア リソースが負荷過剰になったりサイズ不足になったりする場合がありますこれはユーザー エクスペリエンスに影響し生産性は低下しますが作業は続けることができます

部分的一時的または差し迫った障害アプリケーション ロジックやハードウェア スタックが堅牢にできていればエラーが発生しても再試行や自己修正が行われますこのような場合エンド ユーザーはデータの待ち時間やアプリケーションの応答時間を長く感じることがあります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 2

部分的なエンド ツー エンドの障害予定された停止または予定外の停止がソリューション スタックの垂直的なレイヤー (インフラストラクチャプラットフォームおよびアプリケーション) 内でまたは水平的な各種の機能コンポーネント間で整然と行われる場合がありますユーザーは影響を受ける機能またはコンポーネントに応じて部分的に操作が成功したりパフォーマンスの低下を感じたりします

これらの状況はそれぞれ完全な停止に至るまでの可用性の一段階であると同時に災害復旧フェーズの中間段階とも考えることができそれぞれの状況がどの程度許容できるかを判断する必要があります

ダウンタイムの定量化ダウンタイムが発生した場合にはそれが予定されたものであったか予定外のものであったかにかかわらずシステムをオンラインに戻しデータ損失を最小限に抑えることがビジネスとして第一の目標となりますダウンタイムが 1 分経過するごとに直接または間接のコストが刻々と増えていきます予定外のダウンタイムが発生したのであれば時間と労力を適切に配分しながら停止の理由を調査し現在のシステム状態を把握し復旧手順を決定する必要があります

どのような場合でも事前に決めておいた時間になったらビジネス上の意思決定を行う必要があります停止の原因調査やメンテナンス操作を中止してシステムをオンラインに戻すかどうか必要に応じてフォールト トレランスを再構築するかどうかなどを判断します

復旧目標データの冗長性は高可用性データベース ソリューションの重要な要素の 1 つですプライマリ SQL Server インスタンスに対するトランザクションの操作は同期または非同期で1 つ以上のセカンダリ インスタンスにも適用されます障害が発生すると処理中のトランザクションはロールバックされるかまたはデータ伝達の遅れのためにセカンダリ インスタンスでは失われる可能性もあります

影響を見積もりながら機能の復旧にどれくらいの時間がかかるか最後のトランザクションを回復するためにどれくらいの遅延が生じるかという観点で次の復旧目標を設定します

目標復旧時間 (RTO)これはシステムが停止している時間の長さを意味します最初の目標は少なくとも読み取り専用の状態でシステムをオンラインに戻し障害について調査できるようにすることですただし最終的な目的は新しいトランザクションを実行できる状態まで完全にサービスを復元することです

目標復旧時点 (RPO)これは多くの場合どのくらいのデータ損失が許容されるかの基準として考えられます障害発生前に最後にコミットされたデータ トランザクションと障害発生後に復元された最新のデータとの時間差や遅延が示されます実際に失われるデータの量は障害発生時のシステムのワークロード障害の種類および使用されている高可用性ソリューションの種類に応じて異なります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 3

RTO と RPO の値はビジネスで許容できるダウンタイムとデータ損失の目安としてまた可用性が健全であるかどうかを監視する際の指標として使用します

ROI または機会費用の正当化ダウンタイムによって生じるビジネス上のコストには金銭的なコストだけでなく顧客からの信用も含まれますこれらのコストには時間の経過と共に発生するものもあれば停止期間中の特定の時点で発生するものもあります復旧時間とデータ復旧ポイントに基づいて停止のコストを見積もる以外にRTO および RPO の達成や停止自体の回避に必要なビジネス プロセスを考えたりインフラストラクチャへの投資を計算したりすることもできますこれらの投資の目的は次のようなものです

ダウンタイムの回避そもそも停止状態にならなければ復旧のコストをまとめて回避できますこの投資にはフォールト トレランスと冗長性のためのハードウェアまたはインフラストラクチャ各障害点を分離した分散ワークロード予防メンテナンスのための計画的なダウンタイムなどのコストが含まれます

復旧の自動化システム障害が発生した場合自動的で透過的な復元が行われればダウンタイムによるカスタマー エクスペリエンスへの影響を大幅に抑えることができます

リソース使用率セカンダリまたはスタンバイ インフラストラクチャは障害に備えてアイドル状態にしておくことができますまた読み取り専用ワークロードのために利用したり利用可能なすべてのハードウェアにワークロードを分散してシステム全体のパフォーマンスを向上させたりもできます

RTO と RPO の目標実現に必要な可用性と復旧のための投資は予測されるダウンタイムのコストと組み合わせて時間の関数として表現し正当化することができますこれによって実際の停止中にダウンタイムの経過時間に基づいてコスト ベースの判断を行うことができます

可用性の健全度の監視運用上の観点からは実際の停止中に関連するすべての変数を考慮しリアルタイムで ROI または機会費用を計算しようとするべきではありません実際にはRPO の期待値に代わるものとしてスタンバイ インスタンスのデータ遅延を監視します

停止の際根本的な原因の調査に費やす時間は制限し代わりに復旧環境の正常性の検証に集中する必要がありますその後詳細なシステム ログとデータのセカンダリ コピーに基づいて原因究明の分析を行います

災害復旧の計画

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 4

高可用性のための取り組みでは停止を回避するために何をするかが問題になりますが災害復旧のための取り組みでは停止後に高可用性を再構築するために何をするかが問題になります

できる限り実際に停止状態になる前に災害復旧の手順と役割分担を策定しておくようにします実行中の監視と警告に基づいて自動または手動のフェールオーバーと復旧計画を開始するかどうかは事前に決められた RTO および RPO のしきい値を考慮しつつ判断する必要があります災害復旧計画には次のようなものを含める必要があります

障害と復旧の適用範囲障害の場所や種類に応じてデータ センター レベルインフラストラクチャ レベルプラットフォーム レベルアプリケーション レベルワークロード レベルなどさまざまなレベルで修正措置が行われます

調査のための資料ベースラインと最新の監視の履歴システム警告イベント ログ診断クエリなどを関係者がいつでも利用できるようにしておく必要があります

依存関係の調整アプリケーション スタック内でまたは関係者間でシステムやビジネスの依存関係を把握しておきます

デシジョン ツリー繰り返し使用できるデシジョン ツリーを事前に定義して検証しておきますこれにはロールの役割障害の優先順位RPO と RTO を実現するためのフェールオーバーの条件所定の復旧手順などを含めます

検証停止状態からの復旧手順を実行した後でシステムが通常の状態に戻ったことを検証するために何をしなければならないかを整理しておきます

文書化新しい担当者でも最低限の補助があれば復旧計画を実行できるように上記のすべての項目を詳細で明確な一連の文書として記録しておきますこのような文書は一般的にラン ブック または クック ブック と呼ばれます

復旧のリハーサル定期的に災害復旧計画の演習を行いRTO のベースラインとなる期待値を確立しプライマリ サイトと各災害復旧サイトでの本番運用のローテーションを検討します

概要 Microsoft SQL Server 2012 での高可用性要求される RPO と RTO を実現するには主要アプリケーションの継続的なアップタイムを確保することと予定外のダウンタイムや予定されたダウンタイム時に重要なデータを保護することが必要ですSQL Server では低コストで簡単にこれらの目標を実現できる一連の機能が用意されています

新しい AlwaysOn の機能について既によくご存じの方は「SQL Server AlwaysOn の保護レイ ヤー」のセクションに進んでより詳細な説明をご覧ください

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 5

SQL Server AlwaysOnAlwaysOn は高い統合性柔軟性およびコスト効率を特徴とした新しい高可用性災害復旧ソリューションですデータ センター内およびデータ センター間でデータとハードウェアの冗長性を実現しアプリケーションのフェールオーバー時間を短縮することでミッション クリティカル アプリケーションの可用性を高めますAlwaysOn は構成の柔軟性が高く既存のハードウェア投資を再利用できます

AlwaysOn ソリューションではデータベース レベルとインスタンス レベルの両方で可用性を構成するためにSQL Server 2012 の次の 2 つの主要な機能を利用できます

AlwaysOn 可用性グループSQL Server 2012 の新機能の 1 つですデータベース ミラーリング機能の大幅な強化によってアプリケーション データベースの可用性の確保に役立ちますログに基づくデータの移動によってデータ保護を実現し共有ディスクを使用せずにデータ損失をゼロにすることができます

複数のデータベースから成る論理グループの単位で自動および手動のフェールオーバーを実行できますまた最大で 4 つのセカンダリ レプリカのサポート高速なアプリケーション フェールオーバー自動ページ修復など多彩なオプションが用意されています

AlwaysOn フェールオーバー クラスター インスタンス (FCI)SQL Server フェールオーバー クラスタリング機能を拡張し複数のサブネットにわたるマルチサイト クラスタリングをサポートしますこれにより異なるデータ センター間での SQL Server インスタンスのフェールオーバーが可能になりますインスタンスのフェールオーバーがより高速となり予測可能となることでアプリケーションをさらにすばやく復旧させることができます

計画的なダウンタイムの大幅な削減どの組織でもアプリケーション ダウンタイムの主な理由はオペレーティング システムへの修正プログラムの適用ハードウェア メンテナンスなどのための計画的なダウンタイムですこうしたダウンタイムがIT 環境の停止の約 80 を占めています

SQL Server 2012 は修正プログラムの要件を減らしより多くのメンテナンス操作をオンラインで実行できるようにすることで計画的なダウンタイムの大幅な削減に役立ちます

Windows Server CoreSQL Server 2012 ではWindows Server Core への配置がサポートされていますこれはWindows Server 2008 および Windows Server 2008 R2 の最小限の合理化された配置オプションですこれによりオペレーティング システムの修正プログラムの要件を最小限に抑え約 60 削減することで計画的なダウンタイムを減らすことができます

オンライン操作LOB のインデックスを再作成したり既定値を使用して列を追加したりするオンライン操作のサポート強化によってデータベース メンテナンス時のダウンタイムが削減されます

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 6

ローリング アップグレードと修正プログラムAlwaysOn 機能はインスタンスのローリング アップグレードと修正プログラムの適用を容易にしますこれによりアプリケーションのダウンタイムが大幅に削減されます

Hyper-V 上の SQL ServerHyper-V 環境でホストされている SQL Server インスタンスではライブ マイグレーションの利点を活用することでホスト間の仮想マシンの移行をダウンタイムなしで実行できます管理者はアプリケーションに影響を与えずにホスト上でメンテナンス操作を実行できます

アイドル状態のハードウェアをなくしてコスト効率とパフォーマンスを向上典型的な高可用性ソリューションでは高コストで冗長なパッシブ サーバーが配置されますAlwaysOn 可用性グループを使用するとパッシブまたはアイドルな状態のセカンダリ データベース レプリカを読み取り専用のワークロード (SQL Server Reporting Services のレポート クエリバックアップ操作など) に活用できますプライマリとセカンダリの両方のデータベース レプリカを同時に使用できるためサーバー ハードウェア間のリソースのバランスが良くなりすべてのワークロードのパフォーマンスが向上します

簡単な配置と管理構成ウィザードWindows PowerShell コマンド ライン インターフェイスのサポートダッシュボード動的管理ビュー (DMV)ポリシー ベースの管理System Center 統合などの機能によって可用性グループの配置と管理が簡単になります

RPO と RTO の機能比較目標復旧時点 (RPO) と目標復旧時間 (RTO) のビジネス目標は高可用性災害復旧ソリューションのために使用する SQL Server テクノロジを選択する際に重要な判断材料となります次の表はさまざまなソリューションで実現される結果を大まかに比較したものです

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 7

高可用性と災害復旧のSQL Server ソリューション

データ損失の可能性 (RPO)

可能な復旧時間 (RTO)

自動フェールオーバー

読み取り可能な

セカンダリ(1)

AlwaysOn 可用性グループ - 同期コミット ゼロ 数秒 (4) 0 - 2

AlwaysOn 可用性グループ - 非同期コミット 数秒 数分 times 0 - 4

AlwaysOn フェールオーバー クラスター インスタンス

該当せず(5) 数秒~ 数分

該当せず

データベース ミラーリング(2) - 高い安全性 (同期 + 監視)

ゼロ 数秒 該当せず

データベース ミラーリング(2) - 高パフォーマンス (非同期)

数秒(6) 数分(6) times 該当せず

ログ配布 数分(6) 数分~ 数時間(6)

times 復元中はなし

バックアップコピー復元(3) 数時間(6) 数時間~ 数日(6)

times 復元中はなし

(1) AlwaysOn 可用性グループで使用できるセカンダリ レプリカは種類に関係なく最大 4 つです(2) この機能は将来のバージョンの Microsoft SQL Server では削除される予定です代わりに AlwaysOn 可用性グループを使用

してください(3) バックアップコピー復元は障害復旧には適していますが高可用性には適していません(4) 可用性グループの自動フェールオーバーはフェールオーバー クラスター インスタンスとの間ではサポートされていま

せん(5) FCI 自体にはデータ保護機能はありませんデータ損失はストレージ システムの実装に依存します(6) ワークロードデータ量およびフェールオーバーの手順に大きく依存します

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 8

SQL Server AlwaysOn の保護レイヤーSQL Server AlwaysOn ソリューションではインフラストラクチャとアプリケーション コンポーネントのいくつかの論理レイヤーおよび物理レイヤーにまたがってフォールト トレランスと災害復旧を実現できます従来はさまざまな関係者と役割ごとに業務と責任を振り分けそれぞれが主に自分のソリューションのレイヤー部分だけに関心を持つことが一般的でした

このセクションではこれらのレイヤーのそれぞれについて詳細に説明しデザインに関する議論や実装についての意思決定に役立つ論点やガイダンスを提示します

SQL Server AlwaysOn ソリューションをうまく利用するには以下のレイヤーについて理解しそれぞれを協調させる必要があります

インフラストラクチャ レベルサーバー レベルのフォールト トレランスとノード内のネットワーク通信が含まれますWindows Server フェールオーバー クラスタリング (WSFC) 機能を使用して稼働状態の監視とフェールオーバーの調整を行います

SQL Server インスタンス レベルSQL Server AlwaysOn フェールオーバー クラスター インスタンス (FCI) はWSFC クラスター内の複数のサーバー ノードにまたがってインストールされる SQL Server インスタンスであり各サーバー ノードへのフェールオーバーが可能ですFCI をホストするノードは堅牢な対称型共有ストレージ (SAN または SMB) に接続されます

データベース レベル可用性グループは共にフェールオーバーされるユーザー データベースのセットです可用性グループは1 つのプライマリ レプリカと最大 4 つのセカンダリ レプリカで構成されます各レプリカはWSFC クラスターの別々のノードにある SQL Server インスタンス (FCI または非 FCI) によってホストされます

クライアント接続データベース クライアント アプリケーションは指定した SQL Server インスタンス ネットワーク名に直接接続できますまたは可用性グループ リスナーにバインドされている仮想ネットワーク名 (VNN) に接続することもできますVNN はWSFC クラスターおよび可用性グループのトポロジを抽象化するものであり接続要求を適切な SQL Server インスタンスとデータベース レプリカに論理的にリダイレクトします

代表的な AlwaysOn ソリューションの論理トポロジは次の図のようになります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 9

インフラストラクチャの可用性AlwaysOn 可用性グループと AlwaysOn フェールオーバー クラスター インスタンスのどちらもWindows Server オペレーティング システムと WSFC をプラットフォーム テクノロジとして利用します今まで以上にMicrosoft SQL Server データベース管理者はこれらのテクノロジについて十分に理解することが必要です

Windows オペレーティング システムSQL Server は基礎的なインフラストラクチャとネットワークストレージセキュリティ更新プログラムおよび監視のサービスを Windows プラットフォームに依存しています

SQL Server 2012 の各エディションはWindows Server 2008 R2 オペレーティング システムの対応するエディション (Windows Server 2008 R2 Standard オペレーティング システムWindows Server 2008 R2 Enterprise オペレーティング システムWindows Server 2008 R2 Datacenter オペレーティング システムなど) の機能や能力をさらに進歩させて構築されています

詳細については「SQL Server 2012 のインストールに必要なハードウェアおよびソフトウェ ア」(httpmsdnmicrosoftcomja-jplibraryms143506(SQL110)aspx) を参照してください

Windows Server Core インストール オプションSQL Server 2012 では高可用性のための主要な機能の 1 つとしてWindows Server 2008 以降で Server Core インストール オプションによる配置をサポートしていますServer Core インストール オプションでは制限された機能と非常に限定的な GUI アプリケーション サポートで特定のサーバー ロールを実行するための最低限の環境が提供されます既定では必要なサービスとコマンド プロンプト環境のみが有効です

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 10

この操作モードではオペレーティング システムへの攻撃の危険性とシステム オーバーヘッドが低下し継続的なメンテナンスサービス修正プログラムなどの要件が大幅に削減されます

SQL Server 2012 を Windows Server Core に配置する場合の主な注意点はSQL Server およびオペレーティング システムのすべての配置構成管理およびメンテナンスをWindows PowerShell などのスクリプト環境やコマンド ラインまたはリモート ツールを使用して行う必要があることです

プライベート クラウド用の SQL Server の最適化高可用性と災害復旧はプライベート クラウド環境ではさらに重要になってきていますプライベート クラウドに SQL Server を配置すればコンピューターネットワークおよびストレージのリソースが効率的に使用され物理的な場所や資本と運営費用の両方の削減に役立ちます配置の統合リソースの効率的なスケーリングオンデマンドでのリソースの配置が容易になり制御の自由度が失われることもありません

SQL Server ではHyper-V のホストとゲストの両方のシステムに対して Windows Server フェールオーバー クラスタリングをサポートするほかライブ マイグレーションもサポートしていますこれは意識されるほどのダウンタイムを生じることなくホスト間で仮想マシンを移動できる機能ですライブ マイグレーションはゲスト クラスタリングとも協調して動作します

詳細については「プライベート クラウド コンピューティング - プライベート クラウド用の SQL Server の最適化 」(httpwwwmicrosoftcomSqlServerPrivateCloud) を参照してください

Windows Server フェールオーバー クラスタリングWindows Server フェールオーバー クラスタリング (WSFC) はMicrosoft SQL Server などのサーバー アプリケーションに対して高可用性と災害復旧をサポートするインフラストラクチャ機能を提供します

WSFC クラスター ノードまたはサービスに障害が発生するとそのノードでホストされていたサービスまたはリソースは自動的にまたは手動で他の可用性ノードに転送されますこのプロセスをフェールオーバーと呼びますAlwaysOn ソリューションではこのプロセスが FCI と可用性グループの両方に適用されます

WSFC クラスター内の各ノードは連携して次のような機能を提供します

分散メタデータと通知WSFC サービスとホストされるアプリケーション メタデータはクラスター内の各ノードで維持されますこのメタデータにはホストされるアプリケーションの設定に加えWSFC の構成と状態が含まれます1 つのノードでのメタデータまたは状態の変更はクラスター内の他のノードに自動的に反映されます

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 11

リソース管理クラスター内の各ノードは直接アタッチされたストレージ (DAS)ネットワーク インターフェイス共有ディスク ストレージへのアクセスなど物理的リソースを提供する場合がありますSQL Server などホストされるアプリケーション自体もクラスター リソースとして登録されますまた他のリソースに対するスタートアップと正常性にかかわる依存関係を構成できます

正常性の監視ノード間の正常性およびプライマリ ノードの正常性はハートビート ネットワーク通信とリソースの監視を組み合わせることで検出されますクラスターの全体的な正常性状態はクラスター内のノードのクォーラムの投票によって決定されます

フェールオーバーの調整各リソースはプライマリ ノードでホストされるように構成されそれぞれ自動的にまたは手動で 1 つ以上のセカンダリ ノードに転送されます正常性ベースのフェールオーバー ポリシーによってノード間でのリソース所有権の自動転送が制御されますフェールオーバーが発生すると適切に対応できるように各ノードおよびホストされているアプリケーションに通知されます

詳細については「Windows Server | フェールオーバー クラスタリングとノード バランシン グ」(httpwwwmicrosoftcomwindowsserver2008enusfailover-clustering-mainaspx) を参照してください

注 データベース管理者が WSFC クラスターおよびクォーラム管理の内部動作を理解しておくことが非常に重要になりましたAlwaysOn の正常性の監視管理および障害復旧の手順はすべてが本質的に WSFC 構成と関連しています

WSFC ストレージ構成Windows Server フェールオーバー クラスタリングでは接続されているストレージ デバイスディスク ボリュームおよびファイル システムの管理をクラスター内の各ノードに依存していますWSFC はストレージ サブシステムが非常に堅牢であると想定しているためノードに接続されたストレージ デバイスが使用できない場合はクラスター ノードが障害状態であると見なします

書き込みベースの操作ではディスク ボリュームは SCSI-3 の永続的な予約を使用して一度に 1 つのクラスター ノードに論理的に接続されますノードで障害が発生した場合にはストレージ サブシステムの機能と構成に応じてディスク ボリュームの論理的所有権をクラスター内の別のノードに移すことができます

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 12

SQL Server AlwaysOn ソリューションでは次のような WSFC ストレージ構成の組み合わせを利用しその制限も受けます

直接接続とリモートストレージ デバイスはサーバーに物理的に直接接続されるかまたはネットワークやホスト バス アダプター (HBA) を介してリモートのストレージ デバイスを使用しますリモート ストレージのテクノロジにはiSCSI やファイバー チャネルなどのストレージ エリア ネットワーク (SAN) ベースのソリューションとサーバー メッセージ ブロック (SMB) というファイル共有ベースのソリューションがあります

対称と非対称ストレージ デバイスの論理ディスク ボリューム構成とファイル パスがクラスターの各ノードでまったく同じである場合それらのストレージ デバイスは対称的であると見なされます基になるディスク ボリュームの物理的な実装と容量は異なっていてもかまいません

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 13

専用と共有専用ストレージは使用するために予約されクラスター内の 1 つのノードに割り当てられます共有ストレージはクラスターの複数のノードからアクセスできます共有ストレージ デバイスが SCSI-3 プロトコルに準拠していればそれらの制御と所有権をノード間で移動させることができますWSFC ではファイル共有のためにクラスター共有ボリュームを同時に複数のノードでホスティングできますただしSQL Server は複数のノードからの共有ボリュームへの同時アクセスをサポートしていません

注 SQL Server FCI では対称共有ストレージを使用してインスタンスのすべてのノード所有者 (およびその候補) からアクセスできるようにする必要がありますただしAlwaysOn 可用性グループの導入に伴いそれぞれが独自に専用のローカルまたはリモート ストレージを持つ非 FCI の SQL Server インスタンスを WSFC クラスターに配置できるようになりました

WSFC リソースの正常性の検出とフェールオーバーWSFC クラスター ノード内の各リソースの状態と正常性は定期的にまたは要求に応じて報告されますクラスター リソースの障害を示す状況としてはたとえば電源障害ディスクまたはメモリのエラーネットワーク通信エラー構成エラー応答しないサービスなどがあります

ネットワークストレージサービスなどの WSFC クラスター リソースは互いに依存するように構成できますあるリソースの累積的な正常性は依存関係を持つリソースの正常性を連続的にたどってゆくことで決定されます

AlwaysOn 可用性グループでは可用性グループと可用性グループ リスナーがそれぞれ WSFC クラスター リソースとして登録されますAlwaysOn フェールオーバー クラスター インスタンスではSQL Server サービスおよび SQL Server エージェント サービスが WSFC クラスター リソースとして登録されどちらもインスタンスの仮想ネットワーク名リソースに依存します

WSFC クラスター リソースで設定された数のエラーまたは障害が一定期間内に発生した場合構成されたフェールオーバー ポリシーによってクラスター サービスは次のいずれかの操作を行います

現在のノードでのリソースの再起動 リソースをオフライン化 リソースとその依存関係を別のノードへ自動的にフェールオーバー

注 WSFC クラスター リソースの正常性の検出は個々のノードの正常性やクラスターの全体的な正常性には直接影響しません

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 14

WSFC のクラスター検証ウィザードクラスター検証ウィザードはWindows Server 2008 および Windows Server 2008 R2 のフェールオーバー クラスタリングに統合されている機能ですこれはSQL Server AlwaysOn ソリューションの配置前 にクリーンで正常な安定した WSFC 環境が存在していることをデータベース管理者が確認するために使用する主要なツールです

クラスター検証ウィザードではクラスターのノードとして使用するサーバーの集合または既存のクラスターを対象にして一連のテストを実行できますこのプロセスでは基になるハードウェアおよびソフトウェアが個別に直接テストされWSFC クラスターが特定の構成でどの程度良好にサポートされるかについての正確な評価が得られます

この検証プロセスでは各ノードに対して次のようなカテゴリの一連のテストとデータ収集が実施されます

一覧作成BIOS のバージョン環境レベルホスト バス アダプターRAMオペレーティング システムのバージョンデバイスサービスドライバーなどの情報です

ネットワークNIC のバインド順序ネットワーク通信IP 構成ファイアウォール構成などの情報ですすべての NIC でノード間の通信が検証されます

ストレージディスクドライブの容量アクセス待機時間ファイル システムなどの情報ですSCSI コマンドディスク フェールオーバー機能対称的または非対称的なストレージ構成が検証されます

システム構成Active Directory の構成ドライバーの登録メモリ ダンプの設定必要なオペレーティング システムの機能とサービス互換性のあるプロセッサ アーキテクチャおよびサービス パックと Windows Software Update のレベルが検証されます

これらの検証テストの結果を利用してクラスターの構成を微調整したり構成を追跡したりダウンタイムを引き起こすかもしれない潜在的なクラスター構成の問題を特定したりできますテスト結果のレポートは後で参照できるようにHTML ドキュメントとして保存できます

これらのテストはWSFC の構成に何か変更を加える前と加えた後に実行するほかSQL Server をインストールする前および災害復旧プロセスの一環として実行する必要がありますマイクロソフトで特定の WSFC クラスター構成がサポートされるためにはマイクロソフト カスタマー サポート サービス (CSS) にクラスター検証レポートを提出する必要があります

詳細については「フェールオーバー クラスター ステップ バイ ステップ ガイド フェール オーバー クラスター用ハードウェアを検証する」(httptechnetmicrosoftcomja-jplibrarycc732035(WS10)aspx) を参照してください

注 ハードウェアベースの地理的クラスタリング ストレージ ソリューションの場合やAlwaysOn 可用性グループの場合のようにクラスター構成に非対称ストレージがあるとクラスター検証ウィザードでストレージの検証手順を成功させるために多数の修正プログラムを適用しなければならないことがあります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 15

詳細については「AlwaysOn 可用性グループの前提条件制限事項および推奨事項 」(httpmsdnmicrosoftcomja-jplibraryff878487(SQL110)aspxSystemReqsForAOAG) を参照してください

WSFC クォーラム モードと投票の構成WSFC ではクォーラム ベースのアプローチを使用してクラスターの全体的な正常性を監視することでノード レベルのフォールト トレランスを最大限に高めますWSFC のクォーラム モードおよびノード投票構成の基本について理解することはAlwaysOn 高可用性災害復旧ソリューションの設計運用トラブルシューティングのために非常に重要です

クォーラムによるクラスター状態検出WSFC クラスター内の各ノードは定期的なハートビート通信に参加しノードの正常性状態を他のノードと共有します応答しないノードはエラー状態であると見なされます

クォーラム ノード セットとはWSFC クラスター内の投票ノードおよび監視サーバーのうち過半数を占めるノードの集合ですWSFC クラスターの全体的な正常性と状態は定期的なクォーラムの投票 によって決定されますクォーラムはクラスターが正常でありノード レベルのフォールト トレランスを提供できることを意味します

クォーラムに達していない状態はクラスターが正常でないことを示しますプライマリ ノードのフェールオーバー先として正常なセカンダリ ノードを使用できるようにするにはWSFC クラスターの全体的な正常性が維持されている必要があります投票数がクォーラムに達しなかった場合にはWSFC クラスター全体が予防策としてオフラインに設定されますその場合クラスターに登録されている SQL Server インスタンスがすべて停止します

注 クォーラム障害のために WSFC クラスターがオフラインに設定されるとオンラインに戻すために手動の操作が必要です詳細については後の「WSFC の強制クォーラムによる災害 復旧」のセクションを参照してください

クォーラム モードクォーラム モードはWSFC クラスター レベルで構成されクォーラム投票の方法を指定しますフェールオーバー クラスター マネージャー ユーティリティではクラスター内のノード数に基づいて推奨するクォーラム モードが提示されます

次のいずれかのクォーラム モードによって投票クォーラムの構成が決定されます

ノード マジョリティクラスターが正常であるためにはクラスター内の半分以上の投票ノードが肯定的に投票する必要があります

ノードおよびファイル共有マジョリティノード マジョリティ クォーラム モードに似ていますがリモート ファイル共有も投票監視サーバーとして構成され各ノードからそのリモート ファイル共有への接続も肯定的な投票としてカウントされますクラスターが正常であるためには投票の過半数が肯定的である必要があります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 16

推奨事項として監視ファイル共有はクラスター内のノードに存在せずクラスター内のすべてのノードから見える必要があります

ノードおよびディスク マジョリティノード マジョリティ クォーラム モードに似ていますが共有ディスク クラスター リソースも投票監視サーバーとして使用され各ノードからその共有ディスクへの接続も肯定的な投票としてカウントされますクラスターが正常であるためには投票の過半数が肯定的である必要があります

ディスクのみ共有ディスク クラスター リソースが監視サーバーとして使用され各ノードからその共有ディスクへの接続が肯定的な投票としてカウントされます

詳細については「フェールオーバー クラスター ステップ バイ ステップ ガイド フェール オーバー クラスターのクォーラムの構成」(httptechnetmicrosoftcomja-jplibrarycc770620(WS10)aspx) で説明されています

注 クラスターの各ノードが同じ共有ストレージ クォーラム監視ディスクを使用するように構成されていない限り通常投票ノード数が奇数の場合は ノード マジョリティ クォーラム モード投票ノード数が偶数の場合は ノードおよびファイル共有マジョリティ クォーラム モードを使用してください

投票ノードと非投票ノード既定ではWSFC クラスター内の各ノードがクラスター クォーラムのメンバーとなります各ノードファイル共有監視サーバーディスク監視サーバーがクラスターの全体的な正常性の決定においてそれぞれ 1 票ずつの投票権を持ちますクォーラムに関するここまでの説明ではクラスター状態について投票する WSFC クラスター ノードのセットを投票ノードとして注意深く限定してきました状況によってはすべてのノードに投票権を与えることが適切でない場合もあります

WSFC クラスターの各ノードはクォーラムを確立しようとし続けますクラスター内の個々のノードはクラスターが全体として正常であるか正常でないかを明確に決定することはできません特定の時点で各ノードからは他のノードの一部がオフラインフェールオーバー中またはネットワーク通信のエラーにより応答不能に見えますクォーラム投票の主な機能はWSFC クラスターの各ノードの見かけの状態が本当にそれらのノードの実際の状態であるかどうかを判断することです

ディスクのみ 以外のすべてのクォーラム モデルではクォーラム投票の有効性はクラスター内のすべての投票ノード間に信頼できる通信が確立されていることに依存しますすべてのノードが同じ物理サブネット上にある場合はクォーラムの投票を信頼できます

しかしクォーラム投票で他のサブネット上のノードが応答しないように見えても実際はオンラインで正常である場合はサブネット間のネットワーク通信のエラーが原因であることが考えられますクラスター トポロジクォーラム モードおよびフェールオーバー ポリシーの構成によってはネットワーク通信エラーによって投票ノードのセット (またはサブセット) が実質的に複数作成されてしまう可能性があります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 17

投票ノードの複数のサブセットがそれぞれ独自のクォーラムを構築できる状態はスプリット ブレイン と呼ばれますこの状態では各クォーラム上のノードが別々の動作をし相互に矛盾する可能性があります

注 スプリット ブレイン の状況が発生するのはシステム管理者が強制クォーラム動作を手動で実行するかまたは非常にまれですが強制的な手動フェールオーバーを実行することでクォーラム ノード セットが明示的に細分化された場合のみです詳細については後の「WSFC の強制クォーラムによる災害復旧 」のセクションを参照してください

クォーラム構成を単純化し稼働時間を長くする目的でノードの投票がクォーラムにカウントされないように各ノードの NodeWeight 設定 (値 0 または 1) を調整することができます

クォーラム投票に推奨される調整以下のガイドラインをこの順番に適用することでクラスターに対して推奨されるクォーラム投票の構成を判断できます

1 既定は投票権なしにします明確な理由がない限り各ノードには投票権を与えないと考えてください

2 すべてのプライマリ ノードに投票権を与えますAlwaysOn 可用性グループのプライマリ レプリカをホストする各ノードおよび AlwaysOn フェールオーバー クラスター インスタンスの優先所有者である各ノードは投票権を持つ必要があります

3 可能性のある自動フェールオーバーの所有者を含めます自動フェールオーバーの結果としてプライマリ レプリカまたは FCI をホストする可能性がある各ノードは投票を持つ必要があります

4 セカンダリ サイト ノードを除外します通常はセカンダリ災害復旧サイトに存在するノードには投票を提供しないでくださいプライマリ サイトに問題がない場合クラスターをオフラインにする判断にセカンダリ サイト内のノードが影響を与えることは避ける必要があります

5 投票数を奇数にします必要に応じて監視ファイル共有監視ノード (SQL Server インスタンスの有無は問いません)または監視ディスクをクラスターに追加してクォーラム モードを調整しクォーラムの投票結果が同数に分かれるのを防ぎます

6 フェールオーバー後の投票割り当てを再評価します正常なクォーラムをサポートしないクラスター構成にフェールオーバーすることは避けます

ノードの投票の調整の詳細については「クラスター クォーラムの NodeWeight の設定の構 成」(httpmsdnmicrosoftcomja-jplibraryhh270281(SQL110)aspx) を参照してください

ファイル共有監視サーバーの投票は調整できませんその投票を含めるか除外するかを決めるには別のクォーラム モードを選択する必要があります

注 SQL Server ではWSFC クラスター構成およびノード クォーラム投票に関する設定を管理するためにいくつかのシステム動的管理ビュー (DMV) が公開されています

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 18

詳細については「可用性グループの監視」(httpmsdnmicrosoftcomja-jplibraryff878305(SQL110)aspx) を参照してください

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 19

WSFC の強制クォーラムによる災害復旧通常クォーラム障害は災害発生時または WSFC クラスター内の複数のノード間で永続的な通信障害が生じた場合に発生しますクォーラム障害が発生するとクラスターがノード レベルのフォールト トレランスを確保できなくなるためその WSFC クラスター内の SQL Server インスタンス可用性グループおよびクラスター化されているサービスがすべてオフラインになりますクォーラム障害はWSFC クラスター内の正常な投票ノード数がクォーラム モデルを満たさなくなったことを意味しますノードによってまったく機能しなくなるものもあればWSFC サービスがシャットダウンしただけでクォーラムと通信できなくなったことを除けば正常なものもあります

WSFC クラスターをオンラインに戻すには既存の構成の少なくとも 1 つのノードでクォーラム障害の根本的な原因を解決する必要があります災害発生時には使用できる代替ハードウェアの再構成や識別が必要となる場合もあります現状のクラスター トポロジを反映するためにWSFC クラスターの残りのノードを再構成する場合もあります

WSFC クラスター ノードで強制クォーラムの手順を使用するとクラスターがオフラインになる原因となった安全管理機能を無効にすることができますこれによりクラスターでのクォーラム投票のチェックが実質的に中断されクラスター内の任意のノードで WSFC クラスター リソースと SQL Server をオンラインに戻すことができます

このような災害復旧プロセスの手順を次に示します

1) 障害の範囲を特定します応答しない可用性グループや SQL Server インスタンス災害後に使用できるオンラインのクラスター ノードをそれぞれ特定しWindows イベント ログと SQL Server システム ログを確認します必要に応じて後で分析できるように解析データやシステム ログを保存しておきます

2) 1 つのノードで強制クォーラムを使用して WSFC クラスターを起動します他の点では正常なノードで強制クォーラムの手順に従ってクラスターを手動で強制的にオンラインにしますこの場合データ損失の可能性を最小限に抑えるには可用性グループのプライマリ レプリカを最後にホストしていたノードを選択します

詳細については「クォーラムを使用せずに WSFC クラスターを強制的に起動する 」(httpmsdnmicrosoftcomja-jplibraryhh270275(v=SQL110)aspx) を参照してください

注 強制クォーラムの設定を使用するとWSFC クラスターの投票が過半数に達することで通常のクォーラム モードの動作に自動的に切り替わるまでクラスター全体のクォーラムのチェックがブロックされます

3) 他の点では正常な各ノードでWSFC サービスを 1 つずつ通常の方法で起動します他のノードでクラスター サービスを起動するときは強制クォーラム オプションを指定する必要はありません

各ノードの WSFC サービスがオンラインに戻ると他の正常なノードとの間でネゴシエーションが行われ新しいクラスター構成の状態が同期されますクラスターの最新の状態

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 20

を判断するときに競合状態の発生を避けるためこの手順は必ず一度に 1 つのノードで行うようにしてください

注 起動した各ノードが新たにオンラインにした他のノードと通信できることを確認しますそうしないと複数のクォーラム ノード セットが作成されて スプリット ブレイン の状況に陥るおそれがあります手順 1 の結果に問題がなければこの現象は発生しません

4) 新しいクォーラム モードとノードの投票の構成を適用します強制クォーラムの手順によってクラスターのすべてのノードを正常に再起動させクォーラムのエラーの根本原因を修正した場合クォーラム モードとノードの投票を元の構成から変更する必要はありません

それ以外の場合は新たに復元されたクラスター ノードと可用性レプリカのトポロジを評価し必要に応じてクォーラム モードと各ノードの投票割り当てを変更します未復旧のノード上ではWSFC クラスター サービスをオフラインにするかノードの投票をゼロに設定します

注 この時点でクラスター内のノードと SQL Server インスタンスが通常の動作に戻っているように見えることがありますがまだ正常なクォーラムには達していない可能性がありますフェールオーバー クラスター マネージャーやSQL Server Management Studio の AlwaysOn ダッシュボードまたは適切な DMV を使用して正常なクォーラムが復元されたことを確認してください

5) 必要に応じて可用性グループのデータベース レプリカを復旧します一部のデータベースはSQL Server の通常の起動処理の一環として自動的に復旧されオンラインに戻ることがありますそれ以外のデータベースの復旧には追加で手動の手順を実行する必要があります

可用性グループ レプリカのデータ損失の可能性や復旧にかかる時間を最小限に抑えるにはできればプライマリ レプリカ同期セカンダリ レプリカ非同期セカンダリ レプリカの順にオンラインに戻します

6) 障害が発生したコンポーネントを修復するか交換しクラスターを再検証しますこれで最初の災害およびクォーラム障害から復旧できたので障害が発生したノードを修復するか交換しWSFC と AlwaysOn の関連する構成を適切に調整する必要がありますこれには可用性グループ レプリカの削除クラスターからのノードの削除ノードへのソフトウェアの再インストールなどが含まれます

注 停止したすべての可用性レプリカを修復または削除する必要がありますSQL Server 2012 では最も古い可用性レプリカを最後に認識した時点以降トランザクション ログが切り捨てられません停止したレプリカを修復するか可用性グループから削除しないとトランザクション ログが大きくなり他のレプリカのトランザクション ログの領域が不足する可能性があります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 21

7) 必要に応じて手順 4 を繰り返しますこの目的は正常な動作を行うために適切なレベルのフォールト トレランスと高可用性を再確立することです

8) RPORTO 分析を実行しますSQL Server のシステム ログデータベースのタイムスタンプおよび Windows のイベント ログを分析して障害の根本的な原因を特定し実際の復旧ポイントと復旧時間を文書に記録します

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 22

SQL Server インスタンス レベルでの保護次に説明する AlwaysOn ソリューションの保護レイヤーはデータ プラットフォームそれ自体ですMicrosoft SQL Server 2012 とその Windows Server インフラストラクチャ コンポーネントとの統合によって次のような機能が提供されます

可用性の向上 ndash SQL Server インスタンスこれは SQL Server 2012 の新しいインスタンス レベルの機能でAlwaysOn フェールオーバー クラスター インスタンスとAlwaysOn 可用性グループをホストするスタンドアロン インスタンスの両方の可用性を強化します

以下の強化点によってフェールオーバーの管理およびトラブルシューティングが向上します

柔軟なフェールオーバー ポリシー信頼性の高いエラー検出に使用される新しいシステム ストアド プロシージャ sp_server_diagnostics の出力でSQL Server インスタンスに影響するエラーの重大度が FailureConditionLevel プロパティによって示されますWSFC のフェールオーバー ポリシーによってこの値が SQL Server インスタンスにどのように影響するかを制御できますある程度エラーを許容する設定からSQL Server の内部コンポーネント エラーを重点的に検出する設定までさまざまに構成できます

特定のレベルのエラーによってフェールオーバーを開始するように構成できますエラーのレベルにはサーバーの停止サーバーの応答停止重大なエラー中程度のエラーなんらかの条件付きエラーなどがありますFailureConditionLevel プロパティはFCI または可用性グループのフェールオーバー ポリシーのために使用できます

SQL Server 2012 よりも前のバージョンではフェールオーバーを制御できるようなエラー状態の区分がなくすべてのサービス レベルのエラーによってフェールオーバーが発生しました

詳細については「フェールオーバー クラスター インスタンスのフェールオーバー ポリシー」(httpmsdnmicrosoftcomja-jplibraryff878664(SQL110)aspx) を参照してください

強化されたインストルメンテーションとログAlwaysOn 専用のシステム構成ビューDMVパフォーマンス カウンターに加えて拡張されたイベント正常性セッションによってAlwaysOn 配置のトラブルシューティングチューニングおよび監視に必要な情報を取得して表示できますこれらの多くはSQL Server ポリシー管理の新しいファセットおよびポリシーを通じて公開されます

詳細については「AlwaysOn 可用性グループの動的管理ビューおよび関 数」(httpmsdnmicrosoftcomja-jplibraryff877943(SQL110)aspx) と「sysdm_os_cluster_nodes」(httpmsdnmicrosoftcomja-jplibraryms187341(SQL110)aspx) を参照してください

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 23

SMB ファイル共有のサポートWindows Server 2008 以降のスタンドアロン用またはフェールオーバー クラスター インスタンス用のリモート ファイル共有にデータベース ファイルを格納することができますこの場合FCI ごとに異なるドライブ文字を使用する必要がありませんこれはストレージを統合する場合やデータベース ファイルのストレージを仮想マシンのゲスト オペレーティング システム用物理サーバーでホストする場合などに便利なオプションです適切に構成すれば直接接続されたストレージとほぼ同等の IO パフォーマンスが得られます

詳細については「ファイル共有上の SQL データベース - シナリオを再検討すべきとき 」(httpblogsmsdncombsqlserverstorageenginearchive20111018sql-databases-on-file-shares-it-s-time-to-reconsider-the-scenarioaspx) を参照してください

注 WSFC クラスターではSMB ファイル共有リソースの依存関係を SQL Server リソース グループに追加することはできませんファイル共有の可用性を確保するには別の方法を用いる必要がありますファイル共有が使用できなくなった場合SQL Server は IO 例外をスローしオフラインになります

WSFC と DNS の相互運用性FCI または可用性グループ リスナーの仮想ネットワーク名 (VNN) はVNN の作成時または構成の変更時にのみDNS に登録されますすべての仮想 IP アドレスはオンライン状態かオフライン状態かに関係なく同じ仮想ネットワーク名で DNS に登録されますDNS の仮想ネットワーク名を解決するためのクライアント呼び出しは各種のラウンド ロビン シーケンスによってすべての登録済み IP アドレスを返します

AlwaysOn フェールオーバー クラスター インスタンスSQL Server の AlwaysOn フェールオーバー クラスター インスタンス (FCI) の主な目的は1 つのデータ センター内のローカル サーバーとストレージ ハードウェアでホストされている SQL Server インスタンスの可用性を高めることです

FCI はWindows Server フェールオーバー クラスタリング (WSFC) のクラスターに含まれる複数のノードにまたがってインストールされる1 つの論理的な SQL Server インスタンスですただし一度に 1 つのノードだけでアクティブになることができますクライアント アプリケーションはアクティブなクラスター ノードが所有している仮想ネットワーク名および仮想 IP アドレスに接続します

FCI をインストールした各ノードは同一の構成を持ち同一の SQL Server バイナリを含んでいますWSFC クラスター サービスはアクティブなインスタンス上にある Windows レジストリのエントリからFCI をインストールした各ノードに関連のある変更をレプリケートしますFCI がインストールされている各ノードはインスタンスとそのリソースの所有者の候補として指定されフェールオーバーの優先順位に従って所有者となります

共有対称ストレージ ボリュームに格納されているデータベース ファイルはリソースとして WSFC クラスターに登録され現在 FCI をホストしているノードによって所有されます

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 24

詳細については「AlwaysOn フェールオーバー クラスター インスタン ス」(httpmsdnmicrosoftcomja-jplibraryms189134(SQL110)aspx) を参照してください

FCI のフェールオーバー プロセス依存しているクラスター リソースで障害が発生した場合AlwaysOn フェールオーバー クラスター インスタンスはWSFC クラスター サービスと連携してフェールオーバーを行いますそのプロセスの概要を以下に示します

1) 再起動が指示されますWSFC の定期的なチェックまたは SQL Server のフェールオーバー ポリシー構成によってエラー状態が示されます既定では他のノードへのフェールオーバーを開始する前にサービスの再起動が試みられます再起動の試みがタイムアウトするようであればリソースの障害が発生しています

2) フェールオーバーが指示されますフェールオーバー ポリシー チェックによってノードのフェールオーバーが必要であることが示されます

3) SQL Server サービスが停止されますSQL Server サービスが現在実行されている場合はその正常なシャットダウンが試みられます

4) WSFC クラスター リソースが転送されますSQL Server クラスター リソース グループの所有権とそれが依存するネットワークおよび共有ストレージ リソースがFCI で次に優先されるノード所有者に転送されます

5) 新しいノードで SQL Server が起動されますSQL Server インスタンスは通常のスタートアップ プロシージャで起動されます所定のタイムアウト時間内にオンラインに戻らない場合クラスター サービスはこの新しいノード上のリソースをエラー状態と見なします

6) 新しいノードでユーザー データベースが復旧されます各ユーザー データベースは復旧モードに設定されます復旧モードではトランザクション ログの再実行操作が適用されコミットされていなかったトランザクションがロールバックされます

FCI の強化以前のバージョンの SQL Server でも FCI のインストール オプションは用意されていましたがSQL Server 2012 では次のような機能強化によって可用性の堅牢性と利便性が向上しました

マルチサブネット クラスタリングSQL Server 2012 では複数のサブネットに存在する WSFC クラスター ノードがサポートされていますWSFC クラスター ノードに存在する SQL Server インスタンスはいずれかのネットワーク インターフェイスが使用可能であれば起動できますこれはクラスター リソースの OR 依存関係と呼ばれます

以前のバージョンの SQL Server の場合SQL Server サービスを起動またはフェールオーバーするにはすべてのネットワーク インターフェイスが機能しそれらがすべて同じサブネットまたは VLAN に存在している必要がありました

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 25

注 マルチサブネット クラスタリングではクラスター ノード間のストレージ レベルのレプリケーションが自動的には有効になりませんマルチサブネットの FCI ソリューションでクラスター ノード間でデータのレプリケーションを行いストレージ フェールオーバーを調整するためにはサード パーティから提供される SAN ベースのソリューションを利用する必要があります

詳細については「SQL Server 2012 AlwaysOn マルチサイト フェールオーバー クラスター インスタンス」(httpsqlcatcomsqlcatbwhitepapersarchive20111222sql-server-2012-alwayson_3a00_-multisite-failover-cluster-instanceaspx) を参照してください

信頼性の高いエラー検出WSFC クラスター サービスではノードの各 SQL Server 2012 FCI に対してそれぞれ専用の管理者接続が維持されますこの接続では特殊なシステム ストアド プロシージャ sp_server_diagnostics を定期的に呼び出すことでシステムの正常性診断に役立つ豊富な情報を含む配列が返されます

SQL Server 2012 よりも前のバージョンではFCI の主な正常性検出メカニズムは単純な一方向のポーリング プロセスとして実装されていましたこのプロセスではWSFC クラスター サービスがインスタンスへの新しい SQL クライアント接続を定期的に作成しサーバー名を照会した後で接続を切断していました何かの理由で接続が失敗するかクエリがタイムアウトした場合フェールオーバーが開始されますが診断情報はほとんど提供されません

詳細については「sql_server_diagnostics」(httpmsdnmicrosoftcomja-jplibraryff878233(SQL110)aspx) を参照してください

現在ではFCI ストレージが次のように幅広い状況でサポートされています

向上したマウント ポイント サポートSQL Server のセットアップ時にクラスター ディスクのマウント ポイント設定が認識されるようになりました指定されたクラスター ディスクとそれにマウントされているすべてのディスクがセットアップ時に SQL Server リソースの依存関係に自動的に追加されます

ローカル ストレージの tempdbFCI ではローカルの非共有ストレージ (ローカル ソリッド ステート ドライブなど) に tempdb を配置できるようになったため共有 SAN での IO 動作の負荷を大幅に軽減できる可能性があります

SQL Server 2012 よりも前のバージョンの FCI ではtempdb が他のシステム データベースと共にフェールオーバーされる対称共有ストレージ ボリュームに配置される必要がありました

注 tempdb の場所はmaster データベースに格納されますこのデータベースはフェールオーバー時にノード間で移動されますtempdb は所有者候補となっているすべてのノード上で有効で対称的なファイル パス (ドライブフォルダーおよび権限) に配置されている必要がありますそうなっていない場合SQL Server サービスが一部のノードでは起動されません

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 26

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 27

データベースの可用性インフラストラクチャ レベルおよび SQL Server インスタンス レベルのコンポーネントで提供されている高可用性機能は互いに連係してホストされているデータベースを暗黙的に保護しますAlwaysOn ソリューションではデータベースのデータおよびデータ層アプリケーションを明示的に保護するために一連のオプションが追加で用意されています

AlwaysOn 可用性グループ可用性グループは1 つの SQL Server インスタンスから同じ WSFC クラスター内の別のインスタンスへと同時にフェールオーバーされるユーザー データベースのセットですクライアント アプリケーションは可用性グループ リスナーと呼ばれる WSFC 仮想ネットワーク名を通じて可用性グループのデータベースに接続できますこうすることで基になる SQL Server インスタンスが抽象化されます

AlwaysOn 可用性グループは正常性監視フェールオーバーの調整およびサーバー接続を Windows Server フェールオーバー クラスタリングに依存していますWSFC クラスター ノード上の SQL Server インスタンスでAlwaysOn サポートを有効にする必要がありますただしそのインスタンスが FCI である必要はなく対称共有ストレージを使用する必要もありません

詳細については「AlwaysOn 可用性グループの概要 」(httpmsdnmicrosoftcomja-jplibraryff877884(SQL110)aspx) を参照してください

可用性レプリカとロール可用性グループの各 SQL Server インスタンスは可用性グループのユーザー データベースのコピーを保持している可用性レプリカをホストしますSQL Server インスタンスは特定の可用性グループの可用性レプリカを 1 つだけホストすることができますが複数の可用性グループを同じインスタンスに置くことは可能ですSQL Server インスタンスは専用の (非共有) ストレージ ボリュームを持つ必要があります

可用性レプリカの 1 つがプライマリ レプリカの役割を果たしますこれは可用性グループ データベースのマスター コピーとして指定されていて読み取り書き込み操作を行うことができます

可用性グループには読み取り専用の可用性レプリカを最大 4 つまで追加で含めることができますこれらは個別にセカンダリ レプリカの役割を果たします

可用性レプリカの同期可用性グループの各データベースの内容はSQL Server によるログ ベースのデータ移動メカニズムを通じてプライマリ レプリカから各セカンダリ レプリカに同期されますそのため可用性グループのすべてのデータベースは完全復旧モデルに設定する必要があります

セカンダリ レプリカはプライマリ レプリカのデータベースとトランザクション ログの完全なバックアップと復元によって初期化されますプライマリ レプリカで新しいトランザクションがコミットされるとトランザクション ログの対応する部分がキャッシュされ

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 28

キューに入れられてネットワーク経由でセカンダリ レプリカ ノード上のデータベース ミラーリング エンドポイントに送信されます

この方法によりプライマリ レプリカのトランザクション ログの新しいエントリが各セカンダリ レプリカのトランザクション ログに追加されます各セカンダリ レプリカはログ シーケンス番号 (LSN) をプライマリ レプリカに定期的に送り返しトランザクション ログのどのくらいの量がリモート ディスクに書き込まれフラッシュされたかを示します

注 各可用性レプリカはそれぞれ独自に独立したトランザクション ログ再実行スレッドのセットを保持していますこれは可用性レプリカの同期プロセスには含まれませんセカンダリ レプリカ上ではログ再実行プロセスによって遅延時間が生じるためユーザーはそれをデータの待機時間として感じる場合があります

プライマリまたはセカンダリの役割を果たす他に各可用性レプリカには可用性モードもありますこのモードは次のようにCOMMIT TRAN ステートメントの実行時にトランザクション ログの書き込みの連係を制御します

同期コミット モードすべての同期コミット セカンダリ レプリカからそれぞれ独自のトランザクション ログの書き込み完了 (LSN 以降) が通知されるまでプライマリ レプリカはそのトランザクションをコミットしません可用性グループでは最大で 2 つの同期コミット セカンダリ レプリカを使用できます

同期コミット モードではプライマリ レプリカ データベースでトランザクションの遅延が生じますがコミットされたトランザクションに対するセカンダリ レプリカでのデータ損失を確実に防ぐことができます

非同期コミット モードプライマリ レプリカはローカル トランザクション ログの書き込み後にトランザクションをコミットしますが非同期コミット セカンダリ レプリカからトランザクション ログの書き込み完了通知を待つことはしません可用性グループでは最大で 4 つの非同期コミット セカンダリ レプリカを使用できますただし両方の種類を合わせて使用できるセカンダリ レプリカの合計は最大 4 つです

非同期コミット モードではプライマリ レプリカ データベースで生じるトランザクションの遅延が最小になりますがセカンダリ レプリカでのトランザクション ログが遅れる場合があるため一部のデータが失われる可能性があります

詳細については「可用性モード」(httpmsdnmicrosoftcomja-jplibraryff877931(SQL110)aspx) を参照してください

可用性レプリカ間のデータ フローの全体的な正常性は各レプリカの同期状態によって示されますセカンダリ レプリカにフェールオーバーしたときに同期状態が 同期済み または 同期中 になっていなければほとんどの場合はデータ損失が発生することになります

各セカンダリ レプリカの同期ストリームにはセッション タイムアウト プロパティがあります同期コミット モードに構成されているセカンダリ レプリカがセッション タイムアウトでエラーになると内部的には一時的に非同期としてマークされますこれはセカンダ

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 29

リ レプリカのエラーがプライマリ レプリカでのトランザクション ログの書き込みに影響しないようにするためですそのセカンダリ レプリカが正常に戻ってプライマリ レプリカの状態に追いつくと自動的に通常の同期コミット モード動作に戻されます

可用性グループのフェールオーバー可用性グループとそれに対応する仮想ネットワーク名はWSFC クラスターのリソースとして登録されます可用性グループはプライマリ レプリカの正常性とフェールオーバー ポリシーに基づいて可用性レプリカのレベルでフェールオーバーを行います

可用性グループのフェールオーバー ポリシーではsp_server_diagnostics システム ストアド プロシージャと FailureConditionLevel プロパティを使用して可用性グループに対して許容されるエラーの重大度のレベルを示しますこの同じメカニズムがFCI のフェールオーバー ポリシーにも使用されます

フェールオーバーが発生した場合は共有物理リソースの所有権を他のノードに移す代わりにWSFC を利用して他の SQL Server インスタンス上でセカンダリ レプリカを再構成しプライマリ レプリカの役割を引き継がせますその後可用性グループの仮想ネットワーク名リソースがそのインスタンスに転送されます関連する可用性レプリカへのすべてのクライアント接続がリセットされます

レプリカの現在の正常性同期状態および可用性モードに基づいて各レプリカには複合的な フェールオーバーの準備 状態が定義されますこの状態の値はデータ損失の可能性を示していますレプリカの正常性情報はAlwaysOn ダッシュボードまたは sysdm_hadr_availability_replica_states システム ビューで確認できます

各可用性レプリカにはフェールオーバー モードも構成されていますこのモードはフェールオーバーが指示された場合にレプリカの動作を制御します

自動フェールオーバー (データ損失なし)セカンダリ レプリカのトランザクション ログが既に書き込まれ同期されているのですべての AlwaysOn 構成の中でフェールオーバー時間が最短になりますプライマリ レプリカ上の開かれているトランザクションはロールバックされプライマリ レプリカの役割はユーザーによる操作なしでセカンダリ レプリカに転送されます

この場合プライマリ レプリカとセカンダリ レプリカの両方を自動フェールオーバー モードに設定し両方の可用性モードを同期コミットに設定する必要がありますレプリカ間の同期状態は同期済み である必要がありますまたWSFC クラスターは正常なクォーラム状態になっている必要があります

自動フェールオーバーはプライマリ レプリカまたはセカンダリ レプリカが FCI 上にある場合はサポートされませんこれは可用性グループと FCI のフェールオーバー間で競合状態が発生することを防ぐためです

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 30

手動フェールオーバーこの場合管理者はプライマリ レプリカの状態を評価してセカンダリ レプリカにフェールオーバーするかどうかを慎重に判断できます

可用性モードと同期状態に応じて次のような選択が可能です

o 計画的な手動フェールオーバー (データ損失なし)この種類のフェールオーバーを実行できるのはプライマリ レプリカとセカンダリ レプリカの両方が正常で同期済み 状態である場合だけですこれは機能的には自動フェールオーバーと同じです

o 強制手動フェールオーバー (データ損失の可能性を許容)これは対象のセカンダリ レプリカの可用性モードが非同期コミットである場合またはプライマリ レプリカに同期されない場合に使用できる唯一のフェールオーバー形式です

警告 このフェールオーバー オプションは災害復旧の状況に限って使用する必要がありますプライマリ レプリカが正常で使用可能である場合は関連する各レプリカの可用性モードを同期コミットに変更し計画的な手動フェールオーバーを実行してください

詳細については「可用性グループの強制手動フェールオーバーの実行」(httpmsdnmicrosoftcomja-jplibraryff877957(SQL110)aspx) を参照してください

フェールオーバー対象のプライマリ レプリカまたはセカンダリ レプリカが次の条件のいずれかに該当する場合は手動フェールオーバーを実行する必要があります

フェールオーバー モードが手動に設定されている 可用性モードが非同期コミットに設定されている レプリカが FCI 上にある

詳細については「フェールオーバーとフェールオーバー モード (AlwaysOn 可用性グルー プ ) 」(httpmsdnmicrosoftcomja-jplibraryhh213151(SQL110)aspx) を参照してください

注 フェールオーバー後新しいプライマリ レプリカが同期コミット モードに設定されていない場合セカンダリ レプリカの同期状態は 中断状態 になりますプライマリ レプリカが同期コミット モードに設定されるまでデータはセカンダリ レプリカに移動されません

可用性グループ リスナー可用性グループ リスナーはクライアントが可用性グループ内のデータベースにアクセスするために使用できる WSFC 仮想ネットワーク名 (VNN) ですVNN クラスター リソースはプライマリ レプリカをホストしている SQL Server インスタンスによって所有されます

仮想ネットワーク名は可用性グループ リスナーの作成時または構成の変更時にのみDNS に登録されます可用性グループ リスナーで定義されているすべての仮想 IP アドレスは同じ仮想ネットワーク名で DNS に登録されます

可用性グループ リスナーを使用する場合クライアント接続要求ではサーバーとして仮想ネットワーク名を指定してから可用性グループ内のデータベース名を指定する必要があり

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 31

ます既定ではこれによってプライマリ レプリカをホストしている SQL Server インスタンスに接続されます

実行時にはクライアントはローカルの DNS リゾルバーを使用して仮想ネットワーク名にマップされている IP アドレスと TCP ポートの一覧を取得しますクライアントは各 IP アドレスへの接続を成功するか接続タイムアウトに達するまで試し続けますMultiSubnetFailover パラメーターが true に設定されているとクライアントは複数の接続を同時に試行するのでクライアント フェールオーバーが大幅に速くなります

フェールオーバーが行われるとサーバー上でクライアント接続がリセットされ可用性グループ リスナーの所有権はプライマリ レプリカの役割と共に新しい SQL Server インスタンスに移動しVNN エンドポイントは新しいインスタンスの仮想 IP アドレスと TCP ポートにバインドされます

詳細については「可用性グループ リスナークライアント接続およびアプリケーションのフェールオーバー」(httpmsdnmicrosoftcomja-jplibraryhh213417(SQL110)aspx) を参照してください

アプリケーションの目的によるフィルター処理可用性グループ リスナーを使用して接続している場合アプリケーションは接続の目的がデータの読み取りと書き込みの両方なのか読み取り専用操作を実行するだけなのかを指定できます指定しない場合クライアントのアプリケーションの目的は既定で読み取りと書き込みになります

各可用性レプリカのプライマリ ロールとセカンダリ ロールについてはクライアントのアプリケーションの目的に対する接続レベルのフィルターとして接続アクセス プロパティも指定できます既定ではアプリケーションの目的と接続アクセスとの組み合わせが無効であると接続が拒否されますSQL Server は次のルールを使用してクライアントの接続要求を振り分ける必要があります

可用性レプリカがプライマリ ロールであり接続アクセスが次のいずれかである場合

すべてのアプリケーションの目的を許可するアプリケーションの目的でクライアント接続をフィルター処理しません

明示的な読み取り書き込みの目的だけを許可するクライアントが読み取り専用を指定している場合接続を拒否します

可用性レプリカがセカンダリ ロールであり接続アクセスが次のいずれかである場合

接続を許可しないすべての接続を拒否しますレプリカは災害復旧だけに使用されます

すべてのアプリケーションの目的を許可するアプリケーションの目的でクライアント接続をフィルター処理しません

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 32

読み取り専用の目的を許可するクライアントが読み取り専用を指定していない場合接続を拒否します

詳細については「可用性レプリカでの読み取り専用アクセスの構成」(httpmsdnmicrosoftcomja-jplibraryhh213002(SQL110)aspx) を参照してください

アプリケーションの目的の読み取り専用ルーティングAlwaysOn 可用性グループの特に優れた点はスタンバイ ハードウェア インフラストラクチャを災害復旧以外の目的に利用できることです1 つ以上のセカンダリ レプリカを読み取り専用でアクセスできるように構成するとプライマリ レプリカからかなりの量のワークロードを軽減できます

読み取り専用セカンダリ レプリカに回すように簡単に調整できるワークロードはレポートデータベース バックアップデータベース整合性チェックインデックスの断片化の分析データ パイプライン抽出運用サポート操作サポートアドホック クエリなどです

各可用性レプリカではSQL Server インスタンスのエンドポイントについて順次的な読み取り専用ルーティング リストを構成することもできますこのリストはレプリカがプライマリ ロールであるときに適用されますこのリストが存在する場合アプリケーションの目的が読み取り専用と指定されているクライアント接続要求はそのリスト内に記載されていて前述のアプリケーションの目的フィルターに適合する最初のセカンダリ レプリカにリダイレクトされます

注 読み取り専用ルーティングによるリダイレクトはプライマリ レプリカにバインドされている可用性グループ リスナーによって実行されますプライマリ レプリカがオフラインの場合クライアントのリダイレクトは機能しません

詳細については「可用性グループの読み取り専用ルーティングの構成 (SQL Server) 」(httpmsdnmicrosoftcomja-jplibraryhh710054(SQL110)aspx) を参照してください

可用性の向上 ndash データベースSQL Server 2012 ではデータベースの構成と機能に関してさまざまな点が強化されています

以下の機能は復旧時間の短縮に役立ちます

予測可能な復旧時間データベースごとにターゲット復旧時間の長さを設定することでバックグラウンドで実行される CHECKPOINT コマンドのスケジュールを制御できますこのコマンドは間接的なチェックポイントとして再起動時またはフェールオーバー時にトランザクション ログの復旧に必要となる時間の推定値に基づいて定期的に実行されますそれによってチェックポイントごとに IO 操作がほぼ均等に配分され復旧時間 (RTO) の予測可能性が高まります

SQL Server 2012 よりも前のバージョンではバックグラウンドの CHECKPOINT コマンドがトランザクションの量や負荷とは無関係に一定間隔で実行されていたので復旧時間を予測することはできませんでした

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 33

詳細については「データベース チェックポイント」(httpmsdnmicrosoftcomja-jplibraryms189573(SQL110)aspx) を参照してください

以下の向上点は計画的なダウンタイムが必要になる一般的な状況を減らすのに役立ちます

LOB 列のオンライン インデックス操作varbinary(max)varchar(max)nvarchar(max)または XML データ型の列が含まれているインデックスをオンラインで再構築または再構成できるようになりました

新しい NOT NULL 列のオンライン スキーマ修正既定値を使用して新しい NOT NULL 列を SQL Server 2012 データベース テーブルに追加する場合システム メタデータの更新にはスキーマ ロックだけが必要ですALTER TABLE ステートメントですべての行にデータを設定する必要はありません

いずれかの行で実際に変更またはインデックスの再作成が行われない限り列の既定値は物理的に格納されませんクエリでは列に実際の値が存在しない場合メタデータから既定値を返します

ストレージのサポート強化の例として次のようなものがあります

ページの自動修復ある種のストレージ サブシステム エラーが発生するとデータ ページが破損し読み取り不可能になる場合がありますAlwaysOn 可用性グループではそのような種類のエラーを検出し自動的に復旧できます復旧のために影響を受けたデータ ページの最新のコピーが別の可用性レプリカから非同期で取得され適用されます

以前のバージョンでもデータベース ミラーリングに同様の機能がありましたが新しい機能では複数のレプリカをサポートできるようになっています

詳細については「ページの自動修復」(httpmsdnmicrosoftcomja-jplibrarybb677167(SQL110)aspx) を参照してください

クライアント接続の推奨事項クライアント アプリケーションが Microsoft SQL Server 2012 AlwaysOn テクノロジの利点を十分に活用できるようにするには次のガイドラインに従います

AlwaysOn 対応のクライアント ライブラリ表形式のデータ ストリーム (TDS) プロトコル Version 74 以降をサポートしているクライアント ライブラリを使用しますこれによってAlwaysOn の機能に対応した適切な機能がクライアント側でも提供されますクライアント ライブラリの例としてはData Provider for SQL Server in NET Framework 402SQL Native Client 110 などがあります

接続プロバイダー プロパティ MultiSubnetFailover = True接続文字列にこのキーワードを使用することでクライアント ライブラリでは(複数のサブネットに IP アドレスを持つ) 可用性グループ リスナーまたは FCI に登録されているすべての IP アドレスに同時に接

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 34

続できるようになります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 35

接続プロバイダー プロパティ ApplicationIntent = ReadOnly必要に応じてプライマリ レプリカの読み取り専用ワークロードをセカンダリ レプリカに移管することができます

レガシ クライアントの接続タイムアウトレガシ クライアントのデータベース ライブラリには並列で接続を試行する機能が実装されていないため複数の IP アドレスがある場合にはTCP タイムアウトに達するか正常に接続できるまで1 つずつ順番に接続を試行します

複数の IP アドレスが存在する場合はタイムアウトと再試行が逐次的に繰り返される可能性に備えてレガシ クライアントの接続タイムアウトを調整する必要があります値は少なくとも 15 秒 + 21 秒 times セカンダリ レプリカ数にします

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 36

結論このホワイト ペーパーではSQL Server 2012 の AlwaysOn による高可用性災害復旧ソリューションを使用し予定されたダウンタイムや予定外のダウンタイムを短縮したりアプリケーションの可用性を最大限に高めたりデータを保護したりする方法について基本的なコンテキストを確立しました

高可用性データベース環境の計画管理測定に関連したビジネス上の目的と課題は多くの場合目標復旧時点 (RPO) と目標復旧時間 (RTO) という形で数量化して表すことができます

SQL Server 2012 AlwaysOn は組織が高可用性や災害復旧に関する一般的な状況に対処するための機能をRPO と RTO を適切に達成できることを念頭にインフラストラクチャ レベルデータ プラットフォーム レベルデータベース レベルのそれぞれで提供します

詳細情報

httpwwwmicrosoftcomja-jpsqlserver2012defaultaspx SQL Server Web サイト

httptechnetmicrosoftcomja-jpsqlserver SQL Server TechCenter

httpmsdnmicrosoftcomja-jpsqlserver SQL Server 開発者向け技術情報

このホワイト ペーパーはお役に立ちましたか フィードバックをお寄せください1 (役に立たなかった) ~ 5 (非常に役に立った) の 5 段階で評価してくださいまたその評価の理由もお知らせください以下に例を示します

評価が高い 例が適切図がわかりやすい説明が明快といったことが理由である 評価が低い 例が少ない図がわかりにくい説明があいまいといったことが理由で

ある

このようなフィードバックをお寄せいただくと今後のホワイト ペーパーの品質向上につながります

フィードバックの送信

loz Version 112012 年 2 月 21 日

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 37

  • 高可用性と災害復旧の概念
    • 高可用性について
      • 予定されたダウンタイムと予定外のダウンタイム
      • 段階的な可用性
        • ダウンタイムの定量化
          • 復旧目標
          • ROI または機会費用の正当化
          • 可用性の健全度の監視
          • 災害復旧の計画
            • 概要 Microsoft SQL Server 2012 での高可用性
              • SQL Server AlwaysOn
              • 計画的なダウンタイムの大幅な削減
              • アイドル状態のハードウェアをなくしてコスト効率とパフォーマンスを向上
              • 簡単な配置と管理
              • RPO と RTO の機能比較
                  • SQL Server AlwaysOn の保護レイヤー
                    • インフラストラクチャの可用性
                      • Windows オペレーティング システム
                        • Windows Server Core インストール オプション
                        • プライベート クラウド用の SQL Server の最適化
                          • Windows Server フェールオーバー クラスタリング
                            • WSFC ストレージ構成
                            • WSFC リソースの正常性の検出とフェールオーバー
                              • WSFC のクラスター検証ウィザード
                              • WSFC クォーラム モードと投票の構成
                                • クォーラムによるクラスター状態検出
                                • クォーラム モード
                                • 投票ノードと非投票ノード
                                • クォーラム投票に推奨される調整
                                  • WSFC の強制クォーラムによる災害復旧
                                    • SQL Server インスタンス レベルでの保護
                                      • 可用性の向上 ndash SQL Server インスタンス
                                      • AlwaysOn フェールオーバー クラスター インスタンス
                                        • FCI のフェールオーバー プロセス
                                        • FCI の強化
                                            • データベースの可用性
                                              • AlwaysOn 可用性グループ
                                                • 可用性レプリカとロール
                                                • 可用性レプリカの同期
                                                  • 可用性グループのフェールオーバー
                                                  • 可用性グループ リスナー
                                                    • アプリケーションの目的によるフィルター処理
                                                    • アプリケーションの目的の読み取り専用ルーティング
                                                      • 可用性の向上 ndash データベース
                                                        • クライアント接続の推奨事項
                                                          • 結論
Page 7: 高可用性と災害復旧の概念download.microsoft.com/download/6/B/E/6BE0C3F3-2991-4766... · Web view高可用性と災害復旧のソリューションのために最適なデータベース

予定されたダウンタイムと予定外のダウンタイムシステムの停止には予測または計画されたものと予定外の障害によって生じるものとがありますダウンタイムは適切に管理されているのならば否定的に考える必要はありません予測可能なダウンタイムには主に次の 2 種類があります

計画的なメンテナンスあらかじめ時間枠を予告したうえで計画されたメンテナンス タスクが行われますたとえばソフトウェア修正プログラムの適用ハードウェアのアップグレードパスワードの更新オフラインでのインデックス再作成データの読み込み災害復旧手順のリハーサルなどです操作手順を入念に準備することでダウンタイムを最小限に抑えデータ損失を防ぐことができます計画的なメンテナンス作業は予定外の停止によってさらに深刻な事態を招くのを防いだりそのような場合の被害を軽減したりするために必要な投資と考えることができます

予定外の停止システムインフラストラクチャまたはプロセスのレベルで障害が発生した場合ですそれらは予定外で制御できないものであったり予測可能ではあってもまず発生しないだろうと考えられたり影響は許容範囲だろうと考えられたりしたものです堅牢な高可用性ソリューションはそのような障害を検出し停止状態から自動的に復旧してフォールト トレランスを再確立することができます

高可用性に関するサービス レベル契約 (SLA) を規定するときには計画的なメンテナンス作業と予定外のダウンタイムの両方についてそれぞれ個別に主要業績評価指標 (KPI) を計算する必要がありますそうすることで計画的なメンテナンス作業への投資を予定外のダウンタイムを回避できた場合の利益と比較して検討することができます

段階的な可用性高可用性は100 か 0 かの問題として捉えるべきではありませんシステムが完全に停止するのではなく部分的に使用できるのであれば機能が制限されたりパフォーマンスが低下したりしてもエンド ユーザーに許容される場合もよくあります可用性には次のようにさまざまな段階があります

読み取りのみ可能および操作の遅延メンテナンス期間中や災害復旧の処理中にデータを取得することはできても新しいワークフローやバックグラウンド処理は一時的に中断されたりキューに入れられたりする場合があります

データ待機時間とアプリケーションの応答時間大量のワークロードバックログの処理プラットフォームの部分的な障害などが原因で限りのあるハードウェア リソースが負荷過剰になったりサイズ不足になったりする場合がありますこれはユーザー エクスペリエンスに影響し生産性は低下しますが作業は続けることができます

部分的一時的または差し迫った障害アプリケーション ロジックやハードウェア スタックが堅牢にできていればエラーが発生しても再試行や自己修正が行われますこのような場合エンド ユーザーはデータの待ち時間やアプリケーションの応答時間を長く感じることがあります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 2

部分的なエンド ツー エンドの障害予定された停止または予定外の停止がソリューション スタックの垂直的なレイヤー (インフラストラクチャプラットフォームおよびアプリケーション) 内でまたは水平的な各種の機能コンポーネント間で整然と行われる場合がありますユーザーは影響を受ける機能またはコンポーネントに応じて部分的に操作が成功したりパフォーマンスの低下を感じたりします

これらの状況はそれぞれ完全な停止に至るまでの可用性の一段階であると同時に災害復旧フェーズの中間段階とも考えることができそれぞれの状況がどの程度許容できるかを判断する必要があります

ダウンタイムの定量化ダウンタイムが発生した場合にはそれが予定されたものであったか予定外のものであったかにかかわらずシステムをオンラインに戻しデータ損失を最小限に抑えることがビジネスとして第一の目標となりますダウンタイムが 1 分経過するごとに直接または間接のコストが刻々と増えていきます予定外のダウンタイムが発生したのであれば時間と労力を適切に配分しながら停止の理由を調査し現在のシステム状態を把握し復旧手順を決定する必要があります

どのような場合でも事前に決めておいた時間になったらビジネス上の意思決定を行う必要があります停止の原因調査やメンテナンス操作を中止してシステムをオンラインに戻すかどうか必要に応じてフォールト トレランスを再構築するかどうかなどを判断します

復旧目標データの冗長性は高可用性データベース ソリューションの重要な要素の 1 つですプライマリ SQL Server インスタンスに対するトランザクションの操作は同期または非同期で1 つ以上のセカンダリ インスタンスにも適用されます障害が発生すると処理中のトランザクションはロールバックされるかまたはデータ伝達の遅れのためにセカンダリ インスタンスでは失われる可能性もあります

影響を見積もりながら機能の復旧にどれくらいの時間がかかるか最後のトランザクションを回復するためにどれくらいの遅延が生じるかという観点で次の復旧目標を設定します

目標復旧時間 (RTO)これはシステムが停止している時間の長さを意味します最初の目標は少なくとも読み取り専用の状態でシステムをオンラインに戻し障害について調査できるようにすることですただし最終的な目的は新しいトランザクションを実行できる状態まで完全にサービスを復元することです

目標復旧時点 (RPO)これは多くの場合どのくらいのデータ損失が許容されるかの基準として考えられます障害発生前に最後にコミットされたデータ トランザクションと障害発生後に復元された最新のデータとの時間差や遅延が示されます実際に失われるデータの量は障害発生時のシステムのワークロード障害の種類および使用されている高可用性ソリューションの種類に応じて異なります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 3

RTO と RPO の値はビジネスで許容できるダウンタイムとデータ損失の目安としてまた可用性が健全であるかどうかを監視する際の指標として使用します

ROI または機会費用の正当化ダウンタイムによって生じるビジネス上のコストには金銭的なコストだけでなく顧客からの信用も含まれますこれらのコストには時間の経過と共に発生するものもあれば停止期間中の特定の時点で発生するものもあります復旧時間とデータ復旧ポイントに基づいて停止のコストを見積もる以外にRTO および RPO の達成や停止自体の回避に必要なビジネス プロセスを考えたりインフラストラクチャへの投資を計算したりすることもできますこれらの投資の目的は次のようなものです

ダウンタイムの回避そもそも停止状態にならなければ復旧のコストをまとめて回避できますこの投資にはフォールト トレランスと冗長性のためのハードウェアまたはインフラストラクチャ各障害点を分離した分散ワークロード予防メンテナンスのための計画的なダウンタイムなどのコストが含まれます

復旧の自動化システム障害が発生した場合自動的で透過的な復元が行われればダウンタイムによるカスタマー エクスペリエンスへの影響を大幅に抑えることができます

リソース使用率セカンダリまたはスタンバイ インフラストラクチャは障害に備えてアイドル状態にしておくことができますまた読み取り専用ワークロードのために利用したり利用可能なすべてのハードウェアにワークロードを分散してシステム全体のパフォーマンスを向上させたりもできます

RTO と RPO の目標実現に必要な可用性と復旧のための投資は予測されるダウンタイムのコストと組み合わせて時間の関数として表現し正当化することができますこれによって実際の停止中にダウンタイムの経過時間に基づいてコスト ベースの判断を行うことができます

可用性の健全度の監視運用上の観点からは実際の停止中に関連するすべての変数を考慮しリアルタイムで ROI または機会費用を計算しようとするべきではありません実際にはRPO の期待値に代わるものとしてスタンバイ インスタンスのデータ遅延を監視します

停止の際根本的な原因の調査に費やす時間は制限し代わりに復旧環境の正常性の検証に集中する必要がありますその後詳細なシステム ログとデータのセカンダリ コピーに基づいて原因究明の分析を行います

災害復旧の計画

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 4

高可用性のための取り組みでは停止を回避するために何をするかが問題になりますが災害復旧のための取り組みでは停止後に高可用性を再構築するために何をするかが問題になります

できる限り実際に停止状態になる前に災害復旧の手順と役割分担を策定しておくようにします実行中の監視と警告に基づいて自動または手動のフェールオーバーと復旧計画を開始するかどうかは事前に決められた RTO および RPO のしきい値を考慮しつつ判断する必要があります災害復旧計画には次のようなものを含める必要があります

障害と復旧の適用範囲障害の場所や種類に応じてデータ センター レベルインフラストラクチャ レベルプラットフォーム レベルアプリケーション レベルワークロード レベルなどさまざまなレベルで修正措置が行われます

調査のための資料ベースラインと最新の監視の履歴システム警告イベント ログ診断クエリなどを関係者がいつでも利用できるようにしておく必要があります

依存関係の調整アプリケーション スタック内でまたは関係者間でシステムやビジネスの依存関係を把握しておきます

デシジョン ツリー繰り返し使用できるデシジョン ツリーを事前に定義して検証しておきますこれにはロールの役割障害の優先順位RPO と RTO を実現するためのフェールオーバーの条件所定の復旧手順などを含めます

検証停止状態からの復旧手順を実行した後でシステムが通常の状態に戻ったことを検証するために何をしなければならないかを整理しておきます

文書化新しい担当者でも最低限の補助があれば復旧計画を実行できるように上記のすべての項目を詳細で明確な一連の文書として記録しておきますこのような文書は一般的にラン ブック または クック ブック と呼ばれます

復旧のリハーサル定期的に災害復旧計画の演習を行いRTO のベースラインとなる期待値を確立しプライマリ サイトと各災害復旧サイトでの本番運用のローテーションを検討します

概要 Microsoft SQL Server 2012 での高可用性要求される RPO と RTO を実現するには主要アプリケーションの継続的なアップタイムを確保することと予定外のダウンタイムや予定されたダウンタイム時に重要なデータを保護することが必要ですSQL Server では低コストで簡単にこれらの目標を実現できる一連の機能が用意されています

新しい AlwaysOn の機能について既によくご存じの方は「SQL Server AlwaysOn の保護レイ ヤー」のセクションに進んでより詳細な説明をご覧ください

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 5

SQL Server AlwaysOnAlwaysOn は高い統合性柔軟性およびコスト効率を特徴とした新しい高可用性災害復旧ソリューションですデータ センター内およびデータ センター間でデータとハードウェアの冗長性を実現しアプリケーションのフェールオーバー時間を短縮することでミッション クリティカル アプリケーションの可用性を高めますAlwaysOn は構成の柔軟性が高く既存のハードウェア投資を再利用できます

AlwaysOn ソリューションではデータベース レベルとインスタンス レベルの両方で可用性を構成するためにSQL Server 2012 の次の 2 つの主要な機能を利用できます

AlwaysOn 可用性グループSQL Server 2012 の新機能の 1 つですデータベース ミラーリング機能の大幅な強化によってアプリケーション データベースの可用性の確保に役立ちますログに基づくデータの移動によってデータ保護を実現し共有ディスクを使用せずにデータ損失をゼロにすることができます

複数のデータベースから成る論理グループの単位で自動および手動のフェールオーバーを実行できますまた最大で 4 つのセカンダリ レプリカのサポート高速なアプリケーション フェールオーバー自動ページ修復など多彩なオプションが用意されています

AlwaysOn フェールオーバー クラスター インスタンス (FCI)SQL Server フェールオーバー クラスタリング機能を拡張し複数のサブネットにわたるマルチサイト クラスタリングをサポートしますこれにより異なるデータ センター間での SQL Server インスタンスのフェールオーバーが可能になりますインスタンスのフェールオーバーがより高速となり予測可能となることでアプリケーションをさらにすばやく復旧させることができます

計画的なダウンタイムの大幅な削減どの組織でもアプリケーション ダウンタイムの主な理由はオペレーティング システムへの修正プログラムの適用ハードウェア メンテナンスなどのための計画的なダウンタイムですこうしたダウンタイムがIT 環境の停止の約 80 を占めています

SQL Server 2012 は修正プログラムの要件を減らしより多くのメンテナンス操作をオンラインで実行できるようにすることで計画的なダウンタイムの大幅な削減に役立ちます

Windows Server CoreSQL Server 2012 ではWindows Server Core への配置がサポートされていますこれはWindows Server 2008 および Windows Server 2008 R2 の最小限の合理化された配置オプションですこれによりオペレーティング システムの修正プログラムの要件を最小限に抑え約 60 削減することで計画的なダウンタイムを減らすことができます

オンライン操作LOB のインデックスを再作成したり既定値を使用して列を追加したりするオンライン操作のサポート強化によってデータベース メンテナンス時のダウンタイムが削減されます

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 6

ローリング アップグレードと修正プログラムAlwaysOn 機能はインスタンスのローリング アップグレードと修正プログラムの適用を容易にしますこれによりアプリケーションのダウンタイムが大幅に削減されます

Hyper-V 上の SQL ServerHyper-V 環境でホストされている SQL Server インスタンスではライブ マイグレーションの利点を活用することでホスト間の仮想マシンの移行をダウンタイムなしで実行できます管理者はアプリケーションに影響を与えずにホスト上でメンテナンス操作を実行できます

アイドル状態のハードウェアをなくしてコスト効率とパフォーマンスを向上典型的な高可用性ソリューションでは高コストで冗長なパッシブ サーバーが配置されますAlwaysOn 可用性グループを使用するとパッシブまたはアイドルな状態のセカンダリ データベース レプリカを読み取り専用のワークロード (SQL Server Reporting Services のレポート クエリバックアップ操作など) に活用できますプライマリとセカンダリの両方のデータベース レプリカを同時に使用できるためサーバー ハードウェア間のリソースのバランスが良くなりすべてのワークロードのパフォーマンスが向上します

簡単な配置と管理構成ウィザードWindows PowerShell コマンド ライン インターフェイスのサポートダッシュボード動的管理ビュー (DMV)ポリシー ベースの管理System Center 統合などの機能によって可用性グループの配置と管理が簡単になります

RPO と RTO の機能比較目標復旧時点 (RPO) と目標復旧時間 (RTO) のビジネス目標は高可用性災害復旧ソリューションのために使用する SQL Server テクノロジを選択する際に重要な判断材料となります次の表はさまざまなソリューションで実現される結果を大まかに比較したものです

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 7

高可用性と災害復旧のSQL Server ソリューション

データ損失の可能性 (RPO)

可能な復旧時間 (RTO)

自動フェールオーバー

読み取り可能な

セカンダリ(1)

AlwaysOn 可用性グループ - 同期コミット ゼロ 数秒 (4) 0 - 2

AlwaysOn 可用性グループ - 非同期コミット 数秒 数分 times 0 - 4

AlwaysOn フェールオーバー クラスター インスタンス

該当せず(5) 数秒~ 数分

該当せず

データベース ミラーリング(2) - 高い安全性 (同期 + 監視)

ゼロ 数秒 該当せず

データベース ミラーリング(2) - 高パフォーマンス (非同期)

数秒(6) 数分(6) times 該当せず

ログ配布 数分(6) 数分~ 数時間(6)

times 復元中はなし

バックアップコピー復元(3) 数時間(6) 数時間~ 数日(6)

times 復元中はなし

(1) AlwaysOn 可用性グループで使用できるセカンダリ レプリカは種類に関係なく最大 4 つです(2) この機能は将来のバージョンの Microsoft SQL Server では削除される予定です代わりに AlwaysOn 可用性グループを使用

してください(3) バックアップコピー復元は障害復旧には適していますが高可用性には適していません(4) 可用性グループの自動フェールオーバーはフェールオーバー クラスター インスタンスとの間ではサポートされていま

せん(5) FCI 自体にはデータ保護機能はありませんデータ損失はストレージ システムの実装に依存します(6) ワークロードデータ量およびフェールオーバーの手順に大きく依存します

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 8

SQL Server AlwaysOn の保護レイヤーSQL Server AlwaysOn ソリューションではインフラストラクチャとアプリケーション コンポーネントのいくつかの論理レイヤーおよび物理レイヤーにまたがってフォールト トレランスと災害復旧を実現できます従来はさまざまな関係者と役割ごとに業務と責任を振り分けそれぞれが主に自分のソリューションのレイヤー部分だけに関心を持つことが一般的でした

このセクションではこれらのレイヤーのそれぞれについて詳細に説明しデザインに関する議論や実装についての意思決定に役立つ論点やガイダンスを提示します

SQL Server AlwaysOn ソリューションをうまく利用するには以下のレイヤーについて理解しそれぞれを協調させる必要があります

インフラストラクチャ レベルサーバー レベルのフォールト トレランスとノード内のネットワーク通信が含まれますWindows Server フェールオーバー クラスタリング (WSFC) 機能を使用して稼働状態の監視とフェールオーバーの調整を行います

SQL Server インスタンス レベルSQL Server AlwaysOn フェールオーバー クラスター インスタンス (FCI) はWSFC クラスター内の複数のサーバー ノードにまたがってインストールされる SQL Server インスタンスであり各サーバー ノードへのフェールオーバーが可能ですFCI をホストするノードは堅牢な対称型共有ストレージ (SAN または SMB) に接続されます

データベース レベル可用性グループは共にフェールオーバーされるユーザー データベースのセットです可用性グループは1 つのプライマリ レプリカと最大 4 つのセカンダリ レプリカで構成されます各レプリカはWSFC クラスターの別々のノードにある SQL Server インスタンス (FCI または非 FCI) によってホストされます

クライアント接続データベース クライアント アプリケーションは指定した SQL Server インスタンス ネットワーク名に直接接続できますまたは可用性グループ リスナーにバインドされている仮想ネットワーク名 (VNN) に接続することもできますVNN はWSFC クラスターおよび可用性グループのトポロジを抽象化するものであり接続要求を適切な SQL Server インスタンスとデータベース レプリカに論理的にリダイレクトします

代表的な AlwaysOn ソリューションの論理トポロジは次の図のようになります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 9

インフラストラクチャの可用性AlwaysOn 可用性グループと AlwaysOn フェールオーバー クラスター インスタンスのどちらもWindows Server オペレーティング システムと WSFC をプラットフォーム テクノロジとして利用します今まで以上にMicrosoft SQL Server データベース管理者はこれらのテクノロジについて十分に理解することが必要です

Windows オペレーティング システムSQL Server は基礎的なインフラストラクチャとネットワークストレージセキュリティ更新プログラムおよび監視のサービスを Windows プラットフォームに依存しています

SQL Server 2012 の各エディションはWindows Server 2008 R2 オペレーティング システムの対応するエディション (Windows Server 2008 R2 Standard オペレーティング システムWindows Server 2008 R2 Enterprise オペレーティング システムWindows Server 2008 R2 Datacenter オペレーティング システムなど) の機能や能力をさらに進歩させて構築されています

詳細については「SQL Server 2012 のインストールに必要なハードウェアおよびソフトウェ ア」(httpmsdnmicrosoftcomja-jplibraryms143506(SQL110)aspx) を参照してください

Windows Server Core インストール オプションSQL Server 2012 では高可用性のための主要な機能の 1 つとしてWindows Server 2008 以降で Server Core インストール オプションによる配置をサポートしていますServer Core インストール オプションでは制限された機能と非常に限定的な GUI アプリケーション サポートで特定のサーバー ロールを実行するための最低限の環境が提供されます既定では必要なサービスとコマンド プロンプト環境のみが有効です

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 10

この操作モードではオペレーティング システムへの攻撃の危険性とシステム オーバーヘッドが低下し継続的なメンテナンスサービス修正プログラムなどの要件が大幅に削減されます

SQL Server 2012 を Windows Server Core に配置する場合の主な注意点はSQL Server およびオペレーティング システムのすべての配置構成管理およびメンテナンスをWindows PowerShell などのスクリプト環境やコマンド ラインまたはリモート ツールを使用して行う必要があることです

プライベート クラウド用の SQL Server の最適化高可用性と災害復旧はプライベート クラウド環境ではさらに重要になってきていますプライベート クラウドに SQL Server を配置すればコンピューターネットワークおよびストレージのリソースが効率的に使用され物理的な場所や資本と運営費用の両方の削減に役立ちます配置の統合リソースの効率的なスケーリングオンデマンドでのリソースの配置が容易になり制御の自由度が失われることもありません

SQL Server ではHyper-V のホストとゲストの両方のシステムに対して Windows Server フェールオーバー クラスタリングをサポートするほかライブ マイグレーションもサポートしていますこれは意識されるほどのダウンタイムを生じることなくホスト間で仮想マシンを移動できる機能ですライブ マイグレーションはゲスト クラスタリングとも協調して動作します

詳細については「プライベート クラウド コンピューティング - プライベート クラウド用の SQL Server の最適化 」(httpwwwmicrosoftcomSqlServerPrivateCloud) を参照してください

Windows Server フェールオーバー クラスタリングWindows Server フェールオーバー クラスタリング (WSFC) はMicrosoft SQL Server などのサーバー アプリケーションに対して高可用性と災害復旧をサポートするインフラストラクチャ機能を提供します

WSFC クラスター ノードまたはサービスに障害が発生するとそのノードでホストされていたサービスまたはリソースは自動的にまたは手動で他の可用性ノードに転送されますこのプロセスをフェールオーバーと呼びますAlwaysOn ソリューションではこのプロセスが FCI と可用性グループの両方に適用されます

WSFC クラスター内の各ノードは連携して次のような機能を提供します

分散メタデータと通知WSFC サービスとホストされるアプリケーション メタデータはクラスター内の各ノードで維持されますこのメタデータにはホストされるアプリケーションの設定に加えWSFC の構成と状態が含まれます1 つのノードでのメタデータまたは状態の変更はクラスター内の他のノードに自動的に反映されます

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 11

リソース管理クラスター内の各ノードは直接アタッチされたストレージ (DAS)ネットワーク インターフェイス共有ディスク ストレージへのアクセスなど物理的リソースを提供する場合がありますSQL Server などホストされるアプリケーション自体もクラスター リソースとして登録されますまた他のリソースに対するスタートアップと正常性にかかわる依存関係を構成できます

正常性の監視ノード間の正常性およびプライマリ ノードの正常性はハートビート ネットワーク通信とリソースの監視を組み合わせることで検出されますクラスターの全体的な正常性状態はクラスター内のノードのクォーラムの投票によって決定されます

フェールオーバーの調整各リソースはプライマリ ノードでホストされるように構成されそれぞれ自動的にまたは手動で 1 つ以上のセカンダリ ノードに転送されます正常性ベースのフェールオーバー ポリシーによってノード間でのリソース所有権の自動転送が制御されますフェールオーバーが発生すると適切に対応できるように各ノードおよびホストされているアプリケーションに通知されます

詳細については「Windows Server | フェールオーバー クラスタリングとノード バランシン グ」(httpwwwmicrosoftcomwindowsserver2008enusfailover-clustering-mainaspx) を参照してください

注 データベース管理者が WSFC クラスターおよびクォーラム管理の内部動作を理解しておくことが非常に重要になりましたAlwaysOn の正常性の監視管理および障害復旧の手順はすべてが本質的に WSFC 構成と関連しています

WSFC ストレージ構成Windows Server フェールオーバー クラスタリングでは接続されているストレージ デバイスディスク ボリュームおよびファイル システムの管理をクラスター内の各ノードに依存していますWSFC はストレージ サブシステムが非常に堅牢であると想定しているためノードに接続されたストレージ デバイスが使用できない場合はクラスター ノードが障害状態であると見なします

書き込みベースの操作ではディスク ボリュームは SCSI-3 の永続的な予約を使用して一度に 1 つのクラスター ノードに論理的に接続されますノードで障害が発生した場合にはストレージ サブシステムの機能と構成に応じてディスク ボリュームの論理的所有権をクラスター内の別のノードに移すことができます

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 12

SQL Server AlwaysOn ソリューションでは次のような WSFC ストレージ構成の組み合わせを利用しその制限も受けます

直接接続とリモートストレージ デバイスはサーバーに物理的に直接接続されるかまたはネットワークやホスト バス アダプター (HBA) を介してリモートのストレージ デバイスを使用しますリモート ストレージのテクノロジにはiSCSI やファイバー チャネルなどのストレージ エリア ネットワーク (SAN) ベースのソリューションとサーバー メッセージ ブロック (SMB) というファイル共有ベースのソリューションがあります

対称と非対称ストレージ デバイスの論理ディスク ボリューム構成とファイル パスがクラスターの各ノードでまったく同じである場合それらのストレージ デバイスは対称的であると見なされます基になるディスク ボリュームの物理的な実装と容量は異なっていてもかまいません

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 13

専用と共有専用ストレージは使用するために予約されクラスター内の 1 つのノードに割り当てられます共有ストレージはクラスターの複数のノードからアクセスできます共有ストレージ デバイスが SCSI-3 プロトコルに準拠していればそれらの制御と所有権をノード間で移動させることができますWSFC ではファイル共有のためにクラスター共有ボリュームを同時に複数のノードでホスティングできますただしSQL Server は複数のノードからの共有ボリュームへの同時アクセスをサポートしていません

注 SQL Server FCI では対称共有ストレージを使用してインスタンスのすべてのノード所有者 (およびその候補) からアクセスできるようにする必要がありますただしAlwaysOn 可用性グループの導入に伴いそれぞれが独自に専用のローカルまたはリモート ストレージを持つ非 FCI の SQL Server インスタンスを WSFC クラスターに配置できるようになりました

WSFC リソースの正常性の検出とフェールオーバーWSFC クラスター ノード内の各リソースの状態と正常性は定期的にまたは要求に応じて報告されますクラスター リソースの障害を示す状況としてはたとえば電源障害ディスクまたはメモリのエラーネットワーク通信エラー構成エラー応答しないサービスなどがあります

ネットワークストレージサービスなどの WSFC クラスター リソースは互いに依存するように構成できますあるリソースの累積的な正常性は依存関係を持つリソースの正常性を連続的にたどってゆくことで決定されます

AlwaysOn 可用性グループでは可用性グループと可用性グループ リスナーがそれぞれ WSFC クラスター リソースとして登録されますAlwaysOn フェールオーバー クラスター インスタンスではSQL Server サービスおよび SQL Server エージェント サービスが WSFC クラスター リソースとして登録されどちらもインスタンスの仮想ネットワーク名リソースに依存します

WSFC クラスター リソースで設定された数のエラーまたは障害が一定期間内に発生した場合構成されたフェールオーバー ポリシーによってクラスター サービスは次のいずれかの操作を行います

現在のノードでのリソースの再起動 リソースをオフライン化 リソースとその依存関係を別のノードへ自動的にフェールオーバー

注 WSFC クラスター リソースの正常性の検出は個々のノードの正常性やクラスターの全体的な正常性には直接影響しません

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 14

WSFC のクラスター検証ウィザードクラスター検証ウィザードはWindows Server 2008 および Windows Server 2008 R2 のフェールオーバー クラスタリングに統合されている機能ですこれはSQL Server AlwaysOn ソリューションの配置前 にクリーンで正常な安定した WSFC 環境が存在していることをデータベース管理者が確認するために使用する主要なツールです

クラスター検証ウィザードではクラスターのノードとして使用するサーバーの集合または既存のクラスターを対象にして一連のテストを実行できますこのプロセスでは基になるハードウェアおよびソフトウェアが個別に直接テストされWSFC クラスターが特定の構成でどの程度良好にサポートされるかについての正確な評価が得られます

この検証プロセスでは各ノードに対して次のようなカテゴリの一連のテストとデータ収集が実施されます

一覧作成BIOS のバージョン環境レベルホスト バス アダプターRAMオペレーティング システムのバージョンデバイスサービスドライバーなどの情報です

ネットワークNIC のバインド順序ネットワーク通信IP 構成ファイアウォール構成などの情報ですすべての NIC でノード間の通信が検証されます

ストレージディスクドライブの容量アクセス待機時間ファイル システムなどの情報ですSCSI コマンドディスク フェールオーバー機能対称的または非対称的なストレージ構成が検証されます

システム構成Active Directory の構成ドライバーの登録メモリ ダンプの設定必要なオペレーティング システムの機能とサービス互換性のあるプロセッサ アーキテクチャおよびサービス パックと Windows Software Update のレベルが検証されます

これらの検証テストの結果を利用してクラスターの構成を微調整したり構成を追跡したりダウンタイムを引き起こすかもしれない潜在的なクラスター構成の問題を特定したりできますテスト結果のレポートは後で参照できるようにHTML ドキュメントとして保存できます

これらのテストはWSFC の構成に何か変更を加える前と加えた後に実行するほかSQL Server をインストールする前および災害復旧プロセスの一環として実行する必要がありますマイクロソフトで特定の WSFC クラスター構成がサポートされるためにはマイクロソフト カスタマー サポート サービス (CSS) にクラスター検証レポートを提出する必要があります

詳細については「フェールオーバー クラスター ステップ バイ ステップ ガイド フェール オーバー クラスター用ハードウェアを検証する」(httptechnetmicrosoftcomja-jplibrarycc732035(WS10)aspx) を参照してください

注 ハードウェアベースの地理的クラスタリング ストレージ ソリューションの場合やAlwaysOn 可用性グループの場合のようにクラスター構成に非対称ストレージがあるとクラスター検証ウィザードでストレージの検証手順を成功させるために多数の修正プログラムを適用しなければならないことがあります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 15

詳細については「AlwaysOn 可用性グループの前提条件制限事項および推奨事項 」(httpmsdnmicrosoftcomja-jplibraryff878487(SQL110)aspxSystemReqsForAOAG) を参照してください

WSFC クォーラム モードと投票の構成WSFC ではクォーラム ベースのアプローチを使用してクラスターの全体的な正常性を監視することでノード レベルのフォールト トレランスを最大限に高めますWSFC のクォーラム モードおよびノード投票構成の基本について理解することはAlwaysOn 高可用性災害復旧ソリューションの設計運用トラブルシューティングのために非常に重要です

クォーラムによるクラスター状態検出WSFC クラスター内の各ノードは定期的なハートビート通信に参加しノードの正常性状態を他のノードと共有します応答しないノードはエラー状態であると見なされます

クォーラム ノード セットとはWSFC クラスター内の投票ノードおよび監視サーバーのうち過半数を占めるノードの集合ですWSFC クラスターの全体的な正常性と状態は定期的なクォーラムの投票 によって決定されますクォーラムはクラスターが正常でありノード レベルのフォールト トレランスを提供できることを意味します

クォーラムに達していない状態はクラスターが正常でないことを示しますプライマリ ノードのフェールオーバー先として正常なセカンダリ ノードを使用できるようにするにはWSFC クラスターの全体的な正常性が維持されている必要があります投票数がクォーラムに達しなかった場合にはWSFC クラスター全体が予防策としてオフラインに設定されますその場合クラスターに登録されている SQL Server インスタンスがすべて停止します

注 クォーラム障害のために WSFC クラスターがオフラインに設定されるとオンラインに戻すために手動の操作が必要です詳細については後の「WSFC の強制クォーラムによる災害 復旧」のセクションを参照してください

クォーラム モードクォーラム モードはWSFC クラスター レベルで構成されクォーラム投票の方法を指定しますフェールオーバー クラスター マネージャー ユーティリティではクラスター内のノード数に基づいて推奨するクォーラム モードが提示されます

次のいずれかのクォーラム モードによって投票クォーラムの構成が決定されます

ノード マジョリティクラスターが正常であるためにはクラスター内の半分以上の投票ノードが肯定的に投票する必要があります

ノードおよびファイル共有マジョリティノード マジョリティ クォーラム モードに似ていますがリモート ファイル共有も投票監視サーバーとして構成され各ノードからそのリモート ファイル共有への接続も肯定的な投票としてカウントされますクラスターが正常であるためには投票の過半数が肯定的である必要があります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 16

推奨事項として監視ファイル共有はクラスター内のノードに存在せずクラスター内のすべてのノードから見える必要があります

ノードおよびディスク マジョリティノード マジョリティ クォーラム モードに似ていますが共有ディスク クラスター リソースも投票監視サーバーとして使用され各ノードからその共有ディスクへの接続も肯定的な投票としてカウントされますクラスターが正常であるためには投票の過半数が肯定的である必要があります

ディスクのみ共有ディスク クラスター リソースが監視サーバーとして使用され各ノードからその共有ディスクへの接続が肯定的な投票としてカウントされます

詳細については「フェールオーバー クラスター ステップ バイ ステップ ガイド フェール オーバー クラスターのクォーラムの構成」(httptechnetmicrosoftcomja-jplibrarycc770620(WS10)aspx) で説明されています

注 クラスターの各ノードが同じ共有ストレージ クォーラム監視ディスクを使用するように構成されていない限り通常投票ノード数が奇数の場合は ノード マジョリティ クォーラム モード投票ノード数が偶数の場合は ノードおよびファイル共有マジョリティ クォーラム モードを使用してください

投票ノードと非投票ノード既定ではWSFC クラスター内の各ノードがクラスター クォーラムのメンバーとなります各ノードファイル共有監視サーバーディスク監視サーバーがクラスターの全体的な正常性の決定においてそれぞれ 1 票ずつの投票権を持ちますクォーラムに関するここまでの説明ではクラスター状態について投票する WSFC クラスター ノードのセットを投票ノードとして注意深く限定してきました状況によってはすべてのノードに投票権を与えることが適切でない場合もあります

WSFC クラスターの各ノードはクォーラムを確立しようとし続けますクラスター内の個々のノードはクラスターが全体として正常であるか正常でないかを明確に決定することはできません特定の時点で各ノードからは他のノードの一部がオフラインフェールオーバー中またはネットワーク通信のエラーにより応答不能に見えますクォーラム投票の主な機能はWSFC クラスターの各ノードの見かけの状態が本当にそれらのノードの実際の状態であるかどうかを判断することです

ディスクのみ 以外のすべてのクォーラム モデルではクォーラム投票の有効性はクラスター内のすべての投票ノード間に信頼できる通信が確立されていることに依存しますすべてのノードが同じ物理サブネット上にある場合はクォーラムの投票を信頼できます

しかしクォーラム投票で他のサブネット上のノードが応答しないように見えても実際はオンラインで正常である場合はサブネット間のネットワーク通信のエラーが原因であることが考えられますクラスター トポロジクォーラム モードおよびフェールオーバー ポリシーの構成によってはネットワーク通信エラーによって投票ノードのセット (またはサブセット) が実質的に複数作成されてしまう可能性があります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 17

投票ノードの複数のサブセットがそれぞれ独自のクォーラムを構築できる状態はスプリット ブレイン と呼ばれますこの状態では各クォーラム上のノードが別々の動作をし相互に矛盾する可能性があります

注 スプリット ブレイン の状況が発生するのはシステム管理者が強制クォーラム動作を手動で実行するかまたは非常にまれですが強制的な手動フェールオーバーを実行することでクォーラム ノード セットが明示的に細分化された場合のみです詳細については後の「WSFC の強制クォーラムによる災害復旧 」のセクションを参照してください

クォーラム構成を単純化し稼働時間を長くする目的でノードの投票がクォーラムにカウントされないように各ノードの NodeWeight 設定 (値 0 または 1) を調整することができます

クォーラム投票に推奨される調整以下のガイドラインをこの順番に適用することでクラスターに対して推奨されるクォーラム投票の構成を判断できます

1 既定は投票権なしにします明確な理由がない限り各ノードには投票権を与えないと考えてください

2 すべてのプライマリ ノードに投票権を与えますAlwaysOn 可用性グループのプライマリ レプリカをホストする各ノードおよび AlwaysOn フェールオーバー クラスター インスタンスの優先所有者である各ノードは投票権を持つ必要があります

3 可能性のある自動フェールオーバーの所有者を含めます自動フェールオーバーの結果としてプライマリ レプリカまたは FCI をホストする可能性がある各ノードは投票を持つ必要があります

4 セカンダリ サイト ノードを除外します通常はセカンダリ災害復旧サイトに存在するノードには投票を提供しないでくださいプライマリ サイトに問題がない場合クラスターをオフラインにする判断にセカンダリ サイト内のノードが影響を与えることは避ける必要があります

5 投票数を奇数にします必要に応じて監視ファイル共有監視ノード (SQL Server インスタンスの有無は問いません)または監視ディスクをクラスターに追加してクォーラム モードを調整しクォーラムの投票結果が同数に分かれるのを防ぎます

6 フェールオーバー後の投票割り当てを再評価します正常なクォーラムをサポートしないクラスター構成にフェールオーバーすることは避けます

ノードの投票の調整の詳細については「クラスター クォーラムの NodeWeight の設定の構 成」(httpmsdnmicrosoftcomja-jplibraryhh270281(SQL110)aspx) を参照してください

ファイル共有監視サーバーの投票は調整できませんその投票を含めるか除外するかを決めるには別のクォーラム モードを選択する必要があります

注 SQL Server ではWSFC クラスター構成およびノード クォーラム投票に関する設定を管理するためにいくつかのシステム動的管理ビュー (DMV) が公開されています

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 18

詳細については「可用性グループの監視」(httpmsdnmicrosoftcomja-jplibraryff878305(SQL110)aspx) を参照してください

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 19

WSFC の強制クォーラムによる災害復旧通常クォーラム障害は災害発生時または WSFC クラスター内の複数のノード間で永続的な通信障害が生じた場合に発生しますクォーラム障害が発生するとクラスターがノード レベルのフォールト トレランスを確保できなくなるためその WSFC クラスター内の SQL Server インスタンス可用性グループおよびクラスター化されているサービスがすべてオフラインになりますクォーラム障害はWSFC クラスター内の正常な投票ノード数がクォーラム モデルを満たさなくなったことを意味しますノードによってまったく機能しなくなるものもあればWSFC サービスがシャットダウンしただけでクォーラムと通信できなくなったことを除けば正常なものもあります

WSFC クラスターをオンラインに戻すには既存の構成の少なくとも 1 つのノードでクォーラム障害の根本的な原因を解決する必要があります災害発生時には使用できる代替ハードウェアの再構成や識別が必要となる場合もあります現状のクラスター トポロジを反映するためにWSFC クラスターの残りのノードを再構成する場合もあります

WSFC クラスター ノードで強制クォーラムの手順を使用するとクラスターがオフラインになる原因となった安全管理機能を無効にすることができますこれによりクラスターでのクォーラム投票のチェックが実質的に中断されクラスター内の任意のノードで WSFC クラスター リソースと SQL Server をオンラインに戻すことができます

このような災害復旧プロセスの手順を次に示します

1) 障害の範囲を特定します応答しない可用性グループや SQL Server インスタンス災害後に使用できるオンラインのクラスター ノードをそれぞれ特定しWindows イベント ログと SQL Server システム ログを確認します必要に応じて後で分析できるように解析データやシステム ログを保存しておきます

2) 1 つのノードで強制クォーラムを使用して WSFC クラスターを起動します他の点では正常なノードで強制クォーラムの手順に従ってクラスターを手動で強制的にオンラインにしますこの場合データ損失の可能性を最小限に抑えるには可用性グループのプライマリ レプリカを最後にホストしていたノードを選択します

詳細については「クォーラムを使用せずに WSFC クラスターを強制的に起動する 」(httpmsdnmicrosoftcomja-jplibraryhh270275(v=SQL110)aspx) を参照してください

注 強制クォーラムの設定を使用するとWSFC クラスターの投票が過半数に達することで通常のクォーラム モードの動作に自動的に切り替わるまでクラスター全体のクォーラムのチェックがブロックされます

3) 他の点では正常な各ノードでWSFC サービスを 1 つずつ通常の方法で起動します他のノードでクラスター サービスを起動するときは強制クォーラム オプションを指定する必要はありません

各ノードの WSFC サービスがオンラインに戻ると他の正常なノードとの間でネゴシエーションが行われ新しいクラスター構成の状態が同期されますクラスターの最新の状態

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 20

を判断するときに競合状態の発生を避けるためこの手順は必ず一度に 1 つのノードで行うようにしてください

注 起動した各ノードが新たにオンラインにした他のノードと通信できることを確認しますそうしないと複数のクォーラム ノード セットが作成されて スプリット ブレイン の状況に陥るおそれがあります手順 1 の結果に問題がなければこの現象は発生しません

4) 新しいクォーラム モードとノードの投票の構成を適用します強制クォーラムの手順によってクラスターのすべてのノードを正常に再起動させクォーラムのエラーの根本原因を修正した場合クォーラム モードとノードの投票を元の構成から変更する必要はありません

それ以外の場合は新たに復元されたクラスター ノードと可用性レプリカのトポロジを評価し必要に応じてクォーラム モードと各ノードの投票割り当てを変更します未復旧のノード上ではWSFC クラスター サービスをオフラインにするかノードの投票をゼロに設定します

注 この時点でクラスター内のノードと SQL Server インスタンスが通常の動作に戻っているように見えることがありますがまだ正常なクォーラムには達していない可能性がありますフェールオーバー クラスター マネージャーやSQL Server Management Studio の AlwaysOn ダッシュボードまたは適切な DMV を使用して正常なクォーラムが復元されたことを確認してください

5) 必要に応じて可用性グループのデータベース レプリカを復旧します一部のデータベースはSQL Server の通常の起動処理の一環として自動的に復旧されオンラインに戻ることがありますそれ以外のデータベースの復旧には追加で手動の手順を実行する必要があります

可用性グループ レプリカのデータ損失の可能性や復旧にかかる時間を最小限に抑えるにはできればプライマリ レプリカ同期セカンダリ レプリカ非同期セカンダリ レプリカの順にオンラインに戻します

6) 障害が発生したコンポーネントを修復するか交換しクラスターを再検証しますこれで最初の災害およびクォーラム障害から復旧できたので障害が発生したノードを修復するか交換しWSFC と AlwaysOn の関連する構成を適切に調整する必要がありますこれには可用性グループ レプリカの削除クラスターからのノードの削除ノードへのソフトウェアの再インストールなどが含まれます

注 停止したすべての可用性レプリカを修復または削除する必要がありますSQL Server 2012 では最も古い可用性レプリカを最後に認識した時点以降トランザクション ログが切り捨てられません停止したレプリカを修復するか可用性グループから削除しないとトランザクション ログが大きくなり他のレプリカのトランザクション ログの領域が不足する可能性があります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 21

7) 必要に応じて手順 4 を繰り返しますこの目的は正常な動作を行うために適切なレベルのフォールト トレランスと高可用性を再確立することです

8) RPORTO 分析を実行しますSQL Server のシステム ログデータベースのタイムスタンプおよび Windows のイベント ログを分析して障害の根本的な原因を特定し実際の復旧ポイントと復旧時間を文書に記録します

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 22

SQL Server インスタンス レベルでの保護次に説明する AlwaysOn ソリューションの保護レイヤーはデータ プラットフォームそれ自体ですMicrosoft SQL Server 2012 とその Windows Server インフラストラクチャ コンポーネントとの統合によって次のような機能が提供されます

可用性の向上 ndash SQL Server インスタンスこれは SQL Server 2012 の新しいインスタンス レベルの機能でAlwaysOn フェールオーバー クラスター インスタンスとAlwaysOn 可用性グループをホストするスタンドアロン インスタンスの両方の可用性を強化します

以下の強化点によってフェールオーバーの管理およびトラブルシューティングが向上します

柔軟なフェールオーバー ポリシー信頼性の高いエラー検出に使用される新しいシステム ストアド プロシージャ sp_server_diagnostics の出力でSQL Server インスタンスに影響するエラーの重大度が FailureConditionLevel プロパティによって示されますWSFC のフェールオーバー ポリシーによってこの値が SQL Server インスタンスにどのように影響するかを制御できますある程度エラーを許容する設定からSQL Server の内部コンポーネント エラーを重点的に検出する設定までさまざまに構成できます

特定のレベルのエラーによってフェールオーバーを開始するように構成できますエラーのレベルにはサーバーの停止サーバーの応答停止重大なエラー中程度のエラーなんらかの条件付きエラーなどがありますFailureConditionLevel プロパティはFCI または可用性グループのフェールオーバー ポリシーのために使用できます

SQL Server 2012 よりも前のバージョンではフェールオーバーを制御できるようなエラー状態の区分がなくすべてのサービス レベルのエラーによってフェールオーバーが発生しました

詳細については「フェールオーバー クラスター インスタンスのフェールオーバー ポリシー」(httpmsdnmicrosoftcomja-jplibraryff878664(SQL110)aspx) を参照してください

強化されたインストルメンテーションとログAlwaysOn 専用のシステム構成ビューDMVパフォーマンス カウンターに加えて拡張されたイベント正常性セッションによってAlwaysOn 配置のトラブルシューティングチューニングおよび監視に必要な情報を取得して表示できますこれらの多くはSQL Server ポリシー管理の新しいファセットおよびポリシーを通じて公開されます

詳細については「AlwaysOn 可用性グループの動的管理ビューおよび関 数」(httpmsdnmicrosoftcomja-jplibraryff877943(SQL110)aspx) と「sysdm_os_cluster_nodes」(httpmsdnmicrosoftcomja-jplibraryms187341(SQL110)aspx) を参照してください

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 23

SMB ファイル共有のサポートWindows Server 2008 以降のスタンドアロン用またはフェールオーバー クラスター インスタンス用のリモート ファイル共有にデータベース ファイルを格納することができますこの場合FCI ごとに異なるドライブ文字を使用する必要がありませんこれはストレージを統合する場合やデータベース ファイルのストレージを仮想マシンのゲスト オペレーティング システム用物理サーバーでホストする場合などに便利なオプションです適切に構成すれば直接接続されたストレージとほぼ同等の IO パフォーマンスが得られます

詳細については「ファイル共有上の SQL データベース - シナリオを再検討すべきとき 」(httpblogsmsdncombsqlserverstorageenginearchive20111018sql-databases-on-file-shares-it-s-time-to-reconsider-the-scenarioaspx) を参照してください

注 WSFC クラスターではSMB ファイル共有リソースの依存関係を SQL Server リソース グループに追加することはできませんファイル共有の可用性を確保するには別の方法を用いる必要がありますファイル共有が使用できなくなった場合SQL Server は IO 例外をスローしオフラインになります

WSFC と DNS の相互運用性FCI または可用性グループ リスナーの仮想ネットワーク名 (VNN) はVNN の作成時または構成の変更時にのみDNS に登録されますすべての仮想 IP アドレスはオンライン状態かオフライン状態かに関係なく同じ仮想ネットワーク名で DNS に登録されますDNS の仮想ネットワーク名を解決するためのクライアント呼び出しは各種のラウンド ロビン シーケンスによってすべての登録済み IP アドレスを返します

AlwaysOn フェールオーバー クラスター インスタンスSQL Server の AlwaysOn フェールオーバー クラスター インスタンス (FCI) の主な目的は1 つのデータ センター内のローカル サーバーとストレージ ハードウェアでホストされている SQL Server インスタンスの可用性を高めることです

FCI はWindows Server フェールオーバー クラスタリング (WSFC) のクラスターに含まれる複数のノードにまたがってインストールされる1 つの論理的な SQL Server インスタンスですただし一度に 1 つのノードだけでアクティブになることができますクライアント アプリケーションはアクティブなクラスター ノードが所有している仮想ネットワーク名および仮想 IP アドレスに接続します

FCI をインストールした各ノードは同一の構成を持ち同一の SQL Server バイナリを含んでいますWSFC クラスター サービスはアクティブなインスタンス上にある Windows レジストリのエントリからFCI をインストールした各ノードに関連のある変更をレプリケートしますFCI がインストールされている各ノードはインスタンスとそのリソースの所有者の候補として指定されフェールオーバーの優先順位に従って所有者となります

共有対称ストレージ ボリュームに格納されているデータベース ファイルはリソースとして WSFC クラスターに登録され現在 FCI をホストしているノードによって所有されます

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 24

詳細については「AlwaysOn フェールオーバー クラスター インスタン ス」(httpmsdnmicrosoftcomja-jplibraryms189134(SQL110)aspx) を参照してください

FCI のフェールオーバー プロセス依存しているクラスター リソースで障害が発生した場合AlwaysOn フェールオーバー クラスター インスタンスはWSFC クラスター サービスと連携してフェールオーバーを行いますそのプロセスの概要を以下に示します

1) 再起動が指示されますWSFC の定期的なチェックまたは SQL Server のフェールオーバー ポリシー構成によってエラー状態が示されます既定では他のノードへのフェールオーバーを開始する前にサービスの再起動が試みられます再起動の試みがタイムアウトするようであればリソースの障害が発生しています

2) フェールオーバーが指示されますフェールオーバー ポリシー チェックによってノードのフェールオーバーが必要であることが示されます

3) SQL Server サービスが停止されますSQL Server サービスが現在実行されている場合はその正常なシャットダウンが試みられます

4) WSFC クラスター リソースが転送されますSQL Server クラスター リソース グループの所有権とそれが依存するネットワークおよび共有ストレージ リソースがFCI で次に優先されるノード所有者に転送されます

5) 新しいノードで SQL Server が起動されますSQL Server インスタンスは通常のスタートアップ プロシージャで起動されます所定のタイムアウト時間内にオンラインに戻らない場合クラスター サービスはこの新しいノード上のリソースをエラー状態と見なします

6) 新しいノードでユーザー データベースが復旧されます各ユーザー データベースは復旧モードに設定されます復旧モードではトランザクション ログの再実行操作が適用されコミットされていなかったトランザクションがロールバックされます

FCI の強化以前のバージョンの SQL Server でも FCI のインストール オプションは用意されていましたがSQL Server 2012 では次のような機能強化によって可用性の堅牢性と利便性が向上しました

マルチサブネット クラスタリングSQL Server 2012 では複数のサブネットに存在する WSFC クラスター ノードがサポートされていますWSFC クラスター ノードに存在する SQL Server インスタンスはいずれかのネットワーク インターフェイスが使用可能であれば起動できますこれはクラスター リソースの OR 依存関係と呼ばれます

以前のバージョンの SQL Server の場合SQL Server サービスを起動またはフェールオーバーするにはすべてのネットワーク インターフェイスが機能しそれらがすべて同じサブネットまたは VLAN に存在している必要がありました

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 25

注 マルチサブネット クラスタリングではクラスター ノード間のストレージ レベルのレプリケーションが自動的には有効になりませんマルチサブネットの FCI ソリューションでクラスター ノード間でデータのレプリケーションを行いストレージ フェールオーバーを調整するためにはサード パーティから提供される SAN ベースのソリューションを利用する必要があります

詳細については「SQL Server 2012 AlwaysOn マルチサイト フェールオーバー クラスター インスタンス」(httpsqlcatcomsqlcatbwhitepapersarchive20111222sql-server-2012-alwayson_3a00_-multisite-failover-cluster-instanceaspx) を参照してください

信頼性の高いエラー検出WSFC クラスター サービスではノードの各 SQL Server 2012 FCI に対してそれぞれ専用の管理者接続が維持されますこの接続では特殊なシステム ストアド プロシージャ sp_server_diagnostics を定期的に呼び出すことでシステムの正常性診断に役立つ豊富な情報を含む配列が返されます

SQL Server 2012 よりも前のバージョンではFCI の主な正常性検出メカニズムは単純な一方向のポーリング プロセスとして実装されていましたこのプロセスではWSFC クラスター サービスがインスタンスへの新しい SQL クライアント接続を定期的に作成しサーバー名を照会した後で接続を切断していました何かの理由で接続が失敗するかクエリがタイムアウトした場合フェールオーバーが開始されますが診断情報はほとんど提供されません

詳細については「sql_server_diagnostics」(httpmsdnmicrosoftcomja-jplibraryff878233(SQL110)aspx) を参照してください

現在ではFCI ストレージが次のように幅広い状況でサポートされています

向上したマウント ポイント サポートSQL Server のセットアップ時にクラスター ディスクのマウント ポイント設定が認識されるようになりました指定されたクラスター ディスクとそれにマウントされているすべてのディスクがセットアップ時に SQL Server リソースの依存関係に自動的に追加されます

ローカル ストレージの tempdbFCI ではローカルの非共有ストレージ (ローカル ソリッド ステート ドライブなど) に tempdb を配置できるようになったため共有 SAN での IO 動作の負荷を大幅に軽減できる可能性があります

SQL Server 2012 よりも前のバージョンの FCI ではtempdb が他のシステム データベースと共にフェールオーバーされる対称共有ストレージ ボリュームに配置される必要がありました

注 tempdb の場所はmaster データベースに格納されますこのデータベースはフェールオーバー時にノード間で移動されますtempdb は所有者候補となっているすべてのノード上で有効で対称的なファイル パス (ドライブフォルダーおよび権限) に配置されている必要がありますそうなっていない場合SQL Server サービスが一部のノードでは起動されません

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 26

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 27

データベースの可用性インフラストラクチャ レベルおよび SQL Server インスタンス レベルのコンポーネントで提供されている高可用性機能は互いに連係してホストされているデータベースを暗黙的に保護しますAlwaysOn ソリューションではデータベースのデータおよびデータ層アプリケーションを明示的に保護するために一連のオプションが追加で用意されています

AlwaysOn 可用性グループ可用性グループは1 つの SQL Server インスタンスから同じ WSFC クラスター内の別のインスタンスへと同時にフェールオーバーされるユーザー データベースのセットですクライアント アプリケーションは可用性グループ リスナーと呼ばれる WSFC 仮想ネットワーク名を通じて可用性グループのデータベースに接続できますこうすることで基になる SQL Server インスタンスが抽象化されます

AlwaysOn 可用性グループは正常性監視フェールオーバーの調整およびサーバー接続を Windows Server フェールオーバー クラスタリングに依存していますWSFC クラスター ノード上の SQL Server インスタンスでAlwaysOn サポートを有効にする必要がありますただしそのインスタンスが FCI である必要はなく対称共有ストレージを使用する必要もありません

詳細については「AlwaysOn 可用性グループの概要 」(httpmsdnmicrosoftcomja-jplibraryff877884(SQL110)aspx) を参照してください

可用性レプリカとロール可用性グループの各 SQL Server インスタンスは可用性グループのユーザー データベースのコピーを保持している可用性レプリカをホストしますSQL Server インスタンスは特定の可用性グループの可用性レプリカを 1 つだけホストすることができますが複数の可用性グループを同じインスタンスに置くことは可能ですSQL Server インスタンスは専用の (非共有) ストレージ ボリュームを持つ必要があります

可用性レプリカの 1 つがプライマリ レプリカの役割を果たしますこれは可用性グループ データベースのマスター コピーとして指定されていて読み取り書き込み操作を行うことができます

可用性グループには読み取り専用の可用性レプリカを最大 4 つまで追加で含めることができますこれらは個別にセカンダリ レプリカの役割を果たします

可用性レプリカの同期可用性グループの各データベースの内容はSQL Server によるログ ベースのデータ移動メカニズムを通じてプライマリ レプリカから各セカンダリ レプリカに同期されますそのため可用性グループのすべてのデータベースは完全復旧モデルに設定する必要があります

セカンダリ レプリカはプライマリ レプリカのデータベースとトランザクション ログの完全なバックアップと復元によって初期化されますプライマリ レプリカで新しいトランザクションがコミットされるとトランザクション ログの対応する部分がキャッシュされ

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 28

キューに入れられてネットワーク経由でセカンダリ レプリカ ノード上のデータベース ミラーリング エンドポイントに送信されます

この方法によりプライマリ レプリカのトランザクション ログの新しいエントリが各セカンダリ レプリカのトランザクション ログに追加されます各セカンダリ レプリカはログ シーケンス番号 (LSN) をプライマリ レプリカに定期的に送り返しトランザクション ログのどのくらいの量がリモート ディスクに書き込まれフラッシュされたかを示します

注 各可用性レプリカはそれぞれ独自に独立したトランザクション ログ再実行スレッドのセットを保持していますこれは可用性レプリカの同期プロセスには含まれませんセカンダリ レプリカ上ではログ再実行プロセスによって遅延時間が生じるためユーザーはそれをデータの待機時間として感じる場合があります

プライマリまたはセカンダリの役割を果たす他に各可用性レプリカには可用性モードもありますこのモードは次のようにCOMMIT TRAN ステートメントの実行時にトランザクション ログの書き込みの連係を制御します

同期コミット モードすべての同期コミット セカンダリ レプリカからそれぞれ独自のトランザクション ログの書き込み完了 (LSN 以降) が通知されるまでプライマリ レプリカはそのトランザクションをコミットしません可用性グループでは最大で 2 つの同期コミット セカンダリ レプリカを使用できます

同期コミット モードではプライマリ レプリカ データベースでトランザクションの遅延が生じますがコミットされたトランザクションに対するセカンダリ レプリカでのデータ損失を確実に防ぐことができます

非同期コミット モードプライマリ レプリカはローカル トランザクション ログの書き込み後にトランザクションをコミットしますが非同期コミット セカンダリ レプリカからトランザクション ログの書き込み完了通知を待つことはしません可用性グループでは最大で 4 つの非同期コミット セカンダリ レプリカを使用できますただし両方の種類を合わせて使用できるセカンダリ レプリカの合計は最大 4 つです

非同期コミット モードではプライマリ レプリカ データベースで生じるトランザクションの遅延が最小になりますがセカンダリ レプリカでのトランザクション ログが遅れる場合があるため一部のデータが失われる可能性があります

詳細については「可用性モード」(httpmsdnmicrosoftcomja-jplibraryff877931(SQL110)aspx) を参照してください

可用性レプリカ間のデータ フローの全体的な正常性は各レプリカの同期状態によって示されますセカンダリ レプリカにフェールオーバーしたときに同期状態が 同期済み または 同期中 になっていなければほとんどの場合はデータ損失が発生することになります

各セカンダリ レプリカの同期ストリームにはセッション タイムアウト プロパティがあります同期コミット モードに構成されているセカンダリ レプリカがセッション タイムアウトでエラーになると内部的には一時的に非同期としてマークされますこれはセカンダ

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 29

リ レプリカのエラーがプライマリ レプリカでのトランザクション ログの書き込みに影響しないようにするためですそのセカンダリ レプリカが正常に戻ってプライマリ レプリカの状態に追いつくと自動的に通常の同期コミット モード動作に戻されます

可用性グループのフェールオーバー可用性グループとそれに対応する仮想ネットワーク名はWSFC クラスターのリソースとして登録されます可用性グループはプライマリ レプリカの正常性とフェールオーバー ポリシーに基づいて可用性レプリカのレベルでフェールオーバーを行います

可用性グループのフェールオーバー ポリシーではsp_server_diagnostics システム ストアド プロシージャと FailureConditionLevel プロパティを使用して可用性グループに対して許容されるエラーの重大度のレベルを示しますこの同じメカニズムがFCI のフェールオーバー ポリシーにも使用されます

フェールオーバーが発生した場合は共有物理リソースの所有権を他のノードに移す代わりにWSFC を利用して他の SQL Server インスタンス上でセカンダリ レプリカを再構成しプライマリ レプリカの役割を引き継がせますその後可用性グループの仮想ネットワーク名リソースがそのインスタンスに転送されます関連する可用性レプリカへのすべてのクライアント接続がリセットされます

レプリカの現在の正常性同期状態および可用性モードに基づいて各レプリカには複合的な フェールオーバーの準備 状態が定義されますこの状態の値はデータ損失の可能性を示していますレプリカの正常性情報はAlwaysOn ダッシュボードまたは sysdm_hadr_availability_replica_states システム ビューで確認できます

各可用性レプリカにはフェールオーバー モードも構成されていますこのモードはフェールオーバーが指示された場合にレプリカの動作を制御します

自動フェールオーバー (データ損失なし)セカンダリ レプリカのトランザクション ログが既に書き込まれ同期されているのですべての AlwaysOn 構成の中でフェールオーバー時間が最短になりますプライマリ レプリカ上の開かれているトランザクションはロールバックされプライマリ レプリカの役割はユーザーによる操作なしでセカンダリ レプリカに転送されます

この場合プライマリ レプリカとセカンダリ レプリカの両方を自動フェールオーバー モードに設定し両方の可用性モードを同期コミットに設定する必要がありますレプリカ間の同期状態は同期済み である必要がありますまたWSFC クラスターは正常なクォーラム状態になっている必要があります

自動フェールオーバーはプライマリ レプリカまたはセカンダリ レプリカが FCI 上にある場合はサポートされませんこれは可用性グループと FCI のフェールオーバー間で競合状態が発生することを防ぐためです

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 30

手動フェールオーバーこの場合管理者はプライマリ レプリカの状態を評価してセカンダリ レプリカにフェールオーバーするかどうかを慎重に判断できます

可用性モードと同期状態に応じて次のような選択が可能です

o 計画的な手動フェールオーバー (データ損失なし)この種類のフェールオーバーを実行できるのはプライマリ レプリカとセカンダリ レプリカの両方が正常で同期済み 状態である場合だけですこれは機能的には自動フェールオーバーと同じです

o 強制手動フェールオーバー (データ損失の可能性を許容)これは対象のセカンダリ レプリカの可用性モードが非同期コミットである場合またはプライマリ レプリカに同期されない場合に使用できる唯一のフェールオーバー形式です

警告 このフェールオーバー オプションは災害復旧の状況に限って使用する必要がありますプライマリ レプリカが正常で使用可能である場合は関連する各レプリカの可用性モードを同期コミットに変更し計画的な手動フェールオーバーを実行してください

詳細については「可用性グループの強制手動フェールオーバーの実行」(httpmsdnmicrosoftcomja-jplibraryff877957(SQL110)aspx) を参照してください

フェールオーバー対象のプライマリ レプリカまたはセカンダリ レプリカが次の条件のいずれかに該当する場合は手動フェールオーバーを実行する必要があります

フェールオーバー モードが手動に設定されている 可用性モードが非同期コミットに設定されている レプリカが FCI 上にある

詳細については「フェールオーバーとフェールオーバー モード (AlwaysOn 可用性グルー プ ) 」(httpmsdnmicrosoftcomja-jplibraryhh213151(SQL110)aspx) を参照してください

注 フェールオーバー後新しいプライマリ レプリカが同期コミット モードに設定されていない場合セカンダリ レプリカの同期状態は 中断状態 になりますプライマリ レプリカが同期コミット モードに設定されるまでデータはセカンダリ レプリカに移動されません

可用性グループ リスナー可用性グループ リスナーはクライアントが可用性グループ内のデータベースにアクセスするために使用できる WSFC 仮想ネットワーク名 (VNN) ですVNN クラスター リソースはプライマリ レプリカをホストしている SQL Server インスタンスによって所有されます

仮想ネットワーク名は可用性グループ リスナーの作成時または構成の変更時にのみDNS に登録されます可用性グループ リスナーで定義されているすべての仮想 IP アドレスは同じ仮想ネットワーク名で DNS に登録されます

可用性グループ リスナーを使用する場合クライアント接続要求ではサーバーとして仮想ネットワーク名を指定してから可用性グループ内のデータベース名を指定する必要があり

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 31

ます既定ではこれによってプライマリ レプリカをホストしている SQL Server インスタンスに接続されます

実行時にはクライアントはローカルの DNS リゾルバーを使用して仮想ネットワーク名にマップされている IP アドレスと TCP ポートの一覧を取得しますクライアントは各 IP アドレスへの接続を成功するか接続タイムアウトに達するまで試し続けますMultiSubnetFailover パラメーターが true に設定されているとクライアントは複数の接続を同時に試行するのでクライアント フェールオーバーが大幅に速くなります

フェールオーバーが行われるとサーバー上でクライアント接続がリセットされ可用性グループ リスナーの所有権はプライマリ レプリカの役割と共に新しい SQL Server インスタンスに移動しVNN エンドポイントは新しいインスタンスの仮想 IP アドレスと TCP ポートにバインドされます

詳細については「可用性グループ リスナークライアント接続およびアプリケーションのフェールオーバー」(httpmsdnmicrosoftcomja-jplibraryhh213417(SQL110)aspx) を参照してください

アプリケーションの目的によるフィルター処理可用性グループ リスナーを使用して接続している場合アプリケーションは接続の目的がデータの読み取りと書き込みの両方なのか読み取り専用操作を実行するだけなのかを指定できます指定しない場合クライアントのアプリケーションの目的は既定で読み取りと書き込みになります

各可用性レプリカのプライマリ ロールとセカンダリ ロールについてはクライアントのアプリケーションの目的に対する接続レベルのフィルターとして接続アクセス プロパティも指定できます既定ではアプリケーションの目的と接続アクセスとの組み合わせが無効であると接続が拒否されますSQL Server は次のルールを使用してクライアントの接続要求を振り分ける必要があります

可用性レプリカがプライマリ ロールであり接続アクセスが次のいずれかである場合

すべてのアプリケーションの目的を許可するアプリケーションの目的でクライアント接続をフィルター処理しません

明示的な読み取り書き込みの目的だけを許可するクライアントが読み取り専用を指定している場合接続を拒否します

可用性レプリカがセカンダリ ロールであり接続アクセスが次のいずれかである場合

接続を許可しないすべての接続を拒否しますレプリカは災害復旧だけに使用されます

すべてのアプリケーションの目的を許可するアプリケーションの目的でクライアント接続をフィルター処理しません

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 32

読み取り専用の目的を許可するクライアントが読み取り専用を指定していない場合接続を拒否します

詳細については「可用性レプリカでの読み取り専用アクセスの構成」(httpmsdnmicrosoftcomja-jplibraryhh213002(SQL110)aspx) を参照してください

アプリケーションの目的の読み取り専用ルーティングAlwaysOn 可用性グループの特に優れた点はスタンバイ ハードウェア インフラストラクチャを災害復旧以外の目的に利用できることです1 つ以上のセカンダリ レプリカを読み取り専用でアクセスできるように構成するとプライマリ レプリカからかなりの量のワークロードを軽減できます

読み取り専用セカンダリ レプリカに回すように簡単に調整できるワークロードはレポートデータベース バックアップデータベース整合性チェックインデックスの断片化の分析データ パイプライン抽出運用サポート操作サポートアドホック クエリなどです

各可用性レプリカではSQL Server インスタンスのエンドポイントについて順次的な読み取り専用ルーティング リストを構成することもできますこのリストはレプリカがプライマリ ロールであるときに適用されますこのリストが存在する場合アプリケーションの目的が読み取り専用と指定されているクライアント接続要求はそのリスト内に記載されていて前述のアプリケーションの目的フィルターに適合する最初のセカンダリ レプリカにリダイレクトされます

注 読み取り専用ルーティングによるリダイレクトはプライマリ レプリカにバインドされている可用性グループ リスナーによって実行されますプライマリ レプリカがオフラインの場合クライアントのリダイレクトは機能しません

詳細については「可用性グループの読み取り専用ルーティングの構成 (SQL Server) 」(httpmsdnmicrosoftcomja-jplibraryhh710054(SQL110)aspx) を参照してください

可用性の向上 ndash データベースSQL Server 2012 ではデータベースの構成と機能に関してさまざまな点が強化されています

以下の機能は復旧時間の短縮に役立ちます

予測可能な復旧時間データベースごとにターゲット復旧時間の長さを設定することでバックグラウンドで実行される CHECKPOINT コマンドのスケジュールを制御できますこのコマンドは間接的なチェックポイントとして再起動時またはフェールオーバー時にトランザクション ログの復旧に必要となる時間の推定値に基づいて定期的に実行されますそれによってチェックポイントごとに IO 操作がほぼ均等に配分され復旧時間 (RTO) の予測可能性が高まります

SQL Server 2012 よりも前のバージョンではバックグラウンドの CHECKPOINT コマンドがトランザクションの量や負荷とは無関係に一定間隔で実行されていたので復旧時間を予測することはできませんでした

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 33

詳細については「データベース チェックポイント」(httpmsdnmicrosoftcomja-jplibraryms189573(SQL110)aspx) を参照してください

以下の向上点は計画的なダウンタイムが必要になる一般的な状況を減らすのに役立ちます

LOB 列のオンライン インデックス操作varbinary(max)varchar(max)nvarchar(max)または XML データ型の列が含まれているインデックスをオンラインで再構築または再構成できるようになりました

新しい NOT NULL 列のオンライン スキーマ修正既定値を使用して新しい NOT NULL 列を SQL Server 2012 データベース テーブルに追加する場合システム メタデータの更新にはスキーマ ロックだけが必要ですALTER TABLE ステートメントですべての行にデータを設定する必要はありません

いずれかの行で実際に変更またはインデックスの再作成が行われない限り列の既定値は物理的に格納されませんクエリでは列に実際の値が存在しない場合メタデータから既定値を返します

ストレージのサポート強化の例として次のようなものがあります

ページの自動修復ある種のストレージ サブシステム エラーが発生するとデータ ページが破損し読み取り不可能になる場合がありますAlwaysOn 可用性グループではそのような種類のエラーを検出し自動的に復旧できます復旧のために影響を受けたデータ ページの最新のコピーが別の可用性レプリカから非同期で取得され適用されます

以前のバージョンでもデータベース ミラーリングに同様の機能がありましたが新しい機能では複数のレプリカをサポートできるようになっています

詳細については「ページの自動修復」(httpmsdnmicrosoftcomja-jplibrarybb677167(SQL110)aspx) を参照してください

クライアント接続の推奨事項クライアント アプリケーションが Microsoft SQL Server 2012 AlwaysOn テクノロジの利点を十分に活用できるようにするには次のガイドラインに従います

AlwaysOn 対応のクライアント ライブラリ表形式のデータ ストリーム (TDS) プロトコル Version 74 以降をサポートしているクライアント ライブラリを使用しますこれによってAlwaysOn の機能に対応した適切な機能がクライアント側でも提供されますクライアント ライブラリの例としてはData Provider for SQL Server in NET Framework 402SQL Native Client 110 などがあります

接続プロバイダー プロパティ MultiSubnetFailover = True接続文字列にこのキーワードを使用することでクライアント ライブラリでは(複数のサブネットに IP アドレスを持つ) 可用性グループ リスナーまたは FCI に登録されているすべての IP アドレスに同時に接

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 34

続できるようになります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 35

接続プロバイダー プロパティ ApplicationIntent = ReadOnly必要に応じてプライマリ レプリカの読み取り専用ワークロードをセカンダリ レプリカに移管することができます

レガシ クライアントの接続タイムアウトレガシ クライアントのデータベース ライブラリには並列で接続を試行する機能が実装されていないため複数の IP アドレスがある場合にはTCP タイムアウトに達するか正常に接続できるまで1 つずつ順番に接続を試行します

複数の IP アドレスが存在する場合はタイムアウトと再試行が逐次的に繰り返される可能性に備えてレガシ クライアントの接続タイムアウトを調整する必要があります値は少なくとも 15 秒 + 21 秒 times セカンダリ レプリカ数にします

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 36

結論このホワイト ペーパーではSQL Server 2012 の AlwaysOn による高可用性災害復旧ソリューションを使用し予定されたダウンタイムや予定外のダウンタイムを短縮したりアプリケーションの可用性を最大限に高めたりデータを保護したりする方法について基本的なコンテキストを確立しました

高可用性データベース環境の計画管理測定に関連したビジネス上の目的と課題は多くの場合目標復旧時点 (RPO) と目標復旧時間 (RTO) という形で数量化して表すことができます

SQL Server 2012 AlwaysOn は組織が高可用性や災害復旧に関する一般的な状況に対処するための機能をRPO と RTO を適切に達成できることを念頭にインフラストラクチャ レベルデータ プラットフォーム レベルデータベース レベルのそれぞれで提供します

詳細情報

httpwwwmicrosoftcomja-jpsqlserver2012defaultaspx SQL Server Web サイト

httptechnetmicrosoftcomja-jpsqlserver SQL Server TechCenter

httpmsdnmicrosoftcomja-jpsqlserver SQL Server 開発者向け技術情報

このホワイト ペーパーはお役に立ちましたか フィードバックをお寄せください1 (役に立たなかった) ~ 5 (非常に役に立った) の 5 段階で評価してくださいまたその評価の理由もお知らせください以下に例を示します

評価が高い 例が適切図がわかりやすい説明が明快といったことが理由である 評価が低い 例が少ない図がわかりにくい説明があいまいといったことが理由で

ある

このようなフィードバックをお寄せいただくと今後のホワイト ペーパーの品質向上につながります

フィードバックの送信

loz Version 112012 年 2 月 21 日

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 37

  • 高可用性と災害復旧の概念
    • 高可用性について
      • 予定されたダウンタイムと予定外のダウンタイム
      • 段階的な可用性
        • ダウンタイムの定量化
          • 復旧目標
          • ROI または機会費用の正当化
          • 可用性の健全度の監視
          • 災害復旧の計画
            • 概要 Microsoft SQL Server 2012 での高可用性
              • SQL Server AlwaysOn
              • 計画的なダウンタイムの大幅な削減
              • アイドル状態のハードウェアをなくしてコスト効率とパフォーマンスを向上
              • 簡単な配置と管理
              • RPO と RTO の機能比較
                  • SQL Server AlwaysOn の保護レイヤー
                    • インフラストラクチャの可用性
                      • Windows オペレーティング システム
                        • Windows Server Core インストール オプション
                        • プライベート クラウド用の SQL Server の最適化
                          • Windows Server フェールオーバー クラスタリング
                            • WSFC ストレージ構成
                            • WSFC リソースの正常性の検出とフェールオーバー
                              • WSFC のクラスター検証ウィザード
                              • WSFC クォーラム モードと投票の構成
                                • クォーラムによるクラスター状態検出
                                • クォーラム モード
                                • 投票ノードと非投票ノード
                                • クォーラム投票に推奨される調整
                                  • WSFC の強制クォーラムによる災害復旧
                                    • SQL Server インスタンス レベルでの保護
                                      • 可用性の向上 ndash SQL Server インスタンス
                                      • AlwaysOn フェールオーバー クラスター インスタンス
                                        • FCI のフェールオーバー プロセス
                                        • FCI の強化
                                            • データベースの可用性
                                              • AlwaysOn 可用性グループ
                                                • 可用性レプリカとロール
                                                • 可用性レプリカの同期
                                                  • 可用性グループのフェールオーバー
                                                  • 可用性グループ リスナー
                                                    • アプリケーションの目的によるフィルター処理
                                                    • アプリケーションの目的の読み取り専用ルーティング
                                                      • 可用性の向上 ndash データベース
                                                        • クライアント接続の推奨事項
                                                          • 結論
Page 8: 高可用性と災害復旧の概念download.microsoft.com/download/6/B/E/6BE0C3F3-2991-4766... · Web view高可用性と災害復旧のソリューションのために最適なデータベース

部分的なエンド ツー エンドの障害予定された停止または予定外の停止がソリューション スタックの垂直的なレイヤー (インフラストラクチャプラットフォームおよびアプリケーション) 内でまたは水平的な各種の機能コンポーネント間で整然と行われる場合がありますユーザーは影響を受ける機能またはコンポーネントに応じて部分的に操作が成功したりパフォーマンスの低下を感じたりします

これらの状況はそれぞれ完全な停止に至るまでの可用性の一段階であると同時に災害復旧フェーズの中間段階とも考えることができそれぞれの状況がどの程度許容できるかを判断する必要があります

ダウンタイムの定量化ダウンタイムが発生した場合にはそれが予定されたものであったか予定外のものであったかにかかわらずシステムをオンラインに戻しデータ損失を最小限に抑えることがビジネスとして第一の目標となりますダウンタイムが 1 分経過するごとに直接または間接のコストが刻々と増えていきます予定外のダウンタイムが発生したのであれば時間と労力を適切に配分しながら停止の理由を調査し現在のシステム状態を把握し復旧手順を決定する必要があります

どのような場合でも事前に決めておいた時間になったらビジネス上の意思決定を行う必要があります停止の原因調査やメンテナンス操作を中止してシステムをオンラインに戻すかどうか必要に応じてフォールト トレランスを再構築するかどうかなどを判断します

復旧目標データの冗長性は高可用性データベース ソリューションの重要な要素の 1 つですプライマリ SQL Server インスタンスに対するトランザクションの操作は同期または非同期で1 つ以上のセカンダリ インスタンスにも適用されます障害が発生すると処理中のトランザクションはロールバックされるかまたはデータ伝達の遅れのためにセカンダリ インスタンスでは失われる可能性もあります

影響を見積もりながら機能の復旧にどれくらいの時間がかかるか最後のトランザクションを回復するためにどれくらいの遅延が生じるかという観点で次の復旧目標を設定します

目標復旧時間 (RTO)これはシステムが停止している時間の長さを意味します最初の目標は少なくとも読み取り専用の状態でシステムをオンラインに戻し障害について調査できるようにすることですただし最終的な目的は新しいトランザクションを実行できる状態まで完全にサービスを復元することです

目標復旧時点 (RPO)これは多くの場合どのくらいのデータ損失が許容されるかの基準として考えられます障害発生前に最後にコミットされたデータ トランザクションと障害発生後に復元された最新のデータとの時間差や遅延が示されます実際に失われるデータの量は障害発生時のシステムのワークロード障害の種類および使用されている高可用性ソリューションの種類に応じて異なります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 3

RTO と RPO の値はビジネスで許容できるダウンタイムとデータ損失の目安としてまた可用性が健全であるかどうかを監視する際の指標として使用します

ROI または機会費用の正当化ダウンタイムによって生じるビジネス上のコストには金銭的なコストだけでなく顧客からの信用も含まれますこれらのコストには時間の経過と共に発生するものもあれば停止期間中の特定の時点で発生するものもあります復旧時間とデータ復旧ポイントに基づいて停止のコストを見積もる以外にRTO および RPO の達成や停止自体の回避に必要なビジネス プロセスを考えたりインフラストラクチャへの投資を計算したりすることもできますこれらの投資の目的は次のようなものです

ダウンタイムの回避そもそも停止状態にならなければ復旧のコストをまとめて回避できますこの投資にはフォールト トレランスと冗長性のためのハードウェアまたはインフラストラクチャ各障害点を分離した分散ワークロード予防メンテナンスのための計画的なダウンタイムなどのコストが含まれます

復旧の自動化システム障害が発生した場合自動的で透過的な復元が行われればダウンタイムによるカスタマー エクスペリエンスへの影響を大幅に抑えることができます

リソース使用率セカンダリまたはスタンバイ インフラストラクチャは障害に備えてアイドル状態にしておくことができますまた読み取り専用ワークロードのために利用したり利用可能なすべてのハードウェアにワークロードを分散してシステム全体のパフォーマンスを向上させたりもできます

RTO と RPO の目標実現に必要な可用性と復旧のための投資は予測されるダウンタイムのコストと組み合わせて時間の関数として表現し正当化することができますこれによって実際の停止中にダウンタイムの経過時間に基づいてコスト ベースの判断を行うことができます

可用性の健全度の監視運用上の観点からは実際の停止中に関連するすべての変数を考慮しリアルタイムで ROI または機会費用を計算しようとするべきではありません実際にはRPO の期待値に代わるものとしてスタンバイ インスタンスのデータ遅延を監視します

停止の際根本的な原因の調査に費やす時間は制限し代わりに復旧環境の正常性の検証に集中する必要がありますその後詳細なシステム ログとデータのセカンダリ コピーに基づいて原因究明の分析を行います

災害復旧の計画

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 4

高可用性のための取り組みでは停止を回避するために何をするかが問題になりますが災害復旧のための取り組みでは停止後に高可用性を再構築するために何をするかが問題になります

できる限り実際に停止状態になる前に災害復旧の手順と役割分担を策定しておくようにします実行中の監視と警告に基づいて自動または手動のフェールオーバーと復旧計画を開始するかどうかは事前に決められた RTO および RPO のしきい値を考慮しつつ判断する必要があります災害復旧計画には次のようなものを含める必要があります

障害と復旧の適用範囲障害の場所や種類に応じてデータ センター レベルインフラストラクチャ レベルプラットフォーム レベルアプリケーション レベルワークロード レベルなどさまざまなレベルで修正措置が行われます

調査のための資料ベースラインと最新の監視の履歴システム警告イベント ログ診断クエリなどを関係者がいつでも利用できるようにしておく必要があります

依存関係の調整アプリケーション スタック内でまたは関係者間でシステムやビジネスの依存関係を把握しておきます

デシジョン ツリー繰り返し使用できるデシジョン ツリーを事前に定義して検証しておきますこれにはロールの役割障害の優先順位RPO と RTO を実現するためのフェールオーバーの条件所定の復旧手順などを含めます

検証停止状態からの復旧手順を実行した後でシステムが通常の状態に戻ったことを検証するために何をしなければならないかを整理しておきます

文書化新しい担当者でも最低限の補助があれば復旧計画を実行できるように上記のすべての項目を詳細で明確な一連の文書として記録しておきますこのような文書は一般的にラン ブック または クック ブック と呼ばれます

復旧のリハーサル定期的に災害復旧計画の演習を行いRTO のベースラインとなる期待値を確立しプライマリ サイトと各災害復旧サイトでの本番運用のローテーションを検討します

概要 Microsoft SQL Server 2012 での高可用性要求される RPO と RTO を実現するには主要アプリケーションの継続的なアップタイムを確保することと予定外のダウンタイムや予定されたダウンタイム時に重要なデータを保護することが必要ですSQL Server では低コストで簡単にこれらの目標を実現できる一連の機能が用意されています

新しい AlwaysOn の機能について既によくご存じの方は「SQL Server AlwaysOn の保護レイ ヤー」のセクションに進んでより詳細な説明をご覧ください

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 5

SQL Server AlwaysOnAlwaysOn は高い統合性柔軟性およびコスト効率を特徴とした新しい高可用性災害復旧ソリューションですデータ センター内およびデータ センター間でデータとハードウェアの冗長性を実現しアプリケーションのフェールオーバー時間を短縮することでミッション クリティカル アプリケーションの可用性を高めますAlwaysOn は構成の柔軟性が高く既存のハードウェア投資を再利用できます

AlwaysOn ソリューションではデータベース レベルとインスタンス レベルの両方で可用性を構成するためにSQL Server 2012 の次の 2 つの主要な機能を利用できます

AlwaysOn 可用性グループSQL Server 2012 の新機能の 1 つですデータベース ミラーリング機能の大幅な強化によってアプリケーション データベースの可用性の確保に役立ちますログに基づくデータの移動によってデータ保護を実現し共有ディスクを使用せずにデータ損失をゼロにすることができます

複数のデータベースから成る論理グループの単位で自動および手動のフェールオーバーを実行できますまた最大で 4 つのセカンダリ レプリカのサポート高速なアプリケーション フェールオーバー自動ページ修復など多彩なオプションが用意されています

AlwaysOn フェールオーバー クラスター インスタンス (FCI)SQL Server フェールオーバー クラスタリング機能を拡張し複数のサブネットにわたるマルチサイト クラスタリングをサポートしますこれにより異なるデータ センター間での SQL Server インスタンスのフェールオーバーが可能になりますインスタンスのフェールオーバーがより高速となり予測可能となることでアプリケーションをさらにすばやく復旧させることができます

計画的なダウンタイムの大幅な削減どの組織でもアプリケーション ダウンタイムの主な理由はオペレーティング システムへの修正プログラムの適用ハードウェア メンテナンスなどのための計画的なダウンタイムですこうしたダウンタイムがIT 環境の停止の約 80 を占めています

SQL Server 2012 は修正プログラムの要件を減らしより多くのメンテナンス操作をオンラインで実行できるようにすることで計画的なダウンタイムの大幅な削減に役立ちます

Windows Server CoreSQL Server 2012 ではWindows Server Core への配置がサポートされていますこれはWindows Server 2008 および Windows Server 2008 R2 の最小限の合理化された配置オプションですこれによりオペレーティング システムの修正プログラムの要件を最小限に抑え約 60 削減することで計画的なダウンタイムを減らすことができます

オンライン操作LOB のインデックスを再作成したり既定値を使用して列を追加したりするオンライン操作のサポート強化によってデータベース メンテナンス時のダウンタイムが削減されます

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 6

ローリング アップグレードと修正プログラムAlwaysOn 機能はインスタンスのローリング アップグレードと修正プログラムの適用を容易にしますこれによりアプリケーションのダウンタイムが大幅に削減されます

Hyper-V 上の SQL ServerHyper-V 環境でホストされている SQL Server インスタンスではライブ マイグレーションの利点を活用することでホスト間の仮想マシンの移行をダウンタイムなしで実行できます管理者はアプリケーションに影響を与えずにホスト上でメンテナンス操作を実行できます

アイドル状態のハードウェアをなくしてコスト効率とパフォーマンスを向上典型的な高可用性ソリューションでは高コストで冗長なパッシブ サーバーが配置されますAlwaysOn 可用性グループを使用するとパッシブまたはアイドルな状態のセカンダリ データベース レプリカを読み取り専用のワークロード (SQL Server Reporting Services のレポート クエリバックアップ操作など) に活用できますプライマリとセカンダリの両方のデータベース レプリカを同時に使用できるためサーバー ハードウェア間のリソースのバランスが良くなりすべてのワークロードのパフォーマンスが向上します

簡単な配置と管理構成ウィザードWindows PowerShell コマンド ライン インターフェイスのサポートダッシュボード動的管理ビュー (DMV)ポリシー ベースの管理System Center 統合などの機能によって可用性グループの配置と管理が簡単になります

RPO と RTO の機能比較目標復旧時点 (RPO) と目標復旧時間 (RTO) のビジネス目標は高可用性災害復旧ソリューションのために使用する SQL Server テクノロジを選択する際に重要な判断材料となります次の表はさまざまなソリューションで実現される結果を大まかに比較したものです

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 7

高可用性と災害復旧のSQL Server ソリューション

データ損失の可能性 (RPO)

可能な復旧時間 (RTO)

自動フェールオーバー

読み取り可能な

セカンダリ(1)

AlwaysOn 可用性グループ - 同期コミット ゼロ 数秒 (4) 0 - 2

AlwaysOn 可用性グループ - 非同期コミット 数秒 数分 times 0 - 4

AlwaysOn フェールオーバー クラスター インスタンス

該当せず(5) 数秒~ 数分

該当せず

データベース ミラーリング(2) - 高い安全性 (同期 + 監視)

ゼロ 数秒 該当せず

データベース ミラーリング(2) - 高パフォーマンス (非同期)

数秒(6) 数分(6) times 該当せず

ログ配布 数分(6) 数分~ 数時間(6)

times 復元中はなし

バックアップコピー復元(3) 数時間(6) 数時間~ 数日(6)

times 復元中はなし

(1) AlwaysOn 可用性グループで使用できるセカンダリ レプリカは種類に関係なく最大 4 つです(2) この機能は将来のバージョンの Microsoft SQL Server では削除される予定です代わりに AlwaysOn 可用性グループを使用

してください(3) バックアップコピー復元は障害復旧には適していますが高可用性には適していません(4) 可用性グループの自動フェールオーバーはフェールオーバー クラスター インスタンスとの間ではサポートされていま

せん(5) FCI 自体にはデータ保護機能はありませんデータ損失はストレージ システムの実装に依存します(6) ワークロードデータ量およびフェールオーバーの手順に大きく依存します

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 8

SQL Server AlwaysOn の保護レイヤーSQL Server AlwaysOn ソリューションではインフラストラクチャとアプリケーション コンポーネントのいくつかの論理レイヤーおよび物理レイヤーにまたがってフォールト トレランスと災害復旧を実現できます従来はさまざまな関係者と役割ごとに業務と責任を振り分けそれぞれが主に自分のソリューションのレイヤー部分だけに関心を持つことが一般的でした

このセクションではこれらのレイヤーのそれぞれについて詳細に説明しデザインに関する議論や実装についての意思決定に役立つ論点やガイダンスを提示します

SQL Server AlwaysOn ソリューションをうまく利用するには以下のレイヤーについて理解しそれぞれを協調させる必要があります

インフラストラクチャ レベルサーバー レベルのフォールト トレランスとノード内のネットワーク通信が含まれますWindows Server フェールオーバー クラスタリング (WSFC) 機能を使用して稼働状態の監視とフェールオーバーの調整を行います

SQL Server インスタンス レベルSQL Server AlwaysOn フェールオーバー クラスター インスタンス (FCI) はWSFC クラスター内の複数のサーバー ノードにまたがってインストールされる SQL Server インスタンスであり各サーバー ノードへのフェールオーバーが可能ですFCI をホストするノードは堅牢な対称型共有ストレージ (SAN または SMB) に接続されます

データベース レベル可用性グループは共にフェールオーバーされるユーザー データベースのセットです可用性グループは1 つのプライマリ レプリカと最大 4 つのセカンダリ レプリカで構成されます各レプリカはWSFC クラスターの別々のノードにある SQL Server インスタンス (FCI または非 FCI) によってホストされます

クライアント接続データベース クライアント アプリケーションは指定した SQL Server インスタンス ネットワーク名に直接接続できますまたは可用性グループ リスナーにバインドされている仮想ネットワーク名 (VNN) に接続することもできますVNN はWSFC クラスターおよび可用性グループのトポロジを抽象化するものであり接続要求を適切な SQL Server インスタンスとデータベース レプリカに論理的にリダイレクトします

代表的な AlwaysOn ソリューションの論理トポロジは次の図のようになります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 9

インフラストラクチャの可用性AlwaysOn 可用性グループと AlwaysOn フェールオーバー クラスター インスタンスのどちらもWindows Server オペレーティング システムと WSFC をプラットフォーム テクノロジとして利用します今まで以上にMicrosoft SQL Server データベース管理者はこれらのテクノロジについて十分に理解することが必要です

Windows オペレーティング システムSQL Server は基礎的なインフラストラクチャとネットワークストレージセキュリティ更新プログラムおよび監視のサービスを Windows プラットフォームに依存しています

SQL Server 2012 の各エディションはWindows Server 2008 R2 オペレーティング システムの対応するエディション (Windows Server 2008 R2 Standard オペレーティング システムWindows Server 2008 R2 Enterprise オペレーティング システムWindows Server 2008 R2 Datacenter オペレーティング システムなど) の機能や能力をさらに進歩させて構築されています

詳細については「SQL Server 2012 のインストールに必要なハードウェアおよびソフトウェ ア」(httpmsdnmicrosoftcomja-jplibraryms143506(SQL110)aspx) を参照してください

Windows Server Core インストール オプションSQL Server 2012 では高可用性のための主要な機能の 1 つとしてWindows Server 2008 以降で Server Core インストール オプションによる配置をサポートしていますServer Core インストール オプションでは制限された機能と非常に限定的な GUI アプリケーション サポートで特定のサーバー ロールを実行するための最低限の環境が提供されます既定では必要なサービスとコマンド プロンプト環境のみが有効です

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 10

この操作モードではオペレーティング システムへの攻撃の危険性とシステム オーバーヘッドが低下し継続的なメンテナンスサービス修正プログラムなどの要件が大幅に削減されます

SQL Server 2012 を Windows Server Core に配置する場合の主な注意点はSQL Server およびオペレーティング システムのすべての配置構成管理およびメンテナンスをWindows PowerShell などのスクリプト環境やコマンド ラインまたはリモート ツールを使用して行う必要があることです

プライベート クラウド用の SQL Server の最適化高可用性と災害復旧はプライベート クラウド環境ではさらに重要になってきていますプライベート クラウドに SQL Server を配置すればコンピューターネットワークおよびストレージのリソースが効率的に使用され物理的な場所や資本と運営費用の両方の削減に役立ちます配置の統合リソースの効率的なスケーリングオンデマンドでのリソースの配置が容易になり制御の自由度が失われることもありません

SQL Server ではHyper-V のホストとゲストの両方のシステムに対して Windows Server フェールオーバー クラスタリングをサポートするほかライブ マイグレーションもサポートしていますこれは意識されるほどのダウンタイムを生じることなくホスト間で仮想マシンを移動できる機能ですライブ マイグレーションはゲスト クラスタリングとも協調して動作します

詳細については「プライベート クラウド コンピューティング - プライベート クラウド用の SQL Server の最適化 」(httpwwwmicrosoftcomSqlServerPrivateCloud) を参照してください

Windows Server フェールオーバー クラスタリングWindows Server フェールオーバー クラスタリング (WSFC) はMicrosoft SQL Server などのサーバー アプリケーションに対して高可用性と災害復旧をサポートするインフラストラクチャ機能を提供します

WSFC クラスター ノードまたはサービスに障害が発生するとそのノードでホストされていたサービスまたはリソースは自動的にまたは手動で他の可用性ノードに転送されますこのプロセスをフェールオーバーと呼びますAlwaysOn ソリューションではこのプロセスが FCI と可用性グループの両方に適用されます

WSFC クラスター内の各ノードは連携して次のような機能を提供します

分散メタデータと通知WSFC サービスとホストされるアプリケーション メタデータはクラスター内の各ノードで維持されますこのメタデータにはホストされるアプリケーションの設定に加えWSFC の構成と状態が含まれます1 つのノードでのメタデータまたは状態の変更はクラスター内の他のノードに自動的に反映されます

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 11

リソース管理クラスター内の各ノードは直接アタッチされたストレージ (DAS)ネットワーク インターフェイス共有ディスク ストレージへのアクセスなど物理的リソースを提供する場合がありますSQL Server などホストされるアプリケーション自体もクラスター リソースとして登録されますまた他のリソースに対するスタートアップと正常性にかかわる依存関係を構成できます

正常性の監視ノード間の正常性およびプライマリ ノードの正常性はハートビート ネットワーク通信とリソースの監視を組み合わせることで検出されますクラスターの全体的な正常性状態はクラスター内のノードのクォーラムの投票によって決定されます

フェールオーバーの調整各リソースはプライマリ ノードでホストされるように構成されそれぞれ自動的にまたは手動で 1 つ以上のセカンダリ ノードに転送されます正常性ベースのフェールオーバー ポリシーによってノード間でのリソース所有権の自動転送が制御されますフェールオーバーが発生すると適切に対応できるように各ノードおよびホストされているアプリケーションに通知されます

詳細については「Windows Server | フェールオーバー クラスタリングとノード バランシン グ」(httpwwwmicrosoftcomwindowsserver2008enusfailover-clustering-mainaspx) を参照してください

注 データベース管理者が WSFC クラスターおよびクォーラム管理の内部動作を理解しておくことが非常に重要になりましたAlwaysOn の正常性の監視管理および障害復旧の手順はすべてが本質的に WSFC 構成と関連しています

WSFC ストレージ構成Windows Server フェールオーバー クラスタリングでは接続されているストレージ デバイスディスク ボリュームおよびファイル システムの管理をクラスター内の各ノードに依存していますWSFC はストレージ サブシステムが非常に堅牢であると想定しているためノードに接続されたストレージ デバイスが使用できない場合はクラスター ノードが障害状態であると見なします

書き込みベースの操作ではディスク ボリュームは SCSI-3 の永続的な予約を使用して一度に 1 つのクラスター ノードに論理的に接続されますノードで障害が発生した場合にはストレージ サブシステムの機能と構成に応じてディスク ボリュームの論理的所有権をクラスター内の別のノードに移すことができます

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 12

SQL Server AlwaysOn ソリューションでは次のような WSFC ストレージ構成の組み合わせを利用しその制限も受けます

直接接続とリモートストレージ デバイスはサーバーに物理的に直接接続されるかまたはネットワークやホスト バス アダプター (HBA) を介してリモートのストレージ デバイスを使用しますリモート ストレージのテクノロジにはiSCSI やファイバー チャネルなどのストレージ エリア ネットワーク (SAN) ベースのソリューションとサーバー メッセージ ブロック (SMB) というファイル共有ベースのソリューションがあります

対称と非対称ストレージ デバイスの論理ディスク ボリューム構成とファイル パスがクラスターの各ノードでまったく同じである場合それらのストレージ デバイスは対称的であると見なされます基になるディスク ボリュームの物理的な実装と容量は異なっていてもかまいません

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 13

専用と共有専用ストレージは使用するために予約されクラスター内の 1 つのノードに割り当てられます共有ストレージはクラスターの複数のノードからアクセスできます共有ストレージ デバイスが SCSI-3 プロトコルに準拠していればそれらの制御と所有権をノード間で移動させることができますWSFC ではファイル共有のためにクラスター共有ボリュームを同時に複数のノードでホスティングできますただしSQL Server は複数のノードからの共有ボリュームへの同時アクセスをサポートしていません

注 SQL Server FCI では対称共有ストレージを使用してインスタンスのすべてのノード所有者 (およびその候補) からアクセスできるようにする必要がありますただしAlwaysOn 可用性グループの導入に伴いそれぞれが独自に専用のローカルまたはリモート ストレージを持つ非 FCI の SQL Server インスタンスを WSFC クラスターに配置できるようになりました

WSFC リソースの正常性の検出とフェールオーバーWSFC クラスター ノード内の各リソースの状態と正常性は定期的にまたは要求に応じて報告されますクラスター リソースの障害を示す状況としてはたとえば電源障害ディスクまたはメモリのエラーネットワーク通信エラー構成エラー応答しないサービスなどがあります

ネットワークストレージサービスなどの WSFC クラスター リソースは互いに依存するように構成できますあるリソースの累積的な正常性は依存関係を持つリソースの正常性を連続的にたどってゆくことで決定されます

AlwaysOn 可用性グループでは可用性グループと可用性グループ リスナーがそれぞれ WSFC クラスター リソースとして登録されますAlwaysOn フェールオーバー クラスター インスタンスではSQL Server サービスおよび SQL Server エージェント サービスが WSFC クラスター リソースとして登録されどちらもインスタンスの仮想ネットワーク名リソースに依存します

WSFC クラスター リソースで設定された数のエラーまたは障害が一定期間内に発生した場合構成されたフェールオーバー ポリシーによってクラスター サービスは次のいずれかの操作を行います

現在のノードでのリソースの再起動 リソースをオフライン化 リソースとその依存関係を別のノードへ自動的にフェールオーバー

注 WSFC クラスター リソースの正常性の検出は個々のノードの正常性やクラスターの全体的な正常性には直接影響しません

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 14

WSFC のクラスター検証ウィザードクラスター検証ウィザードはWindows Server 2008 および Windows Server 2008 R2 のフェールオーバー クラスタリングに統合されている機能ですこれはSQL Server AlwaysOn ソリューションの配置前 にクリーンで正常な安定した WSFC 環境が存在していることをデータベース管理者が確認するために使用する主要なツールです

クラスター検証ウィザードではクラスターのノードとして使用するサーバーの集合または既存のクラスターを対象にして一連のテストを実行できますこのプロセスでは基になるハードウェアおよびソフトウェアが個別に直接テストされWSFC クラスターが特定の構成でどの程度良好にサポートされるかについての正確な評価が得られます

この検証プロセスでは各ノードに対して次のようなカテゴリの一連のテストとデータ収集が実施されます

一覧作成BIOS のバージョン環境レベルホスト バス アダプターRAMオペレーティング システムのバージョンデバイスサービスドライバーなどの情報です

ネットワークNIC のバインド順序ネットワーク通信IP 構成ファイアウォール構成などの情報ですすべての NIC でノード間の通信が検証されます

ストレージディスクドライブの容量アクセス待機時間ファイル システムなどの情報ですSCSI コマンドディスク フェールオーバー機能対称的または非対称的なストレージ構成が検証されます

システム構成Active Directory の構成ドライバーの登録メモリ ダンプの設定必要なオペレーティング システムの機能とサービス互換性のあるプロセッサ アーキテクチャおよびサービス パックと Windows Software Update のレベルが検証されます

これらの検証テストの結果を利用してクラスターの構成を微調整したり構成を追跡したりダウンタイムを引き起こすかもしれない潜在的なクラスター構成の問題を特定したりできますテスト結果のレポートは後で参照できるようにHTML ドキュメントとして保存できます

これらのテストはWSFC の構成に何か変更を加える前と加えた後に実行するほかSQL Server をインストールする前および災害復旧プロセスの一環として実行する必要がありますマイクロソフトで特定の WSFC クラスター構成がサポートされるためにはマイクロソフト カスタマー サポート サービス (CSS) にクラスター検証レポートを提出する必要があります

詳細については「フェールオーバー クラスター ステップ バイ ステップ ガイド フェール オーバー クラスター用ハードウェアを検証する」(httptechnetmicrosoftcomja-jplibrarycc732035(WS10)aspx) を参照してください

注 ハードウェアベースの地理的クラスタリング ストレージ ソリューションの場合やAlwaysOn 可用性グループの場合のようにクラスター構成に非対称ストレージがあるとクラスター検証ウィザードでストレージの検証手順を成功させるために多数の修正プログラムを適用しなければならないことがあります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 15

詳細については「AlwaysOn 可用性グループの前提条件制限事項および推奨事項 」(httpmsdnmicrosoftcomja-jplibraryff878487(SQL110)aspxSystemReqsForAOAG) を参照してください

WSFC クォーラム モードと投票の構成WSFC ではクォーラム ベースのアプローチを使用してクラスターの全体的な正常性を監視することでノード レベルのフォールト トレランスを最大限に高めますWSFC のクォーラム モードおよびノード投票構成の基本について理解することはAlwaysOn 高可用性災害復旧ソリューションの設計運用トラブルシューティングのために非常に重要です

クォーラムによるクラスター状態検出WSFC クラスター内の各ノードは定期的なハートビート通信に参加しノードの正常性状態を他のノードと共有します応答しないノードはエラー状態であると見なされます

クォーラム ノード セットとはWSFC クラスター内の投票ノードおよび監視サーバーのうち過半数を占めるノードの集合ですWSFC クラスターの全体的な正常性と状態は定期的なクォーラムの投票 によって決定されますクォーラムはクラスターが正常でありノード レベルのフォールト トレランスを提供できることを意味します

クォーラムに達していない状態はクラスターが正常でないことを示しますプライマリ ノードのフェールオーバー先として正常なセカンダリ ノードを使用できるようにするにはWSFC クラスターの全体的な正常性が維持されている必要があります投票数がクォーラムに達しなかった場合にはWSFC クラスター全体が予防策としてオフラインに設定されますその場合クラスターに登録されている SQL Server インスタンスがすべて停止します

注 クォーラム障害のために WSFC クラスターがオフラインに設定されるとオンラインに戻すために手動の操作が必要です詳細については後の「WSFC の強制クォーラムによる災害 復旧」のセクションを参照してください

クォーラム モードクォーラム モードはWSFC クラスター レベルで構成されクォーラム投票の方法を指定しますフェールオーバー クラスター マネージャー ユーティリティではクラスター内のノード数に基づいて推奨するクォーラム モードが提示されます

次のいずれかのクォーラム モードによって投票クォーラムの構成が決定されます

ノード マジョリティクラスターが正常であるためにはクラスター内の半分以上の投票ノードが肯定的に投票する必要があります

ノードおよびファイル共有マジョリティノード マジョリティ クォーラム モードに似ていますがリモート ファイル共有も投票監視サーバーとして構成され各ノードからそのリモート ファイル共有への接続も肯定的な投票としてカウントされますクラスターが正常であるためには投票の過半数が肯定的である必要があります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 16

推奨事項として監視ファイル共有はクラスター内のノードに存在せずクラスター内のすべてのノードから見える必要があります

ノードおよびディスク マジョリティノード マジョリティ クォーラム モードに似ていますが共有ディスク クラスター リソースも投票監視サーバーとして使用され各ノードからその共有ディスクへの接続も肯定的な投票としてカウントされますクラスターが正常であるためには投票の過半数が肯定的である必要があります

ディスクのみ共有ディスク クラスター リソースが監視サーバーとして使用され各ノードからその共有ディスクへの接続が肯定的な投票としてカウントされます

詳細については「フェールオーバー クラスター ステップ バイ ステップ ガイド フェール オーバー クラスターのクォーラムの構成」(httptechnetmicrosoftcomja-jplibrarycc770620(WS10)aspx) で説明されています

注 クラスターの各ノードが同じ共有ストレージ クォーラム監視ディスクを使用するように構成されていない限り通常投票ノード数が奇数の場合は ノード マジョリティ クォーラム モード投票ノード数が偶数の場合は ノードおよびファイル共有マジョリティ クォーラム モードを使用してください

投票ノードと非投票ノード既定ではWSFC クラスター内の各ノードがクラスター クォーラムのメンバーとなります各ノードファイル共有監視サーバーディスク監視サーバーがクラスターの全体的な正常性の決定においてそれぞれ 1 票ずつの投票権を持ちますクォーラムに関するここまでの説明ではクラスター状態について投票する WSFC クラスター ノードのセットを投票ノードとして注意深く限定してきました状況によってはすべてのノードに投票権を与えることが適切でない場合もあります

WSFC クラスターの各ノードはクォーラムを確立しようとし続けますクラスター内の個々のノードはクラスターが全体として正常であるか正常でないかを明確に決定することはできません特定の時点で各ノードからは他のノードの一部がオフラインフェールオーバー中またはネットワーク通信のエラーにより応答不能に見えますクォーラム投票の主な機能はWSFC クラスターの各ノードの見かけの状態が本当にそれらのノードの実際の状態であるかどうかを判断することです

ディスクのみ 以外のすべてのクォーラム モデルではクォーラム投票の有効性はクラスター内のすべての投票ノード間に信頼できる通信が確立されていることに依存しますすべてのノードが同じ物理サブネット上にある場合はクォーラムの投票を信頼できます

しかしクォーラム投票で他のサブネット上のノードが応答しないように見えても実際はオンラインで正常である場合はサブネット間のネットワーク通信のエラーが原因であることが考えられますクラスター トポロジクォーラム モードおよびフェールオーバー ポリシーの構成によってはネットワーク通信エラーによって投票ノードのセット (またはサブセット) が実質的に複数作成されてしまう可能性があります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 17

投票ノードの複数のサブセットがそれぞれ独自のクォーラムを構築できる状態はスプリット ブレイン と呼ばれますこの状態では各クォーラム上のノードが別々の動作をし相互に矛盾する可能性があります

注 スプリット ブレイン の状況が発生するのはシステム管理者が強制クォーラム動作を手動で実行するかまたは非常にまれですが強制的な手動フェールオーバーを実行することでクォーラム ノード セットが明示的に細分化された場合のみです詳細については後の「WSFC の強制クォーラムによる災害復旧 」のセクションを参照してください

クォーラム構成を単純化し稼働時間を長くする目的でノードの投票がクォーラムにカウントされないように各ノードの NodeWeight 設定 (値 0 または 1) を調整することができます

クォーラム投票に推奨される調整以下のガイドラインをこの順番に適用することでクラスターに対して推奨されるクォーラム投票の構成を判断できます

1 既定は投票権なしにします明確な理由がない限り各ノードには投票権を与えないと考えてください

2 すべてのプライマリ ノードに投票権を与えますAlwaysOn 可用性グループのプライマリ レプリカをホストする各ノードおよび AlwaysOn フェールオーバー クラスター インスタンスの優先所有者である各ノードは投票権を持つ必要があります

3 可能性のある自動フェールオーバーの所有者を含めます自動フェールオーバーの結果としてプライマリ レプリカまたは FCI をホストする可能性がある各ノードは投票を持つ必要があります

4 セカンダリ サイト ノードを除外します通常はセカンダリ災害復旧サイトに存在するノードには投票を提供しないでくださいプライマリ サイトに問題がない場合クラスターをオフラインにする判断にセカンダリ サイト内のノードが影響を与えることは避ける必要があります

5 投票数を奇数にします必要に応じて監視ファイル共有監視ノード (SQL Server インスタンスの有無は問いません)または監視ディスクをクラスターに追加してクォーラム モードを調整しクォーラムの投票結果が同数に分かれるのを防ぎます

6 フェールオーバー後の投票割り当てを再評価します正常なクォーラムをサポートしないクラスター構成にフェールオーバーすることは避けます

ノードの投票の調整の詳細については「クラスター クォーラムの NodeWeight の設定の構 成」(httpmsdnmicrosoftcomja-jplibraryhh270281(SQL110)aspx) を参照してください

ファイル共有監視サーバーの投票は調整できませんその投票を含めるか除外するかを決めるには別のクォーラム モードを選択する必要があります

注 SQL Server ではWSFC クラスター構成およびノード クォーラム投票に関する設定を管理するためにいくつかのシステム動的管理ビュー (DMV) が公開されています

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 18

詳細については「可用性グループの監視」(httpmsdnmicrosoftcomja-jplibraryff878305(SQL110)aspx) を参照してください

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 19

WSFC の強制クォーラムによる災害復旧通常クォーラム障害は災害発生時または WSFC クラスター内の複数のノード間で永続的な通信障害が生じた場合に発生しますクォーラム障害が発生するとクラスターがノード レベルのフォールト トレランスを確保できなくなるためその WSFC クラスター内の SQL Server インスタンス可用性グループおよびクラスター化されているサービスがすべてオフラインになりますクォーラム障害はWSFC クラスター内の正常な投票ノード数がクォーラム モデルを満たさなくなったことを意味しますノードによってまったく機能しなくなるものもあればWSFC サービスがシャットダウンしただけでクォーラムと通信できなくなったことを除けば正常なものもあります

WSFC クラスターをオンラインに戻すには既存の構成の少なくとも 1 つのノードでクォーラム障害の根本的な原因を解決する必要があります災害発生時には使用できる代替ハードウェアの再構成や識別が必要となる場合もあります現状のクラスター トポロジを反映するためにWSFC クラスターの残りのノードを再構成する場合もあります

WSFC クラスター ノードで強制クォーラムの手順を使用するとクラスターがオフラインになる原因となった安全管理機能を無効にすることができますこれによりクラスターでのクォーラム投票のチェックが実質的に中断されクラスター内の任意のノードで WSFC クラスター リソースと SQL Server をオンラインに戻すことができます

このような災害復旧プロセスの手順を次に示します

1) 障害の範囲を特定します応答しない可用性グループや SQL Server インスタンス災害後に使用できるオンラインのクラスター ノードをそれぞれ特定しWindows イベント ログと SQL Server システム ログを確認します必要に応じて後で分析できるように解析データやシステム ログを保存しておきます

2) 1 つのノードで強制クォーラムを使用して WSFC クラスターを起動します他の点では正常なノードで強制クォーラムの手順に従ってクラスターを手動で強制的にオンラインにしますこの場合データ損失の可能性を最小限に抑えるには可用性グループのプライマリ レプリカを最後にホストしていたノードを選択します

詳細については「クォーラムを使用せずに WSFC クラスターを強制的に起動する 」(httpmsdnmicrosoftcomja-jplibraryhh270275(v=SQL110)aspx) を参照してください

注 強制クォーラムの設定を使用するとWSFC クラスターの投票が過半数に達することで通常のクォーラム モードの動作に自動的に切り替わるまでクラスター全体のクォーラムのチェックがブロックされます

3) 他の点では正常な各ノードでWSFC サービスを 1 つずつ通常の方法で起動します他のノードでクラスター サービスを起動するときは強制クォーラム オプションを指定する必要はありません

各ノードの WSFC サービスがオンラインに戻ると他の正常なノードとの間でネゴシエーションが行われ新しいクラスター構成の状態が同期されますクラスターの最新の状態

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 20

を判断するときに競合状態の発生を避けるためこの手順は必ず一度に 1 つのノードで行うようにしてください

注 起動した各ノードが新たにオンラインにした他のノードと通信できることを確認しますそうしないと複数のクォーラム ノード セットが作成されて スプリット ブレイン の状況に陥るおそれがあります手順 1 の結果に問題がなければこの現象は発生しません

4) 新しいクォーラム モードとノードの投票の構成を適用します強制クォーラムの手順によってクラスターのすべてのノードを正常に再起動させクォーラムのエラーの根本原因を修正した場合クォーラム モードとノードの投票を元の構成から変更する必要はありません

それ以外の場合は新たに復元されたクラスター ノードと可用性レプリカのトポロジを評価し必要に応じてクォーラム モードと各ノードの投票割り当てを変更します未復旧のノード上ではWSFC クラスター サービスをオフラインにするかノードの投票をゼロに設定します

注 この時点でクラスター内のノードと SQL Server インスタンスが通常の動作に戻っているように見えることがありますがまだ正常なクォーラムには達していない可能性がありますフェールオーバー クラスター マネージャーやSQL Server Management Studio の AlwaysOn ダッシュボードまたは適切な DMV を使用して正常なクォーラムが復元されたことを確認してください

5) 必要に応じて可用性グループのデータベース レプリカを復旧します一部のデータベースはSQL Server の通常の起動処理の一環として自動的に復旧されオンラインに戻ることがありますそれ以外のデータベースの復旧には追加で手動の手順を実行する必要があります

可用性グループ レプリカのデータ損失の可能性や復旧にかかる時間を最小限に抑えるにはできればプライマリ レプリカ同期セカンダリ レプリカ非同期セカンダリ レプリカの順にオンラインに戻します

6) 障害が発生したコンポーネントを修復するか交換しクラスターを再検証しますこれで最初の災害およびクォーラム障害から復旧できたので障害が発生したノードを修復するか交換しWSFC と AlwaysOn の関連する構成を適切に調整する必要がありますこれには可用性グループ レプリカの削除クラスターからのノードの削除ノードへのソフトウェアの再インストールなどが含まれます

注 停止したすべての可用性レプリカを修復または削除する必要がありますSQL Server 2012 では最も古い可用性レプリカを最後に認識した時点以降トランザクション ログが切り捨てられません停止したレプリカを修復するか可用性グループから削除しないとトランザクション ログが大きくなり他のレプリカのトランザクション ログの領域が不足する可能性があります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 21

7) 必要に応じて手順 4 を繰り返しますこの目的は正常な動作を行うために適切なレベルのフォールト トレランスと高可用性を再確立することです

8) RPORTO 分析を実行しますSQL Server のシステム ログデータベースのタイムスタンプおよび Windows のイベント ログを分析して障害の根本的な原因を特定し実際の復旧ポイントと復旧時間を文書に記録します

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 22

SQL Server インスタンス レベルでの保護次に説明する AlwaysOn ソリューションの保護レイヤーはデータ プラットフォームそれ自体ですMicrosoft SQL Server 2012 とその Windows Server インフラストラクチャ コンポーネントとの統合によって次のような機能が提供されます

可用性の向上 ndash SQL Server インスタンスこれは SQL Server 2012 の新しいインスタンス レベルの機能でAlwaysOn フェールオーバー クラスター インスタンスとAlwaysOn 可用性グループをホストするスタンドアロン インスタンスの両方の可用性を強化します

以下の強化点によってフェールオーバーの管理およびトラブルシューティングが向上します

柔軟なフェールオーバー ポリシー信頼性の高いエラー検出に使用される新しいシステム ストアド プロシージャ sp_server_diagnostics の出力でSQL Server インスタンスに影響するエラーの重大度が FailureConditionLevel プロパティによって示されますWSFC のフェールオーバー ポリシーによってこの値が SQL Server インスタンスにどのように影響するかを制御できますある程度エラーを許容する設定からSQL Server の内部コンポーネント エラーを重点的に検出する設定までさまざまに構成できます

特定のレベルのエラーによってフェールオーバーを開始するように構成できますエラーのレベルにはサーバーの停止サーバーの応答停止重大なエラー中程度のエラーなんらかの条件付きエラーなどがありますFailureConditionLevel プロパティはFCI または可用性グループのフェールオーバー ポリシーのために使用できます

SQL Server 2012 よりも前のバージョンではフェールオーバーを制御できるようなエラー状態の区分がなくすべてのサービス レベルのエラーによってフェールオーバーが発生しました

詳細については「フェールオーバー クラスター インスタンスのフェールオーバー ポリシー」(httpmsdnmicrosoftcomja-jplibraryff878664(SQL110)aspx) を参照してください

強化されたインストルメンテーションとログAlwaysOn 専用のシステム構成ビューDMVパフォーマンス カウンターに加えて拡張されたイベント正常性セッションによってAlwaysOn 配置のトラブルシューティングチューニングおよび監視に必要な情報を取得して表示できますこれらの多くはSQL Server ポリシー管理の新しいファセットおよびポリシーを通じて公開されます

詳細については「AlwaysOn 可用性グループの動的管理ビューおよび関 数」(httpmsdnmicrosoftcomja-jplibraryff877943(SQL110)aspx) と「sysdm_os_cluster_nodes」(httpmsdnmicrosoftcomja-jplibraryms187341(SQL110)aspx) を参照してください

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 23

SMB ファイル共有のサポートWindows Server 2008 以降のスタンドアロン用またはフェールオーバー クラスター インスタンス用のリモート ファイル共有にデータベース ファイルを格納することができますこの場合FCI ごとに異なるドライブ文字を使用する必要がありませんこれはストレージを統合する場合やデータベース ファイルのストレージを仮想マシンのゲスト オペレーティング システム用物理サーバーでホストする場合などに便利なオプションです適切に構成すれば直接接続されたストレージとほぼ同等の IO パフォーマンスが得られます

詳細については「ファイル共有上の SQL データベース - シナリオを再検討すべきとき 」(httpblogsmsdncombsqlserverstorageenginearchive20111018sql-databases-on-file-shares-it-s-time-to-reconsider-the-scenarioaspx) を参照してください

注 WSFC クラスターではSMB ファイル共有リソースの依存関係を SQL Server リソース グループに追加することはできませんファイル共有の可用性を確保するには別の方法を用いる必要がありますファイル共有が使用できなくなった場合SQL Server は IO 例外をスローしオフラインになります

WSFC と DNS の相互運用性FCI または可用性グループ リスナーの仮想ネットワーク名 (VNN) はVNN の作成時または構成の変更時にのみDNS に登録されますすべての仮想 IP アドレスはオンライン状態かオフライン状態かに関係なく同じ仮想ネットワーク名で DNS に登録されますDNS の仮想ネットワーク名を解決するためのクライアント呼び出しは各種のラウンド ロビン シーケンスによってすべての登録済み IP アドレスを返します

AlwaysOn フェールオーバー クラスター インスタンスSQL Server の AlwaysOn フェールオーバー クラスター インスタンス (FCI) の主な目的は1 つのデータ センター内のローカル サーバーとストレージ ハードウェアでホストされている SQL Server インスタンスの可用性を高めることです

FCI はWindows Server フェールオーバー クラスタリング (WSFC) のクラスターに含まれる複数のノードにまたがってインストールされる1 つの論理的な SQL Server インスタンスですただし一度に 1 つのノードだけでアクティブになることができますクライアント アプリケーションはアクティブなクラスター ノードが所有している仮想ネットワーク名および仮想 IP アドレスに接続します

FCI をインストールした各ノードは同一の構成を持ち同一の SQL Server バイナリを含んでいますWSFC クラスター サービスはアクティブなインスタンス上にある Windows レジストリのエントリからFCI をインストールした各ノードに関連のある変更をレプリケートしますFCI がインストールされている各ノードはインスタンスとそのリソースの所有者の候補として指定されフェールオーバーの優先順位に従って所有者となります

共有対称ストレージ ボリュームに格納されているデータベース ファイルはリソースとして WSFC クラスターに登録され現在 FCI をホストしているノードによって所有されます

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 24

詳細については「AlwaysOn フェールオーバー クラスター インスタン ス」(httpmsdnmicrosoftcomja-jplibraryms189134(SQL110)aspx) を参照してください

FCI のフェールオーバー プロセス依存しているクラスター リソースで障害が発生した場合AlwaysOn フェールオーバー クラスター インスタンスはWSFC クラスター サービスと連携してフェールオーバーを行いますそのプロセスの概要を以下に示します

1) 再起動が指示されますWSFC の定期的なチェックまたは SQL Server のフェールオーバー ポリシー構成によってエラー状態が示されます既定では他のノードへのフェールオーバーを開始する前にサービスの再起動が試みられます再起動の試みがタイムアウトするようであればリソースの障害が発生しています

2) フェールオーバーが指示されますフェールオーバー ポリシー チェックによってノードのフェールオーバーが必要であることが示されます

3) SQL Server サービスが停止されますSQL Server サービスが現在実行されている場合はその正常なシャットダウンが試みられます

4) WSFC クラスター リソースが転送されますSQL Server クラスター リソース グループの所有権とそれが依存するネットワークおよび共有ストレージ リソースがFCI で次に優先されるノード所有者に転送されます

5) 新しいノードで SQL Server が起動されますSQL Server インスタンスは通常のスタートアップ プロシージャで起動されます所定のタイムアウト時間内にオンラインに戻らない場合クラスター サービスはこの新しいノード上のリソースをエラー状態と見なします

6) 新しいノードでユーザー データベースが復旧されます各ユーザー データベースは復旧モードに設定されます復旧モードではトランザクション ログの再実行操作が適用されコミットされていなかったトランザクションがロールバックされます

FCI の強化以前のバージョンの SQL Server でも FCI のインストール オプションは用意されていましたがSQL Server 2012 では次のような機能強化によって可用性の堅牢性と利便性が向上しました

マルチサブネット クラスタリングSQL Server 2012 では複数のサブネットに存在する WSFC クラスター ノードがサポートされていますWSFC クラスター ノードに存在する SQL Server インスタンスはいずれかのネットワーク インターフェイスが使用可能であれば起動できますこれはクラスター リソースの OR 依存関係と呼ばれます

以前のバージョンの SQL Server の場合SQL Server サービスを起動またはフェールオーバーするにはすべてのネットワーク インターフェイスが機能しそれらがすべて同じサブネットまたは VLAN に存在している必要がありました

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 25

注 マルチサブネット クラスタリングではクラスター ノード間のストレージ レベルのレプリケーションが自動的には有効になりませんマルチサブネットの FCI ソリューションでクラスター ノード間でデータのレプリケーションを行いストレージ フェールオーバーを調整するためにはサード パーティから提供される SAN ベースのソリューションを利用する必要があります

詳細については「SQL Server 2012 AlwaysOn マルチサイト フェールオーバー クラスター インスタンス」(httpsqlcatcomsqlcatbwhitepapersarchive20111222sql-server-2012-alwayson_3a00_-multisite-failover-cluster-instanceaspx) を参照してください

信頼性の高いエラー検出WSFC クラスター サービスではノードの各 SQL Server 2012 FCI に対してそれぞれ専用の管理者接続が維持されますこの接続では特殊なシステム ストアド プロシージャ sp_server_diagnostics を定期的に呼び出すことでシステムの正常性診断に役立つ豊富な情報を含む配列が返されます

SQL Server 2012 よりも前のバージョンではFCI の主な正常性検出メカニズムは単純な一方向のポーリング プロセスとして実装されていましたこのプロセスではWSFC クラスター サービスがインスタンスへの新しい SQL クライアント接続を定期的に作成しサーバー名を照会した後で接続を切断していました何かの理由で接続が失敗するかクエリがタイムアウトした場合フェールオーバーが開始されますが診断情報はほとんど提供されません

詳細については「sql_server_diagnostics」(httpmsdnmicrosoftcomja-jplibraryff878233(SQL110)aspx) を参照してください

現在ではFCI ストレージが次のように幅広い状況でサポートされています

向上したマウント ポイント サポートSQL Server のセットアップ時にクラスター ディスクのマウント ポイント設定が認識されるようになりました指定されたクラスター ディスクとそれにマウントされているすべてのディスクがセットアップ時に SQL Server リソースの依存関係に自動的に追加されます

ローカル ストレージの tempdbFCI ではローカルの非共有ストレージ (ローカル ソリッド ステート ドライブなど) に tempdb を配置できるようになったため共有 SAN での IO 動作の負荷を大幅に軽減できる可能性があります

SQL Server 2012 よりも前のバージョンの FCI ではtempdb が他のシステム データベースと共にフェールオーバーされる対称共有ストレージ ボリュームに配置される必要がありました

注 tempdb の場所はmaster データベースに格納されますこのデータベースはフェールオーバー時にノード間で移動されますtempdb は所有者候補となっているすべてのノード上で有効で対称的なファイル パス (ドライブフォルダーおよび権限) に配置されている必要がありますそうなっていない場合SQL Server サービスが一部のノードでは起動されません

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 26

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 27

データベースの可用性インフラストラクチャ レベルおよび SQL Server インスタンス レベルのコンポーネントで提供されている高可用性機能は互いに連係してホストされているデータベースを暗黙的に保護しますAlwaysOn ソリューションではデータベースのデータおよびデータ層アプリケーションを明示的に保護するために一連のオプションが追加で用意されています

AlwaysOn 可用性グループ可用性グループは1 つの SQL Server インスタンスから同じ WSFC クラスター内の別のインスタンスへと同時にフェールオーバーされるユーザー データベースのセットですクライアント アプリケーションは可用性グループ リスナーと呼ばれる WSFC 仮想ネットワーク名を通じて可用性グループのデータベースに接続できますこうすることで基になる SQL Server インスタンスが抽象化されます

AlwaysOn 可用性グループは正常性監視フェールオーバーの調整およびサーバー接続を Windows Server フェールオーバー クラスタリングに依存していますWSFC クラスター ノード上の SQL Server インスタンスでAlwaysOn サポートを有効にする必要がありますただしそのインスタンスが FCI である必要はなく対称共有ストレージを使用する必要もありません

詳細については「AlwaysOn 可用性グループの概要 」(httpmsdnmicrosoftcomja-jplibraryff877884(SQL110)aspx) を参照してください

可用性レプリカとロール可用性グループの各 SQL Server インスタンスは可用性グループのユーザー データベースのコピーを保持している可用性レプリカをホストしますSQL Server インスタンスは特定の可用性グループの可用性レプリカを 1 つだけホストすることができますが複数の可用性グループを同じインスタンスに置くことは可能ですSQL Server インスタンスは専用の (非共有) ストレージ ボリュームを持つ必要があります

可用性レプリカの 1 つがプライマリ レプリカの役割を果たしますこれは可用性グループ データベースのマスター コピーとして指定されていて読み取り書き込み操作を行うことができます

可用性グループには読み取り専用の可用性レプリカを最大 4 つまで追加で含めることができますこれらは個別にセカンダリ レプリカの役割を果たします

可用性レプリカの同期可用性グループの各データベースの内容はSQL Server によるログ ベースのデータ移動メカニズムを通じてプライマリ レプリカから各セカンダリ レプリカに同期されますそのため可用性グループのすべてのデータベースは完全復旧モデルに設定する必要があります

セカンダリ レプリカはプライマリ レプリカのデータベースとトランザクション ログの完全なバックアップと復元によって初期化されますプライマリ レプリカで新しいトランザクションがコミットされるとトランザクション ログの対応する部分がキャッシュされ

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 28

キューに入れられてネットワーク経由でセカンダリ レプリカ ノード上のデータベース ミラーリング エンドポイントに送信されます

この方法によりプライマリ レプリカのトランザクション ログの新しいエントリが各セカンダリ レプリカのトランザクション ログに追加されます各セカンダリ レプリカはログ シーケンス番号 (LSN) をプライマリ レプリカに定期的に送り返しトランザクション ログのどのくらいの量がリモート ディスクに書き込まれフラッシュされたかを示します

注 各可用性レプリカはそれぞれ独自に独立したトランザクション ログ再実行スレッドのセットを保持していますこれは可用性レプリカの同期プロセスには含まれませんセカンダリ レプリカ上ではログ再実行プロセスによって遅延時間が生じるためユーザーはそれをデータの待機時間として感じる場合があります

プライマリまたはセカンダリの役割を果たす他に各可用性レプリカには可用性モードもありますこのモードは次のようにCOMMIT TRAN ステートメントの実行時にトランザクション ログの書き込みの連係を制御します

同期コミット モードすべての同期コミット セカンダリ レプリカからそれぞれ独自のトランザクション ログの書き込み完了 (LSN 以降) が通知されるまでプライマリ レプリカはそのトランザクションをコミットしません可用性グループでは最大で 2 つの同期コミット セカンダリ レプリカを使用できます

同期コミット モードではプライマリ レプリカ データベースでトランザクションの遅延が生じますがコミットされたトランザクションに対するセカンダリ レプリカでのデータ損失を確実に防ぐことができます

非同期コミット モードプライマリ レプリカはローカル トランザクション ログの書き込み後にトランザクションをコミットしますが非同期コミット セカンダリ レプリカからトランザクション ログの書き込み完了通知を待つことはしません可用性グループでは最大で 4 つの非同期コミット セカンダリ レプリカを使用できますただし両方の種類を合わせて使用できるセカンダリ レプリカの合計は最大 4 つです

非同期コミット モードではプライマリ レプリカ データベースで生じるトランザクションの遅延が最小になりますがセカンダリ レプリカでのトランザクション ログが遅れる場合があるため一部のデータが失われる可能性があります

詳細については「可用性モード」(httpmsdnmicrosoftcomja-jplibraryff877931(SQL110)aspx) を参照してください

可用性レプリカ間のデータ フローの全体的な正常性は各レプリカの同期状態によって示されますセカンダリ レプリカにフェールオーバーしたときに同期状態が 同期済み または 同期中 になっていなければほとんどの場合はデータ損失が発生することになります

各セカンダリ レプリカの同期ストリームにはセッション タイムアウト プロパティがあります同期コミット モードに構成されているセカンダリ レプリカがセッション タイムアウトでエラーになると内部的には一時的に非同期としてマークされますこれはセカンダ

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 29

リ レプリカのエラーがプライマリ レプリカでのトランザクション ログの書き込みに影響しないようにするためですそのセカンダリ レプリカが正常に戻ってプライマリ レプリカの状態に追いつくと自動的に通常の同期コミット モード動作に戻されます

可用性グループのフェールオーバー可用性グループとそれに対応する仮想ネットワーク名はWSFC クラスターのリソースとして登録されます可用性グループはプライマリ レプリカの正常性とフェールオーバー ポリシーに基づいて可用性レプリカのレベルでフェールオーバーを行います

可用性グループのフェールオーバー ポリシーではsp_server_diagnostics システム ストアド プロシージャと FailureConditionLevel プロパティを使用して可用性グループに対して許容されるエラーの重大度のレベルを示しますこの同じメカニズムがFCI のフェールオーバー ポリシーにも使用されます

フェールオーバーが発生した場合は共有物理リソースの所有権を他のノードに移す代わりにWSFC を利用して他の SQL Server インスタンス上でセカンダリ レプリカを再構成しプライマリ レプリカの役割を引き継がせますその後可用性グループの仮想ネットワーク名リソースがそのインスタンスに転送されます関連する可用性レプリカへのすべてのクライアント接続がリセットされます

レプリカの現在の正常性同期状態および可用性モードに基づいて各レプリカには複合的な フェールオーバーの準備 状態が定義されますこの状態の値はデータ損失の可能性を示していますレプリカの正常性情報はAlwaysOn ダッシュボードまたは sysdm_hadr_availability_replica_states システム ビューで確認できます

各可用性レプリカにはフェールオーバー モードも構成されていますこのモードはフェールオーバーが指示された場合にレプリカの動作を制御します

自動フェールオーバー (データ損失なし)セカンダリ レプリカのトランザクション ログが既に書き込まれ同期されているのですべての AlwaysOn 構成の中でフェールオーバー時間が最短になりますプライマリ レプリカ上の開かれているトランザクションはロールバックされプライマリ レプリカの役割はユーザーによる操作なしでセカンダリ レプリカに転送されます

この場合プライマリ レプリカとセカンダリ レプリカの両方を自動フェールオーバー モードに設定し両方の可用性モードを同期コミットに設定する必要がありますレプリカ間の同期状態は同期済み である必要がありますまたWSFC クラスターは正常なクォーラム状態になっている必要があります

自動フェールオーバーはプライマリ レプリカまたはセカンダリ レプリカが FCI 上にある場合はサポートされませんこれは可用性グループと FCI のフェールオーバー間で競合状態が発生することを防ぐためです

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 30

手動フェールオーバーこの場合管理者はプライマリ レプリカの状態を評価してセカンダリ レプリカにフェールオーバーするかどうかを慎重に判断できます

可用性モードと同期状態に応じて次のような選択が可能です

o 計画的な手動フェールオーバー (データ損失なし)この種類のフェールオーバーを実行できるのはプライマリ レプリカとセカンダリ レプリカの両方が正常で同期済み 状態である場合だけですこれは機能的には自動フェールオーバーと同じです

o 強制手動フェールオーバー (データ損失の可能性を許容)これは対象のセカンダリ レプリカの可用性モードが非同期コミットである場合またはプライマリ レプリカに同期されない場合に使用できる唯一のフェールオーバー形式です

警告 このフェールオーバー オプションは災害復旧の状況に限って使用する必要がありますプライマリ レプリカが正常で使用可能である場合は関連する各レプリカの可用性モードを同期コミットに変更し計画的な手動フェールオーバーを実行してください

詳細については「可用性グループの強制手動フェールオーバーの実行」(httpmsdnmicrosoftcomja-jplibraryff877957(SQL110)aspx) を参照してください

フェールオーバー対象のプライマリ レプリカまたはセカンダリ レプリカが次の条件のいずれかに該当する場合は手動フェールオーバーを実行する必要があります

フェールオーバー モードが手動に設定されている 可用性モードが非同期コミットに設定されている レプリカが FCI 上にある

詳細については「フェールオーバーとフェールオーバー モード (AlwaysOn 可用性グルー プ ) 」(httpmsdnmicrosoftcomja-jplibraryhh213151(SQL110)aspx) を参照してください

注 フェールオーバー後新しいプライマリ レプリカが同期コミット モードに設定されていない場合セカンダリ レプリカの同期状態は 中断状態 になりますプライマリ レプリカが同期コミット モードに設定されるまでデータはセカンダリ レプリカに移動されません

可用性グループ リスナー可用性グループ リスナーはクライアントが可用性グループ内のデータベースにアクセスするために使用できる WSFC 仮想ネットワーク名 (VNN) ですVNN クラスター リソースはプライマリ レプリカをホストしている SQL Server インスタンスによって所有されます

仮想ネットワーク名は可用性グループ リスナーの作成時または構成の変更時にのみDNS に登録されます可用性グループ リスナーで定義されているすべての仮想 IP アドレスは同じ仮想ネットワーク名で DNS に登録されます

可用性グループ リスナーを使用する場合クライアント接続要求ではサーバーとして仮想ネットワーク名を指定してから可用性グループ内のデータベース名を指定する必要があり

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 31

ます既定ではこれによってプライマリ レプリカをホストしている SQL Server インスタンスに接続されます

実行時にはクライアントはローカルの DNS リゾルバーを使用して仮想ネットワーク名にマップされている IP アドレスと TCP ポートの一覧を取得しますクライアントは各 IP アドレスへの接続を成功するか接続タイムアウトに達するまで試し続けますMultiSubnetFailover パラメーターが true に設定されているとクライアントは複数の接続を同時に試行するのでクライアント フェールオーバーが大幅に速くなります

フェールオーバーが行われるとサーバー上でクライアント接続がリセットされ可用性グループ リスナーの所有権はプライマリ レプリカの役割と共に新しい SQL Server インスタンスに移動しVNN エンドポイントは新しいインスタンスの仮想 IP アドレスと TCP ポートにバインドされます

詳細については「可用性グループ リスナークライアント接続およびアプリケーションのフェールオーバー」(httpmsdnmicrosoftcomja-jplibraryhh213417(SQL110)aspx) を参照してください

アプリケーションの目的によるフィルター処理可用性グループ リスナーを使用して接続している場合アプリケーションは接続の目的がデータの読み取りと書き込みの両方なのか読み取り専用操作を実行するだけなのかを指定できます指定しない場合クライアントのアプリケーションの目的は既定で読み取りと書き込みになります

各可用性レプリカのプライマリ ロールとセカンダリ ロールについてはクライアントのアプリケーションの目的に対する接続レベルのフィルターとして接続アクセス プロパティも指定できます既定ではアプリケーションの目的と接続アクセスとの組み合わせが無効であると接続が拒否されますSQL Server は次のルールを使用してクライアントの接続要求を振り分ける必要があります

可用性レプリカがプライマリ ロールであり接続アクセスが次のいずれかである場合

すべてのアプリケーションの目的を許可するアプリケーションの目的でクライアント接続をフィルター処理しません

明示的な読み取り書き込みの目的だけを許可するクライアントが読み取り専用を指定している場合接続を拒否します

可用性レプリカがセカンダリ ロールであり接続アクセスが次のいずれかである場合

接続を許可しないすべての接続を拒否しますレプリカは災害復旧だけに使用されます

すべてのアプリケーションの目的を許可するアプリケーションの目的でクライアント接続をフィルター処理しません

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 32

読み取り専用の目的を許可するクライアントが読み取り専用を指定していない場合接続を拒否します

詳細については「可用性レプリカでの読み取り専用アクセスの構成」(httpmsdnmicrosoftcomja-jplibraryhh213002(SQL110)aspx) を参照してください

アプリケーションの目的の読み取り専用ルーティングAlwaysOn 可用性グループの特に優れた点はスタンバイ ハードウェア インフラストラクチャを災害復旧以外の目的に利用できることです1 つ以上のセカンダリ レプリカを読み取り専用でアクセスできるように構成するとプライマリ レプリカからかなりの量のワークロードを軽減できます

読み取り専用セカンダリ レプリカに回すように簡単に調整できるワークロードはレポートデータベース バックアップデータベース整合性チェックインデックスの断片化の分析データ パイプライン抽出運用サポート操作サポートアドホック クエリなどです

各可用性レプリカではSQL Server インスタンスのエンドポイントについて順次的な読み取り専用ルーティング リストを構成することもできますこのリストはレプリカがプライマリ ロールであるときに適用されますこのリストが存在する場合アプリケーションの目的が読み取り専用と指定されているクライアント接続要求はそのリスト内に記載されていて前述のアプリケーションの目的フィルターに適合する最初のセカンダリ レプリカにリダイレクトされます

注 読み取り専用ルーティングによるリダイレクトはプライマリ レプリカにバインドされている可用性グループ リスナーによって実行されますプライマリ レプリカがオフラインの場合クライアントのリダイレクトは機能しません

詳細については「可用性グループの読み取り専用ルーティングの構成 (SQL Server) 」(httpmsdnmicrosoftcomja-jplibraryhh710054(SQL110)aspx) を参照してください

可用性の向上 ndash データベースSQL Server 2012 ではデータベースの構成と機能に関してさまざまな点が強化されています

以下の機能は復旧時間の短縮に役立ちます

予測可能な復旧時間データベースごとにターゲット復旧時間の長さを設定することでバックグラウンドで実行される CHECKPOINT コマンドのスケジュールを制御できますこのコマンドは間接的なチェックポイントとして再起動時またはフェールオーバー時にトランザクション ログの復旧に必要となる時間の推定値に基づいて定期的に実行されますそれによってチェックポイントごとに IO 操作がほぼ均等に配分され復旧時間 (RTO) の予測可能性が高まります

SQL Server 2012 よりも前のバージョンではバックグラウンドの CHECKPOINT コマンドがトランザクションの量や負荷とは無関係に一定間隔で実行されていたので復旧時間を予測することはできませんでした

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 33

詳細については「データベース チェックポイント」(httpmsdnmicrosoftcomja-jplibraryms189573(SQL110)aspx) を参照してください

以下の向上点は計画的なダウンタイムが必要になる一般的な状況を減らすのに役立ちます

LOB 列のオンライン インデックス操作varbinary(max)varchar(max)nvarchar(max)または XML データ型の列が含まれているインデックスをオンラインで再構築または再構成できるようになりました

新しい NOT NULL 列のオンライン スキーマ修正既定値を使用して新しい NOT NULL 列を SQL Server 2012 データベース テーブルに追加する場合システム メタデータの更新にはスキーマ ロックだけが必要ですALTER TABLE ステートメントですべての行にデータを設定する必要はありません

いずれかの行で実際に変更またはインデックスの再作成が行われない限り列の既定値は物理的に格納されませんクエリでは列に実際の値が存在しない場合メタデータから既定値を返します

ストレージのサポート強化の例として次のようなものがあります

ページの自動修復ある種のストレージ サブシステム エラーが発生するとデータ ページが破損し読み取り不可能になる場合がありますAlwaysOn 可用性グループではそのような種類のエラーを検出し自動的に復旧できます復旧のために影響を受けたデータ ページの最新のコピーが別の可用性レプリカから非同期で取得され適用されます

以前のバージョンでもデータベース ミラーリングに同様の機能がありましたが新しい機能では複数のレプリカをサポートできるようになっています

詳細については「ページの自動修復」(httpmsdnmicrosoftcomja-jplibrarybb677167(SQL110)aspx) を参照してください

クライアント接続の推奨事項クライアント アプリケーションが Microsoft SQL Server 2012 AlwaysOn テクノロジの利点を十分に活用できるようにするには次のガイドラインに従います

AlwaysOn 対応のクライアント ライブラリ表形式のデータ ストリーム (TDS) プロトコル Version 74 以降をサポートしているクライアント ライブラリを使用しますこれによってAlwaysOn の機能に対応した適切な機能がクライアント側でも提供されますクライアント ライブラリの例としてはData Provider for SQL Server in NET Framework 402SQL Native Client 110 などがあります

接続プロバイダー プロパティ MultiSubnetFailover = True接続文字列にこのキーワードを使用することでクライアント ライブラリでは(複数のサブネットに IP アドレスを持つ) 可用性グループ リスナーまたは FCI に登録されているすべての IP アドレスに同時に接

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 34

続できるようになります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 35

接続プロバイダー プロパティ ApplicationIntent = ReadOnly必要に応じてプライマリ レプリカの読み取り専用ワークロードをセカンダリ レプリカに移管することができます

レガシ クライアントの接続タイムアウトレガシ クライアントのデータベース ライブラリには並列で接続を試行する機能が実装されていないため複数の IP アドレスがある場合にはTCP タイムアウトに達するか正常に接続できるまで1 つずつ順番に接続を試行します

複数の IP アドレスが存在する場合はタイムアウトと再試行が逐次的に繰り返される可能性に備えてレガシ クライアントの接続タイムアウトを調整する必要があります値は少なくとも 15 秒 + 21 秒 times セカンダリ レプリカ数にします

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 36

結論このホワイト ペーパーではSQL Server 2012 の AlwaysOn による高可用性災害復旧ソリューションを使用し予定されたダウンタイムや予定外のダウンタイムを短縮したりアプリケーションの可用性を最大限に高めたりデータを保護したりする方法について基本的なコンテキストを確立しました

高可用性データベース環境の計画管理測定に関連したビジネス上の目的と課題は多くの場合目標復旧時点 (RPO) と目標復旧時間 (RTO) という形で数量化して表すことができます

SQL Server 2012 AlwaysOn は組織が高可用性や災害復旧に関する一般的な状況に対処するための機能をRPO と RTO を適切に達成できることを念頭にインフラストラクチャ レベルデータ プラットフォーム レベルデータベース レベルのそれぞれで提供します

詳細情報

httpwwwmicrosoftcomja-jpsqlserver2012defaultaspx SQL Server Web サイト

httptechnetmicrosoftcomja-jpsqlserver SQL Server TechCenter

httpmsdnmicrosoftcomja-jpsqlserver SQL Server 開発者向け技術情報

このホワイト ペーパーはお役に立ちましたか フィードバックをお寄せください1 (役に立たなかった) ~ 5 (非常に役に立った) の 5 段階で評価してくださいまたその評価の理由もお知らせください以下に例を示します

評価が高い 例が適切図がわかりやすい説明が明快といったことが理由である 評価が低い 例が少ない図がわかりにくい説明があいまいといったことが理由で

ある

このようなフィードバックをお寄せいただくと今後のホワイト ペーパーの品質向上につながります

フィードバックの送信

loz Version 112012 年 2 月 21 日

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 37

  • 高可用性と災害復旧の概念
    • 高可用性について
      • 予定されたダウンタイムと予定外のダウンタイム
      • 段階的な可用性
        • ダウンタイムの定量化
          • 復旧目標
          • ROI または機会費用の正当化
          • 可用性の健全度の監視
          • 災害復旧の計画
            • 概要 Microsoft SQL Server 2012 での高可用性
              • SQL Server AlwaysOn
              • 計画的なダウンタイムの大幅な削減
              • アイドル状態のハードウェアをなくしてコスト効率とパフォーマンスを向上
              • 簡単な配置と管理
              • RPO と RTO の機能比較
                  • SQL Server AlwaysOn の保護レイヤー
                    • インフラストラクチャの可用性
                      • Windows オペレーティング システム
                        • Windows Server Core インストール オプション
                        • プライベート クラウド用の SQL Server の最適化
                          • Windows Server フェールオーバー クラスタリング
                            • WSFC ストレージ構成
                            • WSFC リソースの正常性の検出とフェールオーバー
                              • WSFC のクラスター検証ウィザード
                              • WSFC クォーラム モードと投票の構成
                                • クォーラムによるクラスター状態検出
                                • クォーラム モード
                                • 投票ノードと非投票ノード
                                • クォーラム投票に推奨される調整
                                  • WSFC の強制クォーラムによる災害復旧
                                    • SQL Server インスタンス レベルでの保護
                                      • 可用性の向上 ndash SQL Server インスタンス
                                      • AlwaysOn フェールオーバー クラスター インスタンス
                                        • FCI のフェールオーバー プロセス
                                        • FCI の強化
                                            • データベースの可用性
                                              • AlwaysOn 可用性グループ
                                                • 可用性レプリカとロール
                                                • 可用性レプリカの同期
                                                  • 可用性グループのフェールオーバー
                                                  • 可用性グループ リスナー
                                                    • アプリケーションの目的によるフィルター処理
                                                    • アプリケーションの目的の読み取り専用ルーティング
                                                      • 可用性の向上 ndash データベース
                                                        • クライアント接続の推奨事項
                                                          • 結論
Page 9: 高可用性と災害復旧の概念download.microsoft.com/download/6/B/E/6BE0C3F3-2991-4766... · Web view高可用性と災害復旧のソリューションのために最適なデータベース

RTO と RPO の値はビジネスで許容できるダウンタイムとデータ損失の目安としてまた可用性が健全であるかどうかを監視する際の指標として使用します

ROI または機会費用の正当化ダウンタイムによって生じるビジネス上のコストには金銭的なコストだけでなく顧客からの信用も含まれますこれらのコストには時間の経過と共に発生するものもあれば停止期間中の特定の時点で発生するものもあります復旧時間とデータ復旧ポイントに基づいて停止のコストを見積もる以外にRTO および RPO の達成や停止自体の回避に必要なビジネス プロセスを考えたりインフラストラクチャへの投資を計算したりすることもできますこれらの投資の目的は次のようなものです

ダウンタイムの回避そもそも停止状態にならなければ復旧のコストをまとめて回避できますこの投資にはフォールト トレランスと冗長性のためのハードウェアまたはインフラストラクチャ各障害点を分離した分散ワークロード予防メンテナンスのための計画的なダウンタイムなどのコストが含まれます

復旧の自動化システム障害が発生した場合自動的で透過的な復元が行われればダウンタイムによるカスタマー エクスペリエンスへの影響を大幅に抑えることができます

リソース使用率セカンダリまたはスタンバイ インフラストラクチャは障害に備えてアイドル状態にしておくことができますまた読み取り専用ワークロードのために利用したり利用可能なすべてのハードウェアにワークロードを分散してシステム全体のパフォーマンスを向上させたりもできます

RTO と RPO の目標実現に必要な可用性と復旧のための投資は予測されるダウンタイムのコストと組み合わせて時間の関数として表現し正当化することができますこれによって実際の停止中にダウンタイムの経過時間に基づいてコスト ベースの判断を行うことができます

可用性の健全度の監視運用上の観点からは実際の停止中に関連するすべての変数を考慮しリアルタイムで ROI または機会費用を計算しようとするべきではありません実際にはRPO の期待値に代わるものとしてスタンバイ インスタンスのデータ遅延を監視します

停止の際根本的な原因の調査に費やす時間は制限し代わりに復旧環境の正常性の検証に集中する必要がありますその後詳細なシステム ログとデータのセカンダリ コピーに基づいて原因究明の分析を行います

災害復旧の計画

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 4

高可用性のための取り組みでは停止を回避するために何をするかが問題になりますが災害復旧のための取り組みでは停止後に高可用性を再構築するために何をするかが問題になります

できる限り実際に停止状態になる前に災害復旧の手順と役割分担を策定しておくようにします実行中の監視と警告に基づいて自動または手動のフェールオーバーと復旧計画を開始するかどうかは事前に決められた RTO および RPO のしきい値を考慮しつつ判断する必要があります災害復旧計画には次のようなものを含める必要があります

障害と復旧の適用範囲障害の場所や種類に応じてデータ センター レベルインフラストラクチャ レベルプラットフォーム レベルアプリケーション レベルワークロード レベルなどさまざまなレベルで修正措置が行われます

調査のための資料ベースラインと最新の監視の履歴システム警告イベント ログ診断クエリなどを関係者がいつでも利用できるようにしておく必要があります

依存関係の調整アプリケーション スタック内でまたは関係者間でシステムやビジネスの依存関係を把握しておきます

デシジョン ツリー繰り返し使用できるデシジョン ツリーを事前に定義して検証しておきますこれにはロールの役割障害の優先順位RPO と RTO を実現するためのフェールオーバーの条件所定の復旧手順などを含めます

検証停止状態からの復旧手順を実行した後でシステムが通常の状態に戻ったことを検証するために何をしなければならないかを整理しておきます

文書化新しい担当者でも最低限の補助があれば復旧計画を実行できるように上記のすべての項目を詳細で明確な一連の文書として記録しておきますこのような文書は一般的にラン ブック または クック ブック と呼ばれます

復旧のリハーサル定期的に災害復旧計画の演習を行いRTO のベースラインとなる期待値を確立しプライマリ サイトと各災害復旧サイトでの本番運用のローテーションを検討します

概要 Microsoft SQL Server 2012 での高可用性要求される RPO と RTO を実現するには主要アプリケーションの継続的なアップタイムを確保することと予定外のダウンタイムや予定されたダウンタイム時に重要なデータを保護することが必要ですSQL Server では低コストで簡単にこれらの目標を実現できる一連の機能が用意されています

新しい AlwaysOn の機能について既によくご存じの方は「SQL Server AlwaysOn の保護レイ ヤー」のセクションに進んでより詳細な説明をご覧ください

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 5

SQL Server AlwaysOnAlwaysOn は高い統合性柔軟性およびコスト効率を特徴とした新しい高可用性災害復旧ソリューションですデータ センター内およびデータ センター間でデータとハードウェアの冗長性を実現しアプリケーションのフェールオーバー時間を短縮することでミッション クリティカル アプリケーションの可用性を高めますAlwaysOn は構成の柔軟性が高く既存のハードウェア投資を再利用できます

AlwaysOn ソリューションではデータベース レベルとインスタンス レベルの両方で可用性を構成するためにSQL Server 2012 の次の 2 つの主要な機能を利用できます

AlwaysOn 可用性グループSQL Server 2012 の新機能の 1 つですデータベース ミラーリング機能の大幅な強化によってアプリケーション データベースの可用性の確保に役立ちますログに基づくデータの移動によってデータ保護を実現し共有ディスクを使用せずにデータ損失をゼロにすることができます

複数のデータベースから成る論理グループの単位で自動および手動のフェールオーバーを実行できますまた最大で 4 つのセカンダリ レプリカのサポート高速なアプリケーション フェールオーバー自動ページ修復など多彩なオプションが用意されています

AlwaysOn フェールオーバー クラスター インスタンス (FCI)SQL Server フェールオーバー クラスタリング機能を拡張し複数のサブネットにわたるマルチサイト クラスタリングをサポートしますこれにより異なるデータ センター間での SQL Server インスタンスのフェールオーバーが可能になりますインスタンスのフェールオーバーがより高速となり予測可能となることでアプリケーションをさらにすばやく復旧させることができます

計画的なダウンタイムの大幅な削減どの組織でもアプリケーション ダウンタイムの主な理由はオペレーティング システムへの修正プログラムの適用ハードウェア メンテナンスなどのための計画的なダウンタイムですこうしたダウンタイムがIT 環境の停止の約 80 を占めています

SQL Server 2012 は修正プログラムの要件を減らしより多くのメンテナンス操作をオンラインで実行できるようにすることで計画的なダウンタイムの大幅な削減に役立ちます

Windows Server CoreSQL Server 2012 ではWindows Server Core への配置がサポートされていますこれはWindows Server 2008 および Windows Server 2008 R2 の最小限の合理化された配置オプションですこれによりオペレーティング システムの修正プログラムの要件を最小限に抑え約 60 削減することで計画的なダウンタイムを減らすことができます

オンライン操作LOB のインデックスを再作成したり既定値を使用して列を追加したりするオンライン操作のサポート強化によってデータベース メンテナンス時のダウンタイムが削減されます

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 6

ローリング アップグレードと修正プログラムAlwaysOn 機能はインスタンスのローリング アップグレードと修正プログラムの適用を容易にしますこれによりアプリケーションのダウンタイムが大幅に削減されます

Hyper-V 上の SQL ServerHyper-V 環境でホストされている SQL Server インスタンスではライブ マイグレーションの利点を活用することでホスト間の仮想マシンの移行をダウンタイムなしで実行できます管理者はアプリケーションに影響を与えずにホスト上でメンテナンス操作を実行できます

アイドル状態のハードウェアをなくしてコスト効率とパフォーマンスを向上典型的な高可用性ソリューションでは高コストで冗長なパッシブ サーバーが配置されますAlwaysOn 可用性グループを使用するとパッシブまたはアイドルな状態のセカンダリ データベース レプリカを読み取り専用のワークロード (SQL Server Reporting Services のレポート クエリバックアップ操作など) に活用できますプライマリとセカンダリの両方のデータベース レプリカを同時に使用できるためサーバー ハードウェア間のリソースのバランスが良くなりすべてのワークロードのパフォーマンスが向上します

簡単な配置と管理構成ウィザードWindows PowerShell コマンド ライン インターフェイスのサポートダッシュボード動的管理ビュー (DMV)ポリシー ベースの管理System Center 統合などの機能によって可用性グループの配置と管理が簡単になります

RPO と RTO の機能比較目標復旧時点 (RPO) と目標復旧時間 (RTO) のビジネス目標は高可用性災害復旧ソリューションのために使用する SQL Server テクノロジを選択する際に重要な判断材料となります次の表はさまざまなソリューションで実現される結果を大まかに比較したものです

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 7

高可用性と災害復旧のSQL Server ソリューション

データ損失の可能性 (RPO)

可能な復旧時間 (RTO)

自動フェールオーバー

読み取り可能な

セカンダリ(1)

AlwaysOn 可用性グループ - 同期コミット ゼロ 数秒 (4) 0 - 2

AlwaysOn 可用性グループ - 非同期コミット 数秒 数分 times 0 - 4

AlwaysOn フェールオーバー クラスター インスタンス

該当せず(5) 数秒~ 数分

該当せず

データベース ミラーリング(2) - 高い安全性 (同期 + 監視)

ゼロ 数秒 該当せず

データベース ミラーリング(2) - 高パフォーマンス (非同期)

数秒(6) 数分(6) times 該当せず

ログ配布 数分(6) 数分~ 数時間(6)

times 復元中はなし

バックアップコピー復元(3) 数時間(6) 数時間~ 数日(6)

times 復元中はなし

(1) AlwaysOn 可用性グループで使用できるセカンダリ レプリカは種類に関係なく最大 4 つです(2) この機能は将来のバージョンの Microsoft SQL Server では削除される予定です代わりに AlwaysOn 可用性グループを使用

してください(3) バックアップコピー復元は障害復旧には適していますが高可用性には適していません(4) 可用性グループの自動フェールオーバーはフェールオーバー クラスター インスタンスとの間ではサポートされていま

せん(5) FCI 自体にはデータ保護機能はありませんデータ損失はストレージ システムの実装に依存します(6) ワークロードデータ量およびフェールオーバーの手順に大きく依存します

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 8

SQL Server AlwaysOn の保護レイヤーSQL Server AlwaysOn ソリューションではインフラストラクチャとアプリケーション コンポーネントのいくつかの論理レイヤーおよび物理レイヤーにまたがってフォールト トレランスと災害復旧を実現できます従来はさまざまな関係者と役割ごとに業務と責任を振り分けそれぞれが主に自分のソリューションのレイヤー部分だけに関心を持つことが一般的でした

このセクションではこれらのレイヤーのそれぞれについて詳細に説明しデザインに関する議論や実装についての意思決定に役立つ論点やガイダンスを提示します

SQL Server AlwaysOn ソリューションをうまく利用するには以下のレイヤーについて理解しそれぞれを協調させる必要があります

インフラストラクチャ レベルサーバー レベルのフォールト トレランスとノード内のネットワーク通信が含まれますWindows Server フェールオーバー クラスタリング (WSFC) 機能を使用して稼働状態の監視とフェールオーバーの調整を行います

SQL Server インスタンス レベルSQL Server AlwaysOn フェールオーバー クラスター インスタンス (FCI) はWSFC クラスター内の複数のサーバー ノードにまたがってインストールされる SQL Server インスタンスであり各サーバー ノードへのフェールオーバーが可能ですFCI をホストするノードは堅牢な対称型共有ストレージ (SAN または SMB) に接続されます

データベース レベル可用性グループは共にフェールオーバーされるユーザー データベースのセットです可用性グループは1 つのプライマリ レプリカと最大 4 つのセカンダリ レプリカで構成されます各レプリカはWSFC クラスターの別々のノードにある SQL Server インスタンス (FCI または非 FCI) によってホストされます

クライアント接続データベース クライアント アプリケーションは指定した SQL Server インスタンス ネットワーク名に直接接続できますまたは可用性グループ リスナーにバインドされている仮想ネットワーク名 (VNN) に接続することもできますVNN はWSFC クラスターおよび可用性グループのトポロジを抽象化するものであり接続要求を適切な SQL Server インスタンスとデータベース レプリカに論理的にリダイレクトします

代表的な AlwaysOn ソリューションの論理トポロジは次の図のようになります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 9

インフラストラクチャの可用性AlwaysOn 可用性グループと AlwaysOn フェールオーバー クラスター インスタンスのどちらもWindows Server オペレーティング システムと WSFC をプラットフォーム テクノロジとして利用します今まで以上にMicrosoft SQL Server データベース管理者はこれらのテクノロジについて十分に理解することが必要です

Windows オペレーティング システムSQL Server は基礎的なインフラストラクチャとネットワークストレージセキュリティ更新プログラムおよび監視のサービスを Windows プラットフォームに依存しています

SQL Server 2012 の各エディションはWindows Server 2008 R2 オペレーティング システムの対応するエディション (Windows Server 2008 R2 Standard オペレーティング システムWindows Server 2008 R2 Enterprise オペレーティング システムWindows Server 2008 R2 Datacenter オペレーティング システムなど) の機能や能力をさらに進歩させて構築されています

詳細については「SQL Server 2012 のインストールに必要なハードウェアおよびソフトウェ ア」(httpmsdnmicrosoftcomja-jplibraryms143506(SQL110)aspx) を参照してください

Windows Server Core インストール オプションSQL Server 2012 では高可用性のための主要な機能の 1 つとしてWindows Server 2008 以降で Server Core インストール オプションによる配置をサポートしていますServer Core インストール オプションでは制限された機能と非常に限定的な GUI アプリケーション サポートで特定のサーバー ロールを実行するための最低限の環境が提供されます既定では必要なサービスとコマンド プロンプト環境のみが有効です

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 10

この操作モードではオペレーティング システムへの攻撃の危険性とシステム オーバーヘッドが低下し継続的なメンテナンスサービス修正プログラムなどの要件が大幅に削減されます

SQL Server 2012 を Windows Server Core に配置する場合の主な注意点はSQL Server およびオペレーティング システムのすべての配置構成管理およびメンテナンスをWindows PowerShell などのスクリプト環境やコマンド ラインまたはリモート ツールを使用して行う必要があることです

プライベート クラウド用の SQL Server の最適化高可用性と災害復旧はプライベート クラウド環境ではさらに重要になってきていますプライベート クラウドに SQL Server を配置すればコンピューターネットワークおよびストレージのリソースが効率的に使用され物理的な場所や資本と運営費用の両方の削減に役立ちます配置の統合リソースの効率的なスケーリングオンデマンドでのリソースの配置が容易になり制御の自由度が失われることもありません

SQL Server ではHyper-V のホストとゲストの両方のシステムに対して Windows Server フェールオーバー クラスタリングをサポートするほかライブ マイグレーションもサポートしていますこれは意識されるほどのダウンタイムを生じることなくホスト間で仮想マシンを移動できる機能ですライブ マイグレーションはゲスト クラスタリングとも協調して動作します

詳細については「プライベート クラウド コンピューティング - プライベート クラウド用の SQL Server の最適化 」(httpwwwmicrosoftcomSqlServerPrivateCloud) を参照してください

Windows Server フェールオーバー クラスタリングWindows Server フェールオーバー クラスタリング (WSFC) はMicrosoft SQL Server などのサーバー アプリケーションに対して高可用性と災害復旧をサポートするインフラストラクチャ機能を提供します

WSFC クラスター ノードまたはサービスに障害が発生するとそのノードでホストされていたサービスまたはリソースは自動的にまたは手動で他の可用性ノードに転送されますこのプロセスをフェールオーバーと呼びますAlwaysOn ソリューションではこのプロセスが FCI と可用性グループの両方に適用されます

WSFC クラスター内の各ノードは連携して次のような機能を提供します

分散メタデータと通知WSFC サービスとホストされるアプリケーション メタデータはクラスター内の各ノードで維持されますこのメタデータにはホストされるアプリケーションの設定に加えWSFC の構成と状態が含まれます1 つのノードでのメタデータまたは状態の変更はクラスター内の他のノードに自動的に反映されます

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 11

リソース管理クラスター内の各ノードは直接アタッチされたストレージ (DAS)ネットワーク インターフェイス共有ディスク ストレージへのアクセスなど物理的リソースを提供する場合がありますSQL Server などホストされるアプリケーション自体もクラスター リソースとして登録されますまた他のリソースに対するスタートアップと正常性にかかわる依存関係を構成できます

正常性の監視ノード間の正常性およびプライマリ ノードの正常性はハートビート ネットワーク通信とリソースの監視を組み合わせることで検出されますクラスターの全体的な正常性状態はクラスター内のノードのクォーラムの投票によって決定されます

フェールオーバーの調整各リソースはプライマリ ノードでホストされるように構成されそれぞれ自動的にまたは手動で 1 つ以上のセカンダリ ノードに転送されます正常性ベースのフェールオーバー ポリシーによってノード間でのリソース所有権の自動転送が制御されますフェールオーバーが発生すると適切に対応できるように各ノードおよびホストされているアプリケーションに通知されます

詳細については「Windows Server | フェールオーバー クラスタリングとノード バランシン グ」(httpwwwmicrosoftcomwindowsserver2008enusfailover-clustering-mainaspx) を参照してください

注 データベース管理者が WSFC クラスターおよびクォーラム管理の内部動作を理解しておくことが非常に重要になりましたAlwaysOn の正常性の監視管理および障害復旧の手順はすべてが本質的に WSFC 構成と関連しています

WSFC ストレージ構成Windows Server フェールオーバー クラスタリングでは接続されているストレージ デバイスディスク ボリュームおよびファイル システムの管理をクラスター内の各ノードに依存していますWSFC はストレージ サブシステムが非常に堅牢であると想定しているためノードに接続されたストレージ デバイスが使用できない場合はクラスター ノードが障害状態であると見なします

書き込みベースの操作ではディスク ボリュームは SCSI-3 の永続的な予約を使用して一度に 1 つのクラスター ノードに論理的に接続されますノードで障害が発生した場合にはストレージ サブシステムの機能と構成に応じてディスク ボリュームの論理的所有権をクラスター内の別のノードに移すことができます

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 12

SQL Server AlwaysOn ソリューションでは次のような WSFC ストレージ構成の組み合わせを利用しその制限も受けます

直接接続とリモートストレージ デバイスはサーバーに物理的に直接接続されるかまたはネットワークやホスト バス アダプター (HBA) を介してリモートのストレージ デバイスを使用しますリモート ストレージのテクノロジにはiSCSI やファイバー チャネルなどのストレージ エリア ネットワーク (SAN) ベースのソリューションとサーバー メッセージ ブロック (SMB) というファイル共有ベースのソリューションがあります

対称と非対称ストレージ デバイスの論理ディスク ボリューム構成とファイル パスがクラスターの各ノードでまったく同じである場合それらのストレージ デバイスは対称的であると見なされます基になるディスク ボリュームの物理的な実装と容量は異なっていてもかまいません

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 13

専用と共有専用ストレージは使用するために予約されクラスター内の 1 つのノードに割り当てられます共有ストレージはクラスターの複数のノードからアクセスできます共有ストレージ デバイスが SCSI-3 プロトコルに準拠していればそれらの制御と所有権をノード間で移動させることができますWSFC ではファイル共有のためにクラスター共有ボリュームを同時に複数のノードでホスティングできますただしSQL Server は複数のノードからの共有ボリュームへの同時アクセスをサポートしていません

注 SQL Server FCI では対称共有ストレージを使用してインスタンスのすべてのノード所有者 (およびその候補) からアクセスできるようにする必要がありますただしAlwaysOn 可用性グループの導入に伴いそれぞれが独自に専用のローカルまたはリモート ストレージを持つ非 FCI の SQL Server インスタンスを WSFC クラスターに配置できるようになりました

WSFC リソースの正常性の検出とフェールオーバーWSFC クラスター ノード内の各リソースの状態と正常性は定期的にまたは要求に応じて報告されますクラスター リソースの障害を示す状況としてはたとえば電源障害ディスクまたはメモリのエラーネットワーク通信エラー構成エラー応答しないサービスなどがあります

ネットワークストレージサービスなどの WSFC クラスター リソースは互いに依存するように構成できますあるリソースの累積的な正常性は依存関係を持つリソースの正常性を連続的にたどってゆくことで決定されます

AlwaysOn 可用性グループでは可用性グループと可用性グループ リスナーがそれぞれ WSFC クラスター リソースとして登録されますAlwaysOn フェールオーバー クラスター インスタンスではSQL Server サービスおよび SQL Server エージェント サービスが WSFC クラスター リソースとして登録されどちらもインスタンスの仮想ネットワーク名リソースに依存します

WSFC クラスター リソースで設定された数のエラーまたは障害が一定期間内に発生した場合構成されたフェールオーバー ポリシーによってクラスター サービスは次のいずれかの操作を行います

現在のノードでのリソースの再起動 リソースをオフライン化 リソースとその依存関係を別のノードへ自動的にフェールオーバー

注 WSFC クラスター リソースの正常性の検出は個々のノードの正常性やクラスターの全体的な正常性には直接影響しません

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 14

WSFC のクラスター検証ウィザードクラスター検証ウィザードはWindows Server 2008 および Windows Server 2008 R2 のフェールオーバー クラスタリングに統合されている機能ですこれはSQL Server AlwaysOn ソリューションの配置前 にクリーンで正常な安定した WSFC 環境が存在していることをデータベース管理者が確認するために使用する主要なツールです

クラスター検証ウィザードではクラスターのノードとして使用するサーバーの集合または既存のクラスターを対象にして一連のテストを実行できますこのプロセスでは基になるハードウェアおよびソフトウェアが個別に直接テストされWSFC クラスターが特定の構成でどの程度良好にサポートされるかについての正確な評価が得られます

この検証プロセスでは各ノードに対して次のようなカテゴリの一連のテストとデータ収集が実施されます

一覧作成BIOS のバージョン環境レベルホスト バス アダプターRAMオペレーティング システムのバージョンデバイスサービスドライバーなどの情報です

ネットワークNIC のバインド順序ネットワーク通信IP 構成ファイアウォール構成などの情報ですすべての NIC でノード間の通信が検証されます

ストレージディスクドライブの容量アクセス待機時間ファイル システムなどの情報ですSCSI コマンドディスク フェールオーバー機能対称的または非対称的なストレージ構成が検証されます

システム構成Active Directory の構成ドライバーの登録メモリ ダンプの設定必要なオペレーティング システムの機能とサービス互換性のあるプロセッサ アーキテクチャおよびサービス パックと Windows Software Update のレベルが検証されます

これらの検証テストの結果を利用してクラスターの構成を微調整したり構成を追跡したりダウンタイムを引き起こすかもしれない潜在的なクラスター構成の問題を特定したりできますテスト結果のレポートは後で参照できるようにHTML ドキュメントとして保存できます

これらのテストはWSFC の構成に何か変更を加える前と加えた後に実行するほかSQL Server をインストールする前および災害復旧プロセスの一環として実行する必要がありますマイクロソフトで特定の WSFC クラスター構成がサポートされるためにはマイクロソフト カスタマー サポート サービス (CSS) にクラスター検証レポートを提出する必要があります

詳細については「フェールオーバー クラスター ステップ バイ ステップ ガイド フェール オーバー クラスター用ハードウェアを検証する」(httptechnetmicrosoftcomja-jplibrarycc732035(WS10)aspx) を参照してください

注 ハードウェアベースの地理的クラスタリング ストレージ ソリューションの場合やAlwaysOn 可用性グループの場合のようにクラスター構成に非対称ストレージがあるとクラスター検証ウィザードでストレージの検証手順を成功させるために多数の修正プログラムを適用しなければならないことがあります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 15

詳細については「AlwaysOn 可用性グループの前提条件制限事項および推奨事項 」(httpmsdnmicrosoftcomja-jplibraryff878487(SQL110)aspxSystemReqsForAOAG) を参照してください

WSFC クォーラム モードと投票の構成WSFC ではクォーラム ベースのアプローチを使用してクラスターの全体的な正常性を監視することでノード レベルのフォールト トレランスを最大限に高めますWSFC のクォーラム モードおよびノード投票構成の基本について理解することはAlwaysOn 高可用性災害復旧ソリューションの設計運用トラブルシューティングのために非常に重要です

クォーラムによるクラスター状態検出WSFC クラスター内の各ノードは定期的なハートビート通信に参加しノードの正常性状態を他のノードと共有します応答しないノードはエラー状態であると見なされます

クォーラム ノード セットとはWSFC クラスター内の投票ノードおよび監視サーバーのうち過半数を占めるノードの集合ですWSFC クラスターの全体的な正常性と状態は定期的なクォーラムの投票 によって決定されますクォーラムはクラスターが正常でありノード レベルのフォールト トレランスを提供できることを意味します

クォーラムに達していない状態はクラスターが正常でないことを示しますプライマリ ノードのフェールオーバー先として正常なセカンダリ ノードを使用できるようにするにはWSFC クラスターの全体的な正常性が維持されている必要があります投票数がクォーラムに達しなかった場合にはWSFC クラスター全体が予防策としてオフラインに設定されますその場合クラスターに登録されている SQL Server インスタンスがすべて停止します

注 クォーラム障害のために WSFC クラスターがオフラインに設定されるとオンラインに戻すために手動の操作が必要です詳細については後の「WSFC の強制クォーラムによる災害 復旧」のセクションを参照してください

クォーラム モードクォーラム モードはWSFC クラスター レベルで構成されクォーラム投票の方法を指定しますフェールオーバー クラスター マネージャー ユーティリティではクラスター内のノード数に基づいて推奨するクォーラム モードが提示されます

次のいずれかのクォーラム モードによって投票クォーラムの構成が決定されます

ノード マジョリティクラスターが正常であるためにはクラスター内の半分以上の投票ノードが肯定的に投票する必要があります

ノードおよびファイル共有マジョリティノード マジョリティ クォーラム モードに似ていますがリモート ファイル共有も投票監視サーバーとして構成され各ノードからそのリモート ファイル共有への接続も肯定的な投票としてカウントされますクラスターが正常であるためには投票の過半数が肯定的である必要があります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 16

推奨事項として監視ファイル共有はクラスター内のノードに存在せずクラスター内のすべてのノードから見える必要があります

ノードおよびディスク マジョリティノード マジョリティ クォーラム モードに似ていますが共有ディスク クラスター リソースも投票監視サーバーとして使用され各ノードからその共有ディスクへの接続も肯定的な投票としてカウントされますクラスターが正常であるためには投票の過半数が肯定的である必要があります

ディスクのみ共有ディスク クラスター リソースが監視サーバーとして使用され各ノードからその共有ディスクへの接続が肯定的な投票としてカウントされます

詳細については「フェールオーバー クラスター ステップ バイ ステップ ガイド フェール オーバー クラスターのクォーラムの構成」(httptechnetmicrosoftcomja-jplibrarycc770620(WS10)aspx) で説明されています

注 クラスターの各ノードが同じ共有ストレージ クォーラム監視ディスクを使用するように構成されていない限り通常投票ノード数が奇数の場合は ノード マジョリティ クォーラム モード投票ノード数が偶数の場合は ノードおよびファイル共有マジョリティ クォーラム モードを使用してください

投票ノードと非投票ノード既定ではWSFC クラスター内の各ノードがクラスター クォーラムのメンバーとなります各ノードファイル共有監視サーバーディスク監視サーバーがクラスターの全体的な正常性の決定においてそれぞれ 1 票ずつの投票権を持ちますクォーラムに関するここまでの説明ではクラスター状態について投票する WSFC クラスター ノードのセットを投票ノードとして注意深く限定してきました状況によってはすべてのノードに投票権を与えることが適切でない場合もあります

WSFC クラスターの各ノードはクォーラムを確立しようとし続けますクラスター内の個々のノードはクラスターが全体として正常であるか正常でないかを明確に決定することはできません特定の時点で各ノードからは他のノードの一部がオフラインフェールオーバー中またはネットワーク通信のエラーにより応答不能に見えますクォーラム投票の主な機能はWSFC クラスターの各ノードの見かけの状態が本当にそれらのノードの実際の状態であるかどうかを判断することです

ディスクのみ 以外のすべてのクォーラム モデルではクォーラム投票の有効性はクラスター内のすべての投票ノード間に信頼できる通信が確立されていることに依存しますすべてのノードが同じ物理サブネット上にある場合はクォーラムの投票を信頼できます

しかしクォーラム投票で他のサブネット上のノードが応答しないように見えても実際はオンラインで正常である場合はサブネット間のネットワーク通信のエラーが原因であることが考えられますクラスター トポロジクォーラム モードおよびフェールオーバー ポリシーの構成によってはネットワーク通信エラーによって投票ノードのセット (またはサブセット) が実質的に複数作成されてしまう可能性があります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 17

投票ノードの複数のサブセットがそれぞれ独自のクォーラムを構築できる状態はスプリット ブレイン と呼ばれますこの状態では各クォーラム上のノードが別々の動作をし相互に矛盾する可能性があります

注 スプリット ブレイン の状況が発生するのはシステム管理者が強制クォーラム動作を手動で実行するかまたは非常にまれですが強制的な手動フェールオーバーを実行することでクォーラム ノード セットが明示的に細分化された場合のみです詳細については後の「WSFC の強制クォーラムによる災害復旧 」のセクションを参照してください

クォーラム構成を単純化し稼働時間を長くする目的でノードの投票がクォーラムにカウントされないように各ノードの NodeWeight 設定 (値 0 または 1) を調整することができます

クォーラム投票に推奨される調整以下のガイドラインをこの順番に適用することでクラスターに対して推奨されるクォーラム投票の構成を判断できます

1 既定は投票権なしにします明確な理由がない限り各ノードには投票権を与えないと考えてください

2 すべてのプライマリ ノードに投票権を与えますAlwaysOn 可用性グループのプライマリ レプリカをホストする各ノードおよび AlwaysOn フェールオーバー クラスター インスタンスの優先所有者である各ノードは投票権を持つ必要があります

3 可能性のある自動フェールオーバーの所有者を含めます自動フェールオーバーの結果としてプライマリ レプリカまたは FCI をホストする可能性がある各ノードは投票を持つ必要があります

4 セカンダリ サイト ノードを除外します通常はセカンダリ災害復旧サイトに存在するノードには投票を提供しないでくださいプライマリ サイトに問題がない場合クラスターをオフラインにする判断にセカンダリ サイト内のノードが影響を与えることは避ける必要があります

5 投票数を奇数にします必要に応じて監視ファイル共有監視ノード (SQL Server インスタンスの有無は問いません)または監視ディスクをクラスターに追加してクォーラム モードを調整しクォーラムの投票結果が同数に分かれるのを防ぎます

6 フェールオーバー後の投票割り当てを再評価します正常なクォーラムをサポートしないクラスター構成にフェールオーバーすることは避けます

ノードの投票の調整の詳細については「クラスター クォーラムの NodeWeight の設定の構 成」(httpmsdnmicrosoftcomja-jplibraryhh270281(SQL110)aspx) を参照してください

ファイル共有監視サーバーの投票は調整できませんその投票を含めるか除外するかを決めるには別のクォーラム モードを選択する必要があります

注 SQL Server ではWSFC クラスター構成およびノード クォーラム投票に関する設定を管理するためにいくつかのシステム動的管理ビュー (DMV) が公開されています

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 18

詳細については「可用性グループの監視」(httpmsdnmicrosoftcomja-jplibraryff878305(SQL110)aspx) を参照してください

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 19

WSFC の強制クォーラムによる災害復旧通常クォーラム障害は災害発生時または WSFC クラスター内の複数のノード間で永続的な通信障害が生じた場合に発生しますクォーラム障害が発生するとクラスターがノード レベルのフォールト トレランスを確保できなくなるためその WSFC クラスター内の SQL Server インスタンス可用性グループおよびクラスター化されているサービスがすべてオフラインになりますクォーラム障害はWSFC クラスター内の正常な投票ノード数がクォーラム モデルを満たさなくなったことを意味しますノードによってまったく機能しなくなるものもあればWSFC サービスがシャットダウンしただけでクォーラムと通信できなくなったことを除けば正常なものもあります

WSFC クラスターをオンラインに戻すには既存の構成の少なくとも 1 つのノードでクォーラム障害の根本的な原因を解決する必要があります災害発生時には使用できる代替ハードウェアの再構成や識別が必要となる場合もあります現状のクラスター トポロジを反映するためにWSFC クラスターの残りのノードを再構成する場合もあります

WSFC クラスター ノードで強制クォーラムの手順を使用するとクラスターがオフラインになる原因となった安全管理機能を無効にすることができますこれによりクラスターでのクォーラム投票のチェックが実質的に中断されクラスター内の任意のノードで WSFC クラスター リソースと SQL Server をオンラインに戻すことができます

このような災害復旧プロセスの手順を次に示します

1) 障害の範囲を特定します応答しない可用性グループや SQL Server インスタンス災害後に使用できるオンラインのクラスター ノードをそれぞれ特定しWindows イベント ログと SQL Server システム ログを確認します必要に応じて後で分析できるように解析データやシステム ログを保存しておきます

2) 1 つのノードで強制クォーラムを使用して WSFC クラスターを起動します他の点では正常なノードで強制クォーラムの手順に従ってクラスターを手動で強制的にオンラインにしますこの場合データ損失の可能性を最小限に抑えるには可用性グループのプライマリ レプリカを最後にホストしていたノードを選択します

詳細については「クォーラムを使用せずに WSFC クラスターを強制的に起動する 」(httpmsdnmicrosoftcomja-jplibraryhh270275(v=SQL110)aspx) を参照してください

注 強制クォーラムの設定を使用するとWSFC クラスターの投票が過半数に達することで通常のクォーラム モードの動作に自動的に切り替わるまでクラスター全体のクォーラムのチェックがブロックされます

3) 他の点では正常な各ノードでWSFC サービスを 1 つずつ通常の方法で起動します他のノードでクラスター サービスを起動するときは強制クォーラム オプションを指定する必要はありません

各ノードの WSFC サービスがオンラインに戻ると他の正常なノードとの間でネゴシエーションが行われ新しいクラスター構成の状態が同期されますクラスターの最新の状態

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 20

を判断するときに競合状態の発生を避けるためこの手順は必ず一度に 1 つのノードで行うようにしてください

注 起動した各ノードが新たにオンラインにした他のノードと通信できることを確認しますそうしないと複数のクォーラム ノード セットが作成されて スプリット ブレイン の状況に陥るおそれがあります手順 1 の結果に問題がなければこの現象は発生しません

4) 新しいクォーラム モードとノードの投票の構成を適用します強制クォーラムの手順によってクラスターのすべてのノードを正常に再起動させクォーラムのエラーの根本原因を修正した場合クォーラム モードとノードの投票を元の構成から変更する必要はありません

それ以外の場合は新たに復元されたクラスター ノードと可用性レプリカのトポロジを評価し必要に応じてクォーラム モードと各ノードの投票割り当てを変更します未復旧のノード上ではWSFC クラスター サービスをオフラインにするかノードの投票をゼロに設定します

注 この時点でクラスター内のノードと SQL Server インスタンスが通常の動作に戻っているように見えることがありますがまだ正常なクォーラムには達していない可能性がありますフェールオーバー クラスター マネージャーやSQL Server Management Studio の AlwaysOn ダッシュボードまたは適切な DMV を使用して正常なクォーラムが復元されたことを確認してください

5) 必要に応じて可用性グループのデータベース レプリカを復旧します一部のデータベースはSQL Server の通常の起動処理の一環として自動的に復旧されオンラインに戻ることがありますそれ以外のデータベースの復旧には追加で手動の手順を実行する必要があります

可用性グループ レプリカのデータ損失の可能性や復旧にかかる時間を最小限に抑えるにはできればプライマリ レプリカ同期セカンダリ レプリカ非同期セカンダリ レプリカの順にオンラインに戻します

6) 障害が発生したコンポーネントを修復するか交換しクラスターを再検証しますこれで最初の災害およびクォーラム障害から復旧できたので障害が発生したノードを修復するか交換しWSFC と AlwaysOn の関連する構成を適切に調整する必要がありますこれには可用性グループ レプリカの削除クラスターからのノードの削除ノードへのソフトウェアの再インストールなどが含まれます

注 停止したすべての可用性レプリカを修復または削除する必要がありますSQL Server 2012 では最も古い可用性レプリカを最後に認識した時点以降トランザクション ログが切り捨てられません停止したレプリカを修復するか可用性グループから削除しないとトランザクション ログが大きくなり他のレプリカのトランザクション ログの領域が不足する可能性があります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 21

7) 必要に応じて手順 4 を繰り返しますこの目的は正常な動作を行うために適切なレベルのフォールト トレランスと高可用性を再確立することです

8) RPORTO 分析を実行しますSQL Server のシステム ログデータベースのタイムスタンプおよび Windows のイベント ログを分析して障害の根本的な原因を特定し実際の復旧ポイントと復旧時間を文書に記録します

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 22

SQL Server インスタンス レベルでの保護次に説明する AlwaysOn ソリューションの保護レイヤーはデータ プラットフォームそれ自体ですMicrosoft SQL Server 2012 とその Windows Server インフラストラクチャ コンポーネントとの統合によって次のような機能が提供されます

可用性の向上 ndash SQL Server インスタンスこれは SQL Server 2012 の新しいインスタンス レベルの機能でAlwaysOn フェールオーバー クラスター インスタンスとAlwaysOn 可用性グループをホストするスタンドアロン インスタンスの両方の可用性を強化します

以下の強化点によってフェールオーバーの管理およびトラブルシューティングが向上します

柔軟なフェールオーバー ポリシー信頼性の高いエラー検出に使用される新しいシステム ストアド プロシージャ sp_server_diagnostics の出力でSQL Server インスタンスに影響するエラーの重大度が FailureConditionLevel プロパティによって示されますWSFC のフェールオーバー ポリシーによってこの値が SQL Server インスタンスにどのように影響するかを制御できますある程度エラーを許容する設定からSQL Server の内部コンポーネント エラーを重点的に検出する設定までさまざまに構成できます

特定のレベルのエラーによってフェールオーバーを開始するように構成できますエラーのレベルにはサーバーの停止サーバーの応答停止重大なエラー中程度のエラーなんらかの条件付きエラーなどがありますFailureConditionLevel プロパティはFCI または可用性グループのフェールオーバー ポリシーのために使用できます

SQL Server 2012 よりも前のバージョンではフェールオーバーを制御できるようなエラー状態の区分がなくすべてのサービス レベルのエラーによってフェールオーバーが発生しました

詳細については「フェールオーバー クラスター インスタンスのフェールオーバー ポリシー」(httpmsdnmicrosoftcomja-jplibraryff878664(SQL110)aspx) を参照してください

強化されたインストルメンテーションとログAlwaysOn 専用のシステム構成ビューDMVパフォーマンス カウンターに加えて拡張されたイベント正常性セッションによってAlwaysOn 配置のトラブルシューティングチューニングおよび監視に必要な情報を取得して表示できますこれらの多くはSQL Server ポリシー管理の新しいファセットおよびポリシーを通じて公開されます

詳細については「AlwaysOn 可用性グループの動的管理ビューおよび関 数」(httpmsdnmicrosoftcomja-jplibraryff877943(SQL110)aspx) と「sysdm_os_cluster_nodes」(httpmsdnmicrosoftcomja-jplibraryms187341(SQL110)aspx) を参照してください

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 23

SMB ファイル共有のサポートWindows Server 2008 以降のスタンドアロン用またはフェールオーバー クラスター インスタンス用のリモート ファイル共有にデータベース ファイルを格納することができますこの場合FCI ごとに異なるドライブ文字を使用する必要がありませんこれはストレージを統合する場合やデータベース ファイルのストレージを仮想マシンのゲスト オペレーティング システム用物理サーバーでホストする場合などに便利なオプションです適切に構成すれば直接接続されたストレージとほぼ同等の IO パフォーマンスが得られます

詳細については「ファイル共有上の SQL データベース - シナリオを再検討すべきとき 」(httpblogsmsdncombsqlserverstorageenginearchive20111018sql-databases-on-file-shares-it-s-time-to-reconsider-the-scenarioaspx) を参照してください

注 WSFC クラスターではSMB ファイル共有リソースの依存関係を SQL Server リソース グループに追加することはできませんファイル共有の可用性を確保するには別の方法を用いる必要がありますファイル共有が使用できなくなった場合SQL Server は IO 例外をスローしオフラインになります

WSFC と DNS の相互運用性FCI または可用性グループ リスナーの仮想ネットワーク名 (VNN) はVNN の作成時または構成の変更時にのみDNS に登録されますすべての仮想 IP アドレスはオンライン状態かオフライン状態かに関係なく同じ仮想ネットワーク名で DNS に登録されますDNS の仮想ネットワーク名を解決するためのクライアント呼び出しは各種のラウンド ロビン シーケンスによってすべての登録済み IP アドレスを返します

AlwaysOn フェールオーバー クラスター インスタンスSQL Server の AlwaysOn フェールオーバー クラスター インスタンス (FCI) の主な目的は1 つのデータ センター内のローカル サーバーとストレージ ハードウェアでホストされている SQL Server インスタンスの可用性を高めることです

FCI はWindows Server フェールオーバー クラスタリング (WSFC) のクラスターに含まれる複数のノードにまたがってインストールされる1 つの論理的な SQL Server インスタンスですただし一度に 1 つのノードだけでアクティブになることができますクライアント アプリケーションはアクティブなクラスター ノードが所有している仮想ネットワーク名および仮想 IP アドレスに接続します

FCI をインストールした各ノードは同一の構成を持ち同一の SQL Server バイナリを含んでいますWSFC クラスター サービスはアクティブなインスタンス上にある Windows レジストリのエントリからFCI をインストールした各ノードに関連のある変更をレプリケートしますFCI がインストールされている各ノードはインスタンスとそのリソースの所有者の候補として指定されフェールオーバーの優先順位に従って所有者となります

共有対称ストレージ ボリュームに格納されているデータベース ファイルはリソースとして WSFC クラスターに登録され現在 FCI をホストしているノードによって所有されます

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 24

詳細については「AlwaysOn フェールオーバー クラスター インスタン ス」(httpmsdnmicrosoftcomja-jplibraryms189134(SQL110)aspx) を参照してください

FCI のフェールオーバー プロセス依存しているクラスター リソースで障害が発生した場合AlwaysOn フェールオーバー クラスター インスタンスはWSFC クラスター サービスと連携してフェールオーバーを行いますそのプロセスの概要を以下に示します

1) 再起動が指示されますWSFC の定期的なチェックまたは SQL Server のフェールオーバー ポリシー構成によってエラー状態が示されます既定では他のノードへのフェールオーバーを開始する前にサービスの再起動が試みられます再起動の試みがタイムアウトするようであればリソースの障害が発生しています

2) フェールオーバーが指示されますフェールオーバー ポリシー チェックによってノードのフェールオーバーが必要であることが示されます

3) SQL Server サービスが停止されますSQL Server サービスが現在実行されている場合はその正常なシャットダウンが試みられます

4) WSFC クラスター リソースが転送されますSQL Server クラスター リソース グループの所有権とそれが依存するネットワークおよび共有ストレージ リソースがFCI で次に優先されるノード所有者に転送されます

5) 新しいノードで SQL Server が起動されますSQL Server インスタンスは通常のスタートアップ プロシージャで起動されます所定のタイムアウト時間内にオンラインに戻らない場合クラスター サービスはこの新しいノード上のリソースをエラー状態と見なします

6) 新しいノードでユーザー データベースが復旧されます各ユーザー データベースは復旧モードに設定されます復旧モードではトランザクション ログの再実行操作が適用されコミットされていなかったトランザクションがロールバックされます

FCI の強化以前のバージョンの SQL Server でも FCI のインストール オプションは用意されていましたがSQL Server 2012 では次のような機能強化によって可用性の堅牢性と利便性が向上しました

マルチサブネット クラスタリングSQL Server 2012 では複数のサブネットに存在する WSFC クラスター ノードがサポートされていますWSFC クラスター ノードに存在する SQL Server インスタンスはいずれかのネットワーク インターフェイスが使用可能であれば起動できますこれはクラスター リソースの OR 依存関係と呼ばれます

以前のバージョンの SQL Server の場合SQL Server サービスを起動またはフェールオーバーするにはすべてのネットワーク インターフェイスが機能しそれらがすべて同じサブネットまたは VLAN に存在している必要がありました

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 25

注 マルチサブネット クラスタリングではクラスター ノード間のストレージ レベルのレプリケーションが自動的には有効になりませんマルチサブネットの FCI ソリューションでクラスター ノード間でデータのレプリケーションを行いストレージ フェールオーバーを調整するためにはサード パーティから提供される SAN ベースのソリューションを利用する必要があります

詳細については「SQL Server 2012 AlwaysOn マルチサイト フェールオーバー クラスター インスタンス」(httpsqlcatcomsqlcatbwhitepapersarchive20111222sql-server-2012-alwayson_3a00_-multisite-failover-cluster-instanceaspx) を参照してください

信頼性の高いエラー検出WSFC クラスター サービスではノードの各 SQL Server 2012 FCI に対してそれぞれ専用の管理者接続が維持されますこの接続では特殊なシステム ストアド プロシージャ sp_server_diagnostics を定期的に呼び出すことでシステムの正常性診断に役立つ豊富な情報を含む配列が返されます

SQL Server 2012 よりも前のバージョンではFCI の主な正常性検出メカニズムは単純な一方向のポーリング プロセスとして実装されていましたこのプロセスではWSFC クラスター サービスがインスタンスへの新しい SQL クライアント接続を定期的に作成しサーバー名を照会した後で接続を切断していました何かの理由で接続が失敗するかクエリがタイムアウトした場合フェールオーバーが開始されますが診断情報はほとんど提供されません

詳細については「sql_server_diagnostics」(httpmsdnmicrosoftcomja-jplibraryff878233(SQL110)aspx) を参照してください

現在ではFCI ストレージが次のように幅広い状況でサポートされています

向上したマウント ポイント サポートSQL Server のセットアップ時にクラスター ディスクのマウント ポイント設定が認識されるようになりました指定されたクラスター ディスクとそれにマウントされているすべてのディスクがセットアップ時に SQL Server リソースの依存関係に自動的に追加されます

ローカル ストレージの tempdbFCI ではローカルの非共有ストレージ (ローカル ソリッド ステート ドライブなど) に tempdb を配置できるようになったため共有 SAN での IO 動作の負荷を大幅に軽減できる可能性があります

SQL Server 2012 よりも前のバージョンの FCI ではtempdb が他のシステム データベースと共にフェールオーバーされる対称共有ストレージ ボリュームに配置される必要がありました

注 tempdb の場所はmaster データベースに格納されますこのデータベースはフェールオーバー時にノード間で移動されますtempdb は所有者候補となっているすべてのノード上で有効で対称的なファイル パス (ドライブフォルダーおよび権限) に配置されている必要がありますそうなっていない場合SQL Server サービスが一部のノードでは起動されません

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 26

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 27

データベースの可用性インフラストラクチャ レベルおよび SQL Server インスタンス レベルのコンポーネントで提供されている高可用性機能は互いに連係してホストされているデータベースを暗黙的に保護しますAlwaysOn ソリューションではデータベースのデータおよびデータ層アプリケーションを明示的に保護するために一連のオプションが追加で用意されています

AlwaysOn 可用性グループ可用性グループは1 つの SQL Server インスタンスから同じ WSFC クラスター内の別のインスタンスへと同時にフェールオーバーされるユーザー データベースのセットですクライアント アプリケーションは可用性グループ リスナーと呼ばれる WSFC 仮想ネットワーク名を通じて可用性グループのデータベースに接続できますこうすることで基になる SQL Server インスタンスが抽象化されます

AlwaysOn 可用性グループは正常性監視フェールオーバーの調整およびサーバー接続を Windows Server フェールオーバー クラスタリングに依存していますWSFC クラスター ノード上の SQL Server インスタンスでAlwaysOn サポートを有効にする必要がありますただしそのインスタンスが FCI である必要はなく対称共有ストレージを使用する必要もありません

詳細については「AlwaysOn 可用性グループの概要 」(httpmsdnmicrosoftcomja-jplibraryff877884(SQL110)aspx) を参照してください

可用性レプリカとロール可用性グループの各 SQL Server インスタンスは可用性グループのユーザー データベースのコピーを保持している可用性レプリカをホストしますSQL Server インスタンスは特定の可用性グループの可用性レプリカを 1 つだけホストすることができますが複数の可用性グループを同じインスタンスに置くことは可能ですSQL Server インスタンスは専用の (非共有) ストレージ ボリュームを持つ必要があります

可用性レプリカの 1 つがプライマリ レプリカの役割を果たしますこれは可用性グループ データベースのマスター コピーとして指定されていて読み取り書き込み操作を行うことができます

可用性グループには読み取り専用の可用性レプリカを最大 4 つまで追加で含めることができますこれらは個別にセカンダリ レプリカの役割を果たします

可用性レプリカの同期可用性グループの各データベースの内容はSQL Server によるログ ベースのデータ移動メカニズムを通じてプライマリ レプリカから各セカンダリ レプリカに同期されますそのため可用性グループのすべてのデータベースは完全復旧モデルに設定する必要があります

セカンダリ レプリカはプライマリ レプリカのデータベースとトランザクション ログの完全なバックアップと復元によって初期化されますプライマリ レプリカで新しいトランザクションがコミットされるとトランザクション ログの対応する部分がキャッシュされ

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 28

キューに入れられてネットワーク経由でセカンダリ レプリカ ノード上のデータベース ミラーリング エンドポイントに送信されます

この方法によりプライマリ レプリカのトランザクション ログの新しいエントリが各セカンダリ レプリカのトランザクション ログに追加されます各セカンダリ レプリカはログ シーケンス番号 (LSN) をプライマリ レプリカに定期的に送り返しトランザクション ログのどのくらいの量がリモート ディスクに書き込まれフラッシュされたかを示します

注 各可用性レプリカはそれぞれ独自に独立したトランザクション ログ再実行スレッドのセットを保持していますこれは可用性レプリカの同期プロセスには含まれませんセカンダリ レプリカ上ではログ再実行プロセスによって遅延時間が生じるためユーザーはそれをデータの待機時間として感じる場合があります

プライマリまたはセカンダリの役割を果たす他に各可用性レプリカには可用性モードもありますこのモードは次のようにCOMMIT TRAN ステートメントの実行時にトランザクション ログの書き込みの連係を制御します

同期コミット モードすべての同期コミット セカンダリ レプリカからそれぞれ独自のトランザクション ログの書き込み完了 (LSN 以降) が通知されるまでプライマリ レプリカはそのトランザクションをコミットしません可用性グループでは最大で 2 つの同期コミット セカンダリ レプリカを使用できます

同期コミット モードではプライマリ レプリカ データベースでトランザクションの遅延が生じますがコミットされたトランザクションに対するセカンダリ レプリカでのデータ損失を確実に防ぐことができます

非同期コミット モードプライマリ レプリカはローカル トランザクション ログの書き込み後にトランザクションをコミットしますが非同期コミット セカンダリ レプリカからトランザクション ログの書き込み完了通知を待つことはしません可用性グループでは最大で 4 つの非同期コミット セカンダリ レプリカを使用できますただし両方の種類を合わせて使用できるセカンダリ レプリカの合計は最大 4 つです

非同期コミット モードではプライマリ レプリカ データベースで生じるトランザクションの遅延が最小になりますがセカンダリ レプリカでのトランザクション ログが遅れる場合があるため一部のデータが失われる可能性があります

詳細については「可用性モード」(httpmsdnmicrosoftcomja-jplibraryff877931(SQL110)aspx) を参照してください

可用性レプリカ間のデータ フローの全体的な正常性は各レプリカの同期状態によって示されますセカンダリ レプリカにフェールオーバーしたときに同期状態が 同期済み または 同期中 になっていなければほとんどの場合はデータ損失が発生することになります

各セカンダリ レプリカの同期ストリームにはセッション タイムアウト プロパティがあります同期コミット モードに構成されているセカンダリ レプリカがセッション タイムアウトでエラーになると内部的には一時的に非同期としてマークされますこれはセカンダ

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 29

リ レプリカのエラーがプライマリ レプリカでのトランザクション ログの書き込みに影響しないようにするためですそのセカンダリ レプリカが正常に戻ってプライマリ レプリカの状態に追いつくと自動的に通常の同期コミット モード動作に戻されます

可用性グループのフェールオーバー可用性グループとそれに対応する仮想ネットワーク名はWSFC クラスターのリソースとして登録されます可用性グループはプライマリ レプリカの正常性とフェールオーバー ポリシーに基づいて可用性レプリカのレベルでフェールオーバーを行います

可用性グループのフェールオーバー ポリシーではsp_server_diagnostics システム ストアド プロシージャと FailureConditionLevel プロパティを使用して可用性グループに対して許容されるエラーの重大度のレベルを示しますこの同じメカニズムがFCI のフェールオーバー ポリシーにも使用されます

フェールオーバーが発生した場合は共有物理リソースの所有権を他のノードに移す代わりにWSFC を利用して他の SQL Server インスタンス上でセカンダリ レプリカを再構成しプライマリ レプリカの役割を引き継がせますその後可用性グループの仮想ネットワーク名リソースがそのインスタンスに転送されます関連する可用性レプリカへのすべてのクライアント接続がリセットされます

レプリカの現在の正常性同期状態および可用性モードに基づいて各レプリカには複合的な フェールオーバーの準備 状態が定義されますこの状態の値はデータ損失の可能性を示していますレプリカの正常性情報はAlwaysOn ダッシュボードまたは sysdm_hadr_availability_replica_states システム ビューで確認できます

各可用性レプリカにはフェールオーバー モードも構成されていますこのモードはフェールオーバーが指示された場合にレプリカの動作を制御します

自動フェールオーバー (データ損失なし)セカンダリ レプリカのトランザクション ログが既に書き込まれ同期されているのですべての AlwaysOn 構成の中でフェールオーバー時間が最短になりますプライマリ レプリカ上の開かれているトランザクションはロールバックされプライマリ レプリカの役割はユーザーによる操作なしでセカンダリ レプリカに転送されます

この場合プライマリ レプリカとセカンダリ レプリカの両方を自動フェールオーバー モードに設定し両方の可用性モードを同期コミットに設定する必要がありますレプリカ間の同期状態は同期済み である必要がありますまたWSFC クラスターは正常なクォーラム状態になっている必要があります

自動フェールオーバーはプライマリ レプリカまたはセカンダリ レプリカが FCI 上にある場合はサポートされませんこれは可用性グループと FCI のフェールオーバー間で競合状態が発生することを防ぐためです

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 30

手動フェールオーバーこの場合管理者はプライマリ レプリカの状態を評価してセカンダリ レプリカにフェールオーバーするかどうかを慎重に判断できます

可用性モードと同期状態に応じて次のような選択が可能です

o 計画的な手動フェールオーバー (データ損失なし)この種類のフェールオーバーを実行できるのはプライマリ レプリカとセカンダリ レプリカの両方が正常で同期済み 状態である場合だけですこれは機能的には自動フェールオーバーと同じです

o 強制手動フェールオーバー (データ損失の可能性を許容)これは対象のセカンダリ レプリカの可用性モードが非同期コミットである場合またはプライマリ レプリカに同期されない場合に使用できる唯一のフェールオーバー形式です

警告 このフェールオーバー オプションは災害復旧の状況に限って使用する必要がありますプライマリ レプリカが正常で使用可能である場合は関連する各レプリカの可用性モードを同期コミットに変更し計画的な手動フェールオーバーを実行してください

詳細については「可用性グループの強制手動フェールオーバーの実行」(httpmsdnmicrosoftcomja-jplibraryff877957(SQL110)aspx) を参照してください

フェールオーバー対象のプライマリ レプリカまたはセカンダリ レプリカが次の条件のいずれかに該当する場合は手動フェールオーバーを実行する必要があります

フェールオーバー モードが手動に設定されている 可用性モードが非同期コミットに設定されている レプリカが FCI 上にある

詳細については「フェールオーバーとフェールオーバー モード (AlwaysOn 可用性グルー プ ) 」(httpmsdnmicrosoftcomja-jplibraryhh213151(SQL110)aspx) を参照してください

注 フェールオーバー後新しいプライマリ レプリカが同期コミット モードに設定されていない場合セカンダリ レプリカの同期状態は 中断状態 になりますプライマリ レプリカが同期コミット モードに設定されるまでデータはセカンダリ レプリカに移動されません

可用性グループ リスナー可用性グループ リスナーはクライアントが可用性グループ内のデータベースにアクセスするために使用できる WSFC 仮想ネットワーク名 (VNN) ですVNN クラスター リソースはプライマリ レプリカをホストしている SQL Server インスタンスによって所有されます

仮想ネットワーク名は可用性グループ リスナーの作成時または構成の変更時にのみDNS に登録されます可用性グループ リスナーで定義されているすべての仮想 IP アドレスは同じ仮想ネットワーク名で DNS に登録されます

可用性グループ リスナーを使用する場合クライアント接続要求ではサーバーとして仮想ネットワーク名を指定してから可用性グループ内のデータベース名を指定する必要があり

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 31

ます既定ではこれによってプライマリ レプリカをホストしている SQL Server インスタンスに接続されます

実行時にはクライアントはローカルの DNS リゾルバーを使用して仮想ネットワーク名にマップされている IP アドレスと TCP ポートの一覧を取得しますクライアントは各 IP アドレスへの接続を成功するか接続タイムアウトに達するまで試し続けますMultiSubnetFailover パラメーターが true に設定されているとクライアントは複数の接続を同時に試行するのでクライアント フェールオーバーが大幅に速くなります

フェールオーバーが行われるとサーバー上でクライアント接続がリセットされ可用性グループ リスナーの所有権はプライマリ レプリカの役割と共に新しい SQL Server インスタンスに移動しVNN エンドポイントは新しいインスタンスの仮想 IP アドレスと TCP ポートにバインドされます

詳細については「可用性グループ リスナークライアント接続およびアプリケーションのフェールオーバー」(httpmsdnmicrosoftcomja-jplibraryhh213417(SQL110)aspx) を参照してください

アプリケーションの目的によるフィルター処理可用性グループ リスナーを使用して接続している場合アプリケーションは接続の目的がデータの読み取りと書き込みの両方なのか読み取り専用操作を実行するだけなのかを指定できます指定しない場合クライアントのアプリケーションの目的は既定で読み取りと書き込みになります

各可用性レプリカのプライマリ ロールとセカンダリ ロールについてはクライアントのアプリケーションの目的に対する接続レベルのフィルターとして接続アクセス プロパティも指定できます既定ではアプリケーションの目的と接続アクセスとの組み合わせが無効であると接続が拒否されますSQL Server は次のルールを使用してクライアントの接続要求を振り分ける必要があります

可用性レプリカがプライマリ ロールであり接続アクセスが次のいずれかである場合

すべてのアプリケーションの目的を許可するアプリケーションの目的でクライアント接続をフィルター処理しません

明示的な読み取り書き込みの目的だけを許可するクライアントが読み取り専用を指定している場合接続を拒否します

可用性レプリカがセカンダリ ロールであり接続アクセスが次のいずれかである場合

接続を許可しないすべての接続を拒否しますレプリカは災害復旧だけに使用されます

すべてのアプリケーションの目的を許可するアプリケーションの目的でクライアント接続をフィルター処理しません

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 32

読み取り専用の目的を許可するクライアントが読み取り専用を指定していない場合接続を拒否します

詳細については「可用性レプリカでの読み取り専用アクセスの構成」(httpmsdnmicrosoftcomja-jplibraryhh213002(SQL110)aspx) を参照してください

アプリケーションの目的の読み取り専用ルーティングAlwaysOn 可用性グループの特に優れた点はスタンバイ ハードウェア インフラストラクチャを災害復旧以外の目的に利用できることです1 つ以上のセカンダリ レプリカを読み取り専用でアクセスできるように構成するとプライマリ レプリカからかなりの量のワークロードを軽減できます

読み取り専用セカンダリ レプリカに回すように簡単に調整できるワークロードはレポートデータベース バックアップデータベース整合性チェックインデックスの断片化の分析データ パイプライン抽出運用サポート操作サポートアドホック クエリなどです

各可用性レプリカではSQL Server インスタンスのエンドポイントについて順次的な読み取り専用ルーティング リストを構成することもできますこのリストはレプリカがプライマリ ロールであるときに適用されますこのリストが存在する場合アプリケーションの目的が読み取り専用と指定されているクライアント接続要求はそのリスト内に記載されていて前述のアプリケーションの目的フィルターに適合する最初のセカンダリ レプリカにリダイレクトされます

注 読み取り専用ルーティングによるリダイレクトはプライマリ レプリカにバインドされている可用性グループ リスナーによって実行されますプライマリ レプリカがオフラインの場合クライアントのリダイレクトは機能しません

詳細については「可用性グループの読み取り専用ルーティングの構成 (SQL Server) 」(httpmsdnmicrosoftcomja-jplibraryhh710054(SQL110)aspx) を参照してください

可用性の向上 ndash データベースSQL Server 2012 ではデータベースの構成と機能に関してさまざまな点が強化されています

以下の機能は復旧時間の短縮に役立ちます

予測可能な復旧時間データベースごとにターゲット復旧時間の長さを設定することでバックグラウンドで実行される CHECKPOINT コマンドのスケジュールを制御できますこのコマンドは間接的なチェックポイントとして再起動時またはフェールオーバー時にトランザクション ログの復旧に必要となる時間の推定値に基づいて定期的に実行されますそれによってチェックポイントごとに IO 操作がほぼ均等に配分され復旧時間 (RTO) の予測可能性が高まります

SQL Server 2012 よりも前のバージョンではバックグラウンドの CHECKPOINT コマンドがトランザクションの量や負荷とは無関係に一定間隔で実行されていたので復旧時間を予測することはできませんでした

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 33

詳細については「データベース チェックポイント」(httpmsdnmicrosoftcomja-jplibraryms189573(SQL110)aspx) を参照してください

以下の向上点は計画的なダウンタイムが必要になる一般的な状況を減らすのに役立ちます

LOB 列のオンライン インデックス操作varbinary(max)varchar(max)nvarchar(max)または XML データ型の列が含まれているインデックスをオンラインで再構築または再構成できるようになりました

新しい NOT NULL 列のオンライン スキーマ修正既定値を使用して新しい NOT NULL 列を SQL Server 2012 データベース テーブルに追加する場合システム メタデータの更新にはスキーマ ロックだけが必要ですALTER TABLE ステートメントですべての行にデータを設定する必要はありません

いずれかの行で実際に変更またはインデックスの再作成が行われない限り列の既定値は物理的に格納されませんクエリでは列に実際の値が存在しない場合メタデータから既定値を返します

ストレージのサポート強化の例として次のようなものがあります

ページの自動修復ある種のストレージ サブシステム エラーが発生するとデータ ページが破損し読み取り不可能になる場合がありますAlwaysOn 可用性グループではそのような種類のエラーを検出し自動的に復旧できます復旧のために影響を受けたデータ ページの最新のコピーが別の可用性レプリカから非同期で取得され適用されます

以前のバージョンでもデータベース ミラーリングに同様の機能がありましたが新しい機能では複数のレプリカをサポートできるようになっています

詳細については「ページの自動修復」(httpmsdnmicrosoftcomja-jplibrarybb677167(SQL110)aspx) を参照してください

クライアント接続の推奨事項クライアント アプリケーションが Microsoft SQL Server 2012 AlwaysOn テクノロジの利点を十分に活用できるようにするには次のガイドラインに従います

AlwaysOn 対応のクライアント ライブラリ表形式のデータ ストリーム (TDS) プロトコル Version 74 以降をサポートしているクライアント ライブラリを使用しますこれによってAlwaysOn の機能に対応した適切な機能がクライアント側でも提供されますクライアント ライブラリの例としてはData Provider for SQL Server in NET Framework 402SQL Native Client 110 などがあります

接続プロバイダー プロパティ MultiSubnetFailover = True接続文字列にこのキーワードを使用することでクライアント ライブラリでは(複数のサブネットに IP アドレスを持つ) 可用性グループ リスナーまたは FCI に登録されているすべての IP アドレスに同時に接

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 34

続できるようになります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 35

接続プロバイダー プロパティ ApplicationIntent = ReadOnly必要に応じてプライマリ レプリカの読み取り専用ワークロードをセカンダリ レプリカに移管することができます

レガシ クライアントの接続タイムアウトレガシ クライアントのデータベース ライブラリには並列で接続を試行する機能が実装されていないため複数の IP アドレスがある場合にはTCP タイムアウトに達するか正常に接続できるまで1 つずつ順番に接続を試行します

複数の IP アドレスが存在する場合はタイムアウトと再試行が逐次的に繰り返される可能性に備えてレガシ クライアントの接続タイムアウトを調整する必要があります値は少なくとも 15 秒 + 21 秒 times セカンダリ レプリカ数にします

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 36

結論このホワイト ペーパーではSQL Server 2012 の AlwaysOn による高可用性災害復旧ソリューションを使用し予定されたダウンタイムや予定外のダウンタイムを短縮したりアプリケーションの可用性を最大限に高めたりデータを保護したりする方法について基本的なコンテキストを確立しました

高可用性データベース環境の計画管理測定に関連したビジネス上の目的と課題は多くの場合目標復旧時点 (RPO) と目標復旧時間 (RTO) という形で数量化して表すことができます

SQL Server 2012 AlwaysOn は組織が高可用性や災害復旧に関する一般的な状況に対処するための機能をRPO と RTO を適切に達成できることを念頭にインフラストラクチャ レベルデータ プラットフォーム レベルデータベース レベルのそれぞれで提供します

詳細情報

httpwwwmicrosoftcomja-jpsqlserver2012defaultaspx SQL Server Web サイト

httptechnetmicrosoftcomja-jpsqlserver SQL Server TechCenter

httpmsdnmicrosoftcomja-jpsqlserver SQL Server 開発者向け技術情報

このホワイト ペーパーはお役に立ちましたか フィードバックをお寄せください1 (役に立たなかった) ~ 5 (非常に役に立った) の 5 段階で評価してくださいまたその評価の理由もお知らせください以下に例を示します

評価が高い 例が適切図がわかりやすい説明が明快といったことが理由である 評価が低い 例が少ない図がわかりにくい説明があいまいといったことが理由で

ある

このようなフィードバックをお寄せいただくと今後のホワイト ペーパーの品質向上につながります

フィードバックの送信

loz Version 112012 年 2 月 21 日

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 37

  • 高可用性と災害復旧の概念
    • 高可用性について
      • 予定されたダウンタイムと予定外のダウンタイム
      • 段階的な可用性
        • ダウンタイムの定量化
          • 復旧目標
          • ROI または機会費用の正当化
          • 可用性の健全度の監視
          • 災害復旧の計画
            • 概要 Microsoft SQL Server 2012 での高可用性
              • SQL Server AlwaysOn
              • 計画的なダウンタイムの大幅な削減
              • アイドル状態のハードウェアをなくしてコスト効率とパフォーマンスを向上
              • 簡単な配置と管理
              • RPO と RTO の機能比較
                  • SQL Server AlwaysOn の保護レイヤー
                    • インフラストラクチャの可用性
                      • Windows オペレーティング システム
                        • Windows Server Core インストール オプション
                        • プライベート クラウド用の SQL Server の最適化
                          • Windows Server フェールオーバー クラスタリング
                            • WSFC ストレージ構成
                            • WSFC リソースの正常性の検出とフェールオーバー
                              • WSFC のクラスター検証ウィザード
                              • WSFC クォーラム モードと投票の構成
                                • クォーラムによるクラスター状態検出
                                • クォーラム モード
                                • 投票ノードと非投票ノード
                                • クォーラム投票に推奨される調整
                                  • WSFC の強制クォーラムによる災害復旧
                                    • SQL Server インスタンス レベルでの保護
                                      • 可用性の向上 ndash SQL Server インスタンス
                                      • AlwaysOn フェールオーバー クラスター インスタンス
                                        • FCI のフェールオーバー プロセス
                                        • FCI の強化
                                            • データベースの可用性
                                              • AlwaysOn 可用性グループ
                                                • 可用性レプリカとロール
                                                • 可用性レプリカの同期
                                                  • 可用性グループのフェールオーバー
                                                  • 可用性グループ リスナー
                                                    • アプリケーションの目的によるフィルター処理
                                                    • アプリケーションの目的の読み取り専用ルーティング
                                                      • 可用性の向上 ndash データベース
                                                        • クライアント接続の推奨事項
                                                          • 結論
Page 10: 高可用性と災害復旧の概念download.microsoft.com/download/6/B/E/6BE0C3F3-2991-4766... · Web view高可用性と災害復旧のソリューションのために最適なデータベース

高可用性のための取り組みでは停止を回避するために何をするかが問題になりますが災害復旧のための取り組みでは停止後に高可用性を再構築するために何をするかが問題になります

できる限り実際に停止状態になる前に災害復旧の手順と役割分担を策定しておくようにします実行中の監視と警告に基づいて自動または手動のフェールオーバーと復旧計画を開始するかどうかは事前に決められた RTO および RPO のしきい値を考慮しつつ判断する必要があります災害復旧計画には次のようなものを含める必要があります

障害と復旧の適用範囲障害の場所や種類に応じてデータ センター レベルインフラストラクチャ レベルプラットフォーム レベルアプリケーション レベルワークロード レベルなどさまざまなレベルで修正措置が行われます

調査のための資料ベースラインと最新の監視の履歴システム警告イベント ログ診断クエリなどを関係者がいつでも利用できるようにしておく必要があります

依存関係の調整アプリケーション スタック内でまたは関係者間でシステムやビジネスの依存関係を把握しておきます

デシジョン ツリー繰り返し使用できるデシジョン ツリーを事前に定義して検証しておきますこれにはロールの役割障害の優先順位RPO と RTO を実現するためのフェールオーバーの条件所定の復旧手順などを含めます

検証停止状態からの復旧手順を実行した後でシステムが通常の状態に戻ったことを検証するために何をしなければならないかを整理しておきます

文書化新しい担当者でも最低限の補助があれば復旧計画を実行できるように上記のすべての項目を詳細で明確な一連の文書として記録しておきますこのような文書は一般的にラン ブック または クック ブック と呼ばれます

復旧のリハーサル定期的に災害復旧計画の演習を行いRTO のベースラインとなる期待値を確立しプライマリ サイトと各災害復旧サイトでの本番運用のローテーションを検討します

概要 Microsoft SQL Server 2012 での高可用性要求される RPO と RTO を実現するには主要アプリケーションの継続的なアップタイムを確保することと予定外のダウンタイムや予定されたダウンタイム時に重要なデータを保護することが必要ですSQL Server では低コストで簡単にこれらの目標を実現できる一連の機能が用意されています

新しい AlwaysOn の機能について既によくご存じの方は「SQL Server AlwaysOn の保護レイ ヤー」のセクションに進んでより詳細な説明をご覧ください

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 5

SQL Server AlwaysOnAlwaysOn は高い統合性柔軟性およびコスト効率を特徴とした新しい高可用性災害復旧ソリューションですデータ センター内およびデータ センター間でデータとハードウェアの冗長性を実現しアプリケーションのフェールオーバー時間を短縮することでミッション クリティカル アプリケーションの可用性を高めますAlwaysOn は構成の柔軟性が高く既存のハードウェア投資を再利用できます

AlwaysOn ソリューションではデータベース レベルとインスタンス レベルの両方で可用性を構成するためにSQL Server 2012 の次の 2 つの主要な機能を利用できます

AlwaysOn 可用性グループSQL Server 2012 の新機能の 1 つですデータベース ミラーリング機能の大幅な強化によってアプリケーション データベースの可用性の確保に役立ちますログに基づくデータの移動によってデータ保護を実現し共有ディスクを使用せずにデータ損失をゼロにすることができます

複数のデータベースから成る論理グループの単位で自動および手動のフェールオーバーを実行できますまた最大で 4 つのセカンダリ レプリカのサポート高速なアプリケーション フェールオーバー自動ページ修復など多彩なオプションが用意されています

AlwaysOn フェールオーバー クラスター インスタンス (FCI)SQL Server フェールオーバー クラスタリング機能を拡張し複数のサブネットにわたるマルチサイト クラスタリングをサポートしますこれにより異なるデータ センター間での SQL Server インスタンスのフェールオーバーが可能になりますインスタンスのフェールオーバーがより高速となり予測可能となることでアプリケーションをさらにすばやく復旧させることができます

計画的なダウンタイムの大幅な削減どの組織でもアプリケーション ダウンタイムの主な理由はオペレーティング システムへの修正プログラムの適用ハードウェア メンテナンスなどのための計画的なダウンタイムですこうしたダウンタイムがIT 環境の停止の約 80 を占めています

SQL Server 2012 は修正プログラムの要件を減らしより多くのメンテナンス操作をオンラインで実行できるようにすることで計画的なダウンタイムの大幅な削減に役立ちます

Windows Server CoreSQL Server 2012 ではWindows Server Core への配置がサポートされていますこれはWindows Server 2008 および Windows Server 2008 R2 の最小限の合理化された配置オプションですこれによりオペレーティング システムの修正プログラムの要件を最小限に抑え約 60 削減することで計画的なダウンタイムを減らすことができます

オンライン操作LOB のインデックスを再作成したり既定値を使用して列を追加したりするオンライン操作のサポート強化によってデータベース メンテナンス時のダウンタイムが削減されます

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 6

ローリング アップグレードと修正プログラムAlwaysOn 機能はインスタンスのローリング アップグレードと修正プログラムの適用を容易にしますこれによりアプリケーションのダウンタイムが大幅に削減されます

Hyper-V 上の SQL ServerHyper-V 環境でホストされている SQL Server インスタンスではライブ マイグレーションの利点を活用することでホスト間の仮想マシンの移行をダウンタイムなしで実行できます管理者はアプリケーションに影響を与えずにホスト上でメンテナンス操作を実行できます

アイドル状態のハードウェアをなくしてコスト効率とパフォーマンスを向上典型的な高可用性ソリューションでは高コストで冗長なパッシブ サーバーが配置されますAlwaysOn 可用性グループを使用するとパッシブまたはアイドルな状態のセカンダリ データベース レプリカを読み取り専用のワークロード (SQL Server Reporting Services のレポート クエリバックアップ操作など) に活用できますプライマリとセカンダリの両方のデータベース レプリカを同時に使用できるためサーバー ハードウェア間のリソースのバランスが良くなりすべてのワークロードのパフォーマンスが向上します

簡単な配置と管理構成ウィザードWindows PowerShell コマンド ライン インターフェイスのサポートダッシュボード動的管理ビュー (DMV)ポリシー ベースの管理System Center 統合などの機能によって可用性グループの配置と管理が簡単になります

RPO と RTO の機能比較目標復旧時点 (RPO) と目標復旧時間 (RTO) のビジネス目標は高可用性災害復旧ソリューションのために使用する SQL Server テクノロジを選択する際に重要な判断材料となります次の表はさまざまなソリューションで実現される結果を大まかに比較したものです

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 7

高可用性と災害復旧のSQL Server ソリューション

データ損失の可能性 (RPO)

可能な復旧時間 (RTO)

自動フェールオーバー

読み取り可能な

セカンダリ(1)

AlwaysOn 可用性グループ - 同期コミット ゼロ 数秒 (4) 0 - 2

AlwaysOn 可用性グループ - 非同期コミット 数秒 数分 times 0 - 4

AlwaysOn フェールオーバー クラスター インスタンス

該当せず(5) 数秒~ 数分

該当せず

データベース ミラーリング(2) - 高い安全性 (同期 + 監視)

ゼロ 数秒 該当せず

データベース ミラーリング(2) - 高パフォーマンス (非同期)

数秒(6) 数分(6) times 該当せず

ログ配布 数分(6) 数分~ 数時間(6)

times 復元中はなし

バックアップコピー復元(3) 数時間(6) 数時間~ 数日(6)

times 復元中はなし

(1) AlwaysOn 可用性グループで使用できるセカンダリ レプリカは種類に関係なく最大 4 つです(2) この機能は将来のバージョンの Microsoft SQL Server では削除される予定です代わりに AlwaysOn 可用性グループを使用

してください(3) バックアップコピー復元は障害復旧には適していますが高可用性には適していません(4) 可用性グループの自動フェールオーバーはフェールオーバー クラスター インスタンスとの間ではサポートされていま

せん(5) FCI 自体にはデータ保護機能はありませんデータ損失はストレージ システムの実装に依存します(6) ワークロードデータ量およびフェールオーバーの手順に大きく依存します

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 8

SQL Server AlwaysOn の保護レイヤーSQL Server AlwaysOn ソリューションではインフラストラクチャとアプリケーション コンポーネントのいくつかの論理レイヤーおよび物理レイヤーにまたがってフォールト トレランスと災害復旧を実現できます従来はさまざまな関係者と役割ごとに業務と責任を振り分けそれぞれが主に自分のソリューションのレイヤー部分だけに関心を持つことが一般的でした

このセクションではこれらのレイヤーのそれぞれについて詳細に説明しデザインに関する議論や実装についての意思決定に役立つ論点やガイダンスを提示します

SQL Server AlwaysOn ソリューションをうまく利用するには以下のレイヤーについて理解しそれぞれを協調させる必要があります

インフラストラクチャ レベルサーバー レベルのフォールト トレランスとノード内のネットワーク通信が含まれますWindows Server フェールオーバー クラスタリング (WSFC) 機能を使用して稼働状態の監視とフェールオーバーの調整を行います

SQL Server インスタンス レベルSQL Server AlwaysOn フェールオーバー クラスター インスタンス (FCI) はWSFC クラスター内の複数のサーバー ノードにまたがってインストールされる SQL Server インスタンスであり各サーバー ノードへのフェールオーバーが可能ですFCI をホストするノードは堅牢な対称型共有ストレージ (SAN または SMB) に接続されます

データベース レベル可用性グループは共にフェールオーバーされるユーザー データベースのセットです可用性グループは1 つのプライマリ レプリカと最大 4 つのセカンダリ レプリカで構成されます各レプリカはWSFC クラスターの別々のノードにある SQL Server インスタンス (FCI または非 FCI) によってホストされます

クライアント接続データベース クライアント アプリケーションは指定した SQL Server インスタンス ネットワーク名に直接接続できますまたは可用性グループ リスナーにバインドされている仮想ネットワーク名 (VNN) に接続することもできますVNN はWSFC クラスターおよび可用性グループのトポロジを抽象化するものであり接続要求を適切な SQL Server インスタンスとデータベース レプリカに論理的にリダイレクトします

代表的な AlwaysOn ソリューションの論理トポロジは次の図のようになります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 9

インフラストラクチャの可用性AlwaysOn 可用性グループと AlwaysOn フェールオーバー クラスター インスタンスのどちらもWindows Server オペレーティング システムと WSFC をプラットフォーム テクノロジとして利用します今まで以上にMicrosoft SQL Server データベース管理者はこれらのテクノロジについて十分に理解することが必要です

Windows オペレーティング システムSQL Server は基礎的なインフラストラクチャとネットワークストレージセキュリティ更新プログラムおよび監視のサービスを Windows プラットフォームに依存しています

SQL Server 2012 の各エディションはWindows Server 2008 R2 オペレーティング システムの対応するエディション (Windows Server 2008 R2 Standard オペレーティング システムWindows Server 2008 R2 Enterprise オペレーティング システムWindows Server 2008 R2 Datacenter オペレーティング システムなど) の機能や能力をさらに進歩させて構築されています

詳細については「SQL Server 2012 のインストールに必要なハードウェアおよびソフトウェ ア」(httpmsdnmicrosoftcomja-jplibraryms143506(SQL110)aspx) を参照してください

Windows Server Core インストール オプションSQL Server 2012 では高可用性のための主要な機能の 1 つとしてWindows Server 2008 以降で Server Core インストール オプションによる配置をサポートしていますServer Core インストール オプションでは制限された機能と非常に限定的な GUI アプリケーション サポートで特定のサーバー ロールを実行するための最低限の環境が提供されます既定では必要なサービスとコマンド プロンプト環境のみが有効です

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 10

この操作モードではオペレーティング システムへの攻撃の危険性とシステム オーバーヘッドが低下し継続的なメンテナンスサービス修正プログラムなどの要件が大幅に削減されます

SQL Server 2012 を Windows Server Core に配置する場合の主な注意点はSQL Server およびオペレーティング システムのすべての配置構成管理およびメンテナンスをWindows PowerShell などのスクリプト環境やコマンド ラインまたはリモート ツールを使用して行う必要があることです

プライベート クラウド用の SQL Server の最適化高可用性と災害復旧はプライベート クラウド環境ではさらに重要になってきていますプライベート クラウドに SQL Server を配置すればコンピューターネットワークおよびストレージのリソースが効率的に使用され物理的な場所や資本と運営費用の両方の削減に役立ちます配置の統合リソースの効率的なスケーリングオンデマンドでのリソースの配置が容易になり制御の自由度が失われることもありません

SQL Server ではHyper-V のホストとゲストの両方のシステムに対して Windows Server フェールオーバー クラスタリングをサポートするほかライブ マイグレーションもサポートしていますこれは意識されるほどのダウンタイムを生じることなくホスト間で仮想マシンを移動できる機能ですライブ マイグレーションはゲスト クラスタリングとも協調して動作します

詳細については「プライベート クラウド コンピューティング - プライベート クラウド用の SQL Server の最適化 」(httpwwwmicrosoftcomSqlServerPrivateCloud) を参照してください

Windows Server フェールオーバー クラスタリングWindows Server フェールオーバー クラスタリング (WSFC) はMicrosoft SQL Server などのサーバー アプリケーションに対して高可用性と災害復旧をサポートするインフラストラクチャ機能を提供します

WSFC クラスター ノードまたはサービスに障害が発生するとそのノードでホストされていたサービスまたはリソースは自動的にまたは手動で他の可用性ノードに転送されますこのプロセスをフェールオーバーと呼びますAlwaysOn ソリューションではこのプロセスが FCI と可用性グループの両方に適用されます

WSFC クラスター内の各ノードは連携して次のような機能を提供します

分散メタデータと通知WSFC サービスとホストされるアプリケーション メタデータはクラスター内の各ノードで維持されますこのメタデータにはホストされるアプリケーションの設定に加えWSFC の構成と状態が含まれます1 つのノードでのメタデータまたは状態の変更はクラスター内の他のノードに自動的に反映されます

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 11

リソース管理クラスター内の各ノードは直接アタッチされたストレージ (DAS)ネットワーク インターフェイス共有ディスク ストレージへのアクセスなど物理的リソースを提供する場合がありますSQL Server などホストされるアプリケーション自体もクラスター リソースとして登録されますまた他のリソースに対するスタートアップと正常性にかかわる依存関係を構成できます

正常性の監視ノード間の正常性およびプライマリ ノードの正常性はハートビート ネットワーク通信とリソースの監視を組み合わせることで検出されますクラスターの全体的な正常性状態はクラスター内のノードのクォーラムの投票によって決定されます

フェールオーバーの調整各リソースはプライマリ ノードでホストされるように構成されそれぞれ自動的にまたは手動で 1 つ以上のセカンダリ ノードに転送されます正常性ベースのフェールオーバー ポリシーによってノード間でのリソース所有権の自動転送が制御されますフェールオーバーが発生すると適切に対応できるように各ノードおよびホストされているアプリケーションに通知されます

詳細については「Windows Server | フェールオーバー クラスタリングとノード バランシン グ」(httpwwwmicrosoftcomwindowsserver2008enusfailover-clustering-mainaspx) を参照してください

注 データベース管理者が WSFC クラスターおよびクォーラム管理の内部動作を理解しておくことが非常に重要になりましたAlwaysOn の正常性の監視管理および障害復旧の手順はすべてが本質的に WSFC 構成と関連しています

WSFC ストレージ構成Windows Server フェールオーバー クラスタリングでは接続されているストレージ デバイスディスク ボリュームおよびファイル システムの管理をクラスター内の各ノードに依存していますWSFC はストレージ サブシステムが非常に堅牢であると想定しているためノードに接続されたストレージ デバイスが使用できない場合はクラスター ノードが障害状態であると見なします

書き込みベースの操作ではディスク ボリュームは SCSI-3 の永続的な予約を使用して一度に 1 つのクラスター ノードに論理的に接続されますノードで障害が発生した場合にはストレージ サブシステムの機能と構成に応じてディスク ボリュームの論理的所有権をクラスター内の別のノードに移すことができます

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 12

SQL Server AlwaysOn ソリューションでは次のような WSFC ストレージ構成の組み合わせを利用しその制限も受けます

直接接続とリモートストレージ デバイスはサーバーに物理的に直接接続されるかまたはネットワークやホスト バス アダプター (HBA) を介してリモートのストレージ デバイスを使用しますリモート ストレージのテクノロジにはiSCSI やファイバー チャネルなどのストレージ エリア ネットワーク (SAN) ベースのソリューションとサーバー メッセージ ブロック (SMB) というファイル共有ベースのソリューションがあります

対称と非対称ストレージ デバイスの論理ディスク ボリューム構成とファイル パスがクラスターの各ノードでまったく同じである場合それらのストレージ デバイスは対称的であると見なされます基になるディスク ボリュームの物理的な実装と容量は異なっていてもかまいません

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 13

専用と共有専用ストレージは使用するために予約されクラスター内の 1 つのノードに割り当てられます共有ストレージはクラスターの複数のノードからアクセスできます共有ストレージ デバイスが SCSI-3 プロトコルに準拠していればそれらの制御と所有権をノード間で移動させることができますWSFC ではファイル共有のためにクラスター共有ボリュームを同時に複数のノードでホスティングできますただしSQL Server は複数のノードからの共有ボリュームへの同時アクセスをサポートしていません

注 SQL Server FCI では対称共有ストレージを使用してインスタンスのすべてのノード所有者 (およびその候補) からアクセスできるようにする必要がありますただしAlwaysOn 可用性グループの導入に伴いそれぞれが独自に専用のローカルまたはリモート ストレージを持つ非 FCI の SQL Server インスタンスを WSFC クラスターに配置できるようになりました

WSFC リソースの正常性の検出とフェールオーバーWSFC クラスター ノード内の各リソースの状態と正常性は定期的にまたは要求に応じて報告されますクラスター リソースの障害を示す状況としてはたとえば電源障害ディスクまたはメモリのエラーネットワーク通信エラー構成エラー応答しないサービスなどがあります

ネットワークストレージサービスなどの WSFC クラスター リソースは互いに依存するように構成できますあるリソースの累積的な正常性は依存関係を持つリソースの正常性を連続的にたどってゆくことで決定されます

AlwaysOn 可用性グループでは可用性グループと可用性グループ リスナーがそれぞれ WSFC クラスター リソースとして登録されますAlwaysOn フェールオーバー クラスター インスタンスではSQL Server サービスおよび SQL Server エージェント サービスが WSFC クラスター リソースとして登録されどちらもインスタンスの仮想ネットワーク名リソースに依存します

WSFC クラスター リソースで設定された数のエラーまたは障害が一定期間内に発生した場合構成されたフェールオーバー ポリシーによってクラスター サービスは次のいずれかの操作を行います

現在のノードでのリソースの再起動 リソースをオフライン化 リソースとその依存関係を別のノードへ自動的にフェールオーバー

注 WSFC クラスター リソースの正常性の検出は個々のノードの正常性やクラスターの全体的な正常性には直接影響しません

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 14

WSFC のクラスター検証ウィザードクラスター検証ウィザードはWindows Server 2008 および Windows Server 2008 R2 のフェールオーバー クラスタリングに統合されている機能ですこれはSQL Server AlwaysOn ソリューションの配置前 にクリーンで正常な安定した WSFC 環境が存在していることをデータベース管理者が確認するために使用する主要なツールです

クラスター検証ウィザードではクラスターのノードとして使用するサーバーの集合または既存のクラスターを対象にして一連のテストを実行できますこのプロセスでは基になるハードウェアおよびソフトウェアが個別に直接テストされWSFC クラスターが特定の構成でどの程度良好にサポートされるかについての正確な評価が得られます

この検証プロセスでは各ノードに対して次のようなカテゴリの一連のテストとデータ収集が実施されます

一覧作成BIOS のバージョン環境レベルホスト バス アダプターRAMオペレーティング システムのバージョンデバイスサービスドライバーなどの情報です

ネットワークNIC のバインド順序ネットワーク通信IP 構成ファイアウォール構成などの情報ですすべての NIC でノード間の通信が検証されます

ストレージディスクドライブの容量アクセス待機時間ファイル システムなどの情報ですSCSI コマンドディスク フェールオーバー機能対称的または非対称的なストレージ構成が検証されます

システム構成Active Directory の構成ドライバーの登録メモリ ダンプの設定必要なオペレーティング システムの機能とサービス互換性のあるプロセッサ アーキテクチャおよびサービス パックと Windows Software Update のレベルが検証されます

これらの検証テストの結果を利用してクラスターの構成を微調整したり構成を追跡したりダウンタイムを引き起こすかもしれない潜在的なクラスター構成の問題を特定したりできますテスト結果のレポートは後で参照できるようにHTML ドキュメントとして保存できます

これらのテストはWSFC の構成に何か変更を加える前と加えた後に実行するほかSQL Server をインストールする前および災害復旧プロセスの一環として実行する必要がありますマイクロソフトで特定の WSFC クラスター構成がサポートされるためにはマイクロソフト カスタマー サポート サービス (CSS) にクラスター検証レポートを提出する必要があります

詳細については「フェールオーバー クラスター ステップ バイ ステップ ガイド フェール オーバー クラスター用ハードウェアを検証する」(httptechnetmicrosoftcomja-jplibrarycc732035(WS10)aspx) を参照してください

注 ハードウェアベースの地理的クラスタリング ストレージ ソリューションの場合やAlwaysOn 可用性グループの場合のようにクラスター構成に非対称ストレージがあるとクラスター検証ウィザードでストレージの検証手順を成功させるために多数の修正プログラムを適用しなければならないことがあります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 15

詳細については「AlwaysOn 可用性グループの前提条件制限事項および推奨事項 」(httpmsdnmicrosoftcomja-jplibraryff878487(SQL110)aspxSystemReqsForAOAG) を参照してください

WSFC クォーラム モードと投票の構成WSFC ではクォーラム ベースのアプローチを使用してクラスターの全体的な正常性を監視することでノード レベルのフォールト トレランスを最大限に高めますWSFC のクォーラム モードおよびノード投票構成の基本について理解することはAlwaysOn 高可用性災害復旧ソリューションの設計運用トラブルシューティングのために非常に重要です

クォーラムによるクラスター状態検出WSFC クラスター内の各ノードは定期的なハートビート通信に参加しノードの正常性状態を他のノードと共有します応答しないノードはエラー状態であると見なされます

クォーラム ノード セットとはWSFC クラスター内の投票ノードおよび監視サーバーのうち過半数を占めるノードの集合ですWSFC クラスターの全体的な正常性と状態は定期的なクォーラムの投票 によって決定されますクォーラムはクラスターが正常でありノード レベルのフォールト トレランスを提供できることを意味します

クォーラムに達していない状態はクラスターが正常でないことを示しますプライマリ ノードのフェールオーバー先として正常なセカンダリ ノードを使用できるようにするにはWSFC クラスターの全体的な正常性が維持されている必要があります投票数がクォーラムに達しなかった場合にはWSFC クラスター全体が予防策としてオフラインに設定されますその場合クラスターに登録されている SQL Server インスタンスがすべて停止します

注 クォーラム障害のために WSFC クラスターがオフラインに設定されるとオンラインに戻すために手動の操作が必要です詳細については後の「WSFC の強制クォーラムによる災害 復旧」のセクションを参照してください

クォーラム モードクォーラム モードはWSFC クラスター レベルで構成されクォーラム投票の方法を指定しますフェールオーバー クラスター マネージャー ユーティリティではクラスター内のノード数に基づいて推奨するクォーラム モードが提示されます

次のいずれかのクォーラム モードによって投票クォーラムの構成が決定されます

ノード マジョリティクラスターが正常であるためにはクラスター内の半分以上の投票ノードが肯定的に投票する必要があります

ノードおよびファイル共有マジョリティノード マジョリティ クォーラム モードに似ていますがリモート ファイル共有も投票監視サーバーとして構成され各ノードからそのリモート ファイル共有への接続も肯定的な投票としてカウントされますクラスターが正常であるためには投票の過半数が肯定的である必要があります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 16

推奨事項として監視ファイル共有はクラスター内のノードに存在せずクラスター内のすべてのノードから見える必要があります

ノードおよびディスク マジョリティノード マジョリティ クォーラム モードに似ていますが共有ディスク クラスター リソースも投票監視サーバーとして使用され各ノードからその共有ディスクへの接続も肯定的な投票としてカウントされますクラスターが正常であるためには投票の過半数が肯定的である必要があります

ディスクのみ共有ディスク クラスター リソースが監視サーバーとして使用され各ノードからその共有ディスクへの接続が肯定的な投票としてカウントされます

詳細については「フェールオーバー クラスター ステップ バイ ステップ ガイド フェール オーバー クラスターのクォーラムの構成」(httptechnetmicrosoftcomja-jplibrarycc770620(WS10)aspx) で説明されています

注 クラスターの各ノードが同じ共有ストレージ クォーラム監視ディスクを使用するように構成されていない限り通常投票ノード数が奇数の場合は ノード マジョリティ クォーラム モード投票ノード数が偶数の場合は ノードおよびファイル共有マジョリティ クォーラム モードを使用してください

投票ノードと非投票ノード既定ではWSFC クラスター内の各ノードがクラスター クォーラムのメンバーとなります各ノードファイル共有監視サーバーディスク監視サーバーがクラスターの全体的な正常性の決定においてそれぞれ 1 票ずつの投票権を持ちますクォーラムに関するここまでの説明ではクラスター状態について投票する WSFC クラスター ノードのセットを投票ノードとして注意深く限定してきました状況によってはすべてのノードに投票権を与えることが適切でない場合もあります

WSFC クラスターの各ノードはクォーラムを確立しようとし続けますクラスター内の個々のノードはクラスターが全体として正常であるか正常でないかを明確に決定することはできません特定の時点で各ノードからは他のノードの一部がオフラインフェールオーバー中またはネットワーク通信のエラーにより応答不能に見えますクォーラム投票の主な機能はWSFC クラスターの各ノードの見かけの状態が本当にそれらのノードの実際の状態であるかどうかを判断することです

ディスクのみ 以外のすべてのクォーラム モデルではクォーラム投票の有効性はクラスター内のすべての投票ノード間に信頼できる通信が確立されていることに依存しますすべてのノードが同じ物理サブネット上にある場合はクォーラムの投票を信頼できます

しかしクォーラム投票で他のサブネット上のノードが応答しないように見えても実際はオンラインで正常である場合はサブネット間のネットワーク通信のエラーが原因であることが考えられますクラスター トポロジクォーラム モードおよびフェールオーバー ポリシーの構成によってはネットワーク通信エラーによって投票ノードのセット (またはサブセット) が実質的に複数作成されてしまう可能性があります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 17

投票ノードの複数のサブセットがそれぞれ独自のクォーラムを構築できる状態はスプリット ブレイン と呼ばれますこの状態では各クォーラム上のノードが別々の動作をし相互に矛盾する可能性があります

注 スプリット ブレイン の状況が発生するのはシステム管理者が強制クォーラム動作を手動で実行するかまたは非常にまれですが強制的な手動フェールオーバーを実行することでクォーラム ノード セットが明示的に細分化された場合のみです詳細については後の「WSFC の強制クォーラムによる災害復旧 」のセクションを参照してください

クォーラム構成を単純化し稼働時間を長くする目的でノードの投票がクォーラムにカウントされないように各ノードの NodeWeight 設定 (値 0 または 1) を調整することができます

クォーラム投票に推奨される調整以下のガイドラインをこの順番に適用することでクラスターに対して推奨されるクォーラム投票の構成を判断できます

1 既定は投票権なしにします明確な理由がない限り各ノードには投票権を与えないと考えてください

2 すべてのプライマリ ノードに投票権を与えますAlwaysOn 可用性グループのプライマリ レプリカをホストする各ノードおよび AlwaysOn フェールオーバー クラスター インスタンスの優先所有者である各ノードは投票権を持つ必要があります

3 可能性のある自動フェールオーバーの所有者を含めます自動フェールオーバーの結果としてプライマリ レプリカまたは FCI をホストする可能性がある各ノードは投票を持つ必要があります

4 セカンダリ サイト ノードを除外します通常はセカンダリ災害復旧サイトに存在するノードには投票を提供しないでくださいプライマリ サイトに問題がない場合クラスターをオフラインにする判断にセカンダリ サイト内のノードが影響を与えることは避ける必要があります

5 投票数を奇数にします必要に応じて監視ファイル共有監視ノード (SQL Server インスタンスの有無は問いません)または監視ディスクをクラスターに追加してクォーラム モードを調整しクォーラムの投票結果が同数に分かれるのを防ぎます

6 フェールオーバー後の投票割り当てを再評価します正常なクォーラムをサポートしないクラスター構成にフェールオーバーすることは避けます

ノードの投票の調整の詳細については「クラスター クォーラムの NodeWeight の設定の構 成」(httpmsdnmicrosoftcomja-jplibraryhh270281(SQL110)aspx) を参照してください

ファイル共有監視サーバーの投票は調整できませんその投票を含めるか除外するかを決めるには別のクォーラム モードを選択する必要があります

注 SQL Server ではWSFC クラスター構成およびノード クォーラム投票に関する設定を管理するためにいくつかのシステム動的管理ビュー (DMV) が公開されています

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 18

詳細については「可用性グループの監視」(httpmsdnmicrosoftcomja-jplibraryff878305(SQL110)aspx) を参照してください

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 19

WSFC の強制クォーラムによる災害復旧通常クォーラム障害は災害発生時または WSFC クラスター内の複数のノード間で永続的な通信障害が生じた場合に発生しますクォーラム障害が発生するとクラスターがノード レベルのフォールト トレランスを確保できなくなるためその WSFC クラスター内の SQL Server インスタンス可用性グループおよびクラスター化されているサービスがすべてオフラインになりますクォーラム障害はWSFC クラスター内の正常な投票ノード数がクォーラム モデルを満たさなくなったことを意味しますノードによってまったく機能しなくなるものもあればWSFC サービスがシャットダウンしただけでクォーラムと通信できなくなったことを除けば正常なものもあります

WSFC クラスターをオンラインに戻すには既存の構成の少なくとも 1 つのノードでクォーラム障害の根本的な原因を解決する必要があります災害発生時には使用できる代替ハードウェアの再構成や識別が必要となる場合もあります現状のクラスター トポロジを反映するためにWSFC クラスターの残りのノードを再構成する場合もあります

WSFC クラスター ノードで強制クォーラムの手順を使用するとクラスターがオフラインになる原因となった安全管理機能を無効にすることができますこれによりクラスターでのクォーラム投票のチェックが実質的に中断されクラスター内の任意のノードで WSFC クラスター リソースと SQL Server をオンラインに戻すことができます

このような災害復旧プロセスの手順を次に示します

1) 障害の範囲を特定します応答しない可用性グループや SQL Server インスタンス災害後に使用できるオンラインのクラスター ノードをそれぞれ特定しWindows イベント ログと SQL Server システム ログを確認します必要に応じて後で分析できるように解析データやシステム ログを保存しておきます

2) 1 つのノードで強制クォーラムを使用して WSFC クラスターを起動します他の点では正常なノードで強制クォーラムの手順に従ってクラスターを手動で強制的にオンラインにしますこの場合データ損失の可能性を最小限に抑えるには可用性グループのプライマリ レプリカを最後にホストしていたノードを選択します

詳細については「クォーラムを使用せずに WSFC クラスターを強制的に起動する 」(httpmsdnmicrosoftcomja-jplibraryhh270275(v=SQL110)aspx) を参照してください

注 強制クォーラムの設定を使用するとWSFC クラスターの投票が過半数に達することで通常のクォーラム モードの動作に自動的に切り替わるまでクラスター全体のクォーラムのチェックがブロックされます

3) 他の点では正常な各ノードでWSFC サービスを 1 つずつ通常の方法で起動します他のノードでクラスター サービスを起動するときは強制クォーラム オプションを指定する必要はありません

各ノードの WSFC サービスがオンラインに戻ると他の正常なノードとの間でネゴシエーションが行われ新しいクラスター構成の状態が同期されますクラスターの最新の状態

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 20

を判断するときに競合状態の発生を避けるためこの手順は必ず一度に 1 つのノードで行うようにしてください

注 起動した各ノードが新たにオンラインにした他のノードと通信できることを確認しますそうしないと複数のクォーラム ノード セットが作成されて スプリット ブレイン の状況に陥るおそれがあります手順 1 の結果に問題がなければこの現象は発生しません

4) 新しいクォーラム モードとノードの投票の構成を適用します強制クォーラムの手順によってクラスターのすべてのノードを正常に再起動させクォーラムのエラーの根本原因を修正した場合クォーラム モードとノードの投票を元の構成から変更する必要はありません

それ以外の場合は新たに復元されたクラスター ノードと可用性レプリカのトポロジを評価し必要に応じてクォーラム モードと各ノードの投票割り当てを変更します未復旧のノード上ではWSFC クラスター サービスをオフラインにするかノードの投票をゼロに設定します

注 この時点でクラスター内のノードと SQL Server インスタンスが通常の動作に戻っているように見えることがありますがまだ正常なクォーラムには達していない可能性がありますフェールオーバー クラスター マネージャーやSQL Server Management Studio の AlwaysOn ダッシュボードまたは適切な DMV を使用して正常なクォーラムが復元されたことを確認してください

5) 必要に応じて可用性グループのデータベース レプリカを復旧します一部のデータベースはSQL Server の通常の起動処理の一環として自動的に復旧されオンラインに戻ることがありますそれ以外のデータベースの復旧には追加で手動の手順を実行する必要があります

可用性グループ レプリカのデータ損失の可能性や復旧にかかる時間を最小限に抑えるにはできればプライマリ レプリカ同期セカンダリ レプリカ非同期セカンダリ レプリカの順にオンラインに戻します

6) 障害が発生したコンポーネントを修復するか交換しクラスターを再検証しますこれで最初の災害およびクォーラム障害から復旧できたので障害が発生したノードを修復するか交換しWSFC と AlwaysOn の関連する構成を適切に調整する必要がありますこれには可用性グループ レプリカの削除クラスターからのノードの削除ノードへのソフトウェアの再インストールなどが含まれます

注 停止したすべての可用性レプリカを修復または削除する必要がありますSQL Server 2012 では最も古い可用性レプリカを最後に認識した時点以降トランザクション ログが切り捨てられません停止したレプリカを修復するか可用性グループから削除しないとトランザクション ログが大きくなり他のレプリカのトランザクション ログの領域が不足する可能性があります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 21

7) 必要に応じて手順 4 を繰り返しますこの目的は正常な動作を行うために適切なレベルのフォールト トレランスと高可用性を再確立することです

8) RPORTO 分析を実行しますSQL Server のシステム ログデータベースのタイムスタンプおよび Windows のイベント ログを分析して障害の根本的な原因を特定し実際の復旧ポイントと復旧時間を文書に記録します

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 22

SQL Server インスタンス レベルでの保護次に説明する AlwaysOn ソリューションの保護レイヤーはデータ プラットフォームそれ自体ですMicrosoft SQL Server 2012 とその Windows Server インフラストラクチャ コンポーネントとの統合によって次のような機能が提供されます

可用性の向上 ndash SQL Server インスタンスこれは SQL Server 2012 の新しいインスタンス レベルの機能でAlwaysOn フェールオーバー クラスター インスタンスとAlwaysOn 可用性グループをホストするスタンドアロン インスタンスの両方の可用性を強化します

以下の強化点によってフェールオーバーの管理およびトラブルシューティングが向上します

柔軟なフェールオーバー ポリシー信頼性の高いエラー検出に使用される新しいシステム ストアド プロシージャ sp_server_diagnostics の出力でSQL Server インスタンスに影響するエラーの重大度が FailureConditionLevel プロパティによって示されますWSFC のフェールオーバー ポリシーによってこの値が SQL Server インスタンスにどのように影響するかを制御できますある程度エラーを許容する設定からSQL Server の内部コンポーネント エラーを重点的に検出する設定までさまざまに構成できます

特定のレベルのエラーによってフェールオーバーを開始するように構成できますエラーのレベルにはサーバーの停止サーバーの応答停止重大なエラー中程度のエラーなんらかの条件付きエラーなどがありますFailureConditionLevel プロパティはFCI または可用性グループのフェールオーバー ポリシーのために使用できます

SQL Server 2012 よりも前のバージョンではフェールオーバーを制御できるようなエラー状態の区分がなくすべてのサービス レベルのエラーによってフェールオーバーが発生しました

詳細については「フェールオーバー クラスター インスタンスのフェールオーバー ポリシー」(httpmsdnmicrosoftcomja-jplibraryff878664(SQL110)aspx) を参照してください

強化されたインストルメンテーションとログAlwaysOn 専用のシステム構成ビューDMVパフォーマンス カウンターに加えて拡張されたイベント正常性セッションによってAlwaysOn 配置のトラブルシューティングチューニングおよび監視に必要な情報を取得して表示できますこれらの多くはSQL Server ポリシー管理の新しいファセットおよびポリシーを通じて公開されます

詳細については「AlwaysOn 可用性グループの動的管理ビューおよび関 数」(httpmsdnmicrosoftcomja-jplibraryff877943(SQL110)aspx) と「sysdm_os_cluster_nodes」(httpmsdnmicrosoftcomja-jplibraryms187341(SQL110)aspx) を参照してください

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 23

SMB ファイル共有のサポートWindows Server 2008 以降のスタンドアロン用またはフェールオーバー クラスター インスタンス用のリモート ファイル共有にデータベース ファイルを格納することができますこの場合FCI ごとに異なるドライブ文字を使用する必要がありませんこれはストレージを統合する場合やデータベース ファイルのストレージを仮想マシンのゲスト オペレーティング システム用物理サーバーでホストする場合などに便利なオプションです適切に構成すれば直接接続されたストレージとほぼ同等の IO パフォーマンスが得られます

詳細については「ファイル共有上の SQL データベース - シナリオを再検討すべきとき 」(httpblogsmsdncombsqlserverstorageenginearchive20111018sql-databases-on-file-shares-it-s-time-to-reconsider-the-scenarioaspx) を参照してください

注 WSFC クラスターではSMB ファイル共有リソースの依存関係を SQL Server リソース グループに追加することはできませんファイル共有の可用性を確保するには別の方法を用いる必要がありますファイル共有が使用できなくなった場合SQL Server は IO 例外をスローしオフラインになります

WSFC と DNS の相互運用性FCI または可用性グループ リスナーの仮想ネットワーク名 (VNN) はVNN の作成時または構成の変更時にのみDNS に登録されますすべての仮想 IP アドレスはオンライン状態かオフライン状態かに関係なく同じ仮想ネットワーク名で DNS に登録されますDNS の仮想ネットワーク名を解決するためのクライアント呼び出しは各種のラウンド ロビン シーケンスによってすべての登録済み IP アドレスを返します

AlwaysOn フェールオーバー クラスター インスタンスSQL Server の AlwaysOn フェールオーバー クラスター インスタンス (FCI) の主な目的は1 つのデータ センター内のローカル サーバーとストレージ ハードウェアでホストされている SQL Server インスタンスの可用性を高めることです

FCI はWindows Server フェールオーバー クラスタリング (WSFC) のクラスターに含まれる複数のノードにまたがってインストールされる1 つの論理的な SQL Server インスタンスですただし一度に 1 つのノードだけでアクティブになることができますクライアント アプリケーションはアクティブなクラスター ノードが所有している仮想ネットワーク名および仮想 IP アドレスに接続します

FCI をインストールした各ノードは同一の構成を持ち同一の SQL Server バイナリを含んでいますWSFC クラスター サービスはアクティブなインスタンス上にある Windows レジストリのエントリからFCI をインストールした各ノードに関連のある変更をレプリケートしますFCI がインストールされている各ノードはインスタンスとそのリソースの所有者の候補として指定されフェールオーバーの優先順位に従って所有者となります

共有対称ストレージ ボリュームに格納されているデータベース ファイルはリソースとして WSFC クラスターに登録され現在 FCI をホストしているノードによって所有されます

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 24

詳細については「AlwaysOn フェールオーバー クラスター インスタン ス」(httpmsdnmicrosoftcomja-jplibraryms189134(SQL110)aspx) を参照してください

FCI のフェールオーバー プロセス依存しているクラスター リソースで障害が発生した場合AlwaysOn フェールオーバー クラスター インスタンスはWSFC クラスター サービスと連携してフェールオーバーを行いますそのプロセスの概要を以下に示します

1) 再起動が指示されますWSFC の定期的なチェックまたは SQL Server のフェールオーバー ポリシー構成によってエラー状態が示されます既定では他のノードへのフェールオーバーを開始する前にサービスの再起動が試みられます再起動の試みがタイムアウトするようであればリソースの障害が発生しています

2) フェールオーバーが指示されますフェールオーバー ポリシー チェックによってノードのフェールオーバーが必要であることが示されます

3) SQL Server サービスが停止されますSQL Server サービスが現在実行されている場合はその正常なシャットダウンが試みられます

4) WSFC クラスター リソースが転送されますSQL Server クラスター リソース グループの所有権とそれが依存するネットワークおよび共有ストレージ リソースがFCI で次に優先されるノード所有者に転送されます

5) 新しいノードで SQL Server が起動されますSQL Server インスタンスは通常のスタートアップ プロシージャで起動されます所定のタイムアウト時間内にオンラインに戻らない場合クラスター サービスはこの新しいノード上のリソースをエラー状態と見なします

6) 新しいノードでユーザー データベースが復旧されます各ユーザー データベースは復旧モードに設定されます復旧モードではトランザクション ログの再実行操作が適用されコミットされていなかったトランザクションがロールバックされます

FCI の強化以前のバージョンの SQL Server でも FCI のインストール オプションは用意されていましたがSQL Server 2012 では次のような機能強化によって可用性の堅牢性と利便性が向上しました

マルチサブネット クラスタリングSQL Server 2012 では複数のサブネットに存在する WSFC クラスター ノードがサポートされていますWSFC クラスター ノードに存在する SQL Server インスタンスはいずれかのネットワーク インターフェイスが使用可能であれば起動できますこれはクラスター リソースの OR 依存関係と呼ばれます

以前のバージョンの SQL Server の場合SQL Server サービスを起動またはフェールオーバーするにはすべてのネットワーク インターフェイスが機能しそれらがすべて同じサブネットまたは VLAN に存在している必要がありました

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 25

注 マルチサブネット クラスタリングではクラスター ノード間のストレージ レベルのレプリケーションが自動的には有効になりませんマルチサブネットの FCI ソリューションでクラスター ノード間でデータのレプリケーションを行いストレージ フェールオーバーを調整するためにはサード パーティから提供される SAN ベースのソリューションを利用する必要があります

詳細については「SQL Server 2012 AlwaysOn マルチサイト フェールオーバー クラスター インスタンス」(httpsqlcatcomsqlcatbwhitepapersarchive20111222sql-server-2012-alwayson_3a00_-multisite-failover-cluster-instanceaspx) を参照してください

信頼性の高いエラー検出WSFC クラスター サービスではノードの各 SQL Server 2012 FCI に対してそれぞれ専用の管理者接続が維持されますこの接続では特殊なシステム ストアド プロシージャ sp_server_diagnostics を定期的に呼び出すことでシステムの正常性診断に役立つ豊富な情報を含む配列が返されます

SQL Server 2012 よりも前のバージョンではFCI の主な正常性検出メカニズムは単純な一方向のポーリング プロセスとして実装されていましたこのプロセスではWSFC クラスター サービスがインスタンスへの新しい SQL クライアント接続を定期的に作成しサーバー名を照会した後で接続を切断していました何かの理由で接続が失敗するかクエリがタイムアウトした場合フェールオーバーが開始されますが診断情報はほとんど提供されません

詳細については「sql_server_diagnostics」(httpmsdnmicrosoftcomja-jplibraryff878233(SQL110)aspx) を参照してください

現在ではFCI ストレージが次のように幅広い状況でサポートされています

向上したマウント ポイント サポートSQL Server のセットアップ時にクラスター ディスクのマウント ポイント設定が認識されるようになりました指定されたクラスター ディスクとそれにマウントされているすべてのディスクがセットアップ時に SQL Server リソースの依存関係に自動的に追加されます

ローカル ストレージの tempdbFCI ではローカルの非共有ストレージ (ローカル ソリッド ステート ドライブなど) に tempdb を配置できるようになったため共有 SAN での IO 動作の負荷を大幅に軽減できる可能性があります

SQL Server 2012 よりも前のバージョンの FCI ではtempdb が他のシステム データベースと共にフェールオーバーされる対称共有ストレージ ボリュームに配置される必要がありました

注 tempdb の場所はmaster データベースに格納されますこのデータベースはフェールオーバー時にノード間で移動されますtempdb は所有者候補となっているすべてのノード上で有効で対称的なファイル パス (ドライブフォルダーおよび権限) に配置されている必要がありますそうなっていない場合SQL Server サービスが一部のノードでは起動されません

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 26

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 27

データベースの可用性インフラストラクチャ レベルおよび SQL Server インスタンス レベルのコンポーネントで提供されている高可用性機能は互いに連係してホストされているデータベースを暗黙的に保護しますAlwaysOn ソリューションではデータベースのデータおよびデータ層アプリケーションを明示的に保護するために一連のオプションが追加で用意されています

AlwaysOn 可用性グループ可用性グループは1 つの SQL Server インスタンスから同じ WSFC クラスター内の別のインスタンスへと同時にフェールオーバーされるユーザー データベースのセットですクライアント アプリケーションは可用性グループ リスナーと呼ばれる WSFC 仮想ネットワーク名を通じて可用性グループのデータベースに接続できますこうすることで基になる SQL Server インスタンスが抽象化されます

AlwaysOn 可用性グループは正常性監視フェールオーバーの調整およびサーバー接続を Windows Server フェールオーバー クラスタリングに依存していますWSFC クラスター ノード上の SQL Server インスタンスでAlwaysOn サポートを有効にする必要がありますただしそのインスタンスが FCI である必要はなく対称共有ストレージを使用する必要もありません

詳細については「AlwaysOn 可用性グループの概要 」(httpmsdnmicrosoftcomja-jplibraryff877884(SQL110)aspx) を参照してください

可用性レプリカとロール可用性グループの各 SQL Server インスタンスは可用性グループのユーザー データベースのコピーを保持している可用性レプリカをホストしますSQL Server インスタンスは特定の可用性グループの可用性レプリカを 1 つだけホストすることができますが複数の可用性グループを同じインスタンスに置くことは可能ですSQL Server インスタンスは専用の (非共有) ストレージ ボリュームを持つ必要があります

可用性レプリカの 1 つがプライマリ レプリカの役割を果たしますこれは可用性グループ データベースのマスター コピーとして指定されていて読み取り書き込み操作を行うことができます

可用性グループには読み取り専用の可用性レプリカを最大 4 つまで追加で含めることができますこれらは個別にセカンダリ レプリカの役割を果たします

可用性レプリカの同期可用性グループの各データベースの内容はSQL Server によるログ ベースのデータ移動メカニズムを通じてプライマリ レプリカから各セカンダリ レプリカに同期されますそのため可用性グループのすべてのデータベースは完全復旧モデルに設定する必要があります

セカンダリ レプリカはプライマリ レプリカのデータベースとトランザクション ログの完全なバックアップと復元によって初期化されますプライマリ レプリカで新しいトランザクションがコミットされるとトランザクション ログの対応する部分がキャッシュされ

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 28

キューに入れられてネットワーク経由でセカンダリ レプリカ ノード上のデータベース ミラーリング エンドポイントに送信されます

この方法によりプライマリ レプリカのトランザクション ログの新しいエントリが各セカンダリ レプリカのトランザクション ログに追加されます各セカンダリ レプリカはログ シーケンス番号 (LSN) をプライマリ レプリカに定期的に送り返しトランザクション ログのどのくらいの量がリモート ディスクに書き込まれフラッシュされたかを示します

注 各可用性レプリカはそれぞれ独自に独立したトランザクション ログ再実行スレッドのセットを保持していますこれは可用性レプリカの同期プロセスには含まれませんセカンダリ レプリカ上ではログ再実行プロセスによって遅延時間が生じるためユーザーはそれをデータの待機時間として感じる場合があります

プライマリまたはセカンダリの役割を果たす他に各可用性レプリカには可用性モードもありますこのモードは次のようにCOMMIT TRAN ステートメントの実行時にトランザクション ログの書き込みの連係を制御します

同期コミット モードすべての同期コミット セカンダリ レプリカからそれぞれ独自のトランザクション ログの書き込み完了 (LSN 以降) が通知されるまでプライマリ レプリカはそのトランザクションをコミットしません可用性グループでは最大で 2 つの同期コミット セカンダリ レプリカを使用できます

同期コミット モードではプライマリ レプリカ データベースでトランザクションの遅延が生じますがコミットされたトランザクションに対するセカンダリ レプリカでのデータ損失を確実に防ぐことができます

非同期コミット モードプライマリ レプリカはローカル トランザクション ログの書き込み後にトランザクションをコミットしますが非同期コミット セカンダリ レプリカからトランザクション ログの書き込み完了通知を待つことはしません可用性グループでは最大で 4 つの非同期コミット セカンダリ レプリカを使用できますただし両方の種類を合わせて使用できるセカンダリ レプリカの合計は最大 4 つです

非同期コミット モードではプライマリ レプリカ データベースで生じるトランザクションの遅延が最小になりますがセカンダリ レプリカでのトランザクション ログが遅れる場合があるため一部のデータが失われる可能性があります

詳細については「可用性モード」(httpmsdnmicrosoftcomja-jplibraryff877931(SQL110)aspx) を参照してください

可用性レプリカ間のデータ フローの全体的な正常性は各レプリカの同期状態によって示されますセカンダリ レプリカにフェールオーバーしたときに同期状態が 同期済み または 同期中 になっていなければほとんどの場合はデータ損失が発生することになります

各セカンダリ レプリカの同期ストリームにはセッション タイムアウト プロパティがあります同期コミット モードに構成されているセカンダリ レプリカがセッション タイムアウトでエラーになると内部的には一時的に非同期としてマークされますこれはセカンダ

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 29

リ レプリカのエラーがプライマリ レプリカでのトランザクション ログの書き込みに影響しないようにするためですそのセカンダリ レプリカが正常に戻ってプライマリ レプリカの状態に追いつくと自動的に通常の同期コミット モード動作に戻されます

可用性グループのフェールオーバー可用性グループとそれに対応する仮想ネットワーク名はWSFC クラスターのリソースとして登録されます可用性グループはプライマリ レプリカの正常性とフェールオーバー ポリシーに基づいて可用性レプリカのレベルでフェールオーバーを行います

可用性グループのフェールオーバー ポリシーではsp_server_diagnostics システム ストアド プロシージャと FailureConditionLevel プロパティを使用して可用性グループに対して許容されるエラーの重大度のレベルを示しますこの同じメカニズムがFCI のフェールオーバー ポリシーにも使用されます

フェールオーバーが発生した場合は共有物理リソースの所有権を他のノードに移す代わりにWSFC を利用して他の SQL Server インスタンス上でセカンダリ レプリカを再構成しプライマリ レプリカの役割を引き継がせますその後可用性グループの仮想ネットワーク名リソースがそのインスタンスに転送されます関連する可用性レプリカへのすべてのクライアント接続がリセットされます

レプリカの現在の正常性同期状態および可用性モードに基づいて各レプリカには複合的な フェールオーバーの準備 状態が定義されますこの状態の値はデータ損失の可能性を示していますレプリカの正常性情報はAlwaysOn ダッシュボードまたは sysdm_hadr_availability_replica_states システム ビューで確認できます

各可用性レプリカにはフェールオーバー モードも構成されていますこのモードはフェールオーバーが指示された場合にレプリカの動作を制御します

自動フェールオーバー (データ損失なし)セカンダリ レプリカのトランザクション ログが既に書き込まれ同期されているのですべての AlwaysOn 構成の中でフェールオーバー時間が最短になりますプライマリ レプリカ上の開かれているトランザクションはロールバックされプライマリ レプリカの役割はユーザーによる操作なしでセカンダリ レプリカに転送されます

この場合プライマリ レプリカとセカンダリ レプリカの両方を自動フェールオーバー モードに設定し両方の可用性モードを同期コミットに設定する必要がありますレプリカ間の同期状態は同期済み である必要がありますまたWSFC クラスターは正常なクォーラム状態になっている必要があります

自動フェールオーバーはプライマリ レプリカまたはセカンダリ レプリカが FCI 上にある場合はサポートされませんこれは可用性グループと FCI のフェールオーバー間で競合状態が発生することを防ぐためです

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 30

手動フェールオーバーこの場合管理者はプライマリ レプリカの状態を評価してセカンダリ レプリカにフェールオーバーするかどうかを慎重に判断できます

可用性モードと同期状態に応じて次のような選択が可能です

o 計画的な手動フェールオーバー (データ損失なし)この種類のフェールオーバーを実行できるのはプライマリ レプリカとセカンダリ レプリカの両方が正常で同期済み 状態である場合だけですこれは機能的には自動フェールオーバーと同じです

o 強制手動フェールオーバー (データ損失の可能性を許容)これは対象のセカンダリ レプリカの可用性モードが非同期コミットである場合またはプライマリ レプリカに同期されない場合に使用できる唯一のフェールオーバー形式です

警告 このフェールオーバー オプションは災害復旧の状況に限って使用する必要がありますプライマリ レプリカが正常で使用可能である場合は関連する各レプリカの可用性モードを同期コミットに変更し計画的な手動フェールオーバーを実行してください

詳細については「可用性グループの強制手動フェールオーバーの実行」(httpmsdnmicrosoftcomja-jplibraryff877957(SQL110)aspx) を参照してください

フェールオーバー対象のプライマリ レプリカまたはセカンダリ レプリカが次の条件のいずれかに該当する場合は手動フェールオーバーを実行する必要があります

フェールオーバー モードが手動に設定されている 可用性モードが非同期コミットに設定されている レプリカが FCI 上にある

詳細については「フェールオーバーとフェールオーバー モード (AlwaysOn 可用性グルー プ ) 」(httpmsdnmicrosoftcomja-jplibraryhh213151(SQL110)aspx) を参照してください

注 フェールオーバー後新しいプライマリ レプリカが同期コミット モードに設定されていない場合セカンダリ レプリカの同期状態は 中断状態 になりますプライマリ レプリカが同期コミット モードに設定されるまでデータはセカンダリ レプリカに移動されません

可用性グループ リスナー可用性グループ リスナーはクライアントが可用性グループ内のデータベースにアクセスするために使用できる WSFC 仮想ネットワーク名 (VNN) ですVNN クラスター リソースはプライマリ レプリカをホストしている SQL Server インスタンスによって所有されます

仮想ネットワーク名は可用性グループ リスナーの作成時または構成の変更時にのみDNS に登録されます可用性グループ リスナーで定義されているすべての仮想 IP アドレスは同じ仮想ネットワーク名で DNS に登録されます

可用性グループ リスナーを使用する場合クライアント接続要求ではサーバーとして仮想ネットワーク名を指定してから可用性グループ内のデータベース名を指定する必要があり

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 31

ます既定ではこれによってプライマリ レプリカをホストしている SQL Server インスタンスに接続されます

実行時にはクライアントはローカルの DNS リゾルバーを使用して仮想ネットワーク名にマップされている IP アドレスと TCP ポートの一覧を取得しますクライアントは各 IP アドレスへの接続を成功するか接続タイムアウトに達するまで試し続けますMultiSubnetFailover パラメーターが true に設定されているとクライアントは複数の接続を同時に試行するのでクライアント フェールオーバーが大幅に速くなります

フェールオーバーが行われるとサーバー上でクライアント接続がリセットされ可用性グループ リスナーの所有権はプライマリ レプリカの役割と共に新しい SQL Server インスタンスに移動しVNN エンドポイントは新しいインスタンスの仮想 IP アドレスと TCP ポートにバインドされます

詳細については「可用性グループ リスナークライアント接続およびアプリケーションのフェールオーバー」(httpmsdnmicrosoftcomja-jplibraryhh213417(SQL110)aspx) を参照してください

アプリケーションの目的によるフィルター処理可用性グループ リスナーを使用して接続している場合アプリケーションは接続の目的がデータの読み取りと書き込みの両方なのか読み取り専用操作を実行するだけなのかを指定できます指定しない場合クライアントのアプリケーションの目的は既定で読み取りと書き込みになります

各可用性レプリカのプライマリ ロールとセカンダリ ロールについてはクライアントのアプリケーションの目的に対する接続レベルのフィルターとして接続アクセス プロパティも指定できます既定ではアプリケーションの目的と接続アクセスとの組み合わせが無効であると接続が拒否されますSQL Server は次のルールを使用してクライアントの接続要求を振り分ける必要があります

可用性レプリカがプライマリ ロールであり接続アクセスが次のいずれかである場合

すべてのアプリケーションの目的を許可するアプリケーションの目的でクライアント接続をフィルター処理しません

明示的な読み取り書き込みの目的だけを許可するクライアントが読み取り専用を指定している場合接続を拒否します

可用性レプリカがセカンダリ ロールであり接続アクセスが次のいずれかである場合

接続を許可しないすべての接続を拒否しますレプリカは災害復旧だけに使用されます

すべてのアプリケーションの目的を許可するアプリケーションの目的でクライアント接続をフィルター処理しません

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 32

読み取り専用の目的を許可するクライアントが読み取り専用を指定していない場合接続を拒否します

詳細については「可用性レプリカでの読み取り専用アクセスの構成」(httpmsdnmicrosoftcomja-jplibraryhh213002(SQL110)aspx) を参照してください

アプリケーションの目的の読み取り専用ルーティングAlwaysOn 可用性グループの特に優れた点はスタンバイ ハードウェア インフラストラクチャを災害復旧以外の目的に利用できることです1 つ以上のセカンダリ レプリカを読み取り専用でアクセスできるように構成するとプライマリ レプリカからかなりの量のワークロードを軽減できます

読み取り専用セカンダリ レプリカに回すように簡単に調整できるワークロードはレポートデータベース バックアップデータベース整合性チェックインデックスの断片化の分析データ パイプライン抽出運用サポート操作サポートアドホック クエリなどです

各可用性レプリカではSQL Server インスタンスのエンドポイントについて順次的な読み取り専用ルーティング リストを構成することもできますこのリストはレプリカがプライマリ ロールであるときに適用されますこのリストが存在する場合アプリケーションの目的が読み取り専用と指定されているクライアント接続要求はそのリスト内に記載されていて前述のアプリケーションの目的フィルターに適合する最初のセカンダリ レプリカにリダイレクトされます

注 読み取り専用ルーティングによるリダイレクトはプライマリ レプリカにバインドされている可用性グループ リスナーによって実行されますプライマリ レプリカがオフラインの場合クライアントのリダイレクトは機能しません

詳細については「可用性グループの読み取り専用ルーティングの構成 (SQL Server) 」(httpmsdnmicrosoftcomja-jplibraryhh710054(SQL110)aspx) を参照してください

可用性の向上 ndash データベースSQL Server 2012 ではデータベースの構成と機能に関してさまざまな点が強化されています

以下の機能は復旧時間の短縮に役立ちます

予測可能な復旧時間データベースごとにターゲット復旧時間の長さを設定することでバックグラウンドで実行される CHECKPOINT コマンドのスケジュールを制御できますこのコマンドは間接的なチェックポイントとして再起動時またはフェールオーバー時にトランザクション ログの復旧に必要となる時間の推定値に基づいて定期的に実行されますそれによってチェックポイントごとに IO 操作がほぼ均等に配分され復旧時間 (RTO) の予測可能性が高まります

SQL Server 2012 よりも前のバージョンではバックグラウンドの CHECKPOINT コマンドがトランザクションの量や負荷とは無関係に一定間隔で実行されていたので復旧時間を予測することはできませんでした

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 33

詳細については「データベース チェックポイント」(httpmsdnmicrosoftcomja-jplibraryms189573(SQL110)aspx) を参照してください

以下の向上点は計画的なダウンタイムが必要になる一般的な状況を減らすのに役立ちます

LOB 列のオンライン インデックス操作varbinary(max)varchar(max)nvarchar(max)または XML データ型の列が含まれているインデックスをオンラインで再構築または再構成できるようになりました

新しい NOT NULL 列のオンライン スキーマ修正既定値を使用して新しい NOT NULL 列を SQL Server 2012 データベース テーブルに追加する場合システム メタデータの更新にはスキーマ ロックだけが必要ですALTER TABLE ステートメントですべての行にデータを設定する必要はありません

いずれかの行で実際に変更またはインデックスの再作成が行われない限り列の既定値は物理的に格納されませんクエリでは列に実際の値が存在しない場合メタデータから既定値を返します

ストレージのサポート強化の例として次のようなものがあります

ページの自動修復ある種のストレージ サブシステム エラーが発生するとデータ ページが破損し読み取り不可能になる場合がありますAlwaysOn 可用性グループではそのような種類のエラーを検出し自動的に復旧できます復旧のために影響を受けたデータ ページの最新のコピーが別の可用性レプリカから非同期で取得され適用されます

以前のバージョンでもデータベース ミラーリングに同様の機能がありましたが新しい機能では複数のレプリカをサポートできるようになっています

詳細については「ページの自動修復」(httpmsdnmicrosoftcomja-jplibrarybb677167(SQL110)aspx) を参照してください

クライアント接続の推奨事項クライアント アプリケーションが Microsoft SQL Server 2012 AlwaysOn テクノロジの利点を十分に活用できるようにするには次のガイドラインに従います

AlwaysOn 対応のクライアント ライブラリ表形式のデータ ストリーム (TDS) プロトコル Version 74 以降をサポートしているクライアント ライブラリを使用しますこれによってAlwaysOn の機能に対応した適切な機能がクライアント側でも提供されますクライアント ライブラリの例としてはData Provider for SQL Server in NET Framework 402SQL Native Client 110 などがあります

接続プロバイダー プロパティ MultiSubnetFailover = True接続文字列にこのキーワードを使用することでクライアント ライブラリでは(複数のサブネットに IP アドレスを持つ) 可用性グループ リスナーまたは FCI に登録されているすべての IP アドレスに同時に接

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 34

続できるようになります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 35

接続プロバイダー プロパティ ApplicationIntent = ReadOnly必要に応じてプライマリ レプリカの読み取り専用ワークロードをセカンダリ レプリカに移管することができます

レガシ クライアントの接続タイムアウトレガシ クライアントのデータベース ライブラリには並列で接続を試行する機能が実装されていないため複数の IP アドレスがある場合にはTCP タイムアウトに達するか正常に接続できるまで1 つずつ順番に接続を試行します

複数の IP アドレスが存在する場合はタイムアウトと再試行が逐次的に繰り返される可能性に備えてレガシ クライアントの接続タイムアウトを調整する必要があります値は少なくとも 15 秒 + 21 秒 times セカンダリ レプリカ数にします

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 36

結論このホワイト ペーパーではSQL Server 2012 の AlwaysOn による高可用性災害復旧ソリューションを使用し予定されたダウンタイムや予定外のダウンタイムを短縮したりアプリケーションの可用性を最大限に高めたりデータを保護したりする方法について基本的なコンテキストを確立しました

高可用性データベース環境の計画管理測定に関連したビジネス上の目的と課題は多くの場合目標復旧時点 (RPO) と目標復旧時間 (RTO) という形で数量化して表すことができます

SQL Server 2012 AlwaysOn は組織が高可用性や災害復旧に関する一般的な状況に対処するための機能をRPO と RTO を適切に達成できることを念頭にインフラストラクチャ レベルデータ プラットフォーム レベルデータベース レベルのそれぞれで提供します

詳細情報

httpwwwmicrosoftcomja-jpsqlserver2012defaultaspx SQL Server Web サイト

httptechnetmicrosoftcomja-jpsqlserver SQL Server TechCenter

httpmsdnmicrosoftcomja-jpsqlserver SQL Server 開発者向け技術情報

このホワイト ペーパーはお役に立ちましたか フィードバックをお寄せください1 (役に立たなかった) ~ 5 (非常に役に立った) の 5 段階で評価してくださいまたその評価の理由もお知らせください以下に例を示します

評価が高い 例が適切図がわかりやすい説明が明快といったことが理由である 評価が低い 例が少ない図がわかりにくい説明があいまいといったことが理由で

ある

このようなフィードバックをお寄せいただくと今後のホワイト ペーパーの品質向上につながります

フィードバックの送信

loz Version 112012 年 2 月 21 日

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 37

  • 高可用性と災害復旧の概念
    • 高可用性について
      • 予定されたダウンタイムと予定外のダウンタイム
      • 段階的な可用性
        • ダウンタイムの定量化
          • 復旧目標
          • ROI または機会費用の正当化
          • 可用性の健全度の監視
          • 災害復旧の計画
            • 概要 Microsoft SQL Server 2012 での高可用性
              • SQL Server AlwaysOn
              • 計画的なダウンタイムの大幅な削減
              • アイドル状態のハードウェアをなくしてコスト効率とパフォーマンスを向上
              • 簡単な配置と管理
              • RPO と RTO の機能比較
                  • SQL Server AlwaysOn の保護レイヤー
                    • インフラストラクチャの可用性
                      • Windows オペレーティング システム
                        • Windows Server Core インストール オプション
                        • プライベート クラウド用の SQL Server の最適化
                          • Windows Server フェールオーバー クラスタリング
                            • WSFC ストレージ構成
                            • WSFC リソースの正常性の検出とフェールオーバー
                              • WSFC のクラスター検証ウィザード
                              • WSFC クォーラム モードと投票の構成
                                • クォーラムによるクラスター状態検出
                                • クォーラム モード
                                • 投票ノードと非投票ノード
                                • クォーラム投票に推奨される調整
                                  • WSFC の強制クォーラムによる災害復旧
                                    • SQL Server インスタンス レベルでの保護
                                      • 可用性の向上 ndash SQL Server インスタンス
                                      • AlwaysOn フェールオーバー クラスター インスタンス
                                        • FCI のフェールオーバー プロセス
                                        • FCI の強化
                                            • データベースの可用性
                                              • AlwaysOn 可用性グループ
                                                • 可用性レプリカとロール
                                                • 可用性レプリカの同期
                                                  • 可用性グループのフェールオーバー
                                                  • 可用性グループ リスナー
                                                    • アプリケーションの目的によるフィルター処理
                                                    • アプリケーションの目的の読み取り専用ルーティング
                                                      • 可用性の向上 ndash データベース
                                                        • クライアント接続の推奨事項
                                                          • 結論
Page 11: 高可用性と災害復旧の概念download.microsoft.com/download/6/B/E/6BE0C3F3-2991-4766... · Web view高可用性と災害復旧のソリューションのために最適なデータベース

SQL Server AlwaysOnAlwaysOn は高い統合性柔軟性およびコスト効率を特徴とした新しい高可用性災害復旧ソリューションですデータ センター内およびデータ センター間でデータとハードウェアの冗長性を実現しアプリケーションのフェールオーバー時間を短縮することでミッション クリティカル アプリケーションの可用性を高めますAlwaysOn は構成の柔軟性が高く既存のハードウェア投資を再利用できます

AlwaysOn ソリューションではデータベース レベルとインスタンス レベルの両方で可用性を構成するためにSQL Server 2012 の次の 2 つの主要な機能を利用できます

AlwaysOn 可用性グループSQL Server 2012 の新機能の 1 つですデータベース ミラーリング機能の大幅な強化によってアプリケーション データベースの可用性の確保に役立ちますログに基づくデータの移動によってデータ保護を実現し共有ディスクを使用せずにデータ損失をゼロにすることができます

複数のデータベースから成る論理グループの単位で自動および手動のフェールオーバーを実行できますまた最大で 4 つのセカンダリ レプリカのサポート高速なアプリケーション フェールオーバー自動ページ修復など多彩なオプションが用意されています

AlwaysOn フェールオーバー クラスター インスタンス (FCI)SQL Server フェールオーバー クラスタリング機能を拡張し複数のサブネットにわたるマルチサイト クラスタリングをサポートしますこれにより異なるデータ センター間での SQL Server インスタンスのフェールオーバーが可能になりますインスタンスのフェールオーバーがより高速となり予測可能となることでアプリケーションをさらにすばやく復旧させることができます

計画的なダウンタイムの大幅な削減どの組織でもアプリケーション ダウンタイムの主な理由はオペレーティング システムへの修正プログラムの適用ハードウェア メンテナンスなどのための計画的なダウンタイムですこうしたダウンタイムがIT 環境の停止の約 80 を占めています

SQL Server 2012 は修正プログラムの要件を減らしより多くのメンテナンス操作をオンラインで実行できるようにすることで計画的なダウンタイムの大幅な削減に役立ちます

Windows Server CoreSQL Server 2012 ではWindows Server Core への配置がサポートされていますこれはWindows Server 2008 および Windows Server 2008 R2 の最小限の合理化された配置オプションですこれによりオペレーティング システムの修正プログラムの要件を最小限に抑え約 60 削減することで計画的なダウンタイムを減らすことができます

オンライン操作LOB のインデックスを再作成したり既定値を使用して列を追加したりするオンライン操作のサポート強化によってデータベース メンテナンス時のダウンタイムが削減されます

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 6

ローリング アップグレードと修正プログラムAlwaysOn 機能はインスタンスのローリング アップグレードと修正プログラムの適用を容易にしますこれによりアプリケーションのダウンタイムが大幅に削減されます

Hyper-V 上の SQL ServerHyper-V 環境でホストされている SQL Server インスタンスではライブ マイグレーションの利点を活用することでホスト間の仮想マシンの移行をダウンタイムなしで実行できます管理者はアプリケーションに影響を与えずにホスト上でメンテナンス操作を実行できます

アイドル状態のハードウェアをなくしてコスト効率とパフォーマンスを向上典型的な高可用性ソリューションでは高コストで冗長なパッシブ サーバーが配置されますAlwaysOn 可用性グループを使用するとパッシブまたはアイドルな状態のセカンダリ データベース レプリカを読み取り専用のワークロード (SQL Server Reporting Services のレポート クエリバックアップ操作など) に活用できますプライマリとセカンダリの両方のデータベース レプリカを同時に使用できるためサーバー ハードウェア間のリソースのバランスが良くなりすべてのワークロードのパフォーマンスが向上します

簡単な配置と管理構成ウィザードWindows PowerShell コマンド ライン インターフェイスのサポートダッシュボード動的管理ビュー (DMV)ポリシー ベースの管理System Center 統合などの機能によって可用性グループの配置と管理が簡単になります

RPO と RTO の機能比較目標復旧時点 (RPO) と目標復旧時間 (RTO) のビジネス目標は高可用性災害復旧ソリューションのために使用する SQL Server テクノロジを選択する際に重要な判断材料となります次の表はさまざまなソリューションで実現される結果を大まかに比較したものです

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 7

高可用性と災害復旧のSQL Server ソリューション

データ損失の可能性 (RPO)

可能な復旧時間 (RTO)

自動フェールオーバー

読み取り可能な

セカンダリ(1)

AlwaysOn 可用性グループ - 同期コミット ゼロ 数秒 (4) 0 - 2

AlwaysOn 可用性グループ - 非同期コミット 数秒 数分 times 0 - 4

AlwaysOn フェールオーバー クラスター インスタンス

該当せず(5) 数秒~ 数分

該当せず

データベース ミラーリング(2) - 高い安全性 (同期 + 監視)

ゼロ 数秒 該当せず

データベース ミラーリング(2) - 高パフォーマンス (非同期)

数秒(6) 数分(6) times 該当せず

ログ配布 数分(6) 数分~ 数時間(6)

times 復元中はなし

バックアップコピー復元(3) 数時間(6) 数時間~ 数日(6)

times 復元中はなし

(1) AlwaysOn 可用性グループで使用できるセカンダリ レプリカは種類に関係なく最大 4 つです(2) この機能は将来のバージョンの Microsoft SQL Server では削除される予定です代わりに AlwaysOn 可用性グループを使用

してください(3) バックアップコピー復元は障害復旧には適していますが高可用性には適していません(4) 可用性グループの自動フェールオーバーはフェールオーバー クラスター インスタンスとの間ではサポートされていま

せん(5) FCI 自体にはデータ保護機能はありませんデータ損失はストレージ システムの実装に依存します(6) ワークロードデータ量およびフェールオーバーの手順に大きく依存します

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 8

SQL Server AlwaysOn の保護レイヤーSQL Server AlwaysOn ソリューションではインフラストラクチャとアプリケーション コンポーネントのいくつかの論理レイヤーおよび物理レイヤーにまたがってフォールト トレランスと災害復旧を実現できます従来はさまざまな関係者と役割ごとに業務と責任を振り分けそれぞれが主に自分のソリューションのレイヤー部分だけに関心を持つことが一般的でした

このセクションではこれらのレイヤーのそれぞれについて詳細に説明しデザインに関する議論や実装についての意思決定に役立つ論点やガイダンスを提示します

SQL Server AlwaysOn ソリューションをうまく利用するには以下のレイヤーについて理解しそれぞれを協調させる必要があります

インフラストラクチャ レベルサーバー レベルのフォールト トレランスとノード内のネットワーク通信が含まれますWindows Server フェールオーバー クラスタリング (WSFC) 機能を使用して稼働状態の監視とフェールオーバーの調整を行います

SQL Server インスタンス レベルSQL Server AlwaysOn フェールオーバー クラスター インスタンス (FCI) はWSFC クラスター内の複数のサーバー ノードにまたがってインストールされる SQL Server インスタンスであり各サーバー ノードへのフェールオーバーが可能ですFCI をホストするノードは堅牢な対称型共有ストレージ (SAN または SMB) に接続されます

データベース レベル可用性グループは共にフェールオーバーされるユーザー データベースのセットです可用性グループは1 つのプライマリ レプリカと最大 4 つのセカンダリ レプリカで構成されます各レプリカはWSFC クラスターの別々のノードにある SQL Server インスタンス (FCI または非 FCI) によってホストされます

クライアント接続データベース クライアント アプリケーションは指定した SQL Server インスタンス ネットワーク名に直接接続できますまたは可用性グループ リスナーにバインドされている仮想ネットワーク名 (VNN) に接続することもできますVNN はWSFC クラスターおよび可用性グループのトポロジを抽象化するものであり接続要求を適切な SQL Server インスタンスとデータベース レプリカに論理的にリダイレクトします

代表的な AlwaysOn ソリューションの論理トポロジは次の図のようになります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 9

インフラストラクチャの可用性AlwaysOn 可用性グループと AlwaysOn フェールオーバー クラスター インスタンスのどちらもWindows Server オペレーティング システムと WSFC をプラットフォーム テクノロジとして利用します今まで以上にMicrosoft SQL Server データベース管理者はこれらのテクノロジについて十分に理解することが必要です

Windows オペレーティング システムSQL Server は基礎的なインフラストラクチャとネットワークストレージセキュリティ更新プログラムおよび監視のサービスを Windows プラットフォームに依存しています

SQL Server 2012 の各エディションはWindows Server 2008 R2 オペレーティング システムの対応するエディション (Windows Server 2008 R2 Standard オペレーティング システムWindows Server 2008 R2 Enterprise オペレーティング システムWindows Server 2008 R2 Datacenter オペレーティング システムなど) の機能や能力をさらに進歩させて構築されています

詳細については「SQL Server 2012 のインストールに必要なハードウェアおよびソフトウェ ア」(httpmsdnmicrosoftcomja-jplibraryms143506(SQL110)aspx) を参照してください

Windows Server Core インストール オプションSQL Server 2012 では高可用性のための主要な機能の 1 つとしてWindows Server 2008 以降で Server Core インストール オプションによる配置をサポートしていますServer Core インストール オプションでは制限された機能と非常に限定的な GUI アプリケーション サポートで特定のサーバー ロールを実行するための最低限の環境が提供されます既定では必要なサービスとコマンド プロンプト環境のみが有効です

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 10

この操作モードではオペレーティング システムへの攻撃の危険性とシステム オーバーヘッドが低下し継続的なメンテナンスサービス修正プログラムなどの要件が大幅に削減されます

SQL Server 2012 を Windows Server Core に配置する場合の主な注意点はSQL Server およびオペレーティング システムのすべての配置構成管理およびメンテナンスをWindows PowerShell などのスクリプト環境やコマンド ラインまたはリモート ツールを使用して行う必要があることです

プライベート クラウド用の SQL Server の最適化高可用性と災害復旧はプライベート クラウド環境ではさらに重要になってきていますプライベート クラウドに SQL Server を配置すればコンピューターネットワークおよびストレージのリソースが効率的に使用され物理的な場所や資本と運営費用の両方の削減に役立ちます配置の統合リソースの効率的なスケーリングオンデマンドでのリソースの配置が容易になり制御の自由度が失われることもありません

SQL Server ではHyper-V のホストとゲストの両方のシステムに対して Windows Server フェールオーバー クラスタリングをサポートするほかライブ マイグレーションもサポートしていますこれは意識されるほどのダウンタイムを生じることなくホスト間で仮想マシンを移動できる機能ですライブ マイグレーションはゲスト クラスタリングとも協調して動作します

詳細については「プライベート クラウド コンピューティング - プライベート クラウド用の SQL Server の最適化 」(httpwwwmicrosoftcomSqlServerPrivateCloud) を参照してください

Windows Server フェールオーバー クラスタリングWindows Server フェールオーバー クラスタリング (WSFC) はMicrosoft SQL Server などのサーバー アプリケーションに対して高可用性と災害復旧をサポートするインフラストラクチャ機能を提供します

WSFC クラスター ノードまたはサービスに障害が発生するとそのノードでホストされていたサービスまたはリソースは自動的にまたは手動で他の可用性ノードに転送されますこのプロセスをフェールオーバーと呼びますAlwaysOn ソリューションではこのプロセスが FCI と可用性グループの両方に適用されます

WSFC クラスター内の各ノードは連携して次のような機能を提供します

分散メタデータと通知WSFC サービスとホストされるアプリケーション メタデータはクラスター内の各ノードで維持されますこのメタデータにはホストされるアプリケーションの設定に加えWSFC の構成と状態が含まれます1 つのノードでのメタデータまたは状態の変更はクラスター内の他のノードに自動的に反映されます

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 11

リソース管理クラスター内の各ノードは直接アタッチされたストレージ (DAS)ネットワーク インターフェイス共有ディスク ストレージへのアクセスなど物理的リソースを提供する場合がありますSQL Server などホストされるアプリケーション自体もクラスター リソースとして登録されますまた他のリソースに対するスタートアップと正常性にかかわる依存関係を構成できます

正常性の監視ノード間の正常性およびプライマリ ノードの正常性はハートビート ネットワーク通信とリソースの監視を組み合わせることで検出されますクラスターの全体的な正常性状態はクラスター内のノードのクォーラムの投票によって決定されます

フェールオーバーの調整各リソースはプライマリ ノードでホストされるように構成されそれぞれ自動的にまたは手動で 1 つ以上のセカンダリ ノードに転送されます正常性ベースのフェールオーバー ポリシーによってノード間でのリソース所有権の自動転送が制御されますフェールオーバーが発生すると適切に対応できるように各ノードおよびホストされているアプリケーションに通知されます

詳細については「Windows Server | フェールオーバー クラスタリングとノード バランシン グ」(httpwwwmicrosoftcomwindowsserver2008enusfailover-clustering-mainaspx) を参照してください

注 データベース管理者が WSFC クラスターおよびクォーラム管理の内部動作を理解しておくことが非常に重要になりましたAlwaysOn の正常性の監視管理および障害復旧の手順はすべてが本質的に WSFC 構成と関連しています

WSFC ストレージ構成Windows Server フェールオーバー クラスタリングでは接続されているストレージ デバイスディスク ボリュームおよびファイル システムの管理をクラスター内の各ノードに依存していますWSFC はストレージ サブシステムが非常に堅牢であると想定しているためノードに接続されたストレージ デバイスが使用できない場合はクラスター ノードが障害状態であると見なします

書き込みベースの操作ではディスク ボリュームは SCSI-3 の永続的な予約を使用して一度に 1 つのクラスター ノードに論理的に接続されますノードで障害が発生した場合にはストレージ サブシステムの機能と構成に応じてディスク ボリュームの論理的所有権をクラスター内の別のノードに移すことができます

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 12

SQL Server AlwaysOn ソリューションでは次のような WSFC ストレージ構成の組み合わせを利用しその制限も受けます

直接接続とリモートストレージ デバイスはサーバーに物理的に直接接続されるかまたはネットワークやホスト バス アダプター (HBA) を介してリモートのストレージ デバイスを使用しますリモート ストレージのテクノロジにはiSCSI やファイバー チャネルなどのストレージ エリア ネットワーク (SAN) ベースのソリューションとサーバー メッセージ ブロック (SMB) というファイル共有ベースのソリューションがあります

対称と非対称ストレージ デバイスの論理ディスク ボリューム構成とファイル パスがクラスターの各ノードでまったく同じである場合それらのストレージ デバイスは対称的であると見なされます基になるディスク ボリュームの物理的な実装と容量は異なっていてもかまいません

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 13

専用と共有専用ストレージは使用するために予約されクラスター内の 1 つのノードに割り当てられます共有ストレージはクラスターの複数のノードからアクセスできます共有ストレージ デバイスが SCSI-3 プロトコルに準拠していればそれらの制御と所有権をノード間で移動させることができますWSFC ではファイル共有のためにクラスター共有ボリュームを同時に複数のノードでホスティングできますただしSQL Server は複数のノードからの共有ボリュームへの同時アクセスをサポートしていません

注 SQL Server FCI では対称共有ストレージを使用してインスタンスのすべてのノード所有者 (およびその候補) からアクセスできるようにする必要がありますただしAlwaysOn 可用性グループの導入に伴いそれぞれが独自に専用のローカルまたはリモート ストレージを持つ非 FCI の SQL Server インスタンスを WSFC クラスターに配置できるようになりました

WSFC リソースの正常性の検出とフェールオーバーWSFC クラスター ノード内の各リソースの状態と正常性は定期的にまたは要求に応じて報告されますクラスター リソースの障害を示す状況としてはたとえば電源障害ディスクまたはメモリのエラーネットワーク通信エラー構成エラー応答しないサービスなどがあります

ネットワークストレージサービスなどの WSFC クラスター リソースは互いに依存するように構成できますあるリソースの累積的な正常性は依存関係を持つリソースの正常性を連続的にたどってゆくことで決定されます

AlwaysOn 可用性グループでは可用性グループと可用性グループ リスナーがそれぞれ WSFC クラスター リソースとして登録されますAlwaysOn フェールオーバー クラスター インスタンスではSQL Server サービスおよび SQL Server エージェント サービスが WSFC クラスター リソースとして登録されどちらもインスタンスの仮想ネットワーク名リソースに依存します

WSFC クラスター リソースで設定された数のエラーまたは障害が一定期間内に発生した場合構成されたフェールオーバー ポリシーによってクラスター サービスは次のいずれかの操作を行います

現在のノードでのリソースの再起動 リソースをオフライン化 リソースとその依存関係を別のノードへ自動的にフェールオーバー

注 WSFC クラスター リソースの正常性の検出は個々のノードの正常性やクラスターの全体的な正常性には直接影響しません

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 14

WSFC のクラスター検証ウィザードクラスター検証ウィザードはWindows Server 2008 および Windows Server 2008 R2 のフェールオーバー クラスタリングに統合されている機能ですこれはSQL Server AlwaysOn ソリューションの配置前 にクリーンで正常な安定した WSFC 環境が存在していることをデータベース管理者が確認するために使用する主要なツールです

クラスター検証ウィザードではクラスターのノードとして使用するサーバーの集合または既存のクラスターを対象にして一連のテストを実行できますこのプロセスでは基になるハードウェアおよびソフトウェアが個別に直接テストされWSFC クラスターが特定の構成でどの程度良好にサポートされるかについての正確な評価が得られます

この検証プロセスでは各ノードに対して次のようなカテゴリの一連のテストとデータ収集が実施されます

一覧作成BIOS のバージョン環境レベルホスト バス アダプターRAMオペレーティング システムのバージョンデバイスサービスドライバーなどの情報です

ネットワークNIC のバインド順序ネットワーク通信IP 構成ファイアウォール構成などの情報ですすべての NIC でノード間の通信が検証されます

ストレージディスクドライブの容量アクセス待機時間ファイル システムなどの情報ですSCSI コマンドディスク フェールオーバー機能対称的または非対称的なストレージ構成が検証されます

システム構成Active Directory の構成ドライバーの登録メモリ ダンプの設定必要なオペレーティング システムの機能とサービス互換性のあるプロセッサ アーキテクチャおよびサービス パックと Windows Software Update のレベルが検証されます

これらの検証テストの結果を利用してクラスターの構成を微調整したり構成を追跡したりダウンタイムを引き起こすかもしれない潜在的なクラスター構成の問題を特定したりできますテスト結果のレポートは後で参照できるようにHTML ドキュメントとして保存できます

これらのテストはWSFC の構成に何か変更を加える前と加えた後に実行するほかSQL Server をインストールする前および災害復旧プロセスの一環として実行する必要がありますマイクロソフトで特定の WSFC クラスター構成がサポートされるためにはマイクロソフト カスタマー サポート サービス (CSS) にクラスター検証レポートを提出する必要があります

詳細については「フェールオーバー クラスター ステップ バイ ステップ ガイド フェール オーバー クラスター用ハードウェアを検証する」(httptechnetmicrosoftcomja-jplibrarycc732035(WS10)aspx) を参照してください

注 ハードウェアベースの地理的クラスタリング ストレージ ソリューションの場合やAlwaysOn 可用性グループの場合のようにクラスター構成に非対称ストレージがあるとクラスター検証ウィザードでストレージの検証手順を成功させるために多数の修正プログラムを適用しなければならないことがあります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 15

詳細については「AlwaysOn 可用性グループの前提条件制限事項および推奨事項 」(httpmsdnmicrosoftcomja-jplibraryff878487(SQL110)aspxSystemReqsForAOAG) を参照してください

WSFC クォーラム モードと投票の構成WSFC ではクォーラム ベースのアプローチを使用してクラスターの全体的な正常性を監視することでノード レベルのフォールト トレランスを最大限に高めますWSFC のクォーラム モードおよびノード投票構成の基本について理解することはAlwaysOn 高可用性災害復旧ソリューションの設計運用トラブルシューティングのために非常に重要です

クォーラムによるクラスター状態検出WSFC クラスター内の各ノードは定期的なハートビート通信に参加しノードの正常性状態を他のノードと共有します応答しないノードはエラー状態であると見なされます

クォーラム ノード セットとはWSFC クラスター内の投票ノードおよび監視サーバーのうち過半数を占めるノードの集合ですWSFC クラスターの全体的な正常性と状態は定期的なクォーラムの投票 によって決定されますクォーラムはクラスターが正常でありノード レベルのフォールト トレランスを提供できることを意味します

クォーラムに達していない状態はクラスターが正常でないことを示しますプライマリ ノードのフェールオーバー先として正常なセカンダリ ノードを使用できるようにするにはWSFC クラスターの全体的な正常性が維持されている必要があります投票数がクォーラムに達しなかった場合にはWSFC クラスター全体が予防策としてオフラインに設定されますその場合クラスターに登録されている SQL Server インスタンスがすべて停止します

注 クォーラム障害のために WSFC クラスターがオフラインに設定されるとオンラインに戻すために手動の操作が必要です詳細については後の「WSFC の強制クォーラムによる災害 復旧」のセクションを参照してください

クォーラム モードクォーラム モードはWSFC クラスター レベルで構成されクォーラム投票の方法を指定しますフェールオーバー クラスター マネージャー ユーティリティではクラスター内のノード数に基づいて推奨するクォーラム モードが提示されます

次のいずれかのクォーラム モードによって投票クォーラムの構成が決定されます

ノード マジョリティクラスターが正常であるためにはクラスター内の半分以上の投票ノードが肯定的に投票する必要があります

ノードおよびファイル共有マジョリティノード マジョリティ クォーラム モードに似ていますがリモート ファイル共有も投票監視サーバーとして構成され各ノードからそのリモート ファイル共有への接続も肯定的な投票としてカウントされますクラスターが正常であるためには投票の過半数が肯定的である必要があります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 16

推奨事項として監視ファイル共有はクラスター内のノードに存在せずクラスター内のすべてのノードから見える必要があります

ノードおよびディスク マジョリティノード マジョリティ クォーラム モードに似ていますが共有ディスク クラスター リソースも投票監視サーバーとして使用され各ノードからその共有ディスクへの接続も肯定的な投票としてカウントされますクラスターが正常であるためには投票の過半数が肯定的である必要があります

ディスクのみ共有ディスク クラスター リソースが監視サーバーとして使用され各ノードからその共有ディスクへの接続が肯定的な投票としてカウントされます

詳細については「フェールオーバー クラスター ステップ バイ ステップ ガイド フェール オーバー クラスターのクォーラムの構成」(httptechnetmicrosoftcomja-jplibrarycc770620(WS10)aspx) で説明されています

注 クラスターの各ノードが同じ共有ストレージ クォーラム監視ディスクを使用するように構成されていない限り通常投票ノード数が奇数の場合は ノード マジョリティ クォーラム モード投票ノード数が偶数の場合は ノードおよびファイル共有マジョリティ クォーラム モードを使用してください

投票ノードと非投票ノード既定ではWSFC クラスター内の各ノードがクラスター クォーラムのメンバーとなります各ノードファイル共有監視サーバーディスク監視サーバーがクラスターの全体的な正常性の決定においてそれぞれ 1 票ずつの投票権を持ちますクォーラムに関するここまでの説明ではクラスター状態について投票する WSFC クラスター ノードのセットを投票ノードとして注意深く限定してきました状況によってはすべてのノードに投票権を与えることが適切でない場合もあります

WSFC クラスターの各ノードはクォーラムを確立しようとし続けますクラスター内の個々のノードはクラスターが全体として正常であるか正常でないかを明確に決定することはできません特定の時点で各ノードからは他のノードの一部がオフラインフェールオーバー中またはネットワーク通信のエラーにより応答不能に見えますクォーラム投票の主な機能はWSFC クラスターの各ノードの見かけの状態が本当にそれらのノードの実際の状態であるかどうかを判断することです

ディスクのみ 以外のすべてのクォーラム モデルではクォーラム投票の有効性はクラスター内のすべての投票ノード間に信頼できる通信が確立されていることに依存しますすべてのノードが同じ物理サブネット上にある場合はクォーラムの投票を信頼できます

しかしクォーラム投票で他のサブネット上のノードが応答しないように見えても実際はオンラインで正常である場合はサブネット間のネットワーク通信のエラーが原因であることが考えられますクラスター トポロジクォーラム モードおよびフェールオーバー ポリシーの構成によってはネットワーク通信エラーによって投票ノードのセット (またはサブセット) が実質的に複数作成されてしまう可能性があります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 17

投票ノードの複数のサブセットがそれぞれ独自のクォーラムを構築できる状態はスプリット ブレイン と呼ばれますこの状態では各クォーラム上のノードが別々の動作をし相互に矛盾する可能性があります

注 スプリット ブレイン の状況が発生するのはシステム管理者が強制クォーラム動作を手動で実行するかまたは非常にまれですが強制的な手動フェールオーバーを実行することでクォーラム ノード セットが明示的に細分化された場合のみです詳細については後の「WSFC の強制クォーラムによる災害復旧 」のセクションを参照してください

クォーラム構成を単純化し稼働時間を長くする目的でノードの投票がクォーラムにカウントされないように各ノードの NodeWeight 設定 (値 0 または 1) を調整することができます

クォーラム投票に推奨される調整以下のガイドラインをこの順番に適用することでクラスターに対して推奨されるクォーラム投票の構成を判断できます

1 既定は投票権なしにします明確な理由がない限り各ノードには投票権を与えないと考えてください

2 すべてのプライマリ ノードに投票権を与えますAlwaysOn 可用性グループのプライマリ レプリカをホストする各ノードおよび AlwaysOn フェールオーバー クラスター インスタンスの優先所有者である各ノードは投票権を持つ必要があります

3 可能性のある自動フェールオーバーの所有者を含めます自動フェールオーバーの結果としてプライマリ レプリカまたは FCI をホストする可能性がある各ノードは投票を持つ必要があります

4 セカンダリ サイト ノードを除外します通常はセカンダリ災害復旧サイトに存在するノードには投票を提供しないでくださいプライマリ サイトに問題がない場合クラスターをオフラインにする判断にセカンダリ サイト内のノードが影響を与えることは避ける必要があります

5 投票数を奇数にします必要に応じて監視ファイル共有監視ノード (SQL Server インスタンスの有無は問いません)または監視ディスクをクラスターに追加してクォーラム モードを調整しクォーラムの投票結果が同数に分かれるのを防ぎます

6 フェールオーバー後の投票割り当てを再評価します正常なクォーラムをサポートしないクラスター構成にフェールオーバーすることは避けます

ノードの投票の調整の詳細については「クラスター クォーラムの NodeWeight の設定の構 成」(httpmsdnmicrosoftcomja-jplibraryhh270281(SQL110)aspx) を参照してください

ファイル共有監視サーバーの投票は調整できませんその投票を含めるか除外するかを決めるには別のクォーラム モードを選択する必要があります

注 SQL Server ではWSFC クラスター構成およびノード クォーラム投票に関する設定を管理するためにいくつかのシステム動的管理ビュー (DMV) が公開されています

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 18

詳細については「可用性グループの監視」(httpmsdnmicrosoftcomja-jplibraryff878305(SQL110)aspx) を参照してください

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 19

WSFC の強制クォーラムによる災害復旧通常クォーラム障害は災害発生時または WSFC クラスター内の複数のノード間で永続的な通信障害が生じた場合に発生しますクォーラム障害が発生するとクラスターがノード レベルのフォールト トレランスを確保できなくなるためその WSFC クラスター内の SQL Server インスタンス可用性グループおよびクラスター化されているサービスがすべてオフラインになりますクォーラム障害はWSFC クラスター内の正常な投票ノード数がクォーラム モデルを満たさなくなったことを意味しますノードによってまったく機能しなくなるものもあればWSFC サービスがシャットダウンしただけでクォーラムと通信できなくなったことを除けば正常なものもあります

WSFC クラスターをオンラインに戻すには既存の構成の少なくとも 1 つのノードでクォーラム障害の根本的な原因を解決する必要があります災害発生時には使用できる代替ハードウェアの再構成や識別が必要となる場合もあります現状のクラスター トポロジを反映するためにWSFC クラスターの残りのノードを再構成する場合もあります

WSFC クラスター ノードで強制クォーラムの手順を使用するとクラスターがオフラインになる原因となった安全管理機能を無効にすることができますこれによりクラスターでのクォーラム投票のチェックが実質的に中断されクラスター内の任意のノードで WSFC クラスター リソースと SQL Server をオンラインに戻すことができます

このような災害復旧プロセスの手順を次に示します

1) 障害の範囲を特定します応答しない可用性グループや SQL Server インスタンス災害後に使用できるオンラインのクラスター ノードをそれぞれ特定しWindows イベント ログと SQL Server システム ログを確認します必要に応じて後で分析できるように解析データやシステム ログを保存しておきます

2) 1 つのノードで強制クォーラムを使用して WSFC クラスターを起動します他の点では正常なノードで強制クォーラムの手順に従ってクラスターを手動で強制的にオンラインにしますこの場合データ損失の可能性を最小限に抑えるには可用性グループのプライマリ レプリカを最後にホストしていたノードを選択します

詳細については「クォーラムを使用せずに WSFC クラスターを強制的に起動する 」(httpmsdnmicrosoftcomja-jplibraryhh270275(v=SQL110)aspx) を参照してください

注 強制クォーラムの設定を使用するとWSFC クラスターの投票が過半数に達することで通常のクォーラム モードの動作に自動的に切り替わるまでクラスター全体のクォーラムのチェックがブロックされます

3) 他の点では正常な各ノードでWSFC サービスを 1 つずつ通常の方法で起動します他のノードでクラスター サービスを起動するときは強制クォーラム オプションを指定する必要はありません

各ノードの WSFC サービスがオンラインに戻ると他の正常なノードとの間でネゴシエーションが行われ新しいクラスター構成の状態が同期されますクラスターの最新の状態

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 20

を判断するときに競合状態の発生を避けるためこの手順は必ず一度に 1 つのノードで行うようにしてください

注 起動した各ノードが新たにオンラインにした他のノードと通信できることを確認しますそうしないと複数のクォーラム ノード セットが作成されて スプリット ブレイン の状況に陥るおそれがあります手順 1 の結果に問題がなければこの現象は発生しません

4) 新しいクォーラム モードとノードの投票の構成を適用します強制クォーラムの手順によってクラスターのすべてのノードを正常に再起動させクォーラムのエラーの根本原因を修正した場合クォーラム モードとノードの投票を元の構成から変更する必要はありません

それ以外の場合は新たに復元されたクラスター ノードと可用性レプリカのトポロジを評価し必要に応じてクォーラム モードと各ノードの投票割り当てを変更します未復旧のノード上ではWSFC クラスター サービスをオフラインにするかノードの投票をゼロに設定します

注 この時点でクラスター内のノードと SQL Server インスタンスが通常の動作に戻っているように見えることがありますがまだ正常なクォーラムには達していない可能性がありますフェールオーバー クラスター マネージャーやSQL Server Management Studio の AlwaysOn ダッシュボードまたは適切な DMV を使用して正常なクォーラムが復元されたことを確認してください

5) 必要に応じて可用性グループのデータベース レプリカを復旧します一部のデータベースはSQL Server の通常の起動処理の一環として自動的に復旧されオンラインに戻ることがありますそれ以外のデータベースの復旧には追加で手動の手順を実行する必要があります

可用性グループ レプリカのデータ損失の可能性や復旧にかかる時間を最小限に抑えるにはできればプライマリ レプリカ同期セカンダリ レプリカ非同期セカンダリ レプリカの順にオンラインに戻します

6) 障害が発生したコンポーネントを修復するか交換しクラスターを再検証しますこれで最初の災害およびクォーラム障害から復旧できたので障害が発生したノードを修復するか交換しWSFC と AlwaysOn の関連する構成を適切に調整する必要がありますこれには可用性グループ レプリカの削除クラスターからのノードの削除ノードへのソフトウェアの再インストールなどが含まれます

注 停止したすべての可用性レプリカを修復または削除する必要がありますSQL Server 2012 では最も古い可用性レプリカを最後に認識した時点以降トランザクション ログが切り捨てられません停止したレプリカを修復するか可用性グループから削除しないとトランザクション ログが大きくなり他のレプリカのトランザクション ログの領域が不足する可能性があります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 21

7) 必要に応じて手順 4 を繰り返しますこの目的は正常な動作を行うために適切なレベルのフォールト トレランスと高可用性を再確立することです

8) RPORTO 分析を実行しますSQL Server のシステム ログデータベースのタイムスタンプおよび Windows のイベント ログを分析して障害の根本的な原因を特定し実際の復旧ポイントと復旧時間を文書に記録します

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 22

SQL Server インスタンス レベルでの保護次に説明する AlwaysOn ソリューションの保護レイヤーはデータ プラットフォームそれ自体ですMicrosoft SQL Server 2012 とその Windows Server インフラストラクチャ コンポーネントとの統合によって次のような機能が提供されます

可用性の向上 ndash SQL Server インスタンスこれは SQL Server 2012 の新しいインスタンス レベルの機能でAlwaysOn フェールオーバー クラスター インスタンスとAlwaysOn 可用性グループをホストするスタンドアロン インスタンスの両方の可用性を強化します

以下の強化点によってフェールオーバーの管理およびトラブルシューティングが向上します

柔軟なフェールオーバー ポリシー信頼性の高いエラー検出に使用される新しいシステム ストアド プロシージャ sp_server_diagnostics の出力でSQL Server インスタンスに影響するエラーの重大度が FailureConditionLevel プロパティによって示されますWSFC のフェールオーバー ポリシーによってこの値が SQL Server インスタンスにどのように影響するかを制御できますある程度エラーを許容する設定からSQL Server の内部コンポーネント エラーを重点的に検出する設定までさまざまに構成できます

特定のレベルのエラーによってフェールオーバーを開始するように構成できますエラーのレベルにはサーバーの停止サーバーの応答停止重大なエラー中程度のエラーなんらかの条件付きエラーなどがありますFailureConditionLevel プロパティはFCI または可用性グループのフェールオーバー ポリシーのために使用できます

SQL Server 2012 よりも前のバージョンではフェールオーバーを制御できるようなエラー状態の区分がなくすべてのサービス レベルのエラーによってフェールオーバーが発生しました

詳細については「フェールオーバー クラスター インスタンスのフェールオーバー ポリシー」(httpmsdnmicrosoftcomja-jplibraryff878664(SQL110)aspx) を参照してください

強化されたインストルメンテーションとログAlwaysOn 専用のシステム構成ビューDMVパフォーマンス カウンターに加えて拡張されたイベント正常性セッションによってAlwaysOn 配置のトラブルシューティングチューニングおよび監視に必要な情報を取得して表示できますこれらの多くはSQL Server ポリシー管理の新しいファセットおよびポリシーを通じて公開されます

詳細については「AlwaysOn 可用性グループの動的管理ビューおよび関 数」(httpmsdnmicrosoftcomja-jplibraryff877943(SQL110)aspx) と「sysdm_os_cluster_nodes」(httpmsdnmicrosoftcomja-jplibraryms187341(SQL110)aspx) を参照してください

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 23

SMB ファイル共有のサポートWindows Server 2008 以降のスタンドアロン用またはフェールオーバー クラスター インスタンス用のリモート ファイル共有にデータベース ファイルを格納することができますこの場合FCI ごとに異なるドライブ文字を使用する必要がありませんこれはストレージを統合する場合やデータベース ファイルのストレージを仮想マシンのゲスト オペレーティング システム用物理サーバーでホストする場合などに便利なオプションです適切に構成すれば直接接続されたストレージとほぼ同等の IO パフォーマンスが得られます

詳細については「ファイル共有上の SQL データベース - シナリオを再検討すべきとき 」(httpblogsmsdncombsqlserverstorageenginearchive20111018sql-databases-on-file-shares-it-s-time-to-reconsider-the-scenarioaspx) を参照してください

注 WSFC クラスターではSMB ファイル共有リソースの依存関係を SQL Server リソース グループに追加することはできませんファイル共有の可用性を確保するには別の方法を用いる必要がありますファイル共有が使用できなくなった場合SQL Server は IO 例外をスローしオフラインになります

WSFC と DNS の相互運用性FCI または可用性グループ リスナーの仮想ネットワーク名 (VNN) はVNN の作成時または構成の変更時にのみDNS に登録されますすべての仮想 IP アドレスはオンライン状態かオフライン状態かに関係なく同じ仮想ネットワーク名で DNS に登録されますDNS の仮想ネットワーク名を解決するためのクライアント呼び出しは各種のラウンド ロビン シーケンスによってすべての登録済み IP アドレスを返します

AlwaysOn フェールオーバー クラスター インスタンスSQL Server の AlwaysOn フェールオーバー クラスター インスタンス (FCI) の主な目的は1 つのデータ センター内のローカル サーバーとストレージ ハードウェアでホストされている SQL Server インスタンスの可用性を高めることです

FCI はWindows Server フェールオーバー クラスタリング (WSFC) のクラスターに含まれる複数のノードにまたがってインストールされる1 つの論理的な SQL Server インスタンスですただし一度に 1 つのノードだけでアクティブになることができますクライアント アプリケーションはアクティブなクラスター ノードが所有している仮想ネットワーク名および仮想 IP アドレスに接続します

FCI をインストールした各ノードは同一の構成を持ち同一の SQL Server バイナリを含んでいますWSFC クラスター サービスはアクティブなインスタンス上にある Windows レジストリのエントリからFCI をインストールした各ノードに関連のある変更をレプリケートしますFCI がインストールされている各ノードはインスタンスとそのリソースの所有者の候補として指定されフェールオーバーの優先順位に従って所有者となります

共有対称ストレージ ボリュームに格納されているデータベース ファイルはリソースとして WSFC クラスターに登録され現在 FCI をホストしているノードによって所有されます

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 24

詳細については「AlwaysOn フェールオーバー クラスター インスタン ス」(httpmsdnmicrosoftcomja-jplibraryms189134(SQL110)aspx) を参照してください

FCI のフェールオーバー プロセス依存しているクラスター リソースで障害が発生した場合AlwaysOn フェールオーバー クラスター インスタンスはWSFC クラスター サービスと連携してフェールオーバーを行いますそのプロセスの概要を以下に示します

1) 再起動が指示されますWSFC の定期的なチェックまたは SQL Server のフェールオーバー ポリシー構成によってエラー状態が示されます既定では他のノードへのフェールオーバーを開始する前にサービスの再起動が試みられます再起動の試みがタイムアウトするようであればリソースの障害が発生しています

2) フェールオーバーが指示されますフェールオーバー ポリシー チェックによってノードのフェールオーバーが必要であることが示されます

3) SQL Server サービスが停止されますSQL Server サービスが現在実行されている場合はその正常なシャットダウンが試みられます

4) WSFC クラスター リソースが転送されますSQL Server クラスター リソース グループの所有権とそれが依存するネットワークおよび共有ストレージ リソースがFCI で次に優先されるノード所有者に転送されます

5) 新しいノードで SQL Server が起動されますSQL Server インスタンスは通常のスタートアップ プロシージャで起動されます所定のタイムアウト時間内にオンラインに戻らない場合クラスター サービスはこの新しいノード上のリソースをエラー状態と見なします

6) 新しいノードでユーザー データベースが復旧されます各ユーザー データベースは復旧モードに設定されます復旧モードではトランザクション ログの再実行操作が適用されコミットされていなかったトランザクションがロールバックされます

FCI の強化以前のバージョンの SQL Server でも FCI のインストール オプションは用意されていましたがSQL Server 2012 では次のような機能強化によって可用性の堅牢性と利便性が向上しました

マルチサブネット クラスタリングSQL Server 2012 では複数のサブネットに存在する WSFC クラスター ノードがサポートされていますWSFC クラスター ノードに存在する SQL Server インスタンスはいずれかのネットワーク インターフェイスが使用可能であれば起動できますこれはクラスター リソースの OR 依存関係と呼ばれます

以前のバージョンの SQL Server の場合SQL Server サービスを起動またはフェールオーバーするにはすべてのネットワーク インターフェイスが機能しそれらがすべて同じサブネットまたは VLAN に存在している必要がありました

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 25

注 マルチサブネット クラスタリングではクラスター ノード間のストレージ レベルのレプリケーションが自動的には有効になりませんマルチサブネットの FCI ソリューションでクラスター ノード間でデータのレプリケーションを行いストレージ フェールオーバーを調整するためにはサード パーティから提供される SAN ベースのソリューションを利用する必要があります

詳細については「SQL Server 2012 AlwaysOn マルチサイト フェールオーバー クラスター インスタンス」(httpsqlcatcomsqlcatbwhitepapersarchive20111222sql-server-2012-alwayson_3a00_-multisite-failover-cluster-instanceaspx) を参照してください

信頼性の高いエラー検出WSFC クラスター サービスではノードの各 SQL Server 2012 FCI に対してそれぞれ専用の管理者接続が維持されますこの接続では特殊なシステム ストアド プロシージャ sp_server_diagnostics を定期的に呼び出すことでシステムの正常性診断に役立つ豊富な情報を含む配列が返されます

SQL Server 2012 よりも前のバージョンではFCI の主な正常性検出メカニズムは単純な一方向のポーリング プロセスとして実装されていましたこのプロセスではWSFC クラスター サービスがインスタンスへの新しい SQL クライアント接続を定期的に作成しサーバー名を照会した後で接続を切断していました何かの理由で接続が失敗するかクエリがタイムアウトした場合フェールオーバーが開始されますが診断情報はほとんど提供されません

詳細については「sql_server_diagnostics」(httpmsdnmicrosoftcomja-jplibraryff878233(SQL110)aspx) を参照してください

現在ではFCI ストレージが次のように幅広い状況でサポートされています

向上したマウント ポイント サポートSQL Server のセットアップ時にクラスター ディスクのマウント ポイント設定が認識されるようになりました指定されたクラスター ディスクとそれにマウントされているすべてのディスクがセットアップ時に SQL Server リソースの依存関係に自動的に追加されます

ローカル ストレージの tempdbFCI ではローカルの非共有ストレージ (ローカル ソリッド ステート ドライブなど) に tempdb を配置できるようになったため共有 SAN での IO 動作の負荷を大幅に軽減できる可能性があります

SQL Server 2012 よりも前のバージョンの FCI ではtempdb が他のシステム データベースと共にフェールオーバーされる対称共有ストレージ ボリュームに配置される必要がありました

注 tempdb の場所はmaster データベースに格納されますこのデータベースはフェールオーバー時にノード間で移動されますtempdb は所有者候補となっているすべてのノード上で有効で対称的なファイル パス (ドライブフォルダーおよび権限) に配置されている必要がありますそうなっていない場合SQL Server サービスが一部のノードでは起動されません

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 26

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 27

データベースの可用性インフラストラクチャ レベルおよび SQL Server インスタンス レベルのコンポーネントで提供されている高可用性機能は互いに連係してホストされているデータベースを暗黙的に保護しますAlwaysOn ソリューションではデータベースのデータおよびデータ層アプリケーションを明示的に保護するために一連のオプションが追加で用意されています

AlwaysOn 可用性グループ可用性グループは1 つの SQL Server インスタンスから同じ WSFC クラスター内の別のインスタンスへと同時にフェールオーバーされるユーザー データベースのセットですクライアント アプリケーションは可用性グループ リスナーと呼ばれる WSFC 仮想ネットワーク名を通じて可用性グループのデータベースに接続できますこうすることで基になる SQL Server インスタンスが抽象化されます

AlwaysOn 可用性グループは正常性監視フェールオーバーの調整およびサーバー接続を Windows Server フェールオーバー クラスタリングに依存していますWSFC クラスター ノード上の SQL Server インスタンスでAlwaysOn サポートを有効にする必要がありますただしそのインスタンスが FCI である必要はなく対称共有ストレージを使用する必要もありません

詳細については「AlwaysOn 可用性グループの概要 」(httpmsdnmicrosoftcomja-jplibraryff877884(SQL110)aspx) を参照してください

可用性レプリカとロール可用性グループの各 SQL Server インスタンスは可用性グループのユーザー データベースのコピーを保持している可用性レプリカをホストしますSQL Server インスタンスは特定の可用性グループの可用性レプリカを 1 つだけホストすることができますが複数の可用性グループを同じインスタンスに置くことは可能ですSQL Server インスタンスは専用の (非共有) ストレージ ボリュームを持つ必要があります

可用性レプリカの 1 つがプライマリ レプリカの役割を果たしますこれは可用性グループ データベースのマスター コピーとして指定されていて読み取り書き込み操作を行うことができます

可用性グループには読み取り専用の可用性レプリカを最大 4 つまで追加で含めることができますこれらは個別にセカンダリ レプリカの役割を果たします

可用性レプリカの同期可用性グループの各データベースの内容はSQL Server によるログ ベースのデータ移動メカニズムを通じてプライマリ レプリカから各セカンダリ レプリカに同期されますそのため可用性グループのすべてのデータベースは完全復旧モデルに設定する必要があります

セカンダリ レプリカはプライマリ レプリカのデータベースとトランザクション ログの完全なバックアップと復元によって初期化されますプライマリ レプリカで新しいトランザクションがコミットされるとトランザクション ログの対応する部分がキャッシュされ

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 28

キューに入れられてネットワーク経由でセカンダリ レプリカ ノード上のデータベース ミラーリング エンドポイントに送信されます

この方法によりプライマリ レプリカのトランザクション ログの新しいエントリが各セカンダリ レプリカのトランザクション ログに追加されます各セカンダリ レプリカはログ シーケンス番号 (LSN) をプライマリ レプリカに定期的に送り返しトランザクション ログのどのくらいの量がリモート ディスクに書き込まれフラッシュされたかを示します

注 各可用性レプリカはそれぞれ独自に独立したトランザクション ログ再実行スレッドのセットを保持していますこれは可用性レプリカの同期プロセスには含まれませんセカンダリ レプリカ上ではログ再実行プロセスによって遅延時間が生じるためユーザーはそれをデータの待機時間として感じる場合があります

プライマリまたはセカンダリの役割を果たす他に各可用性レプリカには可用性モードもありますこのモードは次のようにCOMMIT TRAN ステートメントの実行時にトランザクション ログの書き込みの連係を制御します

同期コミット モードすべての同期コミット セカンダリ レプリカからそれぞれ独自のトランザクション ログの書き込み完了 (LSN 以降) が通知されるまでプライマリ レプリカはそのトランザクションをコミットしません可用性グループでは最大で 2 つの同期コミット セカンダリ レプリカを使用できます

同期コミット モードではプライマリ レプリカ データベースでトランザクションの遅延が生じますがコミットされたトランザクションに対するセカンダリ レプリカでのデータ損失を確実に防ぐことができます

非同期コミット モードプライマリ レプリカはローカル トランザクション ログの書き込み後にトランザクションをコミットしますが非同期コミット セカンダリ レプリカからトランザクション ログの書き込み完了通知を待つことはしません可用性グループでは最大で 4 つの非同期コミット セカンダリ レプリカを使用できますただし両方の種類を合わせて使用できるセカンダリ レプリカの合計は最大 4 つです

非同期コミット モードではプライマリ レプリカ データベースで生じるトランザクションの遅延が最小になりますがセカンダリ レプリカでのトランザクション ログが遅れる場合があるため一部のデータが失われる可能性があります

詳細については「可用性モード」(httpmsdnmicrosoftcomja-jplibraryff877931(SQL110)aspx) を参照してください

可用性レプリカ間のデータ フローの全体的な正常性は各レプリカの同期状態によって示されますセカンダリ レプリカにフェールオーバーしたときに同期状態が 同期済み または 同期中 になっていなければほとんどの場合はデータ損失が発生することになります

各セカンダリ レプリカの同期ストリームにはセッション タイムアウト プロパティがあります同期コミット モードに構成されているセカンダリ レプリカがセッション タイムアウトでエラーになると内部的には一時的に非同期としてマークされますこれはセカンダ

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 29

リ レプリカのエラーがプライマリ レプリカでのトランザクション ログの書き込みに影響しないようにするためですそのセカンダリ レプリカが正常に戻ってプライマリ レプリカの状態に追いつくと自動的に通常の同期コミット モード動作に戻されます

可用性グループのフェールオーバー可用性グループとそれに対応する仮想ネットワーク名はWSFC クラスターのリソースとして登録されます可用性グループはプライマリ レプリカの正常性とフェールオーバー ポリシーに基づいて可用性レプリカのレベルでフェールオーバーを行います

可用性グループのフェールオーバー ポリシーではsp_server_diagnostics システム ストアド プロシージャと FailureConditionLevel プロパティを使用して可用性グループに対して許容されるエラーの重大度のレベルを示しますこの同じメカニズムがFCI のフェールオーバー ポリシーにも使用されます

フェールオーバーが発生した場合は共有物理リソースの所有権を他のノードに移す代わりにWSFC を利用して他の SQL Server インスタンス上でセカンダリ レプリカを再構成しプライマリ レプリカの役割を引き継がせますその後可用性グループの仮想ネットワーク名リソースがそのインスタンスに転送されます関連する可用性レプリカへのすべてのクライアント接続がリセットされます

レプリカの現在の正常性同期状態および可用性モードに基づいて各レプリカには複合的な フェールオーバーの準備 状態が定義されますこの状態の値はデータ損失の可能性を示していますレプリカの正常性情報はAlwaysOn ダッシュボードまたは sysdm_hadr_availability_replica_states システム ビューで確認できます

各可用性レプリカにはフェールオーバー モードも構成されていますこのモードはフェールオーバーが指示された場合にレプリカの動作を制御します

自動フェールオーバー (データ損失なし)セカンダリ レプリカのトランザクション ログが既に書き込まれ同期されているのですべての AlwaysOn 構成の中でフェールオーバー時間が最短になりますプライマリ レプリカ上の開かれているトランザクションはロールバックされプライマリ レプリカの役割はユーザーによる操作なしでセカンダリ レプリカに転送されます

この場合プライマリ レプリカとセカンダリ レプリカの両方を自動フェールオーバー モードに設定し両方の可用性モードを同期コミットに設定する必要がありますレプリカ間の同期状態は同期済み である必要がありますまたWSFC クラスターは正常なクォーラム状態になっている必要があります

自動フェールオーバーはプライマリ レプリカまたはセカンダリ レプリカが FCI 上にある場合はサポートされませんこれは可用性グループと FCI のフェールオーバー間で競合状態が発生することを防ぐためです

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 30

手動フェールオーバーこの場合管理者はプライマリ レプリカの状態を評価してセカンダリ レプリカにフェールオーバーするかどうかを慎重に判断できます

可用性モードと同期状態に応じて次のような選択が可能です

o 計画的な手動フェールオーバー (データ損失なし)この種類のフェールオーバーを実行できるのはプライマリ レプリカとセカンダリ レプリカの両方が正常で同期済み 状態である場合だけですこれは機能的には自動フェールオーバーと同じです

o 強制手動フェールオーバー (データ損失の可能性を許容)これは対象のセカンダリ レプリカの可用性モードが非同期コミットである場合またはプライマリ レプリカに同期されない場合に使用できる唯一のフェールオーバー形式です

警告 このフェールオーバー オプションは災害復旧の状況に限って使用する必要がありますプライマリ レプリカが正常で使用可能である場合は関連する各レプリカの可用性モードを同期コミットに変更し計画的な手動フェールオーバーを実行してください

詳細については「可用性グループの強制手動フェールオーバーの実行」(httpmsdnmicrosoftcomja-jplibraryff877957(SQL110)aspx) を参照してください

フェールオーバー対象のプライマリ レプリカまたはセカンダリ レプリカが次の条件のいずれかに該当する場合は手動フェールオーバーを実行する必要があります

フェールオーバー モードが手動に設定されている 可用性モードが非同期コミットに設定されている レプリカが FCI 上にある

詳細については「フェールオーバーとフェールオーバー モード (AlwaysOn 可用性グルー プ ) 」(httpmsdnmicrosoftcomja-jplibraryhh213151(SQL110)aspx) を参照してください

注 フェールオーバー後新しいプライマリ レプリカが同期コミット モードに設定されていない場合セカンダリ レプリカの同期状態は 中断状態 になりますプライマリ レプリカが同期コミット モードに設定されるまでデータはセカンダリ レプリカに移動されません

可用性グループ リスナー可用性グループ リスナーはクライアントが可用性グループ内のデータベースにアクセスするために使用できる WSFC 仮想ネットワーク名 (VNN) ですVNN クラスター リソースはプライマリ レプリカをホストしている SQL Server インスタンスによって所有されます

仮想ネットワーク名は可用性グループ リスナーの作成時または構成の変更時にのみDNS に登録されます可用性グループ リスナーで定義されているすべての仮想 IP アドレスは同じ仮想ネットワーク名で DNS に登録されます

可用性グループ リスナーを使用する場合クライアント接続要求ではサーバーとして仮想ネットワーク名を指定してから可用性グループ内のデータベース名を指定する必要があり

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 31

ます既定ではこれによってプライマリ レプリカをホストしている SQL Server インスタンスに接続されます

実行時にはクライアントはローカルの DNS リゾルバーを使用して仮想ネットワーク名にマップされている IP アドレスと TCP ポートの一覧を取得しますクライアントは各 IP アドレスへの接続を成功するか接続タイムアウトに達するまで試し続けますMultiSubnetFailover パラメーターが true に設定されているとクライアントは複数の接続を同時に試行するのでクライアント フェールオーバーが大幅に速くなります

フェールオーバーが行われるとサーバー上でクライアント接続がリセットされ可用性グループ リスナーの所有権はプライマリ レプリカの役割と共に新しい SQL Server インスタンスに移動しVNN エンドポイントは新しいインスタンスの仮想 IP アドレスと TCP ポートにバインドされます

詳細については「可用性グループ リスナークライアント接続およびアプリケーションのフェールオーバー」(httpmsdnmicrosoftcomja-jplibraryhh213417(SQL110)aspx) を参照してください

アプリケーションの目的によるフィルター処理可用性グループ リスナーを使用して接続している場合アプリケーションは接続の目的がデータの読み取りと書き込みの両方なのか読み取り専用操作を実行するだけなのかを指定できます指定しない場合クライアントのアプリケーションの目的は既定で読み取りと書き込みになります

各可用性レプリカのプライマリ ロールとセカンダリ ロールについてはクライアントのアプリケーションの目的に対する接続レベルのフィルターとして接続アクセス プロパティも指定できます既定ではアプリケーションの目的と接続アクセスとの組み合わせが無効であると接続が拒否されますSQL Server は次のルールを使用してクライアントの接続要求を振り分ける必要があります

可用性レプリカがプライマリ ロールであり接続アクセスが次のいずれかである場合

すべてのアプリケーションの目的を許可するアプリケーションの目的でクライアント接続をフィルター処理しません

明示的な読み取り書き込みの目的だけを許可するクライアントが読み取り専用を指定している場合接続を拒否します

可用性レプリカがセカンダリ ロールであり接続アクセスが次のいずれかである場合

接続を許可しないすべての接続を拒否しますレプリカは災害復旧だけに使用されます

すべてのアプリケーションの目的を許可するアプリケーションの目的でクライアント接続をフィルター処理しません

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 32

読み取り専用の目的を許可するクライアントが読み取り専用を指定していない場合接続を拒否します

詳細については「可用性レプリカでの読み取り専用アクセスの構成」(httpmsdnmicrosoftcomja-jplibraryhh213002(SQL110)aspx) を参照してください

アプリケーションの目的の読み取り専用ルーティングAlwaysOn 可用性グループの特に優れた点はスタンバイ ハードウェア インフラストラクチャを災害復旧以外の目的に利用できることです1 つ以上のセカンダリ レプリカを読み取り専用でアクセスできるように構成するとプライマリ レプリカからかなりの量のワークロードを軽減できます

読み取り専用セカンダリ レプリカに回すように簡単に調整できるワークロードはレポートデータベース バックアップデータベース整合性チェックインデックスの断片化の分析データ パイプライン抽出運用サポート操作サポートアドホック クエリなどです

各可用性レプリカではSQL Server インスタンスのエンドポイントについて順次的な読み取り専用ルーティング リストを構成することもできますこのリストはレプリカがプライマリ ロールであるときに適用されますこのリストが存在する場合アプリケーションの目的が読み取り専用と指定されているクライアント接続要求はそのリスト内に記載されていて前述のアプリケーションの目的フィルターに適合する最初のセカンダリ レプリカにリダイレクトされます

注 読み取り専用ルーティングによるリダイレクトはプライマリ レプリカにバインドされている可用性グループ リスナーによって実行されますプライマリ レプリカがオフラインの場合クライアントのリダイレクトは機能しません

詳細については「可用性グループの読み取り専用ルーティングの構成 (SQL Server) 」(httpmsdnmicrosoftcomja-jplibraryhh710054(SQL110)aspx) を参照してください

可用性の向上 ndash データベースSQL Server 2012 ではデータベースの構成と機能に関してさまざまな点が強化されています

以下の機能は復旧時間の短縮に役立ちます

予測可能な復旧時間データベースごとにターゲット復旧時間の長さを設定することでバックグラウンドで実行される CHECKPOINT コマンドのスケジュールを制御できますこのコマンドは間接的なチェックポイントとして再起動時またはフェールオーバー時にトランザクション ログの復旧に必要となる時間の推定値に基づいて定期的に実行されますそれによってチェックポイントごとに IO 操作がほぼ均等に配分され復旧時間 (RTO) の予測可能性が高まります

SQL Server 2012 よりも前のバージョンではバックグラウンドの CHECKPOINT コマンドがトランザクションの量や負荷とは無関係に一定間隔で実行されていたので復旧時間を予測することはできませんでした

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 33

詳細については「データベース チェックポイント」(httpmsdnmicrosoftcomja-jplibraryms189573(SQL110)aspx) を参照してください

以下の向上点は計画的なダウンタイムが必要になる一般的な状況を減らすのに役立ちます

LOB 列のオンライン インデックス操作varbinary(max)varchar(max)nvarchar(max)または XML データ型の列が含まれているインデックスをオンラインで再構築または再構成できるようになりました

新しい NOT NULL 列のオンライン スキーマ修正既定値を使用して新しい NOT NULL 列を SQL Server 2012 データベース テーブルに追加する場合システム メタデータの更新にはスキーマ ロックだけが必要ですALTER TABLE ステートメントですべての行にデータを設定する必要はありません

いずれかの行で実際に変更またはインデックスの再作成が行われない限り列の既定値は物理的に格納されませんクエリでは列に実際の値が存在しない場合メタデータから既定値を返します

ストレージのサポート強化の例として次のようなものがあります

ページの自動修復ある種のストレージ サブシステム エラーが発生するとデータ ページが破損し読み取り不可能になる場合がありますAlwaysOn 可用性グループではそのような種類のエラーを検出し自動的に復旧できます復旧のために影響を受けたデータ ページの最新のコピーが別の可用性レプリカから非同期で取得され適用されます

以前のバージョンでもデータベース ミラーリングに同様の機能がありましたが新しい機能では複数のレプリカをサポートできるようになっています

詳細については「ページの自動修復」(httpmsdnmicrosoftcomja-jplibrarybb677167(SQL110)aspx) を参照してください

クライアント接続の推奨事項クライアント アプリケーションが Microsoft SQL Server 2012 AlwaysOn テクノロジの利点を十分に活用できるようにするには次のガイドラインに従います

AlwaysOn 対応のクライアント ライブラリ表形式のデータ ストリーム (TDS) プロトコル Version 74 以降をサポートしているクライアント ライブラリを使用しますこれによってAlwaysOn の機能に対応した適切な機能がクライアント側でも提供されますクライアント ライブラリの例としてはData Provider for SQL Server in NET Framework 402SQL Native Client 110 などがあります

接続プロバイダー プロパティ MultiSubnetFailover = True接続文字列にこのキーワードを使用することでクライアント ライブラリでは(複数のサブネットに IP アドレスを持つ) 可用性グループ リスナーまたは FCI に登録されているすべての IP アドレスに同時に接

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 34

続できるようになります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 35

接続プロバイダー プロパティ ApplicationIntent = ReadOnly必要に応じてプライマリ レプリカの読み取り専用ワークロードをセカンダリ レプリカに移管することができます

レガシ クライアントの接続タイムアウトレガシ クライアントのデータベース ライブラリには並列で接続を試行する機能が実装されていないため複数の IP アドレスがある場合にはTCP タイムアウトに達するか正常に接続できるまで1 つずつ順番に接続を試行します

複数の IP アドレスが存在する場合はタイムアウトと再試行が逐次的に繰り返される可能性に備えてレガシ クライアントの接続タイムアウトを調整する必要があります値は少なくとも 15 秒 + 21 秒 times セカンダリ レプリカ数にします

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 36

結論このホワイト ペーパーではSQL Server 2012 の AlwaysOn による高可用性災害復旧ソリューションを使用し予定されたダウンタイムや予定外のダウンタイムを短縮したりアプリケーションの可用性を最大限に高めたりデータを保護したりする方法について基本的なコンテキストを確立しました

高可用性データベース環境の計画管理測定に関連したビジネス上の目的と課題は多くの場合目標復旧時点 (RPO) と目標復旧時間 (RTO) という形で数量化して表すことができます

SQL Server 2012 AlwaysOn は組織が高可用性や災害復旧に関する一般的な状況に対処するための機能をRPO と RTO を適切に達成できることを念頭にインフラストラクチャ レベルデータ プラットフォーム レベルデータベース レベルのそれぞれで提供します

詳細情報

httpwwwmicrosoftcomja-jpsqlserver2012defaultaspx SQL Server Web サイト

httptechnetmicrosoftcomja-jpsqlserver SQL Server TechCenter

httpmsdnmicrosoftcomja-jpsqlserver SQL Server 開発者向け技術情報

このホワイト ペーパーはお役に立ちましたか フィードバックをお寄せください1 (役に立たなかった) ~ 5 (非常に役に立った) の 5 段階で評価してくださいまたその評価の理由もお知らせください以下に例を示します

評価が高い 例が適切図がわかりやすい説明が明快といったことが理由である 評価が低い 例が少ない図がわかりにくい説明があいまいといったことが理由で

ある

このようなフィードバックをお寄せいただくと今後のホワイト ペーパーの品質向上につながります

フィードバックの送信

loz Version 112012 年 2 月 21 日

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 37

  • 高可用性と災害復旧の概念
    • 高可用性について
      • 予定されたダウンタイムと予定外のダウンタイム
      • 段階的な可用性
        • ダウンタイムの定量化
          • 復旧目標
          • ROI または機会費用の正当化
          • 可用性の健全度の監視
          • 災害復旧の計画
            • 概要 Microsoft SQL Server 2012 での高可用性
              • SQL Server AlwaysOn
              • 計画的なダウンタイムの大幅な削減
              • アイドル状態のハードウェアをなくしてコスト効率とパフォーマンスを向上
              • 簡単な配置と管理
              • RPO と RTO の機能比較
                  • SQL Server AlwaysOn の保護レイヤー
                    • インフラストラクチャの可用性
                      • Windows オペレーティング システム
                        • Windows Server Core インストール オプション
                        • プライベート クラウド用の SQL Server の最適化
                          • Windows Server フェールオーバー クラスタリング
                            • WSFC ストレージ構成
                            • WSFC リソースの正常性の検出とフェールオーバー
                              • WSFC のクラスター検証ウィザード
                              • WSFC クォーラム モードと投票の構成
                                • クォーラムによるクラスター状態検出
                                • クォーラム モード
                                • 投票ノードと非投票ノード
                                • クォーラム投票に推奨される調整
                                  • WSFC の強制クォーラムによる災害復旧
                                    • SQL Server インスタンス レベルでの保護
                                      • 可用性の向上 ndash SQL Server インスタンス
                                      • AlwaysOn フェールオーバー クラスター インスタンス
                                        • FCI のフェールオーバー プロセス
                                        • FCI の強化
                                            • データベースの可用性
                                              • AlwaysOn 可用性グループ
                                                • 可用性レプリカとロール
                                                • 可用性レプリカの同期
                                                  • 可用性グループのフェールオーバー
                                                  • 可用性グループ リスナー
                                                    • アプリケーションの目的によるフィルター処理
                                                    • アプリケーションの目的の読み取り専用ルーティング
                                                      • 可用性の向上 ndash データベース
                                                        • クライアント接続の推奨事項
                                                          • 結論
Page 12: 高可用性と災害復旧の概念download.microsoft.com/download/6/B/E/6BE0C3F3-2991-4766... · Web view高可用性と災害復旧のソリューションのために最適なデータベース

ローリング アップグレードと修正プログラムAlwaysOn 機能はインスタンスのローリング アップグレードと修正プログラムの適用を容易にしますこれによりアプリケーションのダウンタイムが大幅に削減されます

Hyper-V 上の SQL ServerHyper-V 環境でホストされている SQL Server インスタンスではライブ マイグレーションの利点を活用することでホスト間の仮想マシンの移行をダウンタイムなしで実行できます管理者はアプリケーションに影響を与えずにホスト上でメンテナンス操作を実行できます

アイドル状態のハードウェアをなくしてコスト効率とパフォーマンスを向上典型的な高可用性ソリューションでは高コストで冗長なパッシブ サーバーが配置されますAlwaysOn 可用性グループを使用するとパッシブまたはアイドルな状態のセカンダリ データベース レプリカを読み取り専用のワークロード (SQL Server Reporting Services のレポート クエリバックアップ操作など) に活用できますプライマリとセカンダリの両方のデータベース レプリカを同時に使用できるためサーバー ハードウェア間のリソースのバランスが良くなりすべてのワークロードのパフォーマンスが向上します

簡単な配置と管理構成ウィザードWindows PowerShell コマンド ライン インターフェイスのサポートダッシュボード動的管理ビュー (DMV)ポリシー ベースの管理System Center 統合などの機能によって可用性グループの配置と管理が簡単になります

RPO と RTO の機能比較目標復旧時点 (RPO) と目標復旧時間 (RTO) のビジネス目標は高可用性災害復旧ソリューションのために使用する SQL Server テクノロジを選択する際に重要な判断材料となります次の表はさまざまなソリューションで実現される結果を大まかに比較したものです

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 7

高可用性と災害復旧のSQL Server ソリューション

データ損失の可能性 (RPO)

可能な復旧時間 (RTO)

自動フェールオーバー

読み取り可能な

セカンダリ(1)

AlwaysOn 可用性グループ - 同期コミット ゼロ 数秒 (4) 0 - 2

AlwaysOn 可用性グループ - 非同期コミット 数秒 数分 times 0 - 4

AlwaysOn フェールオーバー クラスター インスタンス

該当せず(5) 数秒~ 数分

該当せず

データベース ミラーリング(2) - 高い安全性 (同期 + 監視)

ゼロ 数秒 該当せず

データベース ミラーリング(2) - 高パフォーマンス (非同期)

数秒(6) 数分(6) times 該当せず

ログ配布 数分(6) 数分~ 数時間(6)

times 復元中はなし

バックアップコピー復元(3) 数時間(6) 数時間~ 数日(6)

times 復元中はなし

(1) AlwaysOn 可用性グループで使用できるセカンダリ レプリカは種類に関係なく最大 4 つです(2) この機能は将来のバージョンの Microsoft SQL Server では削除される予定です代わりに AlwaysOn 可用性グループを使用

してください(3) バックアップコピー復元は障害復旧には適していますが高可用性には適していません(4) 可用性グループの自動フェールオーバーはフェールオーバー クラスター インスタンスとの間ではサポートされていま

せん(5) FCI 自体にはデータ保護機能はありませんデータ損失はストレージ システムの実装に依存します(6) ワークロードデータ量およびフェールオーバーの手順に大きく依存します

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 8

SQL Server AlwaysOn の保護レイヤーSQL Server AlwaysOn ソリューションではインフラストラクチャとアプリケーション コンポーネントのいくつかの論理レイヤーおよび物理レイヤーにまたがってフォールト トレランスと災害復旧を実現できます従来はさまざまな関係者と役割ごとに業務と責任を振り分けそれぞれが主に自分のソリューションのレイヤー部分だけに関心を持つことが一般的でした

このセクションではこれらのレイヤーのそれぞれについて詳細に説明しデザインに関する議論や実装についての意思決定に役立つ論点やガイダンスを提示します

SQL Server AlwaysOn ソリューションをうまく利用するには以下のレイヤーについて理解しそれぞれを協調させる必要があります

インフラストラクチャ レベルサーバー レベルのフォールト トレランスとノード内のネットワーク通信が含まれますWindows Server フェールオーバー クラスタリング (WSFC) 機能を使用して稼働状態の監視とフェールオーバーの調整を行います

SQL Server インスタンス レベルSQL Server AlwaysOn フェールオーバー クラスター インスタンス (FCI) はWSFC クラスター内の複数のサーバー ノードにまたがってインストールされる SQL Server インスタンスであり各サーバー ノードへのフェールオーバーが可能ですFCI をホストするノードは堅牢な対称型共有ストレージ (SAN または SMB) に接続されます

データベース レベル可用性グループは共にフェールオーバーされるユーザー データベースのセットです可用性グループは1 つのプライマリ レプリカと最大 4 つのセカンダリ レプリカで構成されます各レプリカはWSFC クラスターの別々のノードにある SQL Server インスタンス (FCI または非 FCI) によってホストされます

クライアント接続データベース クライアント アプリケーションは指定した SQL Server インスタンス ネットワーク名に直接接続できますまたは可用性グループ リスナーにバインドされている仮想ネットワーク名 (VNN) に接続することもできますVNN はWSFC クラスターおよび可用性グループのトポロジを抽象化するものであり接続要求を適切な SQL Server インスタンスとデータベース レプリカに論理的にリダイレクトします

代表的な AlwaysOn ソリューションの論理トポロジは次の図のようになります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 9

インフラストラクチャの可用性AlwaysOn 可用性グループと AlwaysOn フェールオーバー クラスター インスタンスのどちらもWindows Server オペレーティング システムと WSFC をプラットフォーム テクノロジとして利用します今まで以上にMicrosoft SQL Server データベース管理者はこれらのテクノロジについて十分に理解することが必要です

Windows オペレーティング システムSQL Server は基礎的なインフラストラクチャとネットワークストレージセキュリティ更新プログラムおよび監視のサービスを Windows プラットフォームに依存しています

SQL Server 2012 の各エディションはWindows Server 2008 R2 オペレーティング システムの対応するエディション (Windows Server 2008 R2 Standard オペレーティング システムWindows Server 2008 R2 Enterprise オペレーティング システムWindows Server 2008 R2 Datacenter オペレーティング システムなど) の機能や能力をさらに進歩させて構築されています

詳細については「SQL Server 2012 のインストールに必要なハードウェアおよびソフトウェ ア」(httpmsdnmicrosoftcomja-jplibraryms143506(SQL110)aspx) を参照してください

Windows Server Core インストール オプションSQL Server 2012 では高可用性のための主要な機能の 1 つとしてWindows Server 2008 以降で Server Core インストール オプションによる配置をサポートしていますServer Core インストール オプションでは制限された機能と非常に限定的な GUI アプリケーション サポートで特定のサーバー ロールを実行するための最低限の環境が提供されます既定では必要なサービスとコマンド プロンプト環境のみが有効です

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 10

この操作モードではオペレーティング システムへの攻撃の危険性とシステム オーバーヘッドが低下し継続的なメンテナンスサービス修正プログラムなどの要件が大幅に削減されます

SQL Server 2012 を Windows Server Core に配置する場合の主な注意点はSQL Server およびオペレーティング システムのすべての配置構成管理およびメンテナンスをWindows PowerShell などのスクリプト環境やコマンド ラインまたはリモート ツールを使用して行う必要があることです

プライベート クラウド用の SQL Server の最適化高可用性と災害復旧はプライベート クラウド環境ではさらに重要になってきていますプライベート クラウドに SQL Server を配置すればコンピューターネットワークおよびストレージのリソースが効率的に使用され物理的な場所や資本と運営費用の両方の削減に役立ちます配置の統合リソースの効率的なスケーリングオンデマンドでのリソースの配置が容易になり制御の自由度が失われることもありません

SQL Server ではHyper-V のホストとゲストの両方のシステムに対して Windows Server フェールオーバー クラスタリングをサポートするほかライブ マイグレーションもサポートしていますこれは意識されるほどのダウンタイムを生じることなくホスト間で仮想マシンを移動できる機能ですライブ マイグレーションはゲスト クラスタリングとも協調して動作します

詳細については「プライベート クラウド コンピューティング - プライベート クラウド用の SQL Server の最適化 」(httpwwwmicrosoftcomSqlServerPrivateCloud) を参照してください

Windows Server フェールオーバー クラスタリングWindows Server フェールオーバー クラスタリング (WSFC) はMicrosoft SQL Server などのサーバー アプリケーションに対して高可用性と災害復旧をサポートするインフラストラクチャ機能を提供します

WSFC クラスター ノードまたはサービスに障害が発生するとそのノードでホストされていたサービスまたはリソースは自動的にまたは手動で他の可用性ノードに転送されますこのプロセスをフェールオーバーと呼びますAlwaysOn ソリューションではこのプロセスが FCI と可用性グループの両方に適用されます

WSFC クラスター内の各ノードは連携して次のような機能を提供します

分散メタデータと通知WSFC サービスとホストされるアプリケーション メタデータはクラスター内の各ノードで維持されますこのメタデータにはホストされるアプリケーションの設定に加えWSFC の構成と状態が含まれます1 つのノードでのメタデータまたは状態の変更はクラスター内の他のノードに自動的に反映されます

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 11

リソース管理クラスター内の各ノードは直接アタッチされたストレージ (DAS)ネットワーク インターフェイス共有ディスク ストレージへのアクセスなど物理的リソースを提供する場合がありますSQL Server などホストされるアプリケーション自体もクラスター リソースとして登録されますまた他のリソースに対するスタートアップと正常性にかかわる依存関係を構成できます

正常性の監視ノード間の正常性およびプライマリ ノードの正常性はハートビート ネットワーク通信とリソースの監視を組み合わせることで検出されますクラスターの全体的な正常性状態はクラスター内のノードのクォーラムの投票によって決定されます

フェールオーバーの調整各リソースはプライマリ ノードでホストされるように構成されそれぞれ自動的にまたは手動で 1 つ以上のセカンダリ ノードに転送されます正常性ベースのフェールオーバー ポリシーによってノード間でのリソース所有権の自動転送が制御されますフェールオーバーが発生すると適切に対応できるように各ノードおよびホストされているアプリケーションに通知されます

詳細については「Windows Server | フェールオーバー クラスタリングとノード バランシン グ」(httpwwwmicrosoftcomwindowsserver2008enusfailover-clustering-mainaspx) を参照してください

注 データベース管理者が WSFC クラスターおよびクォーラム管理の内部動作を理解しておくことが非常に重要になりましたAlwaysOn の正常性の監視管理および障害復旧の手順はすべてが本質的に WSFC 構成と関連しています

WSFC ストレージ構成Windows Server フェールオーバー クラスタリングでは接続されているストレージ デバイスディスク ボリュームおよびファイル システムの管理をクラスター内の各ノードに依存していますWSFC はストレージ サブシステムが非常に堅牢であると想定しているためノードに接続されたストレージ デバイスが使用できない場合はクラスター ノードが障害状態であると見なします

書き込みベースの操作ではディスク ボリュームは SCSI-3 の永続的な予約を使用して一度に 1 つのクラスター ノードに論理的に接続されますノードで障害が発生した場合にはストレージ サブシステムの機能と構成に応じてディスク ボリュームの論理的所有権をクラスター内の別のノードに移すことができます

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 12

SQL Server AlwaysOn ソリューションでは次のような WSFC ストレージ構成の組み合わせを利用しその制限も受けます

直接接続とリモートストレージ デバイスはサーバーに物理的に直接接続されるかまたはネットワークやホスト バス アダプター (HBA) を介してリモートのストレージ デバイスを使用しますリモート ストレージのテクノロジにはiSCSI やファイバー チャネルなどのストレージ エリア ネットワーク (SAN) ベースのソリューションとサーバー メッセージ ブロック (SMB) というファイル共有ベースのソリューションがあります

対称と非対称ストレージ デバイスの論理ディスク ボリューム構成とファイル パスがクラスターの各ノードでまったく同じである場合それらのストレージ デバイスは対称的であると見なされます基になるディスク ボリュームの物理的な実装と容量は異なっていてもかまいません

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 13

専用と共有専用ストレージは使用するために予約されクラスター内の 1 つのノードに割り当てられます共有ストレージはクラスターの複数のノードからアクセスできます共有ストレージ デバイスが SCSI-3 プロトコルに準拠していればそれらの制御と所有権をノード間で移動させることができますWSFC ではファイル共有のためにクラスター共有ボリュームを同時に複数のノードでホスティングできますただしSQL Server は複数のノードからの共有ボリュームへの同時アクセスをサポートしていません

注 SQL Server FCI では対称共有ストレージを使用してインスタンスのすべてのノード所有者 (およびその候補) からアクセスできるようにする必要がありますただしAlwaysOn 可用性グループの導入に伴いそれぞれが独自に専用のローカルまたはリモート ストレージを持つ非 FCI の SQL Server インスタンスを WSFC クラスターに配置できるようになりました

WSFC リソースの正常性の検出とフェールオーバーWSFC クラスター ノード内の各リソースの状態と正常性は定期的にまたは要求に応じて報告されますクラスター リソースの障害を示す状況としてはたとえば電源障害ディスクまたはメモリのエラーネットワーク通信エラー構成エラー応答しないサービスなどがあります

ネットワークストレージサービスなどの WSFC クラスター リソースは互いに依存するように構成できますあるリソースの累積的な正常性は依存関係を持つリソースの正常性を連続的にたどってゆくことで決定されます

AlwaysOn 可用性グループでは可用性グループと可用性グループ リスナーがそれぞれ WSFC クラスター リソースとして登録されますAlwaysOn フェールオーバー クラスター インスタンスではSQL Server サービスおよび SQL Server エージェント サービスが WSFC クラスター リソースとして登録されどちらもインスタンスの仮想ネットワーク名リソースに依存します

WSFC クラスター リソースで設定された数のエラーまたは障害が一定期間内に発生した場合構成されたフェールオーバー ポリシーによってクラスター サービスは次のいずれかの操作を行います

現在のノードでのリソースの再起動 リソースをオフライン化 リソースとその依存関係を別のノードへ自動的にフェールオーバー

注 WSFC クラスター リソースの正常性の検出は個々のノードの正常性やクラスターの全体的な正常性には直接影響しません

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 14

WSFC のクラスター検証ウィザードクラスター検証ウィザードはWindows Server 2008 および Windows Server 2008 R2 のフェールオーバー クラスタリングに統合されている機能ですこれはSQL Server AlwaysOn ソリューションの配置前 にクリーンで正常な安定した WSFC 環境が存在していることをデータベース管理者が確認するために使用する主要なツールです

クラスター検証ウィザードではクラスターのノードとして使用するサーバーの集合または既存のクラスターを対象にして一連のテストを実行できますこのプロセスでは基になるハードウェアおよびソフトウェアが個別に直接テストされWSFC クラスターが特定の構成でどの程度良好にサポートされるかについての正確な評価が得られます

この検証プロセスでは各ノードに対して次のようなカテゴリの一連のテストとデータ収集が実施されます

一覧作成BIOS のバージョン環境レベルホスト バス アダプターRAMオペレーティング システムのバージョンデバイスサービスドライバーなどの情報です

ネットワークNIC のバインド順序ネットワーク通信IP 構成ファイアウォール構成などの情報ですすべての NIC でノード間の通信が検証されます

ストレージディスクドライブの容量アクセス待機時間ファイル システムなどの情報ですSCSI コマンドディスク フェールオーバー機能対称的または非対称的なストレージ構成が検証されます

システム構成Active Directory の構成ドライバーの登録メモリ ダンプの設定必要なオペレーティング システムの機能とサービス互換性のあるプロセッサ アーキテクチャおよびサービス パックと Windows Software Update のレベルが検証されます

これらの検証テストの結果を利用してクラスターの構成を微調整したり構成を追跡したりダウンタイムを引き起こすかもしれない潜在的なクラスター構成の問題を特定したりできますテスト結果のレポートは後で参照できるようにHTML ドキュメントとして保存できます

これらのテストはWSFC の構成に何か変更を加える前と加えた後に実行するほかSQL Server をインストールする前および災害復旧プロセスの一環として実行する必要がありますマイクロソフトで特定の WSFC クラスター構成がサポートされるためにはマイクロソフト カスタマー サポート サービス (CSS) にクラスター検証レポートを提出する必要があります

詳細については「フェールオーバー クラスター ステップ バイ ステップ ガイド フェール オーバー クラスター用ハードウェアを検証する」(httptechnetmicrosoftcomja-jplibrarycc732035(WS10)aspx) を参照してください

注 ハードウェアベースの地理的クラスタリング ストレージ ソリューションの場合やAlwaysOn 可用性グループの場合のようにクラスター構成に非対称ストレージがあるとクラスター検証ウィザードでストレージの検証手順を成功させるために多数の修正プログラムを適用しなければならないことがあります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 15

詳細については「AlwaysOn 可用性グループの前提条件制限事項および推奨事項 」(httpmsdnmicrosoftcomja-jplibraryff878487(SQL110)aspxSystemReqsForAOAG) を参照してください

WSFC クォーラム モードと投票の構成WSFC ではクォーラム ベースのアプローチを使用してクラスターの全体的な正常性を監視することでノード レベルのフォールト トレランスを最大限に高めますWSFC のクォーラム モードおよびノード投票構成の基本について理解することはAlwaysOn 高可用性災害復旧ソリューションの設計運用トラブルシューティングのために非常に重要です

クォーラムによるクラスター状態検出WSFC クラスター内の各ノードは定期的なハートビート通信に参加しノードの正常性状態を他のノードと共有します応答しないノードはエラー状態であると見なされます

クォーラム ノード セットとはWSFC クラスター内の投票ノードおよび監視サーバーのうち過半数を占めるノードの集合ですWSFC クラスターの全体的な正常性と状態は定期的なクォーラムの投票 によって決定されますクォーラムはクラスターが正常でありノード レベルのフォールト トレランスを提供できることを意味します

クォーラムに達していない状態はクラスターが正常でないことを示しますプライマリ ノードのフェールオーバー先として正常なセカンダリ ノードを使用できるようにするにはWSFC クラスターの全体的な正常性が維持されている必要があります投票数がクォーラムに達しなかった場合にはWSFC クラスター全体が予防策としてオフラインに設定されますその場合クラスターに登録されている SQL Server インスタンスがすべて停止します

注 クォーラム障害のために WSFC クラスターがオフラインに設定されるとオンラインに戻すために手動の操作が必要です詳細については後の「WSFC の強制クォーラムによる災害 復旧」のセクションを参照してください

クォーラム モードクォーラム モードはWSFC クラスター レベルで構成されクォーラム投票の方法を指定しますフェールオーバー クラスター マネージャー ユーティリティではクラスター内のノード数に基づいて推奨するクォーラム モードが提示されます

次のいずれかのクォーラム モードによって投票クォーラムの構成が決定されます

ノード マジョリティクラスターが正常であるためにはクラスター内の半分以上の投票ノードが肯定的に投票する必要があります

ノードおよびファイル共有マジョリティノード マジョリティ クォーラム モードに似ていますがリモート ファイル共有も投票監視サーバーとして構成され各ノードからそのリモート ファイル共有への接続も肯定的な投票としてカウントされますクラスターが正常であるためには投票の過半数が肯定的である必要があります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 16

推奨事項として監視ファイル共有はクラスター内のノードに存在せずクラスター内のすべてのノードから見える必要があります

ノードおよびディスク マジョリティノード マジョリティ クォーラム モードに似ていますが共有ディスク クラスター リソースも投票監視サーバーとして使用され各ノードからその共有ディスクへの接続も肯定的な投票としてカウントされますクラスターが正常であるためには投票の過半数が肯定的である必要があります

ディスクのみ共有ディスク クラスター リソースが監視サーバーとして使用され各ノードからその共有ディスクへの接続が肯定的な投票としてカウントされます

詳細については「フェールオーバー クラスター ステップ バイ ステップ ガイド フェール オーバー クラスターのクォーラムの構成」(httptechnetmicrosoftcomja-jplibrarycc770620(WS10)aspx) で説明されています

注 クラスターの各ノードが同じ共有ストレージ クォーラム監視ディスクを使用するように構成されていない限り通常投票ノード数が奇数の場合は ノード マジョリティ クォーラム モード投票ノード数が偶数の場合は ノードおよびファイル共有マジョリティ クォーラム モードを使用してください

投票ノードと非投票ノード既定ではWSFC クラスター内の各ノードがクラスター クォーラムのメンバーとなります各ノードファイル共有監視サーバーディスク監視サーバーがクラスターの全体的な正常性の決定においてそれぞれ 1 票ずつの投票権を持ちますクォーラムに関するここまでの説明ではクラスター状態について投票する WSFC クラスター ノードのセットを投票ノードとして注意深く限定してきました状況によってはすべてのノードに投票権を与えることが適切でない場合もあります

WSFC クラスターの各ノードはクォーラムを確立しようとし続けますクラスター内の個々のノードはクラスターが全体として正常であるか正常でないかを明確に決定することはできません特定の時点で各ノードからは他のノードの一部がオフラインフェールオーバー中またはネットワーク通信のエラーにより応答不能に見えますクォーラム投票の主な機能はWSFC クラスターの各ノードの見かけの状態が本当にそれらのノードの実際の状態であるかどうかを判断することです

ディスクのみ 以外のすべてのクォーラム モデルではクォーラム投票の有効性はクラスター内のすべての投票ノード間に信頼できる通信が確立されていることに依存しますすべてのノードが同じ物理サブネット上にある場合はクォーラムの投票を信頼できます

しかしクォーラム投票で他のサブネット上のノードが応答しないように見えても実際はオンラインで正常である場合はサブネット間のネットワーク通信のエラーが原因であることが考えられますクラスター トポロジクォーラム モードおよびフェールオーバー ポリシーの構成によってはネットワーク通信エラーによって投票ノードのセット (またはサブセット) が実質的に複数作成されてしまう可能性があります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 17

投票ノードの複数のサブセットがそれぞれ独自のクォーラムを構築できる状態はスプリット ブレイン と呼ばれますこの状態では各クォーラム上のノードが別々の動作をし相互に矛盾する可能性があります

注 スプリット ブレイン の状況が発生するのはシステム管理者が強制クォーラム動作を手動で実行するかまたは非常にまれですが強制的な手動フェールオーバーを実行することでクォーラム ノード セットが明示的に細分化された場合のみです詳細については後の「WSFC の強制クォーラムによる災害復旧 」のセクションを参照してください

クォーラム構成を単純化し稼働時間を長くする目的でノードの投票がクォーラムにカウントされないように各ノードの NodeWeight 設定 (値 0 または 1) を調整することができます

クォーラム投票に推奨される調整以下のガイドラインをこの順番に適用することでクラスターに対して推奨されるクォーラム投票の構成を判断できます

1 既定は投票権なしにします明確な理由がない限り各ノードには投票権を与えないと考えてください

2 すべてのプライマリ ノードに投票権を与えますAlwaysOn 可用性グループのプライマリ レプリカをホストする各ノードおよび AlwaysOn フェールオーバー クラスター インスタンスの優先所有者である各ノードは投票権を持つ必要があります

3 可能性のある自動フェールオーバーの所有者を含めます自動フェールオーバーの結果としてプライマリ レプリカまたは FCI をホストする可能性がある各ノードは投票を持つ必要があります

4 セカンダリ サイト ノードを除外します通常はセカンダリ災害復旧サイトに存在するノードには投票を提供しないでくださいプライマリ サイトに問題がない場合クラスターをオフラインにする判断にセカンダリ サイト内のノードが影響を与えることは避ける必要があります

5 投票数を奇数にします必要に応じて監視ファイル共有監視ノード (SQL Server インスタンスの有無は問いません)または監視ディスクをクラスターに追加してクォーラム モードを調整しクォーラムの投票結果が同数に分かれるのを防ぎます

6 フェールオーバー後の投票割り当てを再評価します正常なクォーラムをサポートしないクラスター構成にフェールオーバーすることは避けます

ノードの投票の調整の詳細については「クラスター クォーラムの NodeWeight の設定の構 成」(httpmsdnmicrosoftcomja-jplibraryhh270281(SQL110)aspx) を参照してください

ファイル共有監視サーバーの投票は調整できませんその投票を含めるか除外するかを決めるには別のクォーラム モードを選択する必要があります

注 SQL Server ではWSFC クラスター構成およびノード クォーラム投票に関する設定を管理するためにいくつかのシステム動的管理ビュー (DMV) が公開されています

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 18

詳細については「可用性グループの監視」(httpmsdnmicrosoftcomja-jplibraryff878305(SQL110)aspx) を参照してください

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 19

WSFC の強制クォーラムによる災害復旧通常クォーラム障害は災害発生時または WSFC クラスター内の複数のノード間で永続的な通信障害が生じた場合に発生しますクォーラム障害が発生するとクラスターがノード レベルのフォールト トレランスを確保できなくなるためその WSFC クラスター内の SQL Server インスタンス可用性グループおよびクラスター化されているサービスがすべてオフラインになりますクォーラム障害はWSFC クラスター内の正常な投票ノード数がクォーラム モデルを満たさなくなったことを意味しますノードによってまったく機能しなくなるものもあればWSFC サービスがシャットダウンしただけでクォーラムと通信できなくなったことを除けば正常なものもあります

WSFC クラスターをオンラインに戻すには既存の構成の少なくとも 1 つのノードでクォーラム障害の根本的な原因を解決する必要があります災害発生時には使用できる代替ハードウェアの再構成や識別が必要となる場合もあります現状のクラスター トポロジを反映するためにWSFC クラスターの残りのノードを再構成する場合もあります

WSFC クラスター ノードで強制クォーラムの手順を使用するとクラスターがオフラインになる原因となった安全管理機能を無効にすることができますこれによりクラスターでのクォーラム投票のチェックが実質的に中断されクラスター内の任意のノードで WSFC クラスター リソースと SQL Server をオンラインに戻すことができます

このような災害復旧プロセスの手順を次に示します

1) 障害の範囲を特定します応答しない可用性グループや SQL Server インスタンス災害後に使用できるオンラインのクラスター ノードをそれぞれ特定しWindows イベント ログと SQL Server システム ログを確認します必要に応じて後で分析できるように解析データやシステム ログを保存しておきます

2) 1 つのノードで強制クォーラムを使用して WSFC クラスターを起動します他の点では正常なノードで強制クォーラムの手順に従ってクラスターを手動で強制的にオンラインにしますこの場合データ損失の可能性を最小限に抑えるには可用性グループのプライマリ レプリカを最後にホストしていたノードを選択します

詳細については「クォーラムを使用せずに WSFC クラスターを強制的に起動する 」(httpmsdnmicrosoftcomja-jplibraryhh270275(v=SQL110)aspx) を参照してください

注 強制クォーラムの設定を使用するとWSFC クラスターの投票が過半数に達することで通常のクォーラム モードの動作に自動的に切り替わるまでクラスター全体のクォーラムのチェックがブロックされます

3) 他の点では正常な各ノードでWSFC サービスを 1 つずつ通常の方法で起動します他のノードでクラスター サービスを起動するときは強制クォーラム オプションを指定する必要はありません

各ノードの WSFC サービスがオンラインに戻ると他の正常なノードとの間でネゴシエーションが行われ新しいクラスター構成の状態が同期されますクラスターの最新の状態

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 20

を判断するときに競合状態の発生を避けるためこの手順は必ず一度に 1 つのノードで行うようにしてください

注 起動した各ノードが新たにオンラインにした他のノードと通信できることを確認しますそうしないと複数のクォーラム ノード セットが作成されて スプリット ブレイン の状況に陥るおそれがあります手順 1 の結果に問題がなければこの現象は発生しません

4) 新しいクォーラム モードとノードの投票の構成を適用します強制クォーラムの手順によってクラスターのすべてのノードを正常に再起動させクォーラムのエラーの根本原因を修正した場合クォーラム モードとノードの投票を元の構成から変更する必要はありません

それ以外の場合は新たに復元されたクラスター ノードと可用性レプリカのトポロジを評価し必要に応じてクォーラム モードと各ノードの投票割り当てを変更します未復旧のノード上ではWSFC クラスター サービスをオフラインにするかノードの投票をゼロに設定します

注 この時点でクラスター内のノードと SQL Server インスタンスが通常の動作に戻っているように見えることがありますがまだ正常なクォーラムには達していない可能性がありますフェールオーバー クラスター マネージャーやSQL Server Management Studio の AlwaysOn ダッシュボードまたは適切な DMV を使用して正常なクォーラムが復元されたことを確認してください

5) 必要に応じて可用性グループのデータベース レプリカを復旧します一部のデータベースはSQL Server の通常の起動処理の一環として自動的に復旧されオンラインに戻ることがありますそれ以外のデータベースの復旧には追加で手動の手順を実行する必要があります

可用性グループ レプリカのデータ損失の可能性や復旧にかかる時間を最小限に抑えるにはできればプライマリ レプリカ同期セカンダリ レプリカ非同期セカンダリ レプリカの順にオンラインに戻します

6) 障害が発生したコンポーネントを修復するか交換しクラスターを再検証しますこれで最初の災害およびクォーラム障害から復旧できたので障害が発生したノードを修復するか交換しWSFC と AlwaysOn の関連する構成を適切に調整する必要がありますこれには可用性グループ レプリカの削除クラスターからのノードの削除ノードへのソフトウェアの再インストールなどが含まれます

注 停止したすべての可用性レプリカを修復または削除する必要がありますSQL Server 2012 では最も古い可用性レプリカを最後に認識した時点以降トランザクション ログが切り捨てられません停止したレプリカを修復するか可用性グループから削除しないとトランザクション ログが大きくなり他のレプリカのトランザクション ログの領域が不足する可能性があります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 21

7) 必要に応じて手順 4 を繰り返しますこの目的は正常な動作を行うために適切なレベルのフォールト トレランスと高可用性を再確立することです

8) RPORTO 分析を実行しますSQL Server のシステム ログデータベースのタイムスタンプおよび Windows のイベント ログを分析して障害の根本的な原因を特定し実際の復旧ポイントと復旧時間を文書に記録します

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 22

SQL Server インスタンス レベルでの保護次に説明する AlwaysOn ソリューションの保護レイヤーはデータ プラットフォームそれ自体ですMicrosoft SQL Server 2012 とその Windows Server インフラストラクチャ コンポーネントとの統合によって次のような機能が提供されます

可用性の向上 ndash SQL Server インスタンスこれは SQL Server 2012 の新しいインスタンス レベルの機能でAlwaysOn フェールオーバー クラスター インスタンスとAlwaysOn 可用性グループをホストするスタンドアロン インスタンスの両方の可用性を強化します

以下の強化点によってフェールオーバーの管理およびトラブルシューティングが向上します

柔軟なフェールオーバー ポリシー信頼性の高いエラー検出に使用される新しいシステム ストアド プロシージャ sp_server_diagnostics の出力でSQL Server インスタンスに影響するエラーの重大度が FailureConditionLevel プロパティによって示されますWSFC のフェールオーバー ポリシーによってこの値が SQL Server インスタンスにどのように影響するかを制御できますある程度エラーを許容する設定からSQL Server の内部コンポーネント エラーを重点的に検出する設定までさまざまに構成できます

特定のレベルのエラーによってフェールオーバーを開始するように構成できますエラーのレベルにはサーバーの停止サーバーの応答停止重大なエラー中程度のエラーなんらかの条件付きエラーなどがありますFailureConditionLevel プロパティはFCI または可用性グループのフェールオーバー ポリシーのために使用できます

SQL Server 2012 よりも前のバージョンではフェールオーバーを制御できるようなエラー状態の区分がなくすべてのサービス レベルのエラーによってフェールオーバーが発生しました

詳細については「フェールオーバー クラスター インスタンスのフェールオーバー ポリシー」(httpmsdnmicrosoftcomja-jplibraryff878664(SQL110)aspx) を参照してください

強化されたインストルメンテーションとログAlwaysOn 専用のシステム構成ビューDMVパフォーマンス カウンターに加えて拡張されたイベント正常性セッションによってAlwaysOn 配置のトラブルシューティングチューニングおよび監視に必要な情報を取得して表示できますこれらの多くはSQL Server ポリシー管理の新しいファセットおよびポリシーを通じて公開されます

詳細については「AlwaysOn 可用性グループの動的管理ビューおよび関 数」(httpmsdnmicrosoftcomja-jplibraryff877943(SQL110)aspx) と「sysdm_os_cluster_nodes」(httpmsdnmicrosoftcomja-jplibraryms187341(SQL110)aspx) を参照してください

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 23

SMB ファイル共有のサポートWindows Server 2008 以降のスタンドアロン用またはフェールオーバー クラスター インスタンス用のリモート ファイル共有にデータベース ファイルを格納することができますこの場合FCI ごとに異なるドライブ文字を使用する必要がありませんこれはストレージを統合する場合やデータベース ファイルのストレージを仮想マシンのゲスト オペレーティング システム用物理サーバーでホストする場合などに便利なオプションです適切に構成すれば直接接続されたストレージとほぼ同等の IO パフォーマンスが得られます

詳細については「ファイル共有上の SQL データベース - シナリオを再検討すべきとき 」(httpblogsmsdncombsqlserverstorageenginearchive20111018sql-databases-on-file-shares-it-s-time-to-reconsider-the-scenarioaspx) を参照してください

注 WSFC クラスターではSMB ファイル共有リソースの依存関係を SQL Server リソース グループに追加することはできませんファイル共有の可用性を確保するには別の方法を用いる必要がありますファイル共有が使用できなくなった場合SQL Server は IO 例外をスローしオフラインになります

WSFC と DNS の相互運用性FCI または可用性グループ リスナーの仮想ネットワーク名 (VNN) はVNN の作成時または構成の変更時にのみDNS に登録されますすべての仮想 IP アドレスはオンライン状態かオフライン状態かに関係なく同じ仮想ネットワーク名で DNS に登録されますDNS の仮想ネットワーク名を解決するためのクライアント呼び出しは各種のラウンド ロビン シーケンスによってすべての登録済み IP アドレスを返します

AlwaysOn フェールオーバー クラスター インスタンスSQL Server の AlwaysOn フェールオーバー クラスター インスタンス (FCI) の主な目的は1 つのデータ センター内のローカル サーバーとストレージ ハードウェアでホストされている SQL Server インスタンスの可用性を高めることです

FCI はWindows Server フェールオーバー クラスタリング (WSFC) のクラスターに含まれる複数のノードにまたがってインストールされる1 つの論理的な SQL Server インスタンスですただし一度に 1 つのノードだけでアクティブになることができますクライアント アプリケーションはアクティブなクラスター ノードが所有している仮想ネットワーク名および仮想 IP アドレスに接続します

FCI をインストールした各ノードは同一の構成を持ち同一の SQL Server バイナリを含んでいますWSFC クラスター サービスはアクティブなインスタンス上にある Windows レジストリのエントリからFCI をインストールした各ノードに関連のある変更をレプリケートしますFCI がインストールされている各ノードはインスタンスとそのリソースの所有者の候補として指定されフェールオーバーの優先順位に従って所有者となります

共有対称ストレージ ボリュームに格納されているデータベース ファイルはリソースとして WSFC クラスターに登録され現在 FCI をホストしているノードによって所有されます

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 24

詳細については「AlwaysOn フェールオーバー クラスター インスタン ス」(httpmsdnmicrosoftcomja-jplibraryms189134(SQL110)aspx) を参照してください

FCI のフェールオーバー プロセス依存しているクラスター リソースで障害が発生した場合AlwaysOn フェールオーバー クラスター インスタンスはWSFC クラスター サービスと連携してフェールオーバーを行いますそのプロセスの概要を以下に示します

1) 再起動が指示されますWSFC の定期的なチェックまたは SQL Server のフェールオーバー ポリシー構成によってエラー状態が示されます既定では他のノードへのフェールオーバーを開始する前にサービスの再起動が試みられます再起動の試みがタイムアウトするようであればリソースの障害が発生しています

2) フェールオーバーが指示されますフェールオーバー ポリシー チェックによってノードのフェールオーバーが必要であることが示されます

3) SQL Server サービスが停止されますSQL Server サービスが現在実行されている場合はその正常なシャットダウンが試みられます

4) WSFC クラスター リソースが転送されますSQL Server クラスター リソース グループの所有権とそれが依存するネットワークおよび共有ストレージ リソースがFCI で次に優先されるノード所有者に転送されます

5) 新しいノードで SQL Server が起動されますSQL Server インスタンスは通常のスタートアップ プロシージャで起動されます所定のタイムアウト時間内にオンラインに戻らない場合クラスター サービスはこの新しいノード上のリソースをエラー状態と見なします

6) 新しいノードでユーザー データベースが復旧されます各ユーザー データベースは復旧モードに設定されます復旧モードではトランザクション ログの再実行操作が適用されコミットされていなかったトランザクションがロールバックされます

FCI の強化以前のバージョンの SQL Server でも FCI のインストール オプションは用意されていましたがSQL Server 2012 では次のような機能強化によって可用性の堅牢性と利便性が向上しました

マルチサブネット クラスタリングSQL Server 2012 では複数のサブネットに存在する WSFC クラスター ノードがサポートされていますWSFC クラスター ノードに存在する SQL Server インスタンスはいずれかのネットワーク インターフェイスが使用可能であれば起動できますこれはクラスター リソースの OR 依存関係と呼ばれます

以前のバージョンの SQL Server の場合SQL Server サービスを起動またはフェールオーバーするにはすべてのネットワーク インターフェイスが機能しそれらがすべて同じサブネットまたは VLAN に存在している必要がありました

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 25

注 マルチサブネット クラスタリングではクラスター ノード間のストレージ レベルのレプリケーションが自動的には有効になりませんマルチサブネットの FCI ソリューションでクラスター ノード間でデータのレプリケーションを行いストレージ フェールオーバーを調整するためにはサード パーティから提供される SAN ベースのソリューションを利用する必要があります

詳細については「SQL Server 2012 AlwaysOn マルチサイト フェールオーバー クラスター インスタンス」(httpsqlcatcomsqlcatbwhitepapersarchive20111222sql-server-2012-alwayson_3a00_-multisite-failover-cluster-instanceaspx) を参照してください

信頼性の高いエラー検出WSFC クラスター サービスではノードの各 SQL Server 2012 FCI に対してそれぞれ専用の管理者接続が維持されますこの接続では特殊なシステム ストアド プロシージャ sp_server_diagnostics を定期的に呼び出すことでシステムの正常性診断に役立つ豊富な情報を含む配列が返されます

SQL Server 2012 よりも前のバージョンではFCI の主な正常性検出メカニズムは単純な一方向のポーリング プロセスとして実装されていましたこのプロセスではWSFC クラスター サービスがインスタンスへの新しい SQL クライアント接続を定期的に作成しサーバー名を照会した後で接続を切断していました何かの理由で接続が失敗するかクエリがタイムアウトした場合フェールオーバーが開始されますが診断情報はほとんど提供されません

詳細については「sql_server_diagnostics」(httpmsdnmicrosoftcomja-jplibraryff878233(SQL110)aspx) を参照してください

現在ではFCI ストレージが次のように幅広い状況でサポートされています

向上したマウント ポイント サポートSQL Server のセットアップ時にクラスター ディスクのマウント ポイント設定が認識されるようになりました指定されたクラスター ディスクとそれにマウントされているすべてのディスクがセットアップ時に SQL Server リソースの依存関係に自動的に追加されます

ローカル ストレージの tempdbFCI ではローカルの非共有ストレージ (ローカル ソリッド ステート ドライブなど) に tempdb を配置できるようになったため共有 SAN での IO 動作の負荷を大幅に軽減できる可能性があります

SQL Server 2012 よりも前のバージョンの FCI ではtempdb が他のシステム データベースと共にフェールオーバーされる対称共有ストレージ ボリュームに配置される必要がありました

注 tempdb の場所はmaster データベースに格納されますこのデータベースはフェールオーバー時にノード間で移動されますtempdb は所有者候補となっているすべてのノード上で有効で対称的なファイル パス (ドライブフォルダーおよび権限) に配置されている必要がありますそうなっていない場合SQL Server サービスが一部のノードでは起動されません

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 26

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 27

データベースの可用性インフラストラクチャ レベルおよび SQL Server インスタンス レベルのコンポーネントで提供されている高可用性機能は互いに連係してホストされているデータベースを暗黙的に保護しますAlwaysOn ソリューションではデータベースのデータおよびデータ層アプリケーションを明示的に保護するために一連のオプションが追加で用意されています

AlwaysOn 可用性グループ可用性グループは1 つの SQL Server インスタンスから同じ WSFC クラスター内の別のインスタンスへと同時にフェールオーバーされるユーザー データベースのセットですクライアント アプリケーションは可用性グループ リスナーと呼ばれる WSFC 仮想ネットワーク名を通じて可用性グループのデータベースに接続できますこうすることで基になる SQL Server インスタンスが抽象化されます

AlwaysOn 可用性グループは正常性監視フェールオーバーの調整およびサーバー接続を Windows Server フェールオーバー クラスタリングに依存していますWSFC クラスター ノード上の SQL Server インスタンスでAlwaysOn サポートを有効にする必要がありますただしそのインスタンスが FCI である必要はなく対称共有ストレージを使用する必要もありません

詳細については「AlwaysOn 可用性グループの概要 」(httpmsdnmicrosoftcomja-jplibraryff877884(SQL110)aspx) を参照してください

可用性レプリカとロール可用性グループの各 SQL Server インスタンスは可用性グループのユーザー データベースのコピーを保持している可用性レプリカをホストしますSQL Server インスタンスは特定の可用性グループの可用性レプリカを 1 つだけホストすることができますが複数の可用性グループを同じインスタンスに置くことは可能ですSQL Server インスタンスは専用の (非共有) ストレージ ボリュームを持つ必要があります

可用性レプリカの 1 つがプライマリ レプリカの役割を果たしますこれは可用性グループ データベースのマスター コピーとして指定されていて読み取り書き込み操作を行うことができます

可用性グループには読み取り専用の可用性レプリカを最大 4 つまで追加で含めることができますこれらは個別にセカンダリ レプリカの役割を果たします

可用性レプリカの同期可用性グループの各データベースの内容はSQL Server によるログ ベースのデータ移動メカニズムを通じてプライマリ レプリカから各セカンダリ レプリカに同期されますそのため可用性グループのすべてのデータベースは完全復旧モデルに設定する必要があります

セカンダリ レプリカはプライマリ レプリカのデータベースとトランザクション ログの完全なバックアップと復元によって初期化されますプライマリ レプリカで新しいトランザクションがコミットされるとトランザクション ログの対応する部分がキャッシュされ

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 28

キューに入れられてネットワーク経由でセカンダリ レプリカ ノード上のデータベース ミラーリング エンドポイントに送信されます

この方法によりプライマリ レプリカのトランザクション ログの新しいエントリが各セカンダリ レプリカのトランザクション ログに追加されます各セカンダリ レプリカはログ シーケンス番号 (LSN) をプライマリ レプリカに定期的に送り返しトランザクション ログのどのくらいの量がリモート ディスクに書き込まれフラッシュされたかを示します

注 各可用性レプリカはそれぞれ独自に独立したトランザクション ログ再実行スレッドのセットを保持していますこれは可用性レプリカの同期プロセスには含まれませんセカンダリ レプリカ上ではログ再実行プロセスによって遅延時間が生じるためユーザーはそれをデータの待機時間として感じる場合があります

プライマリまたはセカンダリの役割を果たす他に各可用性レプリカには可用性モードもありますこのモードは次のようにCOMMIT TRAN ステートメントの実行時にトランザクション ログの書き込みの連係を制御します

同期コミット モードすべての同期コミット セカンダリ レプリカからそれぞれ独自のトランザクション ログの書き込み完了 (LSN 以降) が通知されるまでプライマリ レプリカはそのトランザクションをコミットしません可用性グループでは最大で 2 つの同期コミット セカンダリ レプリカを使用できます

同期コミット モードではプライマリ レプリカ データベースでトランザクションの遅延が生じますがコミットされたトランザクションに対するセカンダリ レプリカでのデータ損失を確実に防ぐことができます

非同期コミット モードプライマリ レプリカはローカル トランザクション ログの書き込み後にトランザクションをコミットしますが非同期コミット セカンダリ レプリカからトランザクション ログの書き込み完了通知を待つことはしません可用性グループでは最大で 4 つの非同期コミット セカンダリ レプリカを使用できますただし両方の種類を合わせて使用できるセカンダリ レプリカの合計は最大 4 つです

非同期コミット モードではプライマリ レプリカ データベースで生じるトランザクションの遅延が最小になりますがセカンダリ レプリカでのトランザクション ログが遅れる場合があるため一部のデータが失われる可能性があります

詳細については「可用性モード」(httpmsdnmicrosoftcomja-jplibraryff877931(SQL110)aspx) を参照してください

可用性レプリカ間のデータ フローの全体的な正常性は各レプリカの同期状態によって示されますセカンダリ レプリカにフェールオーバーしたときに同期状態が 同期済み または 同期中 になっていなければほとんどの場合はデータ損失が発生することになります

各セカンダリ レプリカの同期ストリームにはセッション タイムアウト プロパティがあります同期コミット モードに構成されているセカンダリ レプリカがセッション タイムアウトでエラーになると内部的には一時的に非同期としてマークされますこれはセカンダ

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 29

リ レプリカのエラーがプライマリ レプリカでのトランザクション ログの書き込みに影響しないようにするためですそのセカンダリ レプリカが正常に戻ってプライマリ レプリカの状態に追いつくと自動的に通常の同期コミット モード動作に戻されます

可用性グループのフェールオーバー可用性グループとそれに対応する仮想ネットワーク名はWSFC クラスターのリソースとして登録されます可用性グループはプライマリ レプリカの正常性とフェールオーバー ポリシーに基づいて可用性レプリカのレベルでフェールオーバーを行います

可用性グループのフェールオーバー ポリシーではsp_server_diagnostics システム ストアド プロシージャと FailureConditionLevel プロパティを使用して可用性グループに対して許容されるエラーの重大度のレベルを示しますこの同じメカニズムがFCI のフェールオーバー ポリシーにも使用されます

フェールオーバーが発生した場合は共有物理リソースの所有権を他のノードに移す代わりにWSFC を利用して他の SQL Server インスタンス上でセカンダリ レプリカを再構成しプライマリ レプリカの役割を引き継がせますその後可用性グループの仮想ネットワーク名リソースがそのインスタンスに転送されます関連する可用性レプリカへのすべてのクライアント接続がリセットされます

レプリカの現在の正常性同期状態および可用性モードに基づいて各レプリカには複合的な フェールオーバーの準備 状態が定義されますこの状態の値はデータ損失の可能性を示していますレプリカの正常性情報はAlwaysOn ダッシュボードまたは sysdm_hadr_availability_replica_states システム ビューで確認できます

各可用性レプリカにはフェールオーバー モードも構成されていますこのモードはフェールオーバーが指示された場合にレプリカの動作を制御します

自動フェールオーバー (データ損失なし)セカンダリ レプリカのトランザクション ログが既に書き込まれ同期されているのですべての AlwaysOn 構成の中でフェールオーバー時間が最短になりますプライマリ レプリカ上の開かれているトランザクションはロールバックされプライマリ レプリカの役割はユーザーによる操作なしでセカンダリ レプリカに転送されます

この場合プライマリ レプリカとセカンダリ レプリカの両方を自動フェールオーバー モードに設定し両方の可用性モードを同期コミットに設定する必要がありますレプリカ間の同期状態は同期済み である必要がありますまたWSFC クラスターは正常なクォーラム状態になっている必要があります

自動フェールオーバーはプライマリ レプリカまたはセカンダリ レプリカが FCI 上にある場合はサポートされませんこれは可用性グループと FCI のフェールオーバー間で競合状態が発生することを防ぐためです

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 30

手動フェールオーバーこの場合管理者はプライマリ レプリカの状態を評価してセカンダリ レプリカにフェールオーバーするかどうかを慎重に判断できます

可用性モードと同期状態に応じて次のような選択が可能です

o 計画的な手動フェールオーバー (データ損失なし)この種類のフェールオーバーを実行できるのはプライマリ レプリカとセカンダリ レプリカの両方が正常で同期済み 状態である場合だけですこれは機能的には自動フェールオーバーと同じです

o 強制手動フェールオーバー (データ損失の可能性を許容)これは対象のセカンダリ レプリカの可用性モードが非同期コミットである場合またはプライマリ レプリカに同期されない場合に使用できる唯一のフェールオーバー形式です

警告 このフェールオーバー オプションは災害復旧の状況に限って使用する必要がありますプライマリ レプリカが正常で使用可能である場合は関連する各レプリカの可用性モードを同期コミットに変更し計画的な手動フェールオーバーを実行してください

詳細については「可用性グループの強制手動フェールオーバーの実行」(httpmsdnmicrosoftcomja-jplibraryff877957(SQL110)aspx) を参照してください

フェールオーバー対象のプライマリ レプリカまたはセカンダリ レプリカが次の条件のいずれかに該当する場合は手動フェールオーバーを実行する必要があります

フェールオーバー モードが手動に設定されている 可用性モードが非同期コミットに設定されている レプリカが FCI 上にある

詳細については「フェールオーバーとフェールオーバー モード (AlwaysOn 可用性グルー プ ) 」(httpmsdnmicrosoftcomja-jplibraryhh213151(SQL110)aspx) を参照してください

注 フェールオーバー後新しいプライマリ レプリカが同期コミット モードに設定されていない場合セカンダリ レプリカの同期状態は 中断状態 になりますプライマリ レプリカが同期コミット モードに設定されるまでデータはセカンダリ レプリカに移動されません

可用性グループ リスナー可用性グループ リスナーはクライアントが可用性グループ内のデータベースにアクセスするために使用できる WSFC 仮想ネットワーク名 (VNN) ですVNN クラスター リソースはプライマリ レプリカをホストしている SQL Server インスタンスによって所有されます

仮想ネットワーク名は可用性グループ リスナーの作成時または構成の変更時にのみDNS に登録されます可用性グループ リスナーで定義されているすべての仮想 IP アドレスは同じ仮想ネットワーク名で DNS に登録されます

可用性グループ リスナーを使用する場合クライアント接続要求ではサーバーとして仮想ネットワーク名を指定してから可用性グループ内のデータベース名を指定する必要があり

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 31

ます既定ではこれによってプライマリ レプリカをホストしている SQL Server インスタンスに接続されます

実行時にはクライアントはローカルの DNS リゾルバーを使用して仮想ネットワーク名にマップされている IP アドレスと TCP ポートの一覧を取得しますクライアントは各 IP アドレスへの接続を成功するか接続タイムアウトに達するまで試し続けますMultiSubnetFailover パラメーターが true に設定されているとクライアントは複数の接続を同時に試行するのでクライアント フェールオーバーが大幅に速くなります

フェールオーバーが行われるとサーバー上でクライアント接続がリセットされ可用性グループ リスナーの所有権はプライマリ レプリカの役割と共に新しい SQL Server インスタンスに移動しVNN エンドポイントは新しいインスタンスの仮想 IP アドレスと TCP ポートにバインドされます

詳細については「可用性グループ リスナークライアント接続およびアプリケーションのフェールオーバー」(httpmsdnmicrosoftcomja-jplibraryhh213417(SQL110)aspx) を参照してください

アプリケーションの目的によるフィルター処理可用性グループ リスナーを使用して接続している場合アプリケーションは接続の目的がデータの読み取りと書き込みの両方なのか読み取り専用操作を実行するだけなのかを指定できます指定しない場合クライアントのアプリケーションの目的は既定で読み取りと書き込みになります

各可用性レプリカのプライマリ ロールとセカンダリ ロールについてはクライアントのアプリケーションの目的に対する接続レベルのフィルターとして接続アクセス プロパティも指定できます既定ではアプリケーションの目的と接続アクセスとの組み合わせが無効であると接続が拒否されますSQL Server は次のルールを使用してクライアントの接続要求を振り分ける必要があります

可用性レプリカがプライマリ ロールであり接続アクセスが次のいずれかである場合

すべてのアプリケーションの目的を許可するアプリケーションの目的でクライアント接続をフィルター処理しません

明示的な読み取り書き込みの目的だけを許可するクライアントが読み取り専用を指定している場合接続を拒否します

可用性レプリカがセカンダリ ロールであり接続アクセスが次のいずれかである場合

接続を許可しないすべての接続を拒否しますレプリカは災害復旧だけに使用されます

すべてのアプリケーションの目的を許可するアプリケーションの目的でクライアント接続をフィルター処理しません

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 32

読み取り専用の目的を許可するクライアントが読み取り専用を指定していない場合接続を拒否します

詳細については「可用性レプリカでの読み取り専用アクセスの構成」(httpmsdnmicrosoftcomja-jplibraryhh213002(SQL110)aspx) を参照してください

アプリケーションの目的の読み取り専用ルーティングAlwaysOn 可用性グループの特に優れた点はスタンバイ ハードウェア インフラストラクチャを災害復旧以外の目的に利用できることです1 つ以上のセカンダリ レプリカを読み取り専用でアクセスできるように構成するとプライマリ レプリカからかなりの量のワークロードを軽減できます

読み取り専用セカンダリ レプリカに回すように簡単に調整できるワークロードはレポートデータベース バックアップデータベース整合性チェックインデックスの断片化の分析データ パイプライン抽出運用サポート操作サポートアドホック クエリなどです

各可用性レプリカではSQL Server インスタンスのエンドポイントについて順次的な読み取り専用ルーティング リストを構成することもできますこのリストはレプリカがプライマリ ロールであるときに適用されますこのリストが存在する場合アプリケーションの目的が読み取り専用と指定されているクライアント接続要求はそのリスト内に記載されていて前述のアプリケーションの目的フィルターに適合する最初のセカンダリ レプリカにリダイレクトされます

注 読み取り専用ルーティングによるリダイレクトはプライマリ レプリカにバインドされている可用性グループ リスナーによって実行されますプライマリ レプリカがオフラインの場合クライアントのリダイレクトは機能しません

詳細については「可用性グループの読み取り専用ルーティングの構成 (SQL Server) 」(httpmsdnmicrosoftcomja-jplibraryhh710054(SQL110)aspx) を参照してください

可用性の向上 ndash データベースSQL Server 2012 ではデータベースの構成と機能に関してさまざまな点が強化されています

以下の機能は復旧時間の短縮に役立ちます

予測可能な復旧時間データベースごとにターゲット復旧時間の長さを設定することでバックグラウンドで実行される CHECKPOINT コマンドのスケジュールを制御できますこのコマンドは間接的なチェックポイントとして再起動時またはフェールオーバー時にトランザクション ログの復旧に必要となる時間の推定値に基づいて定期的に実行されますそれによってチェックポイントごとに IO 操作がほぼ均等に配分され復旧時間 (RTO) の予測可能性が高まります

SQL Server 2012 よりも前のバージョンではバックグラウンドの CHECKPOINT コマンドがトランザクションの量や負荷とは無関係に一定間隔で実行されていたので復旧時間を予測することはできませんでした

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 33

詳細については「データベース チェックポイント」(httpmsdnmicrosoftcomja-jplibraryms189573(SQL110)aspx) を参照してください

以下の向上点は計画的なダウンタイムが必要になる一般的な状況を減らすのに役立ちます

LOB 列のオンライン インデックス操作varbinary(max)varchar(max)nvarchar(max)または XML データ型の列が含まれているインデックスをオンラインで再構築または再構成できるようになりました

新しい NOT NULL 列のオンライン スキーマ修正既定値を使用して新しい NOT NULL 列を SQL Server 2012 データベース テーブルに追加する場合システム メタデータの更新にはスキーマ ロックだけが必要ですALTER TABLE ステートメントですべての行にデータを設定する必要はありません

いずれかの行で実際に変更またはインデックスの再作成が行われない限り列の既定値は物理的に格納されませんクエリでは列に実際の値が存在しない場合メタデータから既定値を返します

ストレージのサポート強化の例として次のようなものがあります

ページの自動修復ある種のストレージ サブシステム エラーが発生するとデータ ページが破損し読み取り不可能になる場合がありますAlwaysOn 可用性グループではそのような種類のエラーを検出し自動的に復旧できます復旧のために影響を受けたデータ ページの最新のコピーが別の可用性レプリカから非同期で取得され適用されます

以前のバージョンでもデータベース ミラーリングに同様の機能がありましたが新しい機能では複数のレプリカをサポートできるようになっています

詳細については「ページの自動修復」(httpmsdnmicrosoftcomja-jplibrarybb677167(SQL110)aspx) を参照してください

クライアント接続の推奨事項クライアント アプリケーションが Microsoft SQL Server 2012 AlwaysOn テクノロジの利点を十分に活用できるようにするには次のガイドラインに従います

AlwaysOn 対応のクライアント ライブラリ表形式のデータ ストリーム (TDS) プロトコル Version 74 以降をサポートしているクライアント ライブラリを使用しますこれによってAlwaysOn の機能に対応した適切な機能がクライアント側でも提供されますクライアント ライブラリの例としてはData Provider for SQL Server in NET Framework 402SQL Native Client 110 などがあります

接続プロバイダー プロパティ MultiSubnetFailover = True接続文字列にこのキーワードを使用することでクライアント ライブラリでは(複数のサブネットに IP アドレスを持つ) 可用性グループ リスナーまたは FCI に登録されているすべての IP アドレスに同時に接

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 34

続できるようになります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 35

接続プロバイダー プロパティ ApplicationIntent = ReadOnly必要に応じてプライマリ レプリカの読み取り専用ワークロードをセカンダリ レプリカに移管することができます

レガシ クライアントの接続タイムアウトレガシ クライアントのデータベース ライブラリには並列で接続を試行する機能が実装されていないため複数の IP アドレスがある場合にはTCP タイムアウトに達するか正常に接続できるまで1 つずつ順番に接続を試行します

複数の IP アドレスが存在する場合はタイムアウトと再試行が逐次的に繰り返される可能性に備えてレガシ クライアントの接続タイムアウトを調整する必要があります値は少なくとも 15 秒 + 21 秒 times セカンダリ レプリカ数にします

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 36

結論このホワイト ペーパーではSQL Server 2012 の AlwaysOn による高可用性災害復旧ソリューションを使用し予定されたダウンタイムや予定外のダウンタイムを短縮したりアプリケーションの可用性を最大限に高めたりデータを保護したりする方法について基本的なコンテキストを確立しました

高可用性データベース環境の計画管理測定に関連したビジネス上の目的と課題は多くの場合目標復旧時点 (RPO) と目標復旧時間 (RTO) という形で数量化して表すことができます

SQL Server 2012 AlwaysOn は組織が高可用性や災害復旧に関する一般的な状況に対処するための機能をRPO と RTO を適切に達成できることを念頭にインフラストラクチャ レベルデータ プラットフォーム レベルデータベース レベルのそれぞれで提供します

詳細情報

httpwwwmicrosoftcomja-jpsqlserver2012defaultaspx SQL Server Web サイト

httptechnetmicrosoftcomja-jpsqlserver SQL Server TechCenter

httpmsdnmicrosoftcomja-jpsqlserver SQL Server 開発者向け技術情報

このホワイト ペーパーはお役に立ちましたか フィードバックをお寄せください1 (役に立たなかった) ~ 5 (非常に役に立った) の 5 段階で評価してくださいまたその評価の理由もお知らせください以下に例を示します

評価が高い 例が適切図がわかりやすい説明が明快といったことが理由である 評価が低い 例が少ない図がわかりにくい説明があいまいといったことが理由で

ある

このようなフィードバックをお寄せいただくと今後のホワイト ペーパーの品質向上につながります

フィードバックの送信

loz Version 112012 年 2 月 21 日

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 37

  • 高可用性と災害復旧の概念
    • 高可用性について
      • 予定されたダウンタイムと予定外のダウンタイム
      • 段階的な可用性
        • ダウンタイムの定量化
          • 復旧目標
          • ROI または機会費用の正当化
          • 可用性の健全度の監視
          • 災害復旧の計画
            • 概要 Microsoft SQL Server 2012 での高可用性
              • SQL Server AlwaysOn
              • 計画的なダウンタイムの大幅な削減
              • アイドル状態のハードウェアをなくしてコスト効率とパフォーマンスを向上
              • 簡単な配置と管理
              • RPO と RTO の機能比較
                  • SQL Server AlwaysOn の保護レイヤー
                    • インフラストラクチャの可用性
                      • Windows オペレーティング システム
                        • Windows Server Core インストール オプション
                        • プライベート クラウド用の SQL Server の最適化
                          • Windows Server フェールオーバー クラスタリング
                            • WSFC ストレージ構成
                            • WSFC リソースの正常性の検出とフェールオーバー
                              • WSFC のクラスター検証ウィザード
                              • WSFC クォーラム モードと投票の構成
                                • クォーラムによるクラスター状態検出
                                • クォーラム モード
                                • 投票ノードと非投票ノード
                                • クォーラム投票に推奨される調整
                                  • WSFC の強制クォーラムによる災害復旧
                                    • SQL Server インスタンス レベルでの保護
                                      • 可用性の向上 ndash SQL Server インスタンス
                                      • AlwaysOn フェールオーバー クラスター インスタンス
                                        • FCI のフェールオーバー プロセス
                                        • FCI の強化
                                            • データベースの可用性
                                              • AlwaysOn 可用性グループ
                                                • 可用性レプリカとロール
                                                • 可用性レプリカの同期
                                                  • 可用性グループのフェールオーバー
                                                  • 可用性グループ リスナー
                                                    • アプリケーションの目的によるフィルター処理
                                                    • アプリケーションの目的の読み取り専用ルーティング
                                                      • 可用性の向上 ndash データベース
                                                        • クライアント接続の推奨事項
                                                          • 結論
Page 13: 高可用性と災害復旧の概念download.microsoft.com/download/6/B/E/6BE0C3F3-2991-4766... · Web view高可用性と災害復旧のソリューションのために最適なデータベース

高可用性と災害復旧のSQL Server ソリューション

データ損失の可能性 (RPO)

可能な復旧時間 (RTO)

自動フェールオーバー

読み取り可能な

セカンダリ(1)

AlwaysOn 可用性グループ - 同期コミット ゼロ 数秒 (4) 0 - 2

AlwaysOn 可用性グループ - 非同期コミット 数秒 数分 times 0 - 4

AlwaysOn フェールオーバー クラスター インスタンス

該当せず(5) 数秒~ 数分

該当せず

データベース ミラーリング(2) - 高い安全性 (同期 + 監視)

ゼロ 数秒 該当せず

データベース ミラーリング(2) - 高パフォーマンス (非同期)

数秒(6) 数分(6) times 該当せず

ログ配布 数分(6) 数分~ 数時間(6)

times 復元中はなし

バックアップコピー復元(3) 数時間(6) 数時間~ 数日(6)

times 復元中はなし

(1) AlwaysOn 可用性グループで使用できるセカンダリ レプリカは種類に関係なく最大 4 つです(2) この機能は将来のバージョンの Microsoft SQL Server では削除される予定です代わりに AlwaysOn 可用性グループを使用

してください(3) バックアップコピー復元は障害復旧には適していますが高可用性には適していません(4) 可用性グループの自動フェールオーバーはフェールオーバー クラスター インスタンスとの間ではサポートされていま

せん(5) FCI 自体にはデータ保護機能はありませんデータ損失はストレージ システムの実装に依存します(6) ワークロードデータ量およびフェールオーバーの手順に大きく依存します

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 8

SQL Server AlwaysOn の保護レイヤーSQL Server AlwaysOn ソリューションではインフラストラクチャとアプリケーション コンポーネントのいくつかの論理レイヤーおよび物理レイヤーにまたがってフォールト トレランスと災害復旧を実現できます従来はさまざまな関係者と役割ごとに業務と責任を振り分けそれぞれが主に自分のソリューションのレイヤー部分だけに関心を持つことが一般的でした

このセクションではこれらのレイヤーのそれぞれについて詳細に説明しデザインに関する議論や実装についての意思決定に役立つ論点やガイダンスを提示します

SQL Server AlwaysOn ソリューションをうまく利用するには以下のレイヤーについて理解しそれぞれを協調させる必要があります

インフラストラクチャ レベルサーバー レベルのフォールト トレランスとノード内のネットワーク通信が含まれますWindows Server フェールオーバー クラスタリング (WSFC) 機能を使用して稼働状態の監視とフェールオーバーの調整を行います

SQL Server インスタンス レベルSQL Server AlwaysOn フェールオーバー クラスター インスタンス (FCI) はWSFC クラスター内の複数のサーバー ノードにまたがってインストールされる SQL Server インスタンスであり各サーバー ノードへのフェールオーバーが可能ですFCI をホストするノードは堅牢な対称型共有ストレージ (SAN または SMB) に接続されます

データベース レベル可用性グループは共にフェールオーバーされるユーザー データベースのセットです可用性グループは1 つのプライマリ レプリカと最大 4 つのセカンダリ レプリカで構成されます各レプリカはWSFC クラスターの別々のノードにある SQL Server インスタンス (FCI または非 FCI) によってホストされます

クライアント接続データベース クライアント アプリケーションは指定した SQL Server インスタンス ネットワーク名に直接接続できますまたは可用性グループ リスナーにバインドされている仮想ネットワーク名 (VNN) に接続することもできますVNN はWSFC クラスターおよび可用性グループのトポロジを抽象化するものであり接続要求を適切な SQL Server インスタンスとデータベース レプリカに論理的にリダイレクトします

代表的な AlwaysOn ソリューションの論理トポロジは次の図のようになります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 9

インフラストラクチャの可用性AlwaysOn 可用性グループと AlwaysOn フェールオーバー クラスター インスタンスのどちらもWindows Server オペレーティング システムと WSFC をプラットフォーム テクノロジとして利用します今まで以上にMicrosoft SQL Server データベース管理者はこれらのテクノロジについて十分に理解することが必要です

Windows オペレーティング システムSQL Server は基礎的なインフラストラクチャとネットワークストレージセキュリティ更新プログラムおよび監視のサービスを Windows プラットフォームに依存しています

SQL Server 2012 の各エディションはWindows Server 2008 R2 オペレーティング システムの対応するエディション (Windows Server 2008 R2 Standard オペレーティング システムWindows Server 2008 R2 Enterprise オペレーティング システムWindows Server 2008 R2 Datacenter オペレーティング システムなど) の機能や能力をさらに進歩させて構築されています

詳細については「SQL Server 2012 のインストールに必要なハードウェアおよびソフトウェ ア」(httpmsdnmicrosoftcomja-jplibraryms143506(SQL110)aspx) を参照してください

Windows Server Core インストール オプションSQL Server 2012 では高可用性のための主要な機能の 1 つとしてWindows Server 2008 以降で Server Core インストール オプションによる配置をサポートしていますServer Core インストール オプションでは制限された機能と非常に限定的な GUI アプリケーション サポートで特定のサーバー ロールを実行するための最低限の環境が提供されます既定では必要なサービスとコマンド プロンプト環境のみが有効です

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 10

この操作モードではオペレーティング システムへの攻撃の危険性とシステム オーバーヘッドが低下し継続的なメンテナンスサービス修正プログラムなどの要件が大幅に削減されます

SQL Server 2012 を Windows Server Core に配置する場合の主な注意点はSQL Server およびオペレーティング システムのすべての配置構成管理およびメンテナンスをWindows PowerShell などのスクリプト環境やコマンド ラインまたはリモート ツールを使用して行う必要があることです

プライベート クラウド用の SQL Server の最適化高可用性と災害復旧はプライベート クラウド環境ではさらに重要になってきていますプライベート クラウドに SQL Server を配置すればコンピューターネットワークおよびストレージのリソースが効率的に使用され物理的な場所や資本と運営費用の両方の削減に役立ちます配置の統合リソースの効率的なスケーリングオンデマンドでのリソースの配置が容易になり制御の自由度が失われることもありません

SQL Server ではHyper-V のホストとゲストの両方のシステムに対して Windows Server フェールオーバー クラスタリングをサポートするほかライブ マイグレーションもサポートしていますこれは意識されるほどのダウンタイムを生じることなくホスト間で仮想マシンを移動できる機能ですライブ マイグレーションはゲスト クラスタリングとも協調して動作します

詳細については「プライベート クラウド コンピューティング - プライベート クラウド用の SQL Server の最適化 」(httpwwwmicrosoftcomSqlServerPrivateCloud) を参照してください

Windows Server フェールオーバー クラスタリングWindows Server フェールオーバー クラスタリング (WSFC) はMicrosoft SQL Server などのサーバー アプリケーションに対して高可用性と災害復旧をサポートするインフラストラクチャ機能を提供します

WSFC クラスター ノードまたはサービスに障害が発生するとそのノードでホストされていたサービスまたはリソースは自動的にまたは手動で他の可用性ノードに転送されますこのプロセスをフェールオーバーと呼びますAlwaysOn ソリューションではこのプロセスが FCI と可用性グループの両方に適用されます

WSFC クラスター内の各ノードは連携して次のような機能を提供します

分散メタデータと通知WSFC サービスとホストされるアプリケーション メタデータはクラスター内の各ノードで維持されますこのメタデータにはホストされるアプリケーションの設定に加えWSFC の構成と状態が含まれます1 つのノードでのメタデータまたは状態の変更はクラスター内の他のノードに自動的に反映されます

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 11

リソース管理クラスター内の各ノードは直接アタッチされたストレージ (DAS)ネットワーク インターフェイス共有ディスク ストレージへのアクセスなど物理的リソースを提供する場合がありますSQL Server などホストされるアプリケーション自体もクラスター リソースとして登録されますまた他のリソースに対するスタートアップと正常性にかかわる依存関係を構成できます

正常性の監視ノード間の正常性およびプライマリ ノードの正常性はハートビート ネットワーク通信とリソースの監視を組み合わせることで検出されますクラスターの全体的な正常性状態はクラスター内のノードのクォーラムの投票によって決定されます

フェールオーバーの調整各リソースはプライマリ ノードでホストされるように構成されそれぞれ自動的にまたは手動で 1 つ以上のセカンダリ ノードに転送されます正常性ベースのフェールオーバー ポリシーによってノード間でのリソース所有権の自動転送が制御されますフェールオーバーが発生すると適切に対応できるように各ノードおよびホストされているアプリケーションに通知されます

詳細については「Windows Server | フェールオーバー クラスタリングとノード バランシン グ」(httpwwwmicrosoftcomwindowsserver2008enusfailover-clustering-mainaspx) を参照してください

注 データベース管理者が WSFC クラスターおよびクォーラム管理の内部動作を理解しておくことが非常に重要になりましたAlwaysOn の正常性の監視管理および障害復旧の手順はすべてが本質的に WSFC 構成と関連しています

WSFC ストレージ構成Windows Server フェールオーバー クラスタリングでは接続されているストレージ デバイスディスク ボリュームおよびファイル システムの管理をクラスター内の各ノードに依存していますWSFC はストレージ サブシステムが非常に堅牢であると想定しているためノードに接続されたストレージ デバイスが使用できない場合はクラスター ノードが障害状態であると見なします

書き込みベースの操作ではディスク ボリュームは SCSI-3 の永続的な予約を使用して一度に 1 つのクラスター ノードに論理的に接続されますノードで障害が発生した場合にはストレージ サブシステムの機能と構成に応じてディスク ボリュームの論理的所有権をクラスター内の別のノードに移すことができます

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 12

SQL Server AlwaysOn ソリューションでは次のような WSFC ストレージ構成の組み合わせを利用しその制限も受けます

直接接続とリモートストレージ デバイスはサーバーに物理的に直接接続されるかまたはネットワークやホスト バス アダプター (HBA) を介してリモートのストレージ デバイスを使用しますリモート ストレージのテクノロジにはiSCSI やファイバー チャネルなどのストレージ エリア ネットワーク (SAN) ベースのソリューションとサーバー メッセージ ブロック (SMB) というファイル共有ベースのソリューションがあります

対称と非対称ストレージ デバイスの論理ディスク ボリューム構成とファイル パスがクラスターの各ノードでまったく同じである場合それらのストレージ デバイスは対称的であると見なされます基になるディスク ボリュームの物理的な実装と容量は異なっていてもかまいません

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 13

専用と共有専用ストレージは使用するために予約されクラスター内の 1 つのノードに割り当てられます共有ストレージはクラスターの複数のノードからアクセスできます共有ストレージ デバイスが SCSI-3 プロトコルに準拠していればそれらの制御と所有権をノード間で移動させることができますWSFC ではファイル共有のためにクラスター共有ボリュームを同時に複数のノードでホスティングできますただしSQL Server は複数のノードからの共有ボリュームへの同時アクセスをサポートしていません

注 SQL Server FCI では対称共有ストレージを使用してインスタンスのすべてのノード所有者 (およびその候補) からアクセスできるようにする必要がありますただしAlwaysOn 可用性グループの導入に伴いそれぞれが独自に専用のローカルまたはリモート ストレージを持つ非 FCI の SQL Server インスタンスを WSFC クラスターに配置できるようになりました

WSFC リソースの正常性の検出とフェールオーバーWSFC クラスター ノード内の各リソースの状態と正常性は定期的にまたは要求に応じて報告されますクラスター リソースの障害を示す状況としてはたとえば電源障害ディスクまたはメモリのエラーネットワーク通信エラー構成エラー応答しないサービスなどがあります

ネットワークストレージサービスなどの WSFC クラスター リソースは互いに依存するように構成できますあるリソースの累積的な正常性は依存関係を持つリソースの正常性を連続的にたどってゆくことで決定されます

AlwaysOn 可用性グループでは可用性グループと可用性グループ リスナーがそれぞれ WSFC クラスター リソースとして登録されますAlwaysOn フェールオーバー クラスター インスタンスではSQL Server サービスおよび SQL Server エージェント サービスが WSFC クラスター リソースとして登録されどちらもインスタンスの仮想ネットワーク名リソースに依存します

WSFC クラスター リソースで設定された数のエラーまたは障害が一定期間内に発生した場合構成されたフェールオーバー ポリシーによってクラスター サービスは次のいずれかの操作を行います

現在のノードでのリソースの再起動 リソースをオフライン化 リソースとその依存関係を別のノードへ自動的にフェールオーバー

注 WSFC クラスター リソースの正常性の検出は個々のノードの正常性やクラスターの全体的な正常性には直接影響しません

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 14

WSFC のクラスター検証ウィザードクラスター検証ウィザードはWindows Server 2008 および Windows Server 2008 R2 のフェールオーバー クラスタリングに統合されている機能ですこれはSQL Server AlwaysOn ソリューションの配置前 にクリーンで正常な安定した WSFC 環境が存在していることをデータベース管理者が確認するために使用する主要なツールです

クラスター検証ウィザードではクラスターのノードとして使用するサーバーの集合または既存のクラスターを対象にして一連のテストを実行できますこのプロセスでは基になるハードウェアおよびソフトウェアが個別に直接テストされWSFC クラスターが特定の構成でどの程度良好にサポートされるかについての正確な評価が得られます

この検証プロセスでは各ノードに対して次のようなカテゴリの一連のテストとデータ収集が実施されます

一覧作成BIOS のバージョン環境レベルホスト バス アダプターRAMオペレーティング システムのバージョンデバイスサービスドライバーなどの情報です

ネットワークNIC のバインド順序ネットワーク通信IP 構成ファイアウォール構成などの情報ですすべての NIC でノード間の通信が検証されます

ストレージディスクドライブの容量アクセス待機時間ファイル システムなどの情報ですSCSI コマンドディスク フェールオーバー機能対称的または非対称的なストレージ構成が検証されます

システム構成Active Directory の構成ドライバーの登録メモリ ダンプの設定必要なオペレーティング システムの機能とサービス互換性のあるプロセッサ アーキテクチャおよびサービス パックと Windows Software Update のレベルが検証されます

これらの検証テストの結果を利用してクラスターの構成を微調整したり構成を追跡したりダウンタイムを引き起こすかもしれない潜在的なクラスター構成の問題を特定したりできますテスト結果のレポートは後で参照できるようにHTML ドキュメントとして保存できます

これらのテストはWSFC の構成に何か変更を加える前と加えた後に実行するほかSQL Server をインストールする前および災害復旧プロセスの一環として実行する必要がありますマイクロソフトで特定の WSFC クラスター構成がサポートされるためにはマイクロソフト カスタマー サポート サービス (CSS) にクラスター検証レポートを提出する必要があります

詳細については「フェールオーバー クラスター ステップ バイ ステップ ガイド フェール オーバー クラスター用ハードウェアを検証する」(httptechnetmicrosoftcomja-jplibrarycc732035(WS10)aspx) を参照してください

注 ハードウェアベースの地理的クラスタリング ストレージ ソリューションの場合やAlwaysOn 可用性グループの場合のようにクラスター構成に非対称ストレージがあるとクラスター検証ウィザードでストレージの検証手順を成功させるために多数の修正プログラムを適用しなければならないことがあります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 15

詳細については「AlwaysOn 可用性グループの前提条件制限事項および推奨事項 」(httpmsdnmicrosoftcomja-jplibraryff878487(SQL110)aspxSystemReqsForAOAG) を参照してください

WSFC クォーラム モードと投票の構成WSFC ではクォーラム ベースのアプローチを使用してクラスターの全体的な正常性を監視することでノード レベルのフォールト トレランスを最大限に高めますWSFC のクォーラム モードおよびノード投票構成の基本について理解することはAlwaysOn 高可用性災害復旧ソリューションの設計運用トラブルシューティングのために非常に重要です

クォーラムによるクラスター状態検出WSFC クラスター内の各ノードは定期的なハートビート通信に参加しノードの正常性状態を他のノードと共有します応答しないノードはエラー状態であると見なされます

クォーラム ノード セットとはWSFC クラスター内の投票ノードおよび監視サーバーのうち過半数を占めるノードの集合ですWSFC クラスターの全体的な正常性と状態は定期的なクォーラムの投票 によって決定されますクォーラムはクラスターが正常でありノード レベルのフォールト トレランスを提供できることを意味します

クォーラムに達していない状態はクラスターが正常でないことを示しますプライマリ ノードのフェールオーバー先として正常なセカンダリ ノードを使用できるようにするにはWSFC クラスターの全体的な正常性が維持されている必要があります投票数がクォーラムに達しなかった場合にはWSFC クラスター全体が予防策としてオフラインに設定されますその場合クラスターに登録されている SQL Server インスタンスがすべて停止します

注 クォーラム障害のために WSFC クラスターがオフラインに設定されるとオンラインに戻すために手動の操作が必要です詳細については後の「WSFC の強制クォーラムによる災害 復旧」のセクションを参照してください

クォーラム モードクォーラム モードはWSFC クラスター レベルで構成されクォーラム投票の方法を指定しますフェールオーバー クラスター マネージャー ユーティリティではクラスター内のノード数に基づいて推奨するクォーラム モードが提示されます

次のいずれかのクォーラム モードによって投票クォーラムの構成が決定されます

ノード マジョリティクラスターが正常であるためにはクラスター内の半分以上の投票ノードが肯定的に投票する必要があります

ノードおよびファイル共有マジョリティノード マジョリティ クォーラム モードに似ていますがリモート ファイル共有も投票監視サーバーとして構成され各ノードからそのリモート ファイル共有への接続も肯定的な投票としてカウントされますクラスターが正常であるためには投票の過半数が肯定的である必要があります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 16

推奨事項として監視ファイル共有はクラスター内のノードに存在せずクラスター内のすべてのノードから見える必要があります

ノードおよびディスク マジョリティノード マジョリティ クォーラム モードに似ていますが共有ディスク クラスター リソースも投票監視サーバーとして使用され各ノードからその共有ディスクへの接続も肯定的な投票としてカウントされますクラスターが正常であるためには投票の過半数が肯定的である必要があります

ディスクのみ共有ディスク クラスター リソースが監視サーバーとして使用され各ノードからその共有ディスクへの接続が肯定的な投票としてカウントされます

詳細については「フェールオーバー クラスター ステップ バイ ステップ ガイド フェール オーバー クラスターのクォーラムの構成」(httptechnetmicrosoftcomja-jplibrarycc770620(WS10)aspx) で説明されています

注 クラスターの各ノードが同じ共有ストレージ クォーラム監視ディスクを使用するように構成されていない限り通常投票ノード数が奇数の場合は ノード マジョリティ クォーラム モード投票ノード数が偶数の場合は ノードおよびファイル共有マジョリティ クォーラム モードを使用してください

投票ノードと非投票ノード既定ではWSFC クラスター内の各ノードがクラスター クォーラムのメンバーとなります各ノードファイル共有監視サーバーディスク監視サーバーがクラスターの全体的な正常性の決定においてそれぞれ 1 票ずつの投票権を持ちますクォーラムに関するここまでの説明ではクラスター状態について投票する WSFC クラスター ノードのセットを投票ノードとして注意深く限定してきました状況によってはすべてのノードに投票権を与えることが適切でない場合もあります

WSFC クラスターの各ノードはクォーラムを確立しようとし続けますクラスター内の個々のノードはクラスターが全体として正常であるか正常でないかを明確に決定することはできません特定の時点で各ノードからは他のノードの一部がオフラインフェールオーバー中またはネットワーク通信のエラーにより応答不能に見えますクォーラム投票の主な機能はWSFC クラスターの各ノードの見かけの状態が本当にそれらのノードの実際の状態であるかどうかを判断することです

ディスクのみ 以外のすべてのクォーラム モデルではクォーラム投票の有効性はクラスター内のすべての投票ノード間に信頼できる通信が確立されていることに依存しますすべてのノードが同じ物理サブネット上にある場合はクォーラムの投票を信頼できます

しかしクォーラム投票で他のサブネット上のノードが応答しないように見えても実際はオンラインで正常である場合はサブネット間のネットワーク通信のエラーが原因であることが考えられますクラスター トポロジクォーラム モードおよびフェールオーバー ポリシーの構成によってはネットワーク通信エラーによって投票ノードのセット (またはサブセット) が実質的に複数作成されてしまう可能性があります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 17

投票ノードの複数のサブセットがそれぞれ独自のクォーラムを構築できる状態はスプリット ブレイン と呼ばれますこの状態では各クォーラム上のノードが別々の動作をし相互に矛盾する可能性があります

注 スプリット ブレイン の状況が発生するのはシステム管理者が強制クォーラム動作を手動で実行するかまたは非常にまれですが強制的な手動フェールオーバーを実行することでクォーラム ノード セットが明示的に細分化された場合のみです詳細については後の「WSFC の強制クォーラムによる災害復旧 」のセクションを参照してください

クォーラム構成を単純化し稼働時間を長くする目的でノードの投票がクォーラムにカウントされないように各ノードの NodeWeight 設定 (値 0 または 1) を調整することができます

クォーラム投票に推奨される調整以下のガイドラインをこの順番に適用することでクラスターに対して推奨されるクォーラム投票の構成を判断できます

1 既定は投票権なしにします明確な理由がない限り各ノードには投票権を与えないと考えてください

2 すべてのプライマリ ノードに投票権を与えますAlwaysOn 可用性グループのプライマリ レプリカをホストする各ノードおよび AlwaysOn フェールオーバー クラスター インスタンスの優先所有者である各ノードは投票権を持つ必要があります

3 可能性のある自動フェールオーバーの所有者を含めます自動フェールオーバーの結果としてプライマリ レプリカまたは FCI をホストする可能性がある各ノードは投票を持つ必要があります

4 セカンダリ サイト ノードを除外します通常はセカンダリ災害復旧サイトに存在するノードには投票を提供しないでくださいプライマリ サイトに問題がない場合クラスターをオフラインにする判断にセカンダリ サイト内のノードが影響を与えることは避ける必要があります

5 投票数を奇数にします必要に応じて監視ファイル共有監視ノード (SQL Server インスタンスの有無は問いません)または監視ディスクをクラスターに追加してクォーラム モードを調整しクォーラムの投票結果が同数に分かれるのを防ぎます

6 フェールオーバー後の投票割り当てを再評価します正常なクォーラムをサポートしないクラスター構成にフェールオーバーすることは避けます

ノードの投票の調整の詳細については「クラスター クォーラムの NodeWeight の設定の構 成」(httpmsdnmicrosoftcomja-jplibraryhh270281(SQL110)aspx) を参照してください

ファイル共有監視サーバーの投票は調整できませんその投票を含めるか除外するかを決めるには別のクォーラム モードを選択する必要があります

注 SQL Server ではWSFC クラスター構成およびノード クォーラム投票に関する設定を管理するためにいくつかのシステム動的管理ビュー (DMV) が公開されています

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 18

詳細については「可用性グループの監視」(httpmsdnmicrosoftcomja-jplibraryff878305(SQL110)aspx) を参照してください

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 19

WSFC の強制クォーラムによる災害復旧通常クォーラム障害は災害発生時または WSFC クラスター内の複数のノード間で永続的な通信障害が生じた場合に発生しますクォーラム障害が発生するとクラスターがノード レベルのフォールト トレランスを確保できなくなるためその WSFC クラスター内の SQL Server インスタンス可用性グループおよびクラスター化されているサービスがすべてオフラインになりますクォーラム障害はWSFC クラスター内の正常な投票ノード数がクォーラム モデルを満たさなくなったことを意味しますノードによってまったく機能しなくなるものもあればWSFC サービスがシャットダウンしただけでクォーラムと通信できなくなったことを除けば正常なものもあります

WSFC クラスターをオンラインに戻すには既存の構成の少なくとも 1 つのノードでクォーラム障害の根本的な原因を解決する必要があります災害発生時には使用できる代替ハードウェアの再構成や識別が必要となる場合もあります現状のクラスター トポロジを反映するためにWSFC クラスターの残りのノードを再構成する場合もあります

WSFC クラスター ノードで強制クォーラムの手順を使用するとクラスターがオフラインになる原因となった安全管理機能を無効にすることができますこれによりクラスターでのクォーラム投票のチェックが実質的に中断されクラスター内の任意のノードで WSFC クラスター リソースと SQL Server をオンラインに戻すことができます

このような災害復旧プロセスの手順を次に示します

1) 障害の範囲を特定します応答しない可用性グループや SQL Server インスタンス災害後に使用できるオンラインのクラスター ノードをそれぞれ特定しWindows イベント ログと SQL Server システム ログを確認します必要に応じて後で分析できるように解析データやシステム ログを保存しておきます

2) 1 つのノードで強制クォーラムを使用して WSFC クラスターを起動します他の点では正常なノードで強制クォーラムの手順に従ってクラスターを手動で強制的にオンラインにしますこの場合データ損失の可能性を最小限に抑えるには可用性グループのプライマリ レプリカを最後にホストしていたノードを選択します

詳細については「クォーラムを使用せずに WSFC クラスターを強制的に起動する 」(httpmsdnmicrosoftcomja-jplibraryhh270275(v=SQL110)aspx) を参照してください

注 強制クォーラムの設定を使用するとWSFC クラスターの投票が過半数に達することで通常のクォーラム モードの動作に自動的に切り替わるまでクラスター全体のクォーラムのチェックがブロックされます

3) 他の点では正常な各ノードでWSFC サービスを 1 つずつ通常の方法で起動します他のノードでクラスター サービスを起動するときは強制クォーラム オプションを指定する必要はありません

各ノードの WSFC サービスがオンラインに戻ると他の正常なノードとの間でネゴシエーションが行われ新しいクラスター構成の状態が同期されますクラスターの最新の状態

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 20

を判断するときに競合状態の発生を避けるためこの手順は必ず一度に 1 つのノードで行うようにしてください

注 起動した各ノードが新たにオンラインにした他のノードと通信できることを確認しますそうしないと複数のクォーラム ノード セットが作成されて スプリット ブレイン の状況に陥るおそれがあります手順 1 の結果に問題がなければこの現象は発生しません

4) 新しいクォーラム モードとノードの投票の構成を適用します強制クォーラムの手順によってクラスターのすべてのノードを正常に再起動させクォーラムのエラーの根本原因を修正した場合クォーラム モードとノードの投票を元の構成から変更する必要はありません

それ以外の場合は新たに復元されたクラスター ノードと可用性レプリカのトポロジを評価し必要に応じてクォーラム モードと各ノードの投票割り当てを変更します未復旧のノード上ではWSFC クラスター サービスをオフラインにするかノードの投票をゼロに設定します

注 この時点でクラスター内のノードと SQL Server インスタンスが通常の動作に戻っているように見えることがありますがまだ正常なクォーラムには達していない可能性がありますフェールオーバー クラスター マネージャーやSQL Server Management Studio の AlwaysOn ダッシュボードまたは適切な DMV を使用して正常なクォーラムが復元されたことを確認してください

5) 必要に応じて可用性グループのデータベース レプリカを復旧します一部のデータベースはSQL Server の通常の起動処理の一環として自動的に復旧されオンラインに戻ることがありますそれ以外のデータベースの復旧には追加で手動の手順を実行する必要があります

可用性グループ レプリカのデータ損失の可能性や復旧にかかる時間を最小限に抑えるにはできればプライマリ レプリカ同期セカンダリ レプリカ非同期セカンダリ レプリカの順にオンラインに戻します

6) 障害が発生したコンポーネントを修復するか交換しクラスターを再検証しますこれで最初の災害およびクォーラム障害から復旧できたので障害が発生したノードを修復するか交換しWSFC と AlwaysOn の関連する構成を適切に調整する必要がありますこれには可用性グループ レプリカの削除クラスターからのノードの削除ノードへのソフトウェアの再インストールなどが含まれます

注 停止したすべての可用性レプリカを修復または削除する必要がありますSQL Server 2012 では最も古い可用性レプリカを最後に認識した時点以降トランザクション ログが切り捨てられません停止したレプリカを修復するか可用性グループから削除しないとトランザクション ログが大きくなり他のレプリカのトランザクション ログの領域が不足する可能性があります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 21

7) 必要に応じて手順 4 を繰り返しますこの目的は正常な動作を行うために適切なレベルのフォールト トレランスと高可用性を再確立することです

8) RPORTO 分析を実行しますSQL Server のシステム ログデータベースのタイムスタンプおよび Windows のイベント ログを分析して障害の根本的な原因を特定し実際の復旧ポイントと復旧時間を文書に記録します

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 22

SQL Server インスタンス レベルでの保護次に説明する AlwaysOn ソリューションの保護レイヤーはデータ プラットフォームそれ自体ですMicrosoft SQL Server 2012 とその Windows Server インフラストラクチャ コンポーネントとの統合によって次のような機能が提供されます

可用性の向上 ndash SQL Server インスタンスこれは SQL Server 2012 の新しいインスタンス レベルの機能でAlwaysOn フェールオーバー クラスター インスタンスとAlwaysOn 可用性グループをホストするスタンドアロン インスタンスの両方の可用性を強化します

以下の強化点によってフェールオーバーの管理およびトラブルシューティングが向上します

柔軟なフェールオーバー ポリシー信頼性の高いエラー検出に使用される新しいシステム ストアド プロシージャ sp_server_diagnostics の出力でSQL Server インスタンスに影響するエラーの重大度が FailureConditionLevel プロパティによって示されますWSFC のフェールオーバー ポリシーによってこの値が SQL Server インスタンスにどのように影響するかを制御できますある程度エラーを許容する設定からSQL Server の内部コンポーネント エラーを重点的に検出する設定までさまざまに構成できます

特定のレベルのエラーによってフェールオーバーを開始するように構成できますエラーのレベルにはサーバーの停止サーバーの応答停止重大なエラー中程度のエラーなんらかの条件付きエラーなどがありますFailureConditionLevel プロパティはFCI または可用性グループのフェールオーバー ポリシーのために使用できます

SQL Server 2012 よりも前のバージョンではフェールオーバーを制御できるようなエラー状態の区分がなくすべてのサービス レベルのエラーによってフェールオーバーが発生しました

詳細については「フェールオーバー クラスター インスタンスのフェールオーバー ポリシー」(httpmsdnmicrosoftcomja-jplibraryff878664(SQL110)aspx) を参照してください

強化されたインストルメンテーションとログAlwaysOn 専用のシステム構成ビューDMVパフォーマンス カウンターに加えて拡張されたイベント正常性セッションによってAlwaysOn 配置のトラブルシューティングチューニングおよび監視に必要な情報を取得して表示できますこれらの多くはSQL Server ポリシー管理の新しいファセットおよびポリシーを通じて公開されます

詳細については「AlwaysOn 可用性グループの動的管理ビューおよび関 数」(httpmsdnmicrosoftcomja-jplibraryff877943(SQL110)aspx) と「sysdm_os_cluster_nodes」(httpmsdnmicrosoftcomja-jplibraryms187341(SQL110)aspx) を参照してください

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 23

SMB ファイル共有のサポートWindows Server 2008 以降のスタンドアロン用またはフェールオーバー クラスター インスタンス用のリモート ファイル共有にデータベース ファイルを格納することができますこの場合FCI ごとに異なるドライブ文字を使用する必要がありませんこれはストレージを統合する場合やデータベース ファイルのストレージを仮想マシンのゲスト オペレーティング システム用物理サーバーでホストする場合などに便利なオプションです適切に構成すれば直接接続されたストレージとほぼ同等の IO パフォーマンスが得られます

詳細については「ファイル共有上の SQL データベース - シナリオを再検討すべきとき 」(httpblogsmsdncombsqlserverstorageenginearchive20111018sql-databases-on-file-shares-it-s-time-to-reconsider-the-scenarioaspx) を参照してください

注 WSFC クラスターではSMB ファイル共有リソースの依存関係を SQL Server リソース グループに追加することはできませんファイル共有の可用性を確保するには別の方法を用いる必要がありますファイル共有が使用できなくなった場合SQL Server は IO 例外をスローしオフラインになります

WSFC と DNS の相互運用性FCI または可用性グループ リスナーの仮想ネットワーク名 (VNN) はVNN の作成時または構成の変更時にのみDNS に登録されますすべての仮想 IP アドレスはオンライン状態かオフライン状態かに関係なく同じ仮想ネットワーク名で DNS に登録されますDNS の仮想ネットワーク名を解決するためのクライアント呼び出しは各種のラウンド ロビン シーケンスによってすべての登録済み IP アドレスを返します

AlwaysOn フェールオーバー クラスター インスタンスSQL Server の AlwaysOn フェールオーバー クラスター インスタンス (FCI) の主な目的は1 つのデータ センター内のローカル サーバーとストレージ ハードウェアでホストされている SQL Server インスタンスの可用性を高めることです

FCI はWindows Server フェールオーバー クラスタリング (WSFC) のクラスターに含まれる複数のノードにまたがってインストールされる1 つの論理的な SQL Server インスタンスですただし一度に 1 つのノードだけでアクティブになることができますクライアント アプリケーションはアクティブなクラスター ノードが所有している仮想ネットワーク名および仮想 IP アドレスに接続します

FCI をインストールした各ノードは同一の構成を持ち同一の SQL Server バイナリを含んでいますWSFC クラスター サービスはアクティブなインスタンス上にある Windows レジストリのエントリからFCI をインストールした各ノードに関連のある変更をレプリケートしますFCI がインストールされている各ノードはインスタンスとそのリソースの所有者の候補として指定されフェールオーバーの優先順位に従って所有者となります

共有対称ストレージ ボリュームに格納されているデータベース ファイルはリソースとして WSFC クラスターに登録され現在 FCI をホストしているノードによって所有されます

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 24

詳細については「AlwaysOn フェールオーバー クラスター インスタン ス」(httpmsdnmicrosoftcomja-jplibraryms189134(SQL110)aspx) を参照してください

FCI のフェールオーバー プロセス依存しているクラスター リソースで障害が発生した場合AlwaysOn フェールオーバー クラスター インスタンスはWSFC クラスター サービスと連携してフェールオーバーを行いますそのプロセスの概要を以下に示します

1) 再起動が指示されますWSFC の定期的なチェックまたは SQL Server のフェールオーバー ポリシー構成によってエラー状態が示されます既定では他のノードへのフェールオーバーを開始する前にサービスの再起動が試みられます再起動の試みがタイムアウトするようであればリソースの障害が発生しています

2) フェールオーバーが指示されますフェールオーバー ポリシー チェックによってノードのフェールオーバーが必要であることが示されます

3) SQL Server サービスが停止されますSQL Server サービスが現在実行されている場合はその正常なシャットダウンが試みられます

4) WSFC クラスター リソースが転送されますSQL Server クラスター リソース グループの所有権とそれが依存するネットワークおよび共有ストレージ リソースがFCI で次に優先されるノード所有者に転送されます

5) 新しいノードで SQL Server が起動されますSQL Server インスタンスは通常のスタートアップ プロシージャで起動されます所定のタイムアウト時間内にオンラインに戻らない場合クラスター サービスはこの新しいノード上のリソースをエラー状態と見なします

6) 新しいノードでユーザー データベースが復旧されます各ユーザー データベースは復旧モードに設定されます復旧モードではトランザクション ログの再実行操作が適用されコミットされていなかったトランザクションがロールバックされます

FCI の強化以前のバージョンの SQL Server でも FCI のインストール オプションは用意されていましたがSQL Server 2012 では次のような機能強化によって可用性の堅牢性と利便性が向上しました

マルチサブネット クラスタリングSQL Server 2012 では複数のサブネットに存在する WSFC クラスター ノードがサポートされていますWSFC クラスター ノードに存在する SQL Server インスタンスはいずれかのネットワーク インターフェイスが使用可能であれば起動できますこれはクラスター リソースの OR 依存関係と呼ばれます

以前のバージョンの SQL Server の場合SQL Server サービスを起動またはフェールオーバーするにはすべてのネットワーク インターフェイスが機能しそれらがすべて同じサブネットまたは VLAN に存在している必要がありました

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 25

注 マルチサブネット クラスタリングではクラスター ノード間のストレージ レベルのレプリケーションが自動的には有効になりませんマルチサブネットの FCI ソリューションでクラスター ノード間でデータのレプリケーションを行いストレージ フェールオーバーを調整するためにはサード パーティから提供される SAN ベースのソリューションを利用する必要があります

詳細については「SQL Server 2012 AlwaysOn マルチサイト フェールオーバー クラスター インスタンス」(httpsqlcatcomsqlcatbwhitepapersarchive20111222sql-server-2012-alwayson_3a00_-multisite-failover-cluster-instanceaspx) を参照してください

信頼性の高いエラー検出WSFC クラスター サービスではノードの各 SQL Server 2012 FCI に対してそれぞれ専用の管理者接続が維持されますこの接続では特殊なシステム ストアド プロシージャ sp_server_diagnostics を定期的に呼び出すことでシステムの正常性診断に役立つ豊富な情報を含む配列が返されます

SQL Server 2012 よりも前のバージョンではFCI の主な正常性検出メカニズムは単純な一方向のポーリング プロセスとして実装されていましたこのプロセスではWSFC クラスター サービスがインスタンスへの新しい SQL クライアント接続を定期的に作成しサーバー名を照会した後で接続を切断していました何かの理由で接続が失敗するかクエリがタイムアウトした場合フェールオーバーが開始されますが診断情報はほとんど提供されません

詳細については「sql_server_diagnostics」(httpmsdnmicrosoftcomja-jplibraryff878233(SQL110)aspx) を参照してください

現在ではFCI ストレージが次のように幅広い状況でサポートされています

向上したマウント ポイント サポートSQL Server のセットアップ時にクラスター ディスクのマウント ポイント設定が認識されるようになりました指定されたクラスター ディスクとそれにマウントされているすべてのディスクがセットアップ時に SQL Server リソースの依存関係に自動的に追加されます

ローカル ストレージの tempdbFCI ではローカルの非共有ストレージ (ローカル ソリッド ステート ドライブなど) に tempdb を配置できるようになったため共有 SAN での IO 動作の負荷を大幅に軽減できる可能性があります

SQL Server 2012 よりも前のバージョンの FCI ではtempdb が他のシステム データベースと共にフェールオーバーされる対称共有ストレージ ボリュームに配置される必要がありました

注 tempdb の場所はmaster データベースに格納されますこのデータベースはフェールオーバー時にノード間で移動されますtempdb は所有者候補となっているすべてのノード上で有効で対称的なファイル パス (ドライブフォルダーおよび権限) に配置されている必要がありますそうなっていない場合SQL Server サービスが一部のノードでは起動されません

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 26

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 27

データベースの可用性インフラストラクチャ レベルおよび SQL Server インスタンス レベルのコンポーネントで提供されている高可用性機能は互いに連係してホストされているデータベースを暗黙的に保護しますAlwaysOn ソリューションではデータベースのデータおよびデータ層アプリケーションを明示的に保護するために一連のオプションが追加で用意されています

AlwaysOn 可用性グループ可用性グループは1 つの SQL Server インスタンスから同じ WSFC クラスター内の別のインスタンスへと同時にフェールオーバーされるユーザー データベースのセットですクライアント アプリケーションは可用性グループ リスナーと呼ばれる WSFC 仮想ネットワーク名を通じて可用性グループのデータベースに接続できますこうすることで基になる SQL Server インスタンスが抽象化されます

AlwaysOn 可用性グループは正常性監視フェールオーバーの調整およびサーバー接続を Windows Server フェールオーバー クラスタリングに依存していますWSFC クラスター ノード上の SQL Server インスタンスでAlwaysOn サポートを有効にする必要がありますただしそのインスタンスが FCI である必要はなく対称共有ストレージを使用する必要もありません

詳細については「AlwaysOn 可用性グループの概要 」(httpmsdnmicrosoftcomja-jplibraryff877884(SQL110)aspx) を参照してください

可用性レプリカとロール可用性グループの各 SQL Server インスタンスは可用性グループのユーザー データベースのコピーを保持している可用性レプリカをホストしますSQL Server インスタンスは特定の可用性グループの可用性レプリカを 1 つだけホストすることができますが複数の可用性グループを同じインスタンスに置くことは可能ですSQL Server インスタンスは専用の (非共有) ストレージ ボリュームを持つ必要があります

可用性レプリカの 1 つがプライマリ レプリカの役割を果たしますこれは可用性グループ データベースのマスター コピーとして指定されていて読み取り書き込み操作を行うことができます

可用性グループには読み取り専用の可用性レプリカを最大 4 つまで追加で含めることができますこれらは個別にセカンダリ レプリカの役割を果たします

可用性レプリカの同期可用性グループの各データベースの内容はSQL Server によるログ ベースのデータ移動メカニズムを通じてプライマリ レプリカから各セカンダリ レプリカに同期されますそのため可用性グループのすべてのデータベースは完全復旧モデルに設定する必要があります

セカンダリ レプリカはプライマリ レプリカのデータベースとトランザクション ログの完全なバックアップと復元によって初期化されますプライマリ レプリカで新しいトランザクションがコミットされるとトランザクション ログの対応する部分がキャッシュされ

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 28

キューに入れられてネットワーク経由でセカンダリ レプリカ ノード上のデータベース ミラーリング エンドポイントに送信されます

この方法によりプライマリ レプリカのトランザクション ログの新しいエントリが各セカンダリ レプリカのトランザクション ログに追加されます各セカンダリ レプリカはログ シーケンス番号 (LSN) をプライマリ レプリカに定期的に送り返しトランザクション ログのどのくらいの量がリモート ディスクに書き込まれフラッシュされたかを示します

注 各可用性レプリカはそれぞれ独自に独立したトランザクション ログ再実行スレッドのセットを保持していますこれは可用性レプリカの同期プロセスには含まれませんセカンダリ レプリカ上ではログ再実行プロセスによって遅延時間が生じるためユーザーはそれをデータの待機時間として感じる場合があります

プライマリまたはセカンダリの役割を果たす他に各可用性レプリカには可用性モードもありますこのモードは次のようにCOMMIT TRAN ステートメントの実行時にトランザクション ログの書き込みの連係を制御します

同期コミット モードすべての同期コミット セカンダリ レプリカからそれぞれ独自のトランザクション ログの書き込み完了 (LSN 以降) が通知されるまでプライマリ レプリカはそのトランザクションをコミットしません可用性グループでは最大で 2 つの同期コミット セカンダリ レプリカを使用できます

同期コミット モードではプライマリ レプリカ データベースでトランザクションの遅延が生じますがコミットされたトランザクションに対するセカンダリ レプリカでのデータ損失を確実に防ぐことができます

非同期コミット モードプライマリ レプリカはローカル トランザクション ログの書き込み後にトランザクションをコミットしますが非同期コミット セカンダリ レプリカからトランザクション ログの書き込み完了通知を待つことはしません可用性グループでは最大で 4 つの非同期コミット セカンダリ レプリカを使用できますただし両方の種類を合わせて使用できるセカンダリ レプリカの合計は最大 4 つです

非同期コミット モードではプライマリ レプリカ データベースで生じるトランザクションの遅延が最小になりますがセカンダリ レプリカでのトランザクション ログが遅れる場合があるため一部のデータが失われる可能性があります

詳細については「可用性モード」(httpmsdnmicrosoftcomja-jplibraryff877931(SQL110)aspx) を参照してください

可用性レプリカ間のデータ フローの全体的な正常性は各レプリカの同期状態によって示されますセカンダリ レプリカにフェールオーバーしたときに同期状態が 同期済み または 同期中 になっていなければほとんどの場合はデータ損失が発生することになります

各セカンダリ レプリカの同期ストリームにはセッション タイムアウト プロパティがあります同期コミット モードに構成されているセカンダリ レプリカがセッション タイムアウトでエラーになると内部的には一時的に非同期としてマークされますこれはセカンダ

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 29

リ レプリカのエラーがプライマリ レプリカでのトランザクション ログの書き込みに影響しないようにするためですそのセカンダリ レプリカが正常に戻ってプライマリ レプリカの状態に追いつくと自動的に通常の同期コミット モード動作に戻されます

可用性グループのフェールオーバー可用性グループとそれに対応する仮想ネットワーク名はWSFC クラスターのリソースとして登録されます可用性グループはプライマリ レプリカの正常性とフェールオーバー ポリシーに基づいて可用性レプリカのレベルでフェールオーバーを行います

可用性グループのフェールオーバー ポリシーではsp_server_diagnostics システム ストアド プロシージャと FailureConditionLevel プロパティを使用して可用性グループに対して許容されるエラーの重大度のレベルを示しますこの同じメカニズムがFCI のフェールオーバー ポリシーにも使用されます

フェールオーバーが発生した場合は共有物理リソースの所有権を他のノードに移す代わりにWSFC を利用して他の SQL Server インスタンス上でセカンダリ レプリカを再構成しプライマリ レプリカの役割を引き継がせますその後可用性グループの仮想ネットワーク名リソースがそのインスタンスに転送されます関連する可用性レプリカへのすべてのクライアント接続がリセットされます

レプリカの現在の正常性同期状態および可用性モードに基づいて各レプリカには複合的な フェールオーバーの準備 状態が定義されますこの状態の値はデータ損失の可能性を示していますレプリカの正常性情報はAlwaysOn ダッシュボードまたは sysdm_hadr_availability_replica_states システム ビューで確認できます

各可用性レプリカにはフェールオーバー モードも構成されていますこのモードはフェールオーバーが指示された場合にレプリカの動作を制御します

自動フェールオーバー (データ損失なし)セカンダリ レプリカのトランザクション ログが既に書き込まれ同期されているのですべての AlwaysOn 構成の中でフェールオーバー時間が最短になりますプライマリ レプリカ上の開かれているトランザクションはロールバックされプライマリ レプリカの役割はユーザーによる操作なしでセカンダリ レプリカに転送されます

この場合プライマリ レプリカとセカンダリ レプリカの両方を自動フェールオーバー モードに設定し両方の可用性モードを同期コミットに設定する必要がありますレプリカ間の同期状態は同期済み である必要がありますまたWSFC クラスターは正常なクォーラム状態になっている必要があります

自動フェールオーバーはプライマリ レプリカまたはセカンダリ レプリカが FCI 上にある場合はサポートされませんこれは可用性グループと FCI のフェールオーバー間で競合状態が発生することを防ぐためです

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 30

手動フェールオーバーこの場合管理者はプライマリ レプリカの状態を評価してセカンダリ レプリカにフェールオーバーするかどうかを慎重に判断できます

可用性モードと同期状態に応じて次のような選択が可能です

o 計画的な手動フェールオーバー (データ損失なし)この種類のフェールオーバーを実行できるのはプライマリ レプリカとセカンダリ レプリカの両方が正常で同期済み 状態である場合だけですこれは機能的には自動フェールオーバーと同じです

o 強制手動フェールオーバー (データ損失の可能性を許容)これは対象のセカンダリ レプリカの可用性モードが非同期コミットである場合またはプライマリ レプリカに同期されない場合に使用できる唯一のフェールオーバー形式です

警告 このフェールオーバー オプションは災害復旧の状況に限って使用する必要がありますプライマリ レプリカが正常で使用可能である場合は関連する各レプリカの可用性モードを同期コミットに変更し計画的な手動フェールオーバーを実行してください

詳細については「可用性グループの強制手動フェールオーバーの実行」(httpmsdnmicrosoftcomja-jplibraryff877957(SQL110)aspx) を参照してください

フェールオーバー対象のプライマリ レプリカまたはセカンダリ レプリカが次の条件のいずれかに該当する場合は手動フェールオーバーを実行する必要があります

フェールオーバー モードが手動に設定されている 可用性モードが非同期コミットに設定されている レプリカが FCI 上にある

詳細については「フェールオーバーとフェールオーバー モード (AlwaysOn 可用性グルー プ ) 」(httpmsdnmicrosoftcomja-jplibraryhh213151(SQL110)aspx) を参照してください

注 フェールオーバー後新しいプライマリ レプリカが同期コミット モードに設定されていない場合セカンダリ レプリカの同期状態は 中断状態 になりますプライマリ レプリカが同期コミット モードに設定されるまでデータはセカンダリ レプリカに移動されません

可用性グループ リスナー可用性グループ リスナーはクライアントが可用性グループ内のデータベースにアクセスするために使用できる WSFC 仮想ネットワーク名 (VNN) ですVNN クラスター リソースはプライマリ レプリカをホストしている SQL Server インスタンスによって所有されます

仮想ネットワーク名は可用性グループ リスナーの作成時または構成の変更時にのみDNS に登録されます可用性グループ リスナーで定義されているすべての仮想 IP アドレスは同じ仮想ネットワーク名で DNS に登録されます

可用性グループ リスナーを使用する場合クライアント接続要求ではサーバーとして仮想ネットワーク名を指定してから可用性グループ内のデータベース名を指定する必要があり

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 31

ます既定ではこれによってプライマリ レプリカをホストしている SQL Server インスタンスに接続されます

実行時にはクライアントはローカルの DNS リゾルバーを使用して仮想ネットワーク名にマップされている IP アドレスと TCP ポートの一覧を取得しますクライアントは各 IP アドレスへの接続を成功するか接続タイムアウトに達するまで試し続けますMultiSubnetFailover パラメーターが true に設定されているとクライアントは複数の接続を同時に試行するのでクライアント フェールオーバーが大幅に速くなります

フェールオーバーが行われるとサーバー上でクライアント接続がリセットされ可用性グループ リスナーの所有権はプライマリ レプリカの役割と共に新しい SQL Server インスタンスに移動しVNN エンドポイントは新しいインスタンスの仮想 IP アドレスと TCP ポートにバインドされます

詳細については「可用性グループ リスナークライアント接続およびアプリケーションのフェールオーバー」(httpmsdnmicrosoftcomja-jplibraryhh213417(SQL110)aspx) を参照してください

アプリケーションの目的によるフィルター処理可用性グループ リスナーを使用して接続している場合アプリケーションは接続の目的がデータの読み取りと書き込みの両方なのか読み取り専用操作を実行するだけなのかを指定できます指定しない場合クライアントのアプリケーションの目的は既定で読み取りと書き込みになります

各可用性レプリカのプライマリ ロールとセカンダリ ロールについてはクライアントのアプリケーションの目的に対する接続レベルのフィルターとして接続アクセス プロパティも指定できます既定ではアプリケーションの目的と接続アクセスとの組み合わせが無効であると接続が拒否されますSQL Server は次のルールを使用してクライアントの接続要求を振り分ける必要があります

可用性レプリカがプライマリ ロールであり接続アクセスが次のいずれかである場合

すべてのアプリケーションの目的を許可するアプリケーションの目的でクライアント接続をフィルター処理しません

明示的な読み取り書き込みの目的だけを許可するクライアントが読み取り専用を指定している場合接続を拒否します

可用性レプリカがセカンダリ ロールであり接続アクセスが次のいずれかである場合

接続を許可しないすべての接続を拒否しますレプリカは災害復旧だけに使用されます

すべてのアプリケーションの目的を許可するアプリケーションの目的でクライアント接続をフィルター処理しません

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 32

読み取り専用の目的を許可するクライアントが読み取り専用を指定していない場合接続を拒否します

詳細については「可用性レプリカでの読み取り専用アクセスの構成」(httpmsdnmicrosoftcomja-jplibraryhh213002(SQL110)aspx) を参照してください

アプリケーションの目的の読み取り専用ルーティングAlwaysOn 可用性グループの特に優れた点はスタンバイ ハードウェア インフラストラクチャを災害復旧以外の目的に利用できることです1 つ以上のセカンダリ レプリカを読み取り専用でアクセスできるように構成するとプライマリ レプリカからかなりの量のワークロードを軽減できます

読み取り専用セカンダリ レプリカに回すように簡単に調整できるワークロードはレポートデータベース バックアップデータベース整合性チェックインデックスの断片化の分析データ パイプライン抽出運用サポート操作サポートアドホック クエリなどです

各可用性レプリカではSQL Server インスタンスのエンドポイントについて順次的な読み取り専用ルーティング リストを構成することもできますこのリストはレプリカがプライマリ ロールであるときに適用されますこのリストが存在する場合アプリケーションの目的が読み取り専用と指定されているクライアント接続要求はそのリスト内に記載されていて前述のアプリケーションの目的フィルターに適合する最初のセカンダリ レプリカにリダイレクトされます

注 読み取り専用ルーティングによるリダイレクトはプライマリ レプリカにバインドされている可用性グループ リスナーによって実行されますプライマリ レプリカがオフラインの場合クライアントのリダイレクトは機能しません

詳細については「可用性グループの読み取り専用ルーティングの構成 (SQL Server) 」(httpmsdnmicrosoftcomja-jplibraryhh710054(SQL110)aspx) を参照してください

可用性の向上 ndash データベースSQL Server 2012 ではデータベースの構成と機能に関してさまざまな点が強化されています

以下の機能は復旧時間の短縮に役立ちます

予測可能な復旧時間データベースごとにターゲット復旧時間の長さを設定することでバックグラウンドで実行される CHECKPOINT コマンドのスケジュールを制御できますこのコマンドは間接的なチェックポイントとして再起動時またはフェールオーバー時にトランザクション ログの復旧に必要となる時間の推定値に基づいて定期的に実行されますそれによってチェックポイントごとに IO 操作がほぼ均等に配分され復旧時間 (RTO) の予測可能性が高まります

SQL Server 2012 よりも前のバージョンではバックグラウンドの CHECKPOINT コマンドがトランザクションの量や負荷とは無関係に一定間隔で実行されていたので復旧時間を予測することはできませんでした

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 33

詳細については「データベース チェックポイント」(httpmsdnmicrosoftcomja-jplibraryms189573(SQL110)aspx) を参照してください

以下の向上点は計画的なダウンタイムが必要になる一般的な状況を減らすのに役立ちます

LOB 列のオンライン インデックス操作varbinary(max)varchar(max)nvarchar(max)または XML データ型の列が含まれているインデックスをオンラインで再構築または再構成できるようになりました

新しい NOT NULL 列のオンライン スキーマ修正既定値を使用して新しい NOT NULL 列を SQL Server 2012 データベース テーブルに追加する場合システム メタデータの更新にはスキーマ ロックだけが必要ですALTER TABLE ステートメントですべての行にデータを設定する必要はありません

いずれかの行で実際に変更またはインデックスの再作成が行われない限り列の既定値は物理的に格納されませんクエリでは列に実際の値が存在しない場合メタデータから既定値を返します

ストレージのサポート強化の例として次のようなものがあります

ページの自動修復ある種のストレージ サブシステム エラーが発生するとデータ ページが破損し読み取り不可能になる場合がありますAlwaysOn 可用性グループではそのような種類のエラーを検出し自動的に復旧できます復旧のために影響を受けたデータ ページの最新のコピーが別の可用性レプリカから非同期で取得され適用されます

以前のバージョンでもデータベース ミラーリングに同様の機能がありましたが新しい機能では複数のレプリカをサポートできるようになっています

詳細については「ページの自動修復」(httpmsdnmicrosoftcomja-jplibrarybb677167(SQL110)aspx) を参照してください

クライアント接続の推奨事項クライアント アプリケーションが Microsoft SQL Server 2012 AlwaysOn テクノロジの利点を十分に活用できるようにするには次のガイドラインに従います

AlwaysOn 対応のクライアント ライブラリ表形式のデータ ストリーム (TDS) プロトコル Version 74 以降をサポートしているクライアント ライブラリを使用しますこれによってAlwaysOn の機能に対応した適切な機能がクライアント側でも提供されますクライアント ライブラリの例としてはData Provider for SQL Server in NET Framework 402SQL Native Client 110 などがあります

接続プロバイダー プロパティ MultiSubnetFailover = True接続文字列にこのキーワードを使用することでクライアント ライブラリでは(複数のサブネットに IP アドレスを持つ) 可用性グループ リスナーまたは FCI に登録されているすべての IP アドレスに同時に接

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 34

続できるようになります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 35

接続プロバイダー プロパティ ApplicationIntent = ReadOnly必要に応じてプライマリ レプリカの読み取り専用ワークロードをセカンダリ レプリカに移管することができます

レガシ クライアントの接続タイムアウトレガシ クライアントのデータベース ライブラリには並列で接続を試行する機能が実装されていないため複数の IP アドレスがある場合にはTCP タイムアウトに達するか正常に接続できるまで1 つずつ順番に接続を試行します

複数の IP アドレスが存在する場合はタイムアウトと再試行が逐次的に繰り返される可能性に備えてレガシ クライアントの接続タイムアウトを調整する必要があります値は少なくとも 15 秒 + 21 秒 times セカンダリ レプリカ数にします

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 36

結論このホワイト ペーパーではSQL Server 2012 の AlwaysOn による高可用性災害復旧ソリューションを使用し予定されたダウンタイムや予定外のダウンタイムを短縮したりアプリケーションの可用性を最大限に高めたりデータを保護したりする方法について基本的なコンテキストを確立しました

高可用性データベース環境の計画管理測定に関連したビジネス上の目的と課題は多くの場合目標復旧時点 (RPO) と目標復旧時間 (RTO) という形で数量化して表すことができます

SQL Server 2012 AlwaysOn は組織が高可用性や災害復旧に関する一般的な状況に対処するための機能をRPO と RTO を適切に達成できることを念頭にインフラストラクチャ レベルデータ プラットフォーム レベルデータベース レベルのそれぞれで提供します

詳細情報

httpwwwmicrosoftcomja-jpsqlserver2012defaultaspx SQL Server Web サイト

httptechnetmicrosoftcomja-jpsqlserver SQL Server TechCenter

httpmsdnmicrosoftcomja-jpsqlserver SQL Server 開発者向け技術情報

このホワイト ペーパーはお役に立ちましたか フィードバックをお寄せください1 (役に立たなかった) ~ 5 (非常に役に立った) の 5 段階で評価してくださいまたその評価の理由もお知らせください以下に例を示します

評価が高い 例が適切図がわかりやすい説明が明快といったことが理由である 評価が低い 例が少ない図がわかりにくい説明があいまいといったことが理由で

ある

このようなフィードバックをお寄せいただくと今後のホワイト ペーパーの品質向上につながります

フィードバックの送信

loz Version 112012 年 2 月 21 日

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 37

  • 高可用性と災害復旧の概念
    • 高可用性について
      • 予定されたダウンタイムと予定外のダウンタイム
      • 段階的な可用性
        • ダウンタイムの定量化
          • 復旧目標
          • ROI または機会費用の正当化
          • 可用性の健全度の監視
          • 災害復旧の計画
            • 概要 Microsoft SQL Server 2012 での高可用性
              • SQL Server AlwaysOn
              • 計画的なダウンタイムの大幅な削減
              • アイドル状態のハードウェアをなくしてコスト効率とパフォーマンスを向上
              • 簡単な配置と管理
              • RPO と RTO の機能比較
                  • SQL Server AlwaysOn の保護レイヤー
                    • インフラストラクチャの可用性
                      • Windows オペレーティング システム
                        • Windows Server Core インストール オプション
                        • プライベート クラウド用の SQL Server の最適化
                          • Windows Server フェールオーバー クラスタリング
                            • WSFC ストレージ構成
                            • WSFC リソースの正常性の検出とフェールオーバー
                              • WSFC のクラスター検証ウィザード
                              • WSFC クォーラム モードと投票の構成
                                • クォーラムによるクラスター状態検出
                                • クォーラム モード
                                • 投票ノードと非投票ノード
                                • クォーラム投票に推奨される調整
                                  • WSFC の強制クォーラムによる災害復旧
                                    • SQL Server インスタンス レベルでの保護
                                      • 可用性の向上 ndash SQL Server インスタンス
                                      • AlwaysOn フェールオーバー クラスター インスタンス
                                        • FCI のフェールオーバー プロセス
                                        • FCI の強化
                                            • データベースの可用性
                                              • AlwaysOn 可用性グループ
                                                • 可用性レプリカとロール
                                                • 可用性レプリカの同期
                                                  • 可用性グループのフェールオーバー
                                                  • 可用性グループ リスナー
                                                    • アプリケーションの目的によるフィルター処理
                                                    • アプリケーションの目的の読み取り専用ルーティング
                                                      • 可用性の向上 ndash データベース
                                                        • クライアント接続の推奨事項
                                                          • 結論
Page 14: 高可用性と災害復旧の概念download.microsoft.com/download/6/B/E/6BE0C3F3-2991-4766... · Web view高可用性と災害復旧のソリューションのために最適なデータベース

SQL Server AlwaysOn の保護レイヤーSQL Server AlwaysOn ソリューションではインフラストラクチャとアプリケーション コンポーネントのいくつかの論理レイヤーおよび物理レイヤーにまたがってフォールト トレランスと災害復旧を実現できます従来はさまざまな関係者と役割ごとに業務と責任を振り分けそれぞれが主に自分のソリューションのレイヤー部分だけに関心を持つことが一般的でした

このセクションではこれらのレイヤーのそれぞれについて詳細に説明しデザインに関する議論や実装についての意思決定に役立つ論点やガイダンスを提示します

SQL Server AlwaysOn ソリューションをうまく利用するには以下のレイヤーについて理解しそれぞれを協調させる必要があります

インフラストラクチャ レベルサーバー レベルのフォールト トレランスとノード内のネットワーク通信が含まれますWindows Server フェールオーバー クラスタリング (WSFC) 機能を使用して稼働状態の監視とフェールオーバーの調整を行います

SQL Server インスタンス レベルSQL Server AlwaysOn フェールオーバー クラスター インスタンス (FCI) はWSFC クラスター内の複数のサーバー ノードにまたがってインストールされる SQL Server インスタンスであり各サーバー ノードへのフェールオーバーが可能ですFCI をホストするノードは堅牢な対称型共有ストレージ (SAN または SMB) に接続されます

データベース レベル可用性グループは共にフェールオーバーされるユーザー データベースのセットです可用性グループは1 つのプライマリ レプリカと最大 4 つのセカンダリ レプリカで構成されます各レプリカはWSFC クラスターの別々のノードにある SQL Server インスタンス (FCI または非 FCI) によってホストされます

クライアント接続データベース クライアント アプリケーションは指定した SQL Server インスタンス ネットワーク名に直接接続できますまたは可用性グループ リスナーにバインドされている仮想ネットワーク名 (VNN) に接続することもできますVNN はWSFC クラスターおよび可用性グループのトポロジを抽象化するものであり接続要求を適切な SQL Server インスタンスとデータベース レプリカに論理的にリダイレクトします

代表的な AlwaysOn ソリューションの論理トポロジは次の図のようになります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 9

インフラストラクチャの可用性AlwaysOn 可用性グループと AlwaysOn フェールオーバー クラスター インスタンスのどちらもWindows Server オペレーティング システムと WSFC をプラットフォーム テクノロジとして利用します今まで以上にMicrosoft SQL Server データベース管理者はこれらのテクノロジについて十分に理解することが必要です

Windows オペレーティング システムSQL Server は基礎的なインフラストラクチャとネットワークストレージセキュリティ更新プログラムおよび監視のサービスを Windows プラットフォームに依存しています

SQL Server 2012 の各エディションはWindows Server 2008 R2 オペレーティング システムの対応するエディション (Windows Server 2008 R2 Standard オペレーティング システムWindows Server 2008 R2 Enterprise オペレーティング システムWindows Server 2008 R2 Datacenter オペレーティング システムなど) の機能や能力をさらに進歩させて構築されています

詳細については「SQL Server 2012 のインストールに必要なハードウェアおよびソフトウェ ア」(httpmsdnmicrosoftcomja-jplibraryms143506(SQL110)aspx) を参照してください

Windows Server Core インストール オプションSQL Server 2012 では高可用性のための主要な機能の 1 つとしてWindows Server 2008 以降で Server Core インストール オプションによる配置をサポートしていますServer Core インストール オプションでは制限された機能と非常に限定的な GUI アプリケーション サポートで特定のサーバー ロールを実行するための最低限の環境が提供されます既定では必要なサービスとコマンド プロンプト環境のみが有効です

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 10

この操作モードではオペレーティング システムへの攻撃の危険性とシステム オーバーヘッドが低下し継続的なメンテナンスサービス修正プログラムなどの要件が大幅に削減されます

SQL Server 2012 を Windows Server Core に配置する場合の主な注意点はSQL Server およびオペレーティング システムのすべての配置構成管理およびメンテナンスをWindows PowerShell などのスクリプト環境やコマンド ラインまたはリモート ツールを使用して行う必要があることです

プライベート クラウド用の SQL Server の最適化高可用性と災害復旧はプライベート クラウド環境ではさらに重要になってきていますプライベート クラウドに SQL Server を配置すればコンピューターネットワークおよびストレージのリソースが効率的に使用され物理的な場所や資本と運営費用の両方の削減に役立ちます配置の統合リソースの効率的なスケーリングオンデマンドでのリソースの配置が容易になり制御の自由度が失われることもありません

SQL Server ではHyper-V のホストとゲストの両方のシステムに対して Windows Server フェールオーバー クラスタリングをサポートするほかライブ マイグレーションもサポートしていますこれは意識されるほどのダウンタイムを生じることなくホスト間で仮想マシンを移動できる機能ですライブ マイグレーションはゲスト クラスタリングとも協調して動作します

詳細については「プライベート クラウド コンピューティング - プライベート クラウド用の SQL Server の最適化 」(httpwwwmicrosoftcomSqlServerPrivateCloud) を参照してください

Windows Server フェールオーバー クラスタリングWindows Server フェールオーバー クラスタリング (WSFC) はMicrosoft SQL Server などのサーバー アプリケーションに対して高可用性と災害復旧をサポートするインフラストラクチャ機能を提供します

WSFC クラスター ノードまたはサービスに障害が発生するとそのノードでホストされていたサービスまたはリソースは自動的にまたは手動で他の可用性ノードに転送されますこのプロセスをフェールオーバーと呼びますAlwaysOn ソリューションではこのプロセスが FCI と可用性グループの両方に適用されます

WSFC クラスター内の各ノードは連携して次のような機能を提供します

分散メタデータと通知WSFC サービスとホストされるアプリケーション メタデータはクラスター内の各ノードで維持されますこのメタデータにはホストされるアプリケーションの設定に加えWSFC の構成と状態が含まれます1 つのノードでのメタデータまたは状態の変更はクラスター内の他のノードに自動的に反映されます

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 11

リソース管理クラスター内の各ノードは直接アタッチされたストレージ (DAS)ネットワーク インターフェイス共有ディスク ストレージへのアクセスなど物理的リソースを提供する場合がありますSQL Server などホストされるアプリケーション自体もクラスター リソースとして登録されますまた他のリソースに対するスタートアップと正常性にかかわる依存関係を構成できます

正常性の監視ノード間の正常性およびプライマリ ノードの正常性はハートビート ネットワーク通信とリソースの監視を組み合わせることで検出されますクラスターの全体的な正常性状態はクラスター内のノードのクォーラムの投票によって決定されます

フェールオーバーの調整各リソースはプライマリ ノードでホストされるように構成されそれぞれ自動的にまたは手動で 1 つ以上のセカンダリ ノードに転送されます正常性ベースのフェールオーバー ポリシーによってノード間でのリソース所有権の自動転送が制御されますフェールオーバーが発生すると適切に対応できるように各ノードおよびホストされているアプリケーションに通知されます

詳細については「Windows Server | フェールオーバー クラスタリングとノード バランシン グ」(httpwwwmicrosoftcomwindowsserver2008enusfailover-clustering-mainaspx) を参照してください

注 データベース管理者が WSFC クラスターおよびクォーラム管理の内部動作を理解しておくことが非常に重要になりましたAlwaysOn の正常性の監視管理および障害復旧の手順はすべてが本質的に WSFC 構成と関連しています

WSFC ストレージ構成Windows Server フェールオーバー クラスタリングでは接続されているストレージ デバイスディスク ボリュームおよびファイル システムの管理をクラスター内の各ノードに依存していますWSFC はストレージ サブシステムが非常に堅牢であると想定しているためノードに接続されたストレージ デバイスが使用できない場合はクラスター ノードが障害状態であると見なします

書き込みベースの操作ではディスク ボリュームは SCSI-3 の永続的な予約を使用して一度に 1 つのクラスター ノードに論理的に接続されますノードで障害が発生した場合にはストレージ サブシステムの機能と構成に応じてディスク ボリュームの論理的所有権をクラスター内の別のノードに移すことができます

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 12

SQL Server AlwaysOn ソリューションでは次のような WSFC ストレージ構成の組み合わせを利用しその制限も受けます

直接接続とリモートストレージ デバイスはサーバーに物理的に直接接続されるかまたはネットワークやホスト バス アダプター (HBA) を介してリモートのストレージ デバイスを使用しますリモート ストレージのテクノロジにはiSCSI やファイバー チャネルなどのストレージ エリア ネットワーク (SAN) ベースのソリューションとサーバー メッセージ ブロック (SMB) というファイル共有ベースのソリューションがあります

対称と非対称ストレージ デバイスの論理ディスク ボリューム構成とファイル パスがクラスターの各ノードでまったく同じである場合それらのストレージ デバイスは対称的であると見なされます基になるディスク ボリュームの物理的な実装と容量は異なっていてもかまいません

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 13

専用と共有専用ストレージは使用するために予約されクラスター内の 1 つのノードに割り当てられます共有ストレージはクラスターの複数のノードからアクセスできます共有ストレージ デバイスが SCSI-3 プロトコルに準拠していればそれらの制御と所有権をノード間で移動させることができますWSFC ではファイル共有のためにクラスター共有ボリュームを同時に複数のノードでホスティングできますただしSQL Server は複数のノードからの共有ボリュームへの同時アクセスをサポートしていません

注 SQL Server FCI では対称共有ストレージを使用してインスタンスのすべてのノード所有者 (およびその候補) からアクセスできるようにする必要がありますただしAlwaysOn 可用性グループの導入に伴いそれぞれが独自に専用のローカルまたはリモート ストレージを持つ非 FCI の SQL Server インスタンスを WSFC クラスターに配置できるようになりました

WSFC リソースの正常性の検出とフェールオーバーWSFC クラスター ノード内の各リソースの状態と正常性は定期的にまたは要求に応じて報告されますクラスター リソースの障害を示す状況としてはたとえば電源障害ディスクまたはメモリのエラーネットワーク通信エラー構成エラー応答しないサービスなどがあります

ネットワークストレージサービスなどの WSFC クラスター リソースは互いに依存するように構成できますあるリソースの累積的な正常性は依存関係を持つリソースの正常性を連続的にたどってゆくことで決定されます

AlwaysOn 可用性グループでは可用性グループと可用性グループ リスナーがそれぞれ WSFC クラスター リソースとして登録されますAlwaysOn フェールオーバー クラスター インスタンスではSQL Server サービスおよび SQL Server エージェント サービスが WSFC クラスター リソースとして登録されどちらもインスタンスの仮想ネットワーク名リソースに依存します

WSFC クラスター リソースで設定された数のエラーまたは障害が一定期間内に発生した場合構成されたフェールオーバー ポリシーによってクラスター サービスは次のいずれかの操作を行います

現在のノードでのリソースの再起動 リソースをオフライン化 リソースとその依存関係を別のノードへ自動的にフェールオーバー

注 WSFC クラスター リソースの正常性の検出は個々のノードの正常性やクラスターの全体的な正常性には直接影響しません

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 14

WSFC のクラスター検証ウィザードクラスター検証ウィザードはWindows Server 2008 および Windows Server 2008 R2 のフェールオーバー クラスタリングに統合されている機能ですこれはSQL Server AlwaysOn ソリューションの配置前 にクリーンで正常な安定した WSFC 環境が存在していることをデータベース管理者が確認するために使用する主要なツールです

クラスター検証ウィザードではクラスターのノードとして使用するサーバーの集合または既存のクラスターを対象にして一連のテストを実行できますこのプロセスでは基になるハードウェアおよびソフトウェアが個別に直接テストされWSFC クラスターが特定の構成でどの程度良好にサポートされるかについての正確な評価が得られます

この検証プロセスでは各ノードに対して次のようなカテゴリの一連のテストとデータ収集が実施されます

一覧作成BIOS のバージョン環境レベルホスト バス アダプターRAMオペレーティング システムのバージョンデバイスサービスドライバーなどの情報です

ネットワークNIC のバインド順序ネットワーク通信IP 構成ファイアウォール構成などの情報ですすべての NIC でノード間の通信が検証されます

ストレージディスクドライブの容量アクセス待機時間ファイル システムなどの情報ですSCSI コマンドディスク フェールオーバー機能対称的または非対称的なストレージ構成が検証されます

システム構成Active Directory の構成ドライバーの登録メモリ ダンプの設定必要なオペレーティング システムの機能とサービス互換性のあるプロセッサ アーキテクチャおよびサービス パックと Windows Software Update のレベルが検証されます

これらの検証テストの結果を利用してクラスターの構成を微調整したり構成を追跡したりダウンタイムを引き起こすかもしれない潜在的なクラスター構成の問題を特定したりできますテスト結果のレポートは後で参照できるようにHTML ドキュメントとして保存できます

これらのテストはWSFC の構成に何か変更を加える前と加えた後に実行するほかSQL Server をインストールする前および災害復旧プロセスの一環として実行する必要がありますマイクロソフトで特定の WSFC クラスター構成がサポートされるためにはマイクロソフト カスタマー サポート サービス (CSS) にクラスター検証レポートを提出する必要があります

詳細については「フェールオーバー クラスター ステップ バイ ステップ ガイド フェール オーバー クラスター用ハードウェアを検証する」(httptechnetmicrosoftcomja-jplibrarycc732035(WS10)aspx) を参照してください

注 ハードウェアベースの地理的クラスタリング ストレージ ソリューションの場合やAlwaysOn 可用性グループの場合のようにクラスター構成に非対称ストレージがあるとクラスター検証ウィザードでストレージの検証手順を成功させるために多数の修正プログラムを適用しなければならないことがあります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 15

詳細については「AlwaysOn 可用性グループの前提条件制限事項および推奨事項 」(httpmsdnmicrosoftcomja-jplibraryff878487(SQL110)aspxSystemReqsForAOAG) を参照してください

WSFC クォーラム モードと投票の構成WSFC ではクォーラム ベースのアプローチを使用してクラスターの全体的な正常性を監視することでノード レベルのフォールト トレランスを最大限に高めますWSFC のクォーラム モードおよびノード投票構成の基本について理解することはAlwaysOn 高可用性災害復旧ソリューションの設計運用トラブルシューティングのために非常に重要です

クォーラムによるクラスター状態検出WSFC クラスター内の各ノードは定期的なハートビート通信に参加しノードの正常性状態を他のノードと共有します応答しないノードはエラー状態であると見なされます

クォーラム ノード セットとはWSFC クラスター内の投票ノードおよび監視サーバーのうち過半数を占めるノードの集合ですWSFC クラスターの全体的な正常性と状態は定期的なクォーラムの投票 によって決定されますクォーラムはクラスターが正常でありノード レベルのフォールト トレランスを提供できることを意味します

クォーラムに達していない状態はクラスターが正常でないことを示しますプライマリ ノードのフェールオーバー先として正常なセカンダリ ノードを使用できるようにするにはWSFC クラスターの全体的な正常性が維持されている必要があります投票数がクォーラムに達しなかった場合にはWSFC クラスター全体が予防策としてオフラインに設定されますその場合クラスターに登録されている SQL Server インスタンスがすべて停止します

注 クォーラム障害のために WSFC クラスターがオフラインに設定されるとオンラインに戻すために手動の操作が必要です詳細については後の「WSFC の強制クォーラムによる災害 復旧」のセクションを参照してください

クォーラム モードクォーラム モードはWSFC クラスター レベルで構成されクォーラム投票の方法を指定しますフェールオーバー クラスター マネージャー ユーティリティではクラスター内のノード数に基づいて推奨するクォーラム モードが提示されます

次のいずれかのクォーラム モードによって投票クォーラムの構成が決定されます

ノード マジョリティクラスターが正常であるためにはクラスター内の半分以上の投票ノードが肯定的に投票する必要があります

ノードおよびファイル共有マジョリティノード マジョリティ クォーラム モードに似ていますがリモート ファイル共有も投票監視サーバーとして構成され各ノードからそのリモート ファイル共有への接続も肯定的な投票としてカウントされますクラスターが正常であるためには投票の過半数が肯定的である必要があります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 16

推奨事項として監視ファイル共有はクラスター内のノードに存在せずクラスター内のすべてのノードから見える必要があります

ノードおよびディスク マジョリティノード マジョリティ クォーラム モードに似ていますが共有ディスク クラスター リソースも投票監視サーバーとして使用され各ノードからその共有ディスクへの接続も肯定的な投票としてカウントされますクラスターが正常であるためには投票の過半数が肯定的である必要があります

ディスクのみ共有ディスク クラスター リソースが監視サーバーとして使用され各ノードからその共有ディスクへの接続が肯定的な投票としてカウントされます

詳細については「フェールオーバー クラスター ステップ バイ ステップ ガイド フェール オーバー クラスターのクォーラムの構成」(httptechnetmicrosoftcomja-jplibrarycc770620(WS10)aspx) で説明されています

注 クラスターの各ノードが同じ共有ストレージ クォーラム監視ディスクを使用するように構成されていない限り通常投票ノード数が奇数の場合は ノード マジョリティ クォーラム モード投票ノード数が偶数の場合は ノードおよびファイル共有マジョリティ クォーラム モードを使用してください

投票ノードと非投票ノード既定ではWSFC クラスター内の各ノードがクラスター クォーラムのメンバーとなります各ノードファイル共有監視サーバーディスク監視サーバーがクラスターの全体的な正常性の決定においてそれぞれ 1 票ずつの投票権を持ちますクォーラムに関するここまでの説明ではクラスター状態について投票する WSFC クラスター ノードのセットを投票ノードとして注意深く限定してきました状況によってはすべてのノードに投票権を与えることが適切でない場合もあります

WSFC クラスターの各ノードはクォーラムを確立しようとし続けますクラスター内の個々のノードはクラスターが全体として正常であるか正常でないかを明確に決定することはできません特定の時点で各ノードからは他のノードの一部がオフラインフェールオーバー中またはネットワーク通信のエラーにより応答不能に見えますクォーラム投票の主な機能はWSFC クラスターの各ノードの見かけの状態が本当にそれらのノードの実際の状態であるかどうかを判断することです

ディスクのみ 以外のすべてのクォーラム モデルではクォーラム投票の有効性はクラスター内のすべての投票ノード間に信頼できる通信が確立されていることに依存しますすべてのノードが同じ物理サブネット上にある場合はクォーラムの投票を信頼できます

しかしクォーラム投票で他のサブネット上のノードが応答しないように見えても実際はオンラインで正常である場合はサブネット間のネットワーク通信のエラーが原因であることが考えられますクラスター トポロジクォーラム モードおよびフェールオーバー ポリシーの構成によってはネットワーク通信エラーによって投票ノードのセット (またはサブセット) が実質的に複数作成されてしまう可能性があります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 17

投票ノードの複数のサブセットがそれぞれ独自のクォーラムを構築できる状態はスプリット ブレイン と呼ばれますこの状態では各クォーラム上のノードが別々の動作をし相互に矛盾する可能性があります

注 スプリット ブレイン の状況が発生するのはシステム管理者が強制クォーラム動作を手動で実行するかまたは非常にまれですが強制的な手動フェールオーバーを実行することでクォーラム ノード セットが明示的に細分化された場合のみです詳細については後の「WSFC の強制クォーラムによる災害復旧 」のセクションを参照してください

クォーラム構成を単純化し稼働時間を長くする目的でノードの投票がクォーラムにカウントされないように各ノードの NodeWeight 設定 (値 0 または 1) を調整することができます

クォーラム投票に推奨される調整以下のガイドラインをこの順番に適用することでクラスターに対して推奨されるクォーラム投票の構成を判断できます

1 既定は投票権なしにします明確な理由がない限り各ノードには投票権を与えないと考えてください

2 すべてのプライマリ ノードに投票権を与えますAlwaysOn 可用性グループのプライマリ レプリカをホストする各ノードおよび AlwaysOn フェールオーバー クラスター インスタンスの優先所有者である各ノードは投票権を持つ必要があります

3 可能性のある自動フェールオーバーの所有者を含めます自動フェールオーバーの結果としてプライマリ レプリカまたは FCI をホストする可能性がある各ノードは投票を持つ必要があります

4 セカンダリ サイト ノードを除外します通常はセカンダリ災害復旧サイトに存在するノードには投票を提供しないでくださいプライマリ サイトに問題がない場合クラスターをオフラインにする判断にセカンダリ サイト内のノードが影響を与えることは避ける必要があります

5 投票数を奇数にします必要に応じて監視ファイル共有監視ノード (SQL Server インスタンスの有無は問いません)または監視ディスクをクラスターに追加してクォーラム モードを調整しクォーラムの投票結果が同数に分かれるのを防ぎます

6 フェールオーバー後の投票割り当てを再評価します正常なクォーラムをサポートしないクラスター構成にフェールオーバーすることは避けます

ノードの投票の調整の詳細については「クラスター クォーラムの NodeWeight の設定の構 成」(httpmsdnmicrosoftcomja-jplibraryhh270281(SQL110)aspx) を参照してください

ファイル共有監視サーバーの投票は調整できませんその投票を含めるか除外するかを決めるには別のクォーラム モードを選択する必要があります

注 SQL Server ではWSFC クラスター構成およびノード クォーラム投票に関する設定を管理するためにいくつかのシステム動的管理ビュー (DMV) が公開されています

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 18

詳細については「可用性グループの監視」(httpmsdnmicrosoftcomja-jplibraryff878305(SQL110)aspx) を参照してください

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 19

WSFC の強制クォーラムによる災害復旧通常クォーラム障害は災害発生時または WSFC クラスター内の複数のノード間で永続的な通信障害が生じた場合に発生しますクォーラム障害が発生するとクラスターがノード レベルのフォールト トレランスを確保できなくなるためその WSFC クラスター内の SQL Server インスタンス可用性グループおよびクラスター化されているサービスがすべてオフラインになりますクォーラム障害はWSFC クラスター内の正常な投票ノード数がクォーラム モデルを満たさなくなったことを意味しますノードによってまったく機能しなくなるものもあればWSFC サービスがシャットダウンしただけでクォーラムと通信できなくなったことを除けば正常なものもあります

WSFC クラスターをオンラインに戻すには既存の構成の少なくとも 1 つのノードでクォーラム障害の根本的な原因を解決する必要があります災害発生時には使用できる代替ハードウェアの再構成や識別が必要となる場合もあります現状のクラスター トポロジを反映するためにWSFC クラスターの残りのノードを再構成する場合もあります

WSFC クラスター ノードで強制クォーラムの手順を使用するとクラスターがオフラインになる原因となった安全管理機能を無効にすることができますこれによりクラスターでのクォーラム投票のチェックが実質的に中断されクラスター内の任意のノードで WSFC クラスター リソースと SQL Server をオンラインに戻すことができます

このような災害復旧プロセスの手順を次に示します

1) 障害の範囲を特定します応答しない可用性グループや SQL Server インスタンス災害後に使用できるオンラインのクラスター ノードをそれぞれ特定しWindows イベント ログと SQL Server システム ログを確認します必要に応じて後で分析できるように解析データやシステム ログを保存しておきます

2) 1 つのノードで強制クォーラムを使用して WSFC クラスターを起動します他の点では正常なノードで強制クォーラムの手順に従ってクラスターを手動で強制的にオンラインにしますこの場合データ損失の可能性を最小限に抑えるには可用性グループのプライマリ レプリカを最後にホストしていたノードを選択します

詳細については「クォーラムを使用せずに WSFC クラスターを強制的に起動する 」(httpmsdnmicrosoftcomja-jplibraryhh270275(v=SQL110)aspx) を参照してください

注 強制クォーラムの設定を使用するとWSFC クラスターの投票が過半数に達することで通常のクォーラム モードの動作に自動的に切り替わるまでクラスター全体のクォーラムのチェックがブロックされます

3) 他の点では正常な各ノードでWSFC サービスを 1 つずつ通常の方法で起動します他のノードでクラスター サービスを起動するときは強制クォーラム オプションを指定する必要はありません

各ノードの WSFC サービスがオンラインに戻ると他の正常なノードとの間でネゴシエーションが行われ新しいクラスター構成の状態が同期されますクラスターの最新の状態

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 20

を判断するときに競合状態の発生を避けるためこの手順は必ず一度に 1 つのノードで行うようにしてください

注 起動した各ノードが新たにオンラインにした他のノードと通信できることを確認しますそうしないと複数のクォーラム ノード セットが作成されて スプリット ブレイン の状況に陥るおそれがあります手順 1 の結果に問題がなければこの現象は発生しません

4) 新しいクォーラム モードとノードの投票の構成を適用します強制クォーラムの手順によってクラスターのすべてのノードを正常に再起動させクォーラムのエラーの根本原因を修正した場合クォーラム モードとノードの投票を元の構成から変更する必要はありません

それ以外の場合は新たに復元されたクラスター ノードと可用性レプリカのトポロジを評価し必要に応じてクォーラム モードと各ノードの投票割り当てを変更します未復旧のノード上ではWSFC クラスター サービスをオフラインにするかノードの投票をゼロに設定します

注 この時点でクラスター内のノードと SQL Server インスタンスが通常の動作に戻っているように見えることがありますがまだ正常なクォーラムには達していない可能性がありますフェールオーバー クラスター マネージャーやSQL Server Management Studio の AlwaysOn ダッシュボードまたは適切な DMV を使用して正常なクォーラムが復元されたことを確認してください

5) 必要に応じて可用性グループのデータベース レプリカを復旧します一部のデータベースはSQL Server の通常の起動処理の一環として自動的に復旧されオンラインに戻ることがありますそれ以外のデータベースの復旧には追加で手動の手順を実行する必要があります

可用性グループ レプリカのデータ損失の可能性や復旧にかかる時間を最小限に抑えるにはできればプライマリ レプリカ同期セカンダリ レプリカ非同期セカンダリ レプリカの順にオンラインに戻します

6) 障害が発生したコンポーネントを修復するか交換しクラスターを再検証しますこれで最初の災害およびクォーラム障害から復旧できたので障害が発生したノードを修復するか交換しWSFC と AlwaysOn の関連する構成を適切に調整する必要がありますこれには可用性グループ レプリカの削除クラスターからのノードの削除ノードへのソフトウェアの再インストールなどが含まれます

注 停止したすべての可用性レプリカを修復または削除する必要がありますSQL Server 2012 では最も古い可用性レプリカを最後に認識した時点以降トランザクション ログが切り捨てられません停止したレプリカを修復するか可用性グループから削除しないとトランザクション ログが大きくなり他のレプリカのトランザクション ログの領域が不足する可能性があります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 21

7) 必要に応じて手順 4 を繰り返しますこの目的は正常な動作を行うために適切なレベルのフォールト トレランスと高可用性を再確立することです

8) RPORTO 分析を実行しますSQL Server のシステム ログデータベースのタイムスタンプおよび Windows のイベント ログを分析して障害の根本的な原因を特定し実際の復旧ポイントと復旧時間を文書に記録します

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 22

SQL Server インスタンス レベルでの保護次に説明する AlwaysOn ソリューションの保護レイヤーはデータ プラットフォームそれ自体ですMicrosoft SQL Server 2012 とその Windows Server インフラストラクチャ コンポーネントとの統合によって次のような機能が提供されます

可用性の向上 ndash SQL Server インスタンスこれは SQL Server 2012 の新しいインスタンス レベルの機能でAlwaysOn フェールオーバー クラスター インスタンスとAlwaysOn 可用性グループをホストするスタンドアロン インスタンスの両方の可用性を強化します

以下の強化点によってフェールオーバーの管理およびトラブルシューティングが向上します

柔軟なフェールオーバー ポリシー信頼性の高いエラー検出に使用される新しいシステム ストアド プロシージャ sp_server_diagnostics の出力でSQL Server インスタンスに影響するエラーの重大度が FailureConditionLevel プロパティによって示されますWSFC のフェールオーバー ポリシーによってこの値が SQL Server インスタンスにどのように影響するかを制御できますある程度エラーを許容する設定からSQL Server の内部コンポーネント エラーを重点的に検出する設定までさまざまに構成できます

特定のレベルのエラーによってフェールオーバーを開始するように構成できますエラーのレベルにはサーバーの停止サーバーの応答停止重大なエラー中程度のエラーなんらかの条件付きエラーなどがありますFailureConditionLevel プロパティはFCI または可用性グループのフェールオーバー ポリシーのために使用できます

SQL Server 2012 よりも前のバージョンではフェールオーバーを制御できるようなエラー状態の区分がなくすべてのサービス レベルのエラーによってフェールオーバーが発生しました

詳細については「フェールオーバー クラスター インスタンスのフェールオーバー ポリシー」(httpmsdnmicrosoftcomja-jplibraryff878664(SQL110)aspx) を参照してください

強化されたインストルメンテーションとログAlwaysOn 専用のシステム構成ビューDMVパフォーマンス カウンターに加えて拡張されたイベント正常性セッションによってAlwaysOn 配置のトラブルシューティングチューニングおよび監視に必要な情報を取得して表示できますこれらの多くはSQL Server ポリシー管理の新しいファセットおよびポリシーを通じて公開されます

詳細については「AlwaysOn 可用性グループの動的管理ビューおよび関 数」(httpmsdnmicrosoftcomja-jplibraryff877943(SQL110)aspx) と「sysdm_os_cluster_nodes」(httpmsdnmicrosoftcomja-jplibraryms187341(SQL110)aspx) を参照してください

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 23

SMB ファイル共有のサポートWindows Server 2008 以降のスタンドアロン用またはフェールオーバー クラスター インスタンス用のリモート ファイル共有にデータベース ファイルを格納することができますこの場合FCI ごとに異なるドライブ文字を使用する必要がありませんこれはストレージを統合する場合やデータベース ファイルのストレージを仮想マシンのゲスト オペレーティング システム用物理サーバーでホストする場合などに便利なオプションです適切に構成すれば直接接続されたストレージとほぼ同等の IO パフォーマンスが得られます

詳細については「ファイル共有上の SQL データベース - シナリオを再検討すべきとき 」(httpblogsmsdncombsqlserverstorageenginearchive20111018sql-databases-on-file-shares-it-s-time-to-reconsider-the-scenarioaspx) を参照してください

注 WSFC クラスターではSMB ファイル共有リソースの依存関係を SQL Server リソース グループに追加することはできませんファイル共有の可用性を確保するには別の方法を用いる必要がありますファイル共有が使用できなくなった場合SQL Server は IO 例外をスローしオフラインになります

WSFC と DNS の相互運用性FCI または可用性グループ リスナーの仮想ネットワーク名 (VNN) はVNN の作成時または構成の変更時にのみDNS に登録されますすべての仮想 IP アドレスはオンライン状態かオフライン状態かに関係なく同じ仮想ネットワーク名で DNS に登録されますDNS の仮想ネットワーク名を解決するためのクライアント呼び出しは各種のラウンド ロビン シーケンスによってすべての登録済み IP アドレスを返します

AlwaysOn フェールオーバー クラスター インスタンスSQL Server の AlwaysOn フェールオーバー クラスター インスタンス (FCI) の主な目的は1 つのデータ センター内のローカル サーバーとストレージ ハードウェアでホストされている SQL Server インスタンスの可用性を高めることです

FCI はWindows Server フェールオーバー クラスタリング (WSFC) のクラスターに含まれる複数のノードにまたがってインストールされる1 つの論理的な SQL Server インスタンスですただし一度に 1 つのノードだけでアクティブになることができますクライアント アプリケーションはアクティブなクラスター ノードが所有している仮想ネットワーク名および仮想 IP アドレスに接続します

FCI をインストールした各ノードは同一の構成を持ち同一の SQL Server バイナリを含んでいますWSFC クラスター サービスはアクティブなインスタンス上にある Windows レジストリのエントリからFCI をインストールした各ノードに関連のある変更をレプリケートしますFCI がインストールされている各ノードはインスタンスとそのリソースの所有者の候補として指定されフェールオーバーの優先順位に従って所有者となります

共有対称ストレージ ボリュームに格納されているデータベース ファイルはリソースとして WSFC クラスターに登録され現在 FCI をホストしているノードによって所有されます

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 24

詳細については「AlwaysOn フェールオーバー クラスター インスタン ス」(httpmsdnmicrosoftcomja-jplibraryms189134(SQL110)aspx) を参照してください

FCI のフェールオーバー プロセス依存しているクラスター リソースで障害が発生した場合AlwaysOn フェールオーバー クラスター インスタンスはWSFC クラスター サービスと連携してフェールオーバーを行いますそのプロセスの概要を以下に示します

1) 再起動が指示されますWSFC の定期的なチェックまたは SQL Server のフェールオーバー ポリシー構成によってエラー状態が示されます既定では他のノードへのフェールオーバーを開始する前にサービスの再起動が試みられます再起動の試みがタイムアウトするようであればリソースの障害が発生しています

2) フェールオーバーが指示されますフェールオーバー ポリシー チェックによってノードのフェールオーバーが必要であることが示されます

3) SQL Server サービスが停止されますSQL Server サービスが現在実行されている場合はその正常なシャットダウンが試みられます

4) WSFC クラスター リソースが転送されますSQL Server クラスター リソース グループの所有権とそれが依存するネットワークおよび共有ストレージ リソースがFCI で次に優先されるノード所有者に転送されます

5) 新しいノードで SQL Server が起動されますSQL Server インスタンスは通常のスタートアップ プロシージャで起動されます所定のタイムアウト時間内にオンラインに戻らない場合クラスター サービスはこの新しいノード上のリソースをエラー状態と見なします

6) 新しいノードでユーザー データベースが復旧されます各ユーザー データベースは復旧モードに設定されます復旧モードではトランザクション ログの再実行操作が適用されコミットされていなかったトランザクションがロールバックされます

FCI の強化以前のバージョンの SQL Server でも FCI のインストール オプションは用意されていましたがSQL Server 2012 では次のような機能強化によって可用性の堅牢性と利便性が向上しました

マルチサブネット クラスタリングSQL Server 2012 では複数のサブネットに存在する WSFC クラスター ノードがサポートされていますWSFC クラスター ノードに存在する SQL Server インスタンスはいずれかのネットワーク インターフェイスが使用可能であれば起動できますこれはクラスター リソースの OR 依存関係と呼ばれます

以前のバージョンの SQL Server の場合SQL Server サービスを起動またはフェールオーバーするにはすべてのネットワーク インターフェイスが機能しそれらがすべて同じサブネットまたは VLAN に存在している必要がありました

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 25

注 マルチサブネット クラスタリングではクラスター ノード間のストレージ レベルのレプリケーションが自動的には有効になりませんマルチサブネットの FCI ソリューションでクラスター ノード間でデータのレプリケーションを行いストレージ フェールオーバーを調整するためにはサード パーティから提供される SAN ベースのソリューションを利用する必要があります

詳細については「SQL Server 2012 AlwaysOn マルチサイト フェールオーバー クラスター インスタンス」(httpsqlcatcomsqlcatbwhitepapersarchive20111222sql-server-2012-alwayson_3a00_-multisite-failover-cluster-instanceaspx) を参照してください

信頼性の高いエラー検出WSFC クラスター サービスではノードの各 SQL Server 2012 FCI に対してそれぞれ専用の管理者接続が維持されますこの接続では特殊なシステム ストアド プロシージャ sp_server_diagnostics を定期的に呼び出すことでシステムの正常性診断に役立つ豊富な情報を含む配列が返されます

SQL Server 2012 よりも前のバージョンではFCI の主な正常性検出メカニズムは単純な一方向のポーリング プロセスとして実装されていましたこのプロセスではWSFC クラスター サービスがインスタンスへの新しい SQL クライアント接続を定期的に作成しサーバー名を照会した後で接続を切断していました何かの理由で接続が失敗するかクエリがタイムアウトした場合フェールオーバーが開始されますが診断情報はほとんど提供されません

詳細については「sql_server_diagnostics」(httpmsdnmicrosoftcomja-jplibraryff878233(SQL110)aspx) を参照してください

現在ではFCI ストレージが次のように幅広い状況でサポートされています

向上したマウント ポイント サポートSQL Server のセットアップ時にクラスター ディスクのマウント ポイント設定が認識されるようになりました指定されたクラスター ディスクとそれにマウントされているすべてのディスクがセットアップ時に SQL Server リソースの依存関係に自動的に追加されます

ローカル ストレージの tempdbFCI ではローカルの非共有ストレージ (ローカル ソリッド ステート ドライブなど) に tempdb を配置できるようになったため共有 SAN での IO 動作の負荷を大幅に軽減できる可能性があります

SQL Server 2012 よりも前のバージョンの FCI ではtempdb が他のシステム データベースと共にフェールオーバーされる対称共有ストレージ ボリュームに配置される必要がありました

注 tempdb の場所はmaster データベースに格納されますこのデータベースはフェールオーバー時にノード間で移動されますtempdb は所有者候補となっているすべてのノード上で有効で対称的なファイル パス (ドライブフォルダーおよび権限) に配置されている必要がありますそうなっていない場合SQL Server サービスが一部のノードでは起動されません

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 26

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 27

データベースの可用性インフラストラクチャ レベルおよび SQL Server インスタンス レベルのコンポーネントで提供されている高可用性機能は互いに連係してホストされているデータベースを暗黙的に保護しますAlwaysOn ソリューションではデータベースのデータおよびデータ層アプリケーションを明示的に保護するために一連のオプションが追加で用意されています

AlwaysOn 可用性グループ可用性グループは1 つの SQL Server インスタンスから同じ WSFC クラスター内の別のインスタンスへと同時にフェールオーバーされるユーザー データベースのセットですクライアント アプリケーションは可用性グループ リスナーと呼ばれる WSFC 仮想ネットワーク名を通じて可用性グループのデータベースに接続できますこうすることで基になる SQL Server インスタンスが抽象化されます

AlwaysOn 可用性グループは正常性監視フェールオーバーの調整およびサーバー接続を Windows Server フェールオーバー クラスタリングに依存していますWSFC クラスター ノード上の SQL Server インスタンスでAlwaysOn サポートを有効にする必要がありますただしそのインスタンスが FCI である必要はなく対称共有ストレージを使用する必要もありません

詳細については「AlwaysOn 可用性グループの概要 」(httpmsdnmicrosoftcomja-jplibraryff877884(SQL110)aspx) を参照してください

可用性レプリカとロール可用性グループの各 SQL Server インスタンスは可用性グループのユーザー データベースのコピーを保持している可用性レプリカをホストしますSQL Server インスタンスは特定の可用性グループの可用性レプリカを 1 つだけホストすることができますが複数の可用性グループを同じインスタンスに置くことは可能ですSQL Server インスタンスは専用の (非共有) ストレージ ボリュームを持つ必要があります

可用性レプリカの 1 つがプライマリ レプリカの役割を果たしますこれは可用性グループ データベースのマスター コピーとして指定されていて読み取り書き込み操作を行うことができます

可用性グループには読み取り専用の可用性レプリカを最大 4 つまで追加で含めることができますこれらは個別にセカンダリ レプリカの役割を果たします

可用性レプリカの同期可用性グループの各データベースの内容はSQL Server によるログ ベースのデータ移動メカニズムを通じてプライマリ レプリカから各セカンダリ レプリカに同期されますそのため可用性グループのすべてのデータベースは完全復旧モデルに設定する必要があります

セカンダリ レプリカはプライマリ レプリカのデータベースとトランザクション ログの完全なバックアップと復元によって初期化されますプライマリ レプリカで新しいトランザクションがコミットされるとトランザクション ログの対応する部分がキャッシュされ

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 28

キューに入れられてネットワーク経由でセカンダリ レプリカ ノード上のデータベース ミラーリング エンドポイントに送信されます

この方法によりプライマリ レプリカのトランザクション ログの新しいエントリが各セカンダリ レプリカのトランザクション ログに追加されます各セカンダリ レプリカはログ シーケンス番号 (LSN) をプライマリ レプリカに定期的に送り返しトランザクション ログのどのくらいの量がリモート ディスクに書き込まれフラッシュされたかを示します

注 各可用性レプリカはそれぞれ独自に独立したトランザクション ログ再実行スレッドのセットを保持していますこれは可用性レプリカの同期プロセスには含まれませんセカンダリ レプリカ上ではログ再実行プロセスによって遅延時間が生じるためユーザーはそれをデータの待機時間として感じる場合があります

プライマリまたはセカンダリの役割を果たす他に各可用性レプリカには可用性モードもありますこのモードは次のようにCOMMIT TRAN ステートメントの実行時にトランザクション ログの書き込みの連係を制御します

同期コミット モードすべての同期コミット セカンダリ レプリカからそれぞれ独自のトランザクション ログの書き込み完了 (LSN 以降) が通知されるまでプライマリ レプリカはそのトランザクションをコミットしません可用性グループでは最大で 2 つの同期コミット セカンダリ レプリカを使用できます

同期コミット モードではプライマリ レプリカ データベースでトランザクションの遅延が生じますがコミットされたトランザクションに対するセカンダリ レプリカでのデータ損失を確実に防ぐことができます

非同期コミット モードプライマリ レプリカはローカル トランザクション ログの書き込み後にトランザクションをコミットしますが非同期コミット セカンダリ レプリカからトランザクション ログの書き込み完了通知を待つことはしません可用性グループでは最大で 4 つの非同期コミット セカンダリ レプリカを使用できますただし両方の種類を合わせて使用できるセカンダリ レプリカの合計は最大 4 つです

非同期コミット モードではプライマリ レプリカ データベースで生じるトランザクションの遅延が最小になりますがセカンダリ レプリカでのトランザクション ログが遅れる場合があるため一部のデータが失われる可能性があります

詳細については「可用性モード」(httpmsdnmicrosoftcomja-jplibraryff877931(SQL110)aspx) を参照してください

可用性レプリカ間のデータ フローの全体的な正常性は各レプリカの同期状態によって示されますセカンダリ レプリカにフェールオーバーしたときに同期状態が 同期済み または 同期中 になっていなければほとんどの場合はデータ損失が発生することになります

各セカンダリ レプリカの同期ストリームにはセッション タイムアウト プロパティがあります同期コミット モードに構成されているセカンダリ レプリカがセッション タイムアウトでエラーになると内部的には一時的に非同期としてマークされますこれはセカンダ

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 29

リ レプリカのエラーがプライマリ レプリカでのトランザクション ログの書き込みに影響しないようにするためですそのセカンダリ レプリカが正常に戻ってプライマリ レプリカの状態に追いつくと自動的に通常の同期コミット モード動作に戻されます

可用性グループのフェールオーバー可用性グループとそれに対応する仮想ネットワーク名はWSFC クラスターのリソースとして登録されます可用性グループはプライマリ レプリカの正常性とフェールオーバー ポリシーに基づいて可用性レプリカのレベルでフェールオーバーを行います

可用性グループのフェールオーバー ポリシーではsp_server_diagnostics システム ストアド プロシージャと FailureConditionLevel プロパティを使用して可用性グループに対して許容されるエラーの重大度のレベルを示しますこの同じメカニズムがFCI のフェールオーバー ポリシーにも使用されます

フェールオーバーが発生した場合は共有物理リソースの所有権を他のノードに移す代わりにWSFC を利用して他の SQL Server インスタンス上でセカンダリ レプリカを再構成しプライマリ レプリカの役割を引き継がせますその後可用性グループの仮想ネットワーク名リソースがそのインスタンスに転送されます関連する可用性レプリカへのすべてのクライアント接続がリセットされます

レプリカの現在の正常性同期状態および可用性モードに基づいて各レプリカには複合的な フェールオーバーの準備 状態が定義されますこの状態の値はデータ損失の可能性を示していますレプリカの正常性情報はAlwaysOn ダッシュボードまたは sysdm_hadr_availability_replica_states システム ビューで確認できます

各可用性レプリカにはフェールオーバー モードも構成されていますこのモードはフェールオーバーが指示された場合にレプリカの動作を制御します

自動フェールオーバー (データ損失なし)セカンダリ レプリカのトランザクション ログが既に書き込まれ同期されているのですべての AlwaysOn 構成の中でフェールオーバー時間が最短になりますプライマリ レプリカ上の開かれているトランザクションはロールバックされプライマリ レプリカの役割はユーザーによる操作なしでセカンダリ レプリカに転送されます

この場合プライマリ レプリカとセカンダリ レプリカの両方を自動フェールオーバー モードに設定し両方の可用性モードを同期コミットに設定する必要がありますレプリカ間の同期状態は同期済み である必要がありますまたWSFC クラスターは正常なクォーラム状態になっている必要があります

自動フェールオーバーはプライマリ レプリカまたはセカンダリ レプリカが FCI 上にある場合はサポートされませんこれは可用性グループと FCI のフェールオーバー間で競合状態が発生することを防ぐためです

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 30

手動フェールオーバーこの場合管理者はプライマリ レプリカの状態を評価してセカンダリ レプリカにフェールオーバーするかどうかを慎重に判断できます

可用性モードと同期状態に応じて次のような選択が可能です

o 計画的な手動フェールオーバー (データ損失なし)この種類のフェールオーバーを実行できるのはプライマリ レプリカとセカンダリ レプリカの両方が正常で同期済み 状態である場合だけですこれは機能的には自動フェールオーバーと同じです

o 強制手動フェールオーバー (データ損失の可能性を許容)これは対象のセカンダリ レプリカの可用性モードが非同期コミットである場合またはプライマリ レプリカに同期されない場合に使用できる唯一のフェールオーバー形式です

警告 このフェールオーバー オプションは災害復旧の状況に限って使用する必要がありますプライマリ レプリカが正常で使用可能である場合は関連する各レプリカの可用性モードを同期コミットに変更し計画的な手動フェールオーバーを実行してください

詳細については「可用性グループの強制手動フェールオーバーの実行」(httpmsdnmicrosoftcomja-jplibraryff877957(SQL110)aspx) を参照してください

フェールオーバー対象のプライマリ レプリカまたはセカンダリ レプリカが次の条件のいずれかに該当する場合は手動フェールオーバーを実行する必要があります

フェールオーバー モードが手動に設定されている 可用性モードが非同期コミットに設定されている レプリカが FCI 上にある

詳細については「フェールオーバーとフェールオーバー モード (AlwaysOn 可用性グルー プ ) 」(httpmsdnmicrosoftcomja-jplibraryhh213151(SQL110)aspx) を参照してください

注 フェールオーバー後新しいプライマリ レプリカが同期コミット モードに設定されていない場合セカンダリ レプリカの同期状態は 中断状態 になりますプライマリ レプリカが同期コミット モードに設定されるまでデータはセカンダリ レプリカに移動されません

可用性グループ リスナー可用性グループ リスナーはクライアントが可用性グループ内のデータベースにアクセスするために使用できる WSFC 仮想ネットワーク名 (VNN) ですVNN クラスター リソースはプライマリ レプリカをホストしている SQL Server インスタンスによって所有されます

仮想ネットワーク名は可用性グループ リスナーの作成時または構成の変更時にのみDNS に登録されます可用性グループ リスナーで定義されているすべての仮想 IP アドレスは同じ仮想ネットワーク名で DNS に登録されます

可用性グループ リスナーを使用する場合クライアント接続要求ではサーバーとして仮想ネットワーク名を指定してから可用性グループ内のデータベース名を指定する必要があり

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 31

ます既定ではこれによってプライマリ レプリカをホストしている SQL Server インスタンスに接続されます

実行時にはクライアントはローカルの DNS リゾルバーを使用して仮想ネットワーク名にマップされている IP アドレスと TCP ポートの一覧を取得しますクライアントは各 IP アドレスへの接続を成功するか接続タイムアウトに達するまで試し続けますMultiSubnetFailover パラメーターが true に設定されているとクライアントは複数の接続を同時に試行するのでクライアント フェールオーバーが大幅に速くなります

フェールオーバーが行われるとサーバー上でクライアント接続がリセットされ可用性グループ リスナーの所有権はプライマリ レプリカの役割と共に新しい SQL Server インスタンスに移動しVNN エンドポイントは新しいインスタンスの仮想 IP アドレスと TCP ポートにバインドされます

詳細については「可用性グループ リスナークライアント接続およびアプリケーションのフェールオーバー」(httpmsdnmicrosoftcomja-jplibraryhh213417(SQL110)aspx) を参照してください

アプリケーションの目的によるフィルター処理可用性グループ リスナーを使用して接続している場合アプリケーションは接続の目的がデータの読み取りと書き込みの両方なのか読み取り専用操作を実行するだけなのかを指定できます指定しない場合クライアントのアプリケーションの目的は既定で読み取りと書き込みになります

各可用性レプリカのプライマリ ロールとセカンダリ ロールについてはクライアントのアプリケーションの目的に対する接続レベルのフィルターとして接続アクセス プロパティも指定できます既定ではアプリケーションの目的と接続アクセスとの組み合わせが無効であると接続が拒否されますSQL Server は次のルールを使用してクライアントの接続要求を振り分ける必要があります

可用性レプリカがプライマリ ロールであり接続アクセスが次のいずれかである場合

すべてのアプリケーションの目的を許可するアプリケーションの目的でクライアント接続をフィルター処理しません

明示的な読み取り書き込みの目的だけを許可するクライアントが読み取り専用を指定している場合接続を拒否します

可用性レプリカがセカンダリ ロールであり接続アクセスが次のいずれかである場合

接続を許可しないすべての接続を拒否しますレプリカは災害復旧だけに使用されます

すべてのアプリケーションの目的を許可するアプリケーションの目的でクライアント接続をフィルター処理しません

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 32

読み取り専用の目的を許可するクライアントが読み取り専用を指定していない場合接続を拒否します

詳細については「可用性レプリカでの読み取り専用アクセスの構成」(httpmsdnmicrosoftcomja-jplibraryhh213002(SQL110)aspx) を参照してください

アプリケーションの目的の読み取り専用ルーティングAlwaysOn 可用性グループの特に優れた点はスタンバイ ハードウェア インフラストラクチャを災害復旧以外の目的に利用できることです1 つ以上のセカンダリ レプリカを読み取り専用でアクセスできるように構成するとプライマリ レプリカからかなりの量のワークロードを軽減できます

読み取り専用セカンダリ レプリカに回すように簡単に調整できるワークロードはレポートデータベース バックアップデータベース整合性チェックインデックスの断片化の分析データ パイプライン抽出運用サポート操作サポートアドホック クエリなどです

各可用性レプリカではSQL Server インスタンスのエンドポイントについて順次的な読み取り専用ルーティング リストを構成することもできますこのリストはレプリカがプライマリ ロールであるときに適用されますこのリストが存在する場合アプリケーションの目的が読み取り専用と指定されているクライアント接続要求はそのリスト内に記載されていて前述のアプリケーションの目的フィルターに適合する最初のセカンダリ レプリカにリダイレクトされます

注 読み取り専用ルーティングによるリダイレクトはプライマリ レプリカにバインドされている可用性グループ リスナーによって実行されますプライマリ レプリカがオフラインの場合クライアントのリダイレクトは機能しません

詳細については「可用性グループの読み取り専用ルーティングの構成 (SQL Server) 」(httpmsdnmicrosoftcomja-jplibraryhh710054(SQL110)aspx) を参照してください

可用性の向上 ndash データベースSQL Server 2012 ではデータベースの構成と機能に関してさまざまな点が強化されています

以下の機能は復旧時間の短縮に役立ちます

予測可能な復旧時間データベースごとにターゲット復旧時間の長さを設定することでバックグラウンドで実行される CHECKPOINT コマンドのスケジュールを制御できますこのコマンドは間接的なチェックポイントとして再起動時またはフェールオーバー時にトランザクション ログの復旧に必要となる時間の推定値に基づいて定期的に実行されますそれによってチェックポイントごとに IO 操作がほぼ均等に配分され復旧時間 (RTO) の予測可能性が高まります

SQL Server 2012 よりも前のバージョンではバックグラウンドの CHECKPOINT コマンドがトランザクションの量や負荷とは無関係に一定間隔で実行されていたので復旧時間を予測することはできませんでした

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 33

詳細については「データベース チェックポイント」(httpmsdnmicrosoftcomja-jplibraryms189573(SQL110)aspx) を参照してください

以下の向上点は計画的なダウンタイムが必要になる一般的な状況を減らすのに役立ちます

LOB 列のオンライン インデックス操作varbinary(max)varchar(max)nvarchar(max)または XML データ型の列が含まれているインデックスをオンラインで再構築または再構成できるようになりました

新しい NOT NULL 列のオンライン スキーマ修正既定値を使用して新しい NOT NULL 列を SQL Server 2012 データベース テーブルに追加する場合システム メタデータの更新にはスキーマ ロックだけが必要ですALTER TABLE ステートメントですべての行にデータを設定する必要はありません

いずれかの行で実際に変更またはインデックスの再作成が行われない限り列の既定値は物理的に格納されませんクエリでは列に実際の値が存在しない場合メタデータから既定値を返します

ストレージのサポート強化の例として次のようなものがあります

ページの自動修復ある種のストレージ サブシステム エラーが発生するとデータ ページが破損し読み取り不可能になる場合がありますAlwaysOn 可用性グループではそのような種類のエラーを検出し自動的に復旧できます復旧のために影響を受けたデータ ページの最新のコピーが別の可用性レプリカから非同期で取得され適用されます

以前のバージョンでもデータベース ミラーリングに同様の機能がありましたが新しい機能では複数のレプリカをサポートできるようになっています

詳細については「ページの自動修復」(httpmsdnmicrosoftcomja-jplibrarybb677167(SQL110)aspx) を参照してください

クライアント接続の推奨事項クライアント アプリケーションが Microsoft SQL Server 2012 AlwaysOn テクノロジの利点を十分に活用できるようにするには次のガイドラインに従います

AlwaysOn 対応のクライアント ライブラリ表形式のデータ ストリーム (TDS) プロトコル Version 74 以降をサポートしているクライアント ライブラリを使用しますこれによってAlwaysOn の機能に対応した適切な機能がクライアント側でも提供されますクライアント ライブラリの例としてはData Provider for SQL Server in NET Framework 402SQL Native Client 110 などがあります

接続プロバイダー プロパティ MultiSubnetFailover = True接続文字列にこのキーワードを使用することでクライアント ライブラリでは(複数のサブネットに IP アドレスを持つ) 可用性グループ リスナーまたは FCI に登録されているすべての IP アドレスに同時に接

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 34

続できるようになります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 35

接続プロバイダー プロパティ ApplicationIntent = ReadOnly必要に応じてプライマリ レプリカの読み取り専用ワークロードをセカンダリ レプリカに移管することができます

レガシ クライアントの接続タイムアウトレガシ クライアントのデータベース ライブラリには並列で接続を試行する機能が実装されていないため複数の IP アドレスがある場合にはTCP タイムアウトに達するか正常に接続できるまで1 つずつ順番に接続を試行します

複数の IP アドレスが存在する場合はタイムアウトと再試行が逐次的に繰り返される可能性に備えてレガシ クライアントの接続タイムアウトを調整する必要があります値は少なくとも 15 秒 + 21 秒 times セカンダリ レプリカ数にします

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 36

結論このホワイト ペーパーではSQL Server 2012 の AlwaysOn による高可用性災害復旧ソリューションを使用し予定されたダウンタイムや予定外のダウンタイムを短縮したりアプリケーションの可用性を最大限に高めたりデータを保護したりする方法について基本的なコンテキストを確立しました

高可用性データベース環境の計画管理測定に関連したビジネス上の目的と課題は多くの場合目標復旧時点 (RPO) と目標復旧時間 (RTO) という形で数量化して表すことができます

SQL Server 2012 AlwaysOn は組織が高可用性や災害復旧に関する一般的な状況に対処するための機能をRPO と RTO を適切に達成できることを念頭にインフラストラクチャ レベルデータ プラットフォーム レベルデータベース レベルのそれぞれで提供します

詳細情報

httpwwwmicrosoftcomja-jpsqlserver2012defaultaspx SQL Server Web サイト

httptechnetmicrosoftcomja-jpsqlserver SQL Server TechCenter

httpmsdnmicrosoftcomja-jpsqlserver SQL Server 開発者向け技術情報

このホワイト ペーパーはお役に立ちましたか フィードバックをお寄せください1 (役に立たなかった) ~ 5 (非常に役に立った) の 5 段階で評価してくださいまたその評価の理由もお知らせください以下に例を示します

評価が高い 例が適切図がわかりやすい説明が明快といったことが理由である 評価が低い 例が少ない図がわかりにくい説明があいまいといったことが理由で

ある

このようなフィードバックをお寄せいただくと今後のホワイト ペーパーの品質向上につながります

フィードバックの送信

loz Version 112012 年 2 月 21 日

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 37

  • 高可用性と災害復旧の概念
    • 高可用性について
      • 予定されたダウンタイムと予定外のダウンタイム
      • 段階的な可用性
        • ダウンタイムの定量化
          • 復旧目標
          • ROI または機会費用の正当化
          • 可用性の健全度の監視
          • 災害復旧の計画
            • 概要 Microsoft SQL Server 2012 での高可用性
              • SQL Server AlwaysOn
              • 計画的なダウンタイムの大幅な削減
              • アイドル状態のハードウェアをなくしてコスト効率とパフォーマンスを向上
              • 簡単な配置と管理
              • RPO と RTO の機能比較
                  • SQL Server AlwaysOn の保護レイヤー
                    • インフラストラクチャの可用性
                      • Windows オペレーティング システム
                        • Windows Server Core インストール オプション
                        • プライベート クラウド用の SQL Server の最適化
                          • Windows Server フェールオーバー クラスタリング
                            • WSFC ストレージ構成
                            • WSFC リソースの正常性の検出とフェールオーバー
                              • WSFC のクラスター検証ウィザード
                              • WSFC クォーラム モードと投票の構成
                                • クォーラムによるクラスター状態検出
                                • クォーラム モード
                                • 投票ノードと非投票ノード
                                • クォーラム投票に推奨される調整
                                  • WSFC の強制クォーラムによる災害復旧
                                    • SQL Server インスタンス レベルでの保護
                                      • 可用性の向上 ndash SQL Server インスタンス
                                      • AlwaysOn フェールオーバー クラスター インスタンス
                                        • FCI のフェールオーバー プロセス
                                        • FCI の強化
                                            • データベースの可用性
                                              • AlwaysOn 可用性グループ
                                                • 可用性レプリカとロール
                                                • 可用性レプリカの同期
                                                  • 可用性グループのフェールオーバー
                                                  • 可用性グループ リスナー
                                                    • アプリケーションの目的によるフィルター処理
                                                    • アプリケーションの目的の読み取り専用ルーティング
                                                      • 可用性の向上 ndash データベース
                                                        • クライアント接続の推奨事項
                                                          • 結論
Page 15: 高可用性と災害復旧の概念download.microsoft.com/download/6/B/E/6BE0C3F3-2991-4766... · Web view高可用性と災害復旧のソリューションのために最適なデータベース

インフラストラクチャの可用性AlwaysOn 可用性グループと AlwaysOn フェールオーバー クラスター インスタンスのどちらもWindows Server オペレーティング システムと WSFC をプラットフォーム テクノロジとして利用します今まで以上にMicrosoft SQL Server データベース管理者はこれらのテクノロジについて十分に理解することが必要です

Windows オペレーティング システムSQL Server は基礎的なインフラストラクチャとネットワークストレージセキュリティ更新プログラムおよび監視のサービスを Windows プラットフォームに依存しています

SQL Server 2012 の各エディションはWindows Server 2008 R2 オペレーティング システムの対応するエディション (Windows Server 2008 R2 Standard オペレーティング システムWindows Server 2008 R2 Enterprise オペレーティング システムWindows Server 2008 R2 Datacenter オペレーティング システムなど) の機能や能力をさらに進歩させて構築されています

詳細については「SQL Server 2012 のインストールに必要なハードウェアおよびソフトウェ ア」(httpmsdnmicrosoftcomja-jplibraryms143506(SQL110)aspx) を参照してください

Windows Server Core インストール オプションSQL Server 2012 では高可用性のための主要な機能の 1 つとしてWindows Server 2008 以降で Server Core インストール オプションによる配置をサポートしていますServer Core インストール オプションでは制限された機能と非常に限定的な GUI アプリケーション サポートで特定のサーバー ロールを実行するための最低限の環境が提供されます既定では必要なサービスとコマンド プロンプト環境のみが有効です

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 10

この操作モードではオペレーティング システムへの攻撃の危険性とシステム オーバーヘッドが低下し継続的なメンテナンスサービス修正プログラムなどの要件が大幅に削減されます

SQL Server 2012 を Windows Server Core に配置する場合の主な注意点はSQL Server およびオペレーティング システムのすべての配置構成管理およびメンテナンスをWindows PowerShell などのスクリプト環境やコマンド ラインまたはリモート ツールを使用して行う必要があることです

プライベート クラウド用の SQL Server の最適化高可用性と災害復旧はプライベート クラウド環境ではさらに重要になってきていますプライベート クラウドに SQL Server を配置すればコンピューターネットワークおよびストレージのリソースが効率的に使用され物理的な場所や資本と運営費用の両方の削減に役立ちます配置の統合リソースの効率的なスケーリングオンデマンドでのリソースの配置が容易になり制御の自由度が失われることもありません

SQL Server ではHyper-V のホストとゲストの両方のシステムに対して Windows Server フェールオーバー クラスタリングをサポートするほかライブ マイグレーションもサポートしていますこれは意識されるほどのダウンタイムを生じることなくホスト間で仮想マシンを移動できる機能ですライブ マイグレーションはゲスト クラスタリングとも協調して動作します

詳細については「プライベート クラウド コンピューティング - プライベート クラウド用の SQL Server の最適化 」(httpwwwmicrosoftcomSqlServerPrivateCloud) を参照してください

Windows Server フェールオーバー クラスタリングWindows Server フェールオーバー クラスタリング (WSFC) はMicrosoft SQL Server などのサーバー アプリケーションに対して高可用性と災害復旧をサポートするインフラストラクチャ機能を提供します

WSFC クラスター ノードまたはサービスに障害が発生するとそのノードでホストされていたサービスまたはリソースは自動的にまたは手動で他の可用性ノードに転送されますこのプロセスをフェールオーバーと呼びますAlwaysOn ソリューションではこのプロセスが FCI と可用性グループの両方に適用されます

WSFC クラスター内の各ノードは連携して次のような機能を提供します

分散メタデータと通知WSFC サービスとホストされるアプリケーション メタデータはクラスター内の各ノードで維持されますこのメタデータにはホストされるアプリケーションの設定に加えWSFC の構成と状態が含まれます1 つのノードでのメタデータまたは状態の変更はクラスター内の他のノードに自動的に反映されます

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 11

リソース管理クラスター内の各ノードは直接アタッチされたストレージ (DAS)ネットワーク インターフェイス共有ディスク ストレージへのアクセスなど物理的リソースを提供する場合がありますSQL Server などホストされるアプリケーション自体もクラスター リソースとして登録されますまた他のリソースに対するスタートアップと正常性にかかわる依存関係を構成できます

正常性の監視ノード間の正常性およびプライマリ ノードの正常性はハートビート ネットワーク通信とリソースの監視を組み合わせることで検出されますクラスターの全体的な正常性状態はクラスター内のノードのクォーラムの投票によって決定されます

フェールオーバーの調整各リソースはプライマリ ノードでホストされるように構成されそれぞれ自動的にまたは手動で 1 つ以上のセカンダリ ノードに転送されます正常性ベースのフェールオーバー ポリシーによってノード間でのリソース所有権の自動転送が制御されますフェールオーバーが発生すると適切に対応できるように各ノードおよびホストされているアプリケーションに通知されます

詳細については「Windows Server | フェールオーバー クラスタリングとノード バランシン グ」(httpwwwmicrosoftcomwindowsserver2008enusfailover-clustering-mainaspx) を参照してください

注 データベース管理者が WSFC クラスターおよびクォーラム管理の内部動作を理解しておくことが非常に重要になりましたAlwaysOn の正常性の監視管理および障害復旧の手順はすべてが本質的に WSFC 構成と関連しています

WSFC ストレージ構成Windows Server フェールオーバー クラスタリングでは接続されているストレージ デバイスディスク ボリュームおよびファイル システムの管理をクラスター内の各ノードに依存していますWSFC はストレージ サブシステムが非常に堅牢であると想定しているためノードに接続されたストレージ デバイスが使用できない場合はクラスター ノードが障害状態であると見なします

書き込みベースの操作ではディスク ボリュームは SCSI-3 の永続的な予約を使用して一度に 1 つのクラスター ノードに論理的に接続されますノードで障害が発生した場合にはストレージ サブシステムの機能と構成に応じてディスク ボリュームの論理的所有権をクラスター内の別のノードに移すことができます

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 12

SQL Server AlwaysOn ソリューションでは次のような WSFC ストレージ構成の組み合わせを利用しその制限も受けます

直接接続とリモートストレージ デバイスはサーバーに物理的に直接接続されるかまたはネットワークやホスト バス アダプター (HBA) を介してリモートのストレージ デバイスを使用しますリモート ストレージのテクノロジにはiSCSI やファイバー チャネルなどのストレージ エリア ネットワーク (SAN) ベースのソリューションとサーバー メッセージ ブロック (SMB) というファイル共有ベースのソリューションがあります

対称と非対称ストレージ デバイスの論理ディスク ボリューム構成とファイル パスがクラスターの各ノードでまったく同じである場合それらのストレージ デバイスは対称的であると見なされます基になるディスク ボリュームの物理的な実装と容量は異なっていてもかまいません

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 13

専用と共有専用ストレージは使用するために予約されクラスター内の 1 つのノードに割り当てられます共有ストレージはクラスターの複数のノードからアクセスできます共有ストレージ デバイスが SCSI-3 プロトコルに準拠していればそれらの制御と所有権をノード間で移動させることができますWSFC ではファイル共有のためにクラスター共有ボリュームを同時に複数のノードでホスティングできますただしSQL Server は複数のノードからの共有ボリュームへの同時アクセスをサポートしていません

注 SQL Server FCI では対称共有ストレージを使用してインスタンスのすべてのノード所有者 (およびその候補) からアクセスできるようにする必要がありますただしAlwaysOn 可用性グループの導入に伴いそれぞれが独自に専用のローカルまたはリモート ストレージを持つ非 FCI の SQL Server インスタンスを WSFC クラスターに配置できるようになりました

WSFC リソースの正常性の検出とフェールオーバーWSFC クラスター ノード内の各リソースの状態と正常性は定期的にまたは要求に応じて報告されますクラスター リソースの障害を示す状況としてはたとえば電源障害ディスクまたはメモリのエラーネットワーク通信エラー構成エラー応答しないサービスなどがあります

ネットワークストレージサービスなどの WSFC クラスター リソースは互いに依存するように構成できますあるリソースの累積的な正常性は依存関係を持つリソースの正常性を連続的にたどってゆくことで決定されます

AlwaysOn 可用性グループでは可用性グループと可用性グループ リスナーがそれぞれ WSFC クラスター リソースとして登録されますAlwaysOn フェールオーバー クラスター インスタンスではSQL Server サービスおよび SQL Server エージェント サービスが WSFC クラスター リソースとして登録されどちらもインスタンスの仮想ネットワーク名リソースに依存します

WSFC クラスター リソースで設定された数のエラーまたは障害が一定期間内に発生した場合構成されたフェールオーバー ポリシーによってクラスター サービスは次のいずれかの操作を行います

現在のノードでのリソースの再起動 リソースをオフライン化 リソースとその依存関係を別のノードへ自動的にフェールオーバー

注 WSFC クラスター リソースの正常性の検出は個々のノードの正常性やクラスターの全体的な正常性には直接影響しません

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 14

WSFC のクラスター検証ウィザードクラスター検証ウィザードはWindows Server 2008 および Windows Server 2008 R2 のフェールオーバー クラスタリングに統合されている機能ですこれはSQL Server AlwaysOn ソリューションの配置前 にクリーンで正常な安定した WSFC 環境が存在していることをデータベース管理者が確認するために使用する主要なツールです

クラスター検証ウィザードではクラスターのノードとして使用するサーバーの集合または既存のクラスターを対象にして一連のテストを実行できますこのプロセスでは基になるハードウェアおよびソフトウェアが個別に直接テストされWSFC クラスターが特定の構成でどの程度良好にサポートされるかについての正確な評価が得られます

この検証プロセスでは各ノードに対して次のようなカテゴリの一連のテストとデータ収集が実施されます

一覧作成BIOS のバージョン環境レベルホスト バス アダプターRAMオペレーティング システムのバージョンデバイスサービスドライバーなどの情報です

ネットワークNIC のバインド順序ネットワーク通信IP 構成ファイアウォール構成などの情報ですすべての NIC でノード間の通信が検証されます

ストレージディスクドライブの容量アクセス待機時間ファイル システムなどの情報ですSCSI コマンドディスク フェールオーバー機能対称的または非対称的なストレージ構成が検証されます

システム構成Active Directory の構成ドライバーの登録メモリ ダンプの設定必要なオペレーティング システムの機能とサービス互換性のあるプロセッサ アーキテクチャおよびサービス パックと Windows Software Update のレベルが検証されます

これらの検証テストの結果を利用してクラスターの構成を微調整したり構成を追跡したりダウンタイムを引き起こすかもしれない潜在的なクラスター構成の問題を特定したりできますテスト結果のレポートは後で参照できるようにHTML ドキュメントとして保存できます

これらのテストはWSFC の構成に何か変更を加える前と加えた後に実行するほかSQL Server をインストールする前および災害復旧プロセスの一環として実行する必要がありますマイクロソフトで特定の WSFC クラスター構成がサポートされるためにはマイクロソフト カスタマー サポート サービス (CSS) にクラスター検証レポートを提出する必要があります

詳細については「フェールオーバー クラスター ステップ バイ ステップ ガイド フェール オーバー クラスター用ハードウェアを検証する」(httptechnetmicrosoftcomja-jplibrarycc732035(WS10)aspx) を参照してください

注 ハードウェアベースの地理的クラスタリング ストレージ ソリューションの場合やAlwaysOn 可用性グループの場合のようにクラスター構成に非対称ストレージがあるとクラスター検証ウィザードでストレージの検証手順を成功させるために多数の修正プログラムを適用しなければならないことがあります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 15

詳細については「AlwaysOn 可用性グループの前提条件制限事項および推奨事項 」(httpmsdnmicrosoftcomja-jplibraryff878487(SQL110)aspxSystemReqsForAOAG) を参照してください

WSFC クォーラム モードと投票の構成WSFC ではクォーラム ベースのアプローチを使用してクラスターの全体的な正常性を監視することでノード レベルのフォールト トレランスを最大限に高めますWSFC のクォーラム モードおよびノード投票構成の基本について理解することはAlwaysOn 高可用性災害復旧ソリューションの設計運用トラブルシューティングのために非常に重要です

クォーラムによるクラスター状態検出WSFC クラスター内の各ノードは定期的なハートビート通信に参加しノードの正常性状態を他のノードと共有します応答しないノードはエラー状態であると見なされます

クォーラム ノード セットとはWSFC クラスター内の投票ノードおよび監視サーバーのうち過半数を占めるノードの集合ですWSFC クラスターの全体的な正常性と状態は定期的なクォーラムの投票 によって決定されますクォーラムはクラスターが正常でありノード レベルのフォールト トレランスを提供できることを意味します

クォーラムに達していない状態はクラスターが正常でないことを示しますプライマリ ノードのフェールオーバー先として正常なセカンダリ ノードを使用できるようにするにはWSFC クラスターの全体的な正常性が維持されている必要があります投票数がクォーラムに達しなかった場合にはWSFC クラスター全体が予防策としてオフラインに設定されますその場合クラスターに登録されている SQL Server インスタンスがすべて停止します

注 クォーラム障害のために WSFC クラスターがオフラインに設定されるとオンラインに戻すために手動の操作が必要です詳細については後の「WSFC の強制クォーラムによる災害 復旧」のセクションを参照してください

クォーラム モードクォーラム モードはWSFC クラスター レベルで構成されクォーラム投票の方法を指定しますフェールオーバー クラスター マネージャー ユーティリティではクラスター内のノード数に基づいて推奨するクォーラム モードが提示されます

次のいずれかのクォーラム モードによって投票クォーラムの構成が決定されます

ノード マジョリティクラスターが正常であるためにはクラスター内の半分以上の投票ノードが肯定的に投票する必要があります

ノードおよびファイル共有マジョリティノード マジョリティ クォーラム モードに似ていますがリモート ファイル共有も投票監視サーバーとして構成され各ノードからそのリモート ファイル共有への接続も肯定的な投票としてカウントされますクラスターが正常であるためには投票の過半数が肯定的である必要があります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 16

推奨事項として監視ファイル共有はクラスター内のノードに存在せずクラスター内のすべてのノードから見える必要があります

ノードおよびディスク マジョリティノード マジョリティ クォーラム モードに似ていますが共有ディスク クラスター リソースも投票監視サーバーとして使用され各ノードからその共有ディスクへの接続も肯定的な投票としてカウントされますクラスターが正常であるためには投票の過半数が肯定的である必要があります

ディスクのみ共有ディスク クラスター リソースが監視サーバーとして使用され各ノードからその共有ディスクへの接続が肯定的な投票としてカウントされます

詳細については「フェールオーバー クラスター ステップ バイ ステップ ガイド フェール オーバー クラスターのクォーラムの構成」(httptechnetmicrosoftcomja-jplibrarycc770620(WS10)aspx) で説明されています

注 クラスターの各ノードが同じ共有ストレージ クォーラム監視ディスクを使用するように構成されていない限り通常投票ノード数が奇数の場合は ノード マジョリティ クォーラム モード投票ノード数が偶数の場合は ノードおよびファイル共有マジョリティ クォーラム モードを使用してください

投票ノードと非投票ノード既定ではWSFC クラスター内の各ノードがクラスター クォーラムのメンバーとなります各ノードファイル共有監視サーバーディスク監視サーバーがクラスターの全体的な正常性の決定においてそれぞれ 1 票ずつの投票権を持ちますクォーラムに関するここまでの説明ではクラスター状態について投票する WSFC クラスター ノードのセットを投票ノードとして注意深く限定してきました状況によってはすべてのノードに投票権を与えることが適切でない場合もあります

WSFC クラスターの各ノードはクォーラムを確立しようとし続けますクラスター内の個々のノードはクラスターが全体として正常であるか正常でないかを明確に決定することはできません特定の時点で各ノードからは他のノードの一部がオフラインフェールオーバー中またはネットワーク通信のエラーにより応答不能に見えますクォーラム投票の主な機能はWSFC クラスターの各ノードの見かけの状態が本当にそれらのノードの実際の状態であるかどうかを判断することです

ディスクのみ 以外のすべてのクォーラム モデルではクォーラム投票の有効性はクラスター内のすべての投票ノード間に信頼できる通信が確立されていることに依存しますすべてのノードが同じ物理サブネット上にある場合はクォーラムの投票を信頼できます

しかしクォーラム投票で他のサブネット上のノードが応答しないように見えても実際はオンラインで正常である場合はサブネット間のネットワーク通信のエラーが原因であることが考えられますクラスター トポロジクォーラム モードおよびフェールオーバー ポリシーの構成によってはネットワーク通信エラーによって投票ノードのセット (またはサブセット) が実質的に複数作成されてしまう可能性があります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 17

投票ノードの複数のサブセットがそれぞれ独自のクォーラムを構築できる状態はスプリット ブレイン と呼ばれますこの状態では各クォーラム上のノードが別々の動作をし相互に矛盾する可能性があります

注 スプリット ブレイン の状況が発生するのはシステム管理者が強制クォーラム動作を手動で実行するかまたは非常にまれですが強制的な手動フェールオーバーを実行することでクォーラム ノード セットが明示的に細分化された場合のみです詳細については後の「WSFC の強制クォーラムによる災害復旧 」のセクションを参照してください

クォーラム構成を単純化し稼働時間を長くする目的でノードの投票がクォーラムにカウントされないように各ノードの NodeWeight 設定 (値 0 または 1) を調整することができます

クォーラム投票に推奨される調整以下のガイドラインをこの順番に適用することでクラスターに対して推奨されるクォーラム投票の構成を判断できます

1 既定は投票権なしにします明確な理由がない限り各ノードには投票権を与えないと考えてください

2 すべてのプライマリ ノードに投票権を与えますAlwaysOn 可用性グループのプライマリ レプリカをホストする各ノードおよび AlwaysOn フェールオーバー クラスター インスタンスの優先所有者である各ノードは投票権を持つ必要があります

3 可能性のある自動フェールオーバーの所有者を含めます自動フェールオーバーの結果としてプライマリ レプリカまたは FCI をホストする可能性がある各ノードは投票を持つ必要があります

4 セカンダリ サイト ノードを除外します通常はセカンダリ災害復旧サイトに存在するノードには投票を提供しないでくださいプライマリ サイトに問題がない場合クラスターをオフラインにする判断にセカンダリ サイト内のノードが影響を与えることは避ける必要があります

5 投票数を奇数にします必要に応じて監視ファイル共有監視ノード (SQL Server インスタンスの有無は問いません)または監視ディスクをクラスターに追加してクォーラム モードを調整しクォーラムの投票結果が同数に分かれるのを防ぎます

6 フェールオーバー後の投票割り当てを再評価します正常なクォーラムをサポートしないクラスター構成にフェールオーバーすることは避けます

ノードの投票の調整の詳細については「クラスター クォーラムの NodeWeight の設定の構 成」(httpmsdnmicrosoftcomja-jplibraryhh270281(SQL110)aspx) を参照してください

ファイル共有監視サーバーの投票は調整できませんその投票を含めるか除外するかを決めるには別のクォーラム モードを選択する必要があります

注 SQL Server ではWSFC クラスター構成およびノード クォーラム投票に関する設定を管理するためにいくつかのシステム動的管理ビュー (DMV) が公開されています

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 18

詳細については「可用性グループの監視」(httpmsdnmicrosoftcomja-jplibraryff878305(SQL110)aspx) を参照してください

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 19

WSFC の強制クォーラムによる災害復旧通常クォーラム障害は災害発生時または WSFC クラスター内の複数のノード間で永続的な通信障害が生じた場合に発生しますクォーラム障害が発生するとクラスターがノード レベルのフォールト トレランスを確保できなくなるためその WSFC クラスター内の SQL Server インスタンス可用性グループおよびクラスター化されているサービスがすべてオフラインになりますクォーラム障害はWSFC クラスター内の正常な投票ノード数がクォーラム モデルを満たさなくなったことを意味しますノードによってまったく機能しなくなるものもあればWSFC サービスがシャットダウンしただけでクォーラムと通信できなくなったことを除けば正常なものもあります

WSFC クラスターをオンラインに戻すには既存の構成の少なくとも 1 つのノードでクォーラム障害の根本的な原因を解決する必要があります災害発生時には使用できる代替ハードウェアの再構成や識別が必要となる場合もあります現状のクラスター トポロジを反映するためにWSFC クラスターの残りのノードを再構成する場合もあります

WSFC クラスター ノードで強制クォーラムの手順を使用するとクラスターがオフラインになる原因となった安全管理機能を無効にすることができますこれによりクラスターでのクォーラム投票のチェックが実質的に中断されクラスター内の任意のノードで WSFC クラスター リソースと SQL Server をオンラインに戻すことができます

このような災害復旧プロセスの手順を次に示します

1) 障害の範囲を特定します応答しない可用性グループや SQL Server インスタンス災害後に使用できるオンラインのクラスター ノードをそれぞれ特定しWindows イベント ログと SQL Server システム ログを確認します必要に応じて後で分析できるように解析データやシステム ログを保存しておきます

2) 1 つのノードで強制クォーラムを使用して WSFC クラスターを起動します他の点では正常なノードで強制クォーラムの手順に従ってクラスターを手動で強制的にオンラインにしますこの場合データ損失の可能性を最小限に抑えるには可用性グループのプライマリ レプリカを最後にホストしていたノードを選択します

詳細については「クォーラムを使用せずに WSFC クラスターを強制的に起動する 」(httpmsdnmicrosoftcomja-jplibraryhh270275(v=SQL110)aspx) を参照してください

注 強制クォーラムの設定を使用するとWSFC クラスターの投票が過半数に達することで通常のクォーラム モードの動作に自動的に切り替わるまでクラスター全体のクォーラムのチェックがブロックされます

3) 他の点では正常な各ノードでWSFC サービスを 1 つずつ通常の方法で起動します他のノードでクラスター サービスを起動するときは強制クォーラム オプションを指定する必要はありません

各ノードの WSFC サービスがオンラインに戻ると他の正常なノードとの間でネゴシエーションが行われ新しいクラスター構成の状態が同期されますクラスターの最新の状態

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 20

を判断するときに競合状態の発生を避けるためこの手順は必ず一度に 1 つのノードで行うようにしてください

注 起動した各ノードが新たにオンラインにした他のノードと通信できることを確認しますそうしないと複数のクォーラム ノード セットが作成されて スプリット ブレイン の状況に陥るおそれがあります手順 1 の結果に問題がなければこの現象は発生しません

4) 新しいクォーラム モードとノードの投票の構成を適用します強制クォーラムの手順によってクラスターのすべてのノードを正常に再起動させクォーラムのエラーの根本原因を修正した場合クォーラム モードとノードの投票を元の構成から変更する必要はありません

それ以外の場合は新たに復元されたクラスター ノードと可用性レプリカのトポロジを評価し必要に応じてクォーラム モードと各ノードの投票割り当てを変更します未復旧のノード上ではWSFC クラスター サービスをオフラインにするかノードの投票をゼロに設定します

注 この時点でクラスター内のノードと SQL Server インスタンスが通常の動作に戻っているように見えることがありますがまだ正常なクォーラムには達していない可能性がありますフェールオーバー クラスター マネージャーやSQL Server Management Studio の AlwaysOn ダッシュボードまたは適切な DMV を使用して正常なクォーラムが復元されたことを確認してください

5) 必要に応じて可用性グループのデータベース レプリカを復旧します一部のデータベースはSQL Server の通常の起動処理の一環として自動的に復旧されオンラインに戻ることがありますそれ以外のデータベースの復旧には追加で手動の手順を実行する必要があります

可用性グループ レプリカのデータ損失の可能性や復旧にかかる時間を最小限に抑えるにはできればプライマリ レプリカ同期セカンダリ レプリカ非同期セカンダリ レプリカの順にオンラインに戻します

6) 障害が発生したコンポーネントを修復するか交換しクラスターを再検証しますこれで最初の災害およびクォーラム障害から復旧できたので障害が発生したノードを修復するか交換しWSFC と AlwaysOn の関連する構成を適切に調整する必要がありますこれには可用性グループ レプリカの削除クラスターからのノードの削除ノードへのソフトウェアの再インストールなどが含まれます

注 停止したすべての可用性レプリカを修復または削除する必要がありますSQL Server 2012 では最も古い可用性レプリカを最後に認識した時点以降トランザクション ログが切り捨てられません停止したレプリカを修復するか可用性グループから削除しないとトランザクション ログが大きくなり他のレプリカのトランザクション ログの領域が不足する可能性があります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 21

7) 必要に応じて手順 4 を繰り返しますこの目的は正常な動作を行うために適切なレベルのフォールト トレランスと高可用性を再確立することです

8) RPORTO 分析を実行しますSQL Server のシステム ログデータベースのタイムスタンプおよび Windows のイベント ログを分析して障害の根本的な原因を特定し実際の復旧ポイントと復旧時間を文書に記録します

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 22

SQL Server インスタンス レベルでの保護次に説明する AlwaysOn ソリューションの保護レイヤーはデータ プラットフォームそれ自体ですMicrosoft SQL Server 2012 とその Windows Server インフラストラクチャ コンポーネントとの統合によって次のような機能が提供されます

可用性の向上 ndash SQL Server インスタンスこれは SQL Server 2012 の新しいインスタンス レベルの機能でAlwaysOn フェールオーバー クラスター インスタンスとAlwaysOn 可用性グループをホストするスタンドアロン インスタンスの両方の可用性を強化します

以下の強化点によってフェールオーバーの管理およびトラブルシューティングが向上します

柔軟なフェールオーバー ポリシー信頼性の高いエラー検出に使用される新しいシステム ストアド プロシージャ sp_server_diagnostics の出力でSQL Server インスタンスに影響するエラーの重大度が FailureConditionLevel プロパティによって示されますWSFC のフェールオーバー ポリシーによってこの値が SQL Server インスタンスにどのように影響するかを制御できますある程度エラーを許容する設定からSQL Server の内部コンポーネント エラーを重点的に検出する設定までさまざまに構成できます

特定のレベルのエラーによってフェールオーバーを開始するように構成できますエラーのレベルにはサーバーの停止サーバーの応答停止重大なエラー中程度のエラーなんらかの条件付きエラーなどがありますFailureConditionLevel プロパティはFCI または可用性グループのフェールオーバー ポリシーのために使用できます

SQL Server 2012 よりも前のバージョンではフェールオーバーを制御できるようなエラー状態の区分がなくすべてのサービス レベルのエラーによってフェールオーバーが発生しました

詳細については「フェールオーバー クラスター インスタンスのフェールオーバー ポリシー」(httpmsdnmicrosoftcomja-jplibraryff878664(SQL110)aspx) を参照してください

強化されたインストルメンテーションとログAlwaysOn 専用のシステム構成ビューDMVパフォーマンス カウンターに加えて拡張されたイベント正常性セッションによってAlwaysOn 配置のトラブルシューティングチューニングおよび監視に必要な情報を取得して表示できますこれらの多くはSQL Server ポリシー管理の新しいファセットおよびポリシーを通じて公開されます

詳細については「AlwaysOn 可用性グループの動的管理ビューおよび関 数」(httpmsdnmicrosoftcomja-jplibraryff877943(SQL110)aspx) と「sysdm_os_cluster_nodes」(httpmsdnmicrosoftcomja-jplibraryms187341(SQL110)aspx) を参照してください

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 23

SMB ファイル共有のサポートWindows Server 2008 以降のスタンドアロン用またはフェールオーバー クラスター インスタンス用のリモート ファイル共有にデータベース ファイルを格納することができますこの場合FCI ごとに異なるドライブ文字を使用する必要がありませんこれはストレージを統合する場合やデータベース ファイルのストレージを仮想マシンのゲスト オペレーティング システム用物理サーバーでホストする場合などに便利なオプションです適切に構成すれば直接接続されたストレージとほぼ同等の IO パフォーマンスが得られます

詳細については「ファイル共有上の SQL データベース - シナリオを再検討すべきとき 」(httpblogsmsdncombsqlserverstorageenginearchive20111018sql-databases-on-file-shares-it-s-time-to-reconsider-the-scenarioaspx) を参照してください

注 WSFC クラスターではSMB ファイル共有リソースの依存関係を SQL Server リソース グループに追加することはできませんファイル共有の可用性を確保するには別の方法を用いる必要がありますファイル共有が使用できなくなった場合SQL Server は IO 例外をスローしオフラインになります

WSFC と DNS の相互運用性FCI または可用性グループ リスナーの仮想ネットワーク名 (VNN) はVNN の作成時または構成の変更時にのみDNS に登録されますすべての仮想 IP アドレスはオンライン状態かオフライン状態かに関係なく同じ仮想ネットワーク名で DNS に登録されますDNS の仮想ネットワーク名を解決するためのクライアント呼び出しは各種のラウンド ロビン シーケンスによってすべての登録済み IP アドレスを返します

AlwaysOn フェールオーバー クラスター インスタンスSQL Server の AlwaysOn フェールオーバー クラスター インスタンス (FCI) の主な目的は1 つのデータ センター内のローカル サーバーとストレージ ハードウェアでホストされている SQL Server インスタンスの可用性を高めることです

FCI はWindows Server フェールオーバー クラスタリング (WSFC) のクラスターに含まれる複数のノードにまたがってインストールされる1 つの論理的な SQL Server インスタンスですただし一度に 1 つのノードだけでアクティブになることができますクライアント アプリケーションはアクティブなクラスター ノードが所有している仮想ネットワーク名および仮想 IP アドレスに接続します

FCI をインストールした各ノードは同一の構成を持ち同一の SQL Server バイナリを含んでいますWSFC クラスター サービスはアクティブなインスタンス上にある Windows レジストリのエントリからFCI をインストールした各ノードに関連のある変更をレプリケートしますFCI がインストールされている各ノードはインスタンスとそのリソースの所有者の候補として指定されフェールオーバーの優先順位に従って所有者となります

共有対称ストレージ ボリュームに格納されているデータベース ファイルはリソースとして WSFC クラスターに登録され現在 FCI をホストしているノードによって所有されます

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 24

詳細については「AlwaysOn フェールオーバー クラスター インスタン ス」(httpmsdnmicrosoftcomja-jplibraryms189134(SQL110)aspx) を参照してください

FCI のフェールオーバー プロセス依存しているクラスター リソースで障害が発生した場合AlwaysOn フェールオーバー クラスター インスタンスはWSFC クラスター サービスと連携してフェールオーバーを行いますそのプロセスの概要を以下に示します

1) 再起動が指示されますWSFC の定期的なチェックまたは SQL Server のフェールオーバー ポリシー構成によってエラー状態が示されます既定では他のノードへのフェールオーバーを開始する前にサービスの再起動が試みられます再起動の試みがタイムアウトするようであればリソースの障害が発生しています

2) フェールオーバーが指示されますフェールオーバー ポリシー チェックによってノードのフェールオーバーが必要であることが示されます

3) SQL Server サービスが停止されますSQL Server サービスが現在実行されている場合はその正常なシャットダウンが試みられます

4) WSFC クラスター リソースが転送されますSQL Server クラスター リソース グループの所有権とそれが依存するネットワークおよび共有ストレージ リソースがFCI で次に優先されるノード所有者に転送されます

5) 新しいノードで SQL Server が起動されますSQL Server インスタンスは通常のスタートアップ プロシージャで起動されます所定のタイムアウト時間内にオンラインに戻らない場合クラスター サービスはこの新しいノード上のリソースをエラー状態と見なします

6) 新しいノードでユーザー データベースが復旧されます各ユーザー データベースは復旧モードに設定されます復旧モードではトランザクション ログの再実行操作が適用されコミットされていなかったトランザクションがロールバックされます

FCI の強化以前のバージョンの SQL Server でも FCI のインストール オプションは用意されていましたがSQL Server 2012 では次のような機能強化によって可用性の堅牢性と利便性が向上しました

マルチサブネット クラスタリングSQL Server 2012 では複数のサブネットに存在する WSFC クラスター ノードがサポートされていますWSFC クラスター ノードに存在する SQL Server インスタンスはいずれかのネットワーク インターフェイスが使用可能であれば起動できますこれはクラスター リソースの OR 依存関係と呼ばれます

以前のバージョンの SQL Server の場合SQL Server サービスを起動またはフェールオーバーするにはすべてのネットワーク インターフェイスが機能しそれらがすべて同じサブネットまたは VLAN に存在している必要がありました

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 25

注 マルチサブネット クラスタリングではクラスター ノード間のストレージ レベルのレプリケーションが自動的には有効になりませんマルチサブネットの FCI ソリューションでクラスター ノード間でデータのレプリケーションを行いストレージ フェールオーバーを調整するためにはサード パーティから提供される SAN ベースのソリューションを利用する必要があります

詳細については「SQL Server 2012 AlwaysOn マルチサイト フェールオーバー クラスター インスタンス」(httpsqlcatcomsqlcatbwhitepapersarchive20111222sql-server-2012-alwayson_3a00_-multisite-failover-cluster-instanceaspx) を参照してください

信頼性の高いエラー検出WSFC クラスター サービスではノードの各 SQL Server 2012 FCI に対してそれぞれ専用の管理者接続が維持されますこの接続では特殊なシステム ストアド プロシージャ sp_server_diagnostics を定期的に呼び出すことでシステムの正常性診断に役立つ豊富な情報を含む配列が返されます

SQL Server 2012 よりも前のバージョンではFCI の主な正常性検出メカニズムは単純な一方向のポーリング プロセスとして実装されていましたこのプロセスではWSFC クラスター サービスがインスタンスへの新しい SQL クライアント接続を定期的に作成しサーバー名を照会した後で接続を切断していました何かの理由で接続が失敗するかクエリがタイムアウトした場合フェールオーバーが開始されますが診断情報はほとんど提供されません

詳細については「sql_server_diagnostics」(httpmsdnmicrosoftcomja-jplibraryff878233(SQL110)aspx) を参照してください

現在ではFCI ストレージが次のように幅広い状況でサポートされています

向上したマウント ポイント サポートSQL Server のセットアップ時にクラスター ディスクのマウント ポイント設定が認識されるようになりました指定されたクラスター ディスクとそれにマウントされているすべてのディスクがセットアップ時に SQL Server リソースの依存関係に自動的に追加されます

ローカル ストレージの tempdbFCI ではローカルの非共有ストレージ (ローカル ソリッド ステート ドライブなど) に tempdb を配置できるようになったため共有 SAN での IO 動作の負荷を大幅に軽減できる可能性があります

SQL Server 2012 よりも前のバージョンの FCI ではtempdb が他のシステム データベースと共にフェールオーバーされる対称共有ストレージ ボリュームに配置される必要がありました

注 tempdb の場所はmaster データベースに格納されますこのデータベースはフェールオーバー時にノード間で移動されますtempdb は所有者候補となっているすべてのノード上で有効で対称的なファイル パス (ドライブフォルダーおよび権限) に配置されている必要がありますそうなっていない場合SQL Server サービスが一部のノードでは起動されません

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 26

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 27

データベースの可用性インフラストラクチャ レベルおよび SQL Server インスタンス レベルのコンポーネントで提供されている高可用性機能は互いに連係してホストされているデータベースを暗黙的に保護しますAlwaysOn ソリューションではデータベースのデータおよびデータ層アプリケーションを明示的に保護するために一連のオプションが追加で用意されています

AlwaysOn 可用性グループ可用性グループは1 つの SQL Server インスタンスから同じ WSFC クラスター内の別のインスタンスへと同時にフェールオーバーされるユーザー データベースのセットですクライアント アプリケーションは可用性グループ リスナーと呼ばれる WSFC 仮想ネットワーク名を通じて可用性グループのデータベースに接続できますこうすることで基になる SQL Server インスタンスが抽象化されます

AlwaysOn 可用性グループは正常性監視フェールオーバーの調整およびサーバー接続を Windows Server フェールオーバー クラスタリングに依存していますWSFC クラスター ノード上の SQL Server インスタンスでAlwaysOn サポートを有効にする必要がありますただしそのインスタンスが FCI である必要はなく対称共有ストレージを使用する必要もありません

詳細については「AlwaysOn 可用性グループの概要 」(httpmsdnmicrosoftcomja-jplibraryff877884(SQL110)aspx) を参照してください

可用性レプリカとロール可用性グループの各 SQL Server インスタンスは可用性グループのユーザー データベースのコピーを保持している可用性レプリカをホストしますSQL Server インスタンスは特定の可用性グループの可用性レプリカを 1 つだけホストすることができますが複数の可用性グループを同じインスタンスに置くことは可能ですSQL Server インスタンスは専用の (非共有) ストレージ ボリュームを持つ必要があります

可用性レプリカの 1 つがプライマリ レプリカの役割を果たしますこれは可用性グループ データベースのマスター コピーとして指定されていて読み取り書き込み操作を行うことができます

可用性グループには読み取り専用の可用性レプリカを最大 4 つまで追加で含めることができますこれらは個別にセカンダリ レプリカの役割を果たします

可用性レプリカの同期可用性グループの各データベースの内容はSQL Server によるログ ベースのデータ移動メカニズムを通じてプライマリ レプリカから各セカンダリ レプリカに同期されますそのため可用性グループのすべてのデータベースは完全復旧モデルに設定する必要があります

セカンダリ レプリカはプライマリ レプリカのデータベースとトランザクション ログの完全なバックアップと復元によって初期化されますプライマリ レプリカで新しいトランザクションがコミットされるとトランザクション ログの対応する部分がキャッシュされ

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 28

キューに入れられてネットワーク経由でセカンダリ レプリカ ノード上のデータベース ミラーリング エンドポイントに送信されます

この方法によりプライマリ レプリカのトランザクション ログの新しいエントリが各セカンダリ レプリカのトランザクション ログに追加されます各セカンダリ レプリカはログ シーケンス番号 (LSN) をプライマリ レプリカに定期的に送り返しトランザクション ログのどのくらいの量がリモート ディスクに書き込まれフラッシュされたかを示します

注 各可用性レプリカはそれぞれ独自に独立したトランザクション ログ再実行スレッドのセットを保持していますこれは可用性レプリカの同期プロセスには含まれませんセカンダリ レプリカ上ではログ再実行プロセスによって遅延時間が生じるためユーザーはそれをデータの待機時間として感じる場合があります

プライマリまたはセカンダリの役割を果たす他に各可用性レプリカには可用性モードもありますこのモードは次のようにCOMMIT TRAN ステートメントの実行時にトランザクション ログの書き込みの連係を制御します

同期コミット モードすべての同期コミット セカンダリ レプリカからそれぞれ独自のトランザクション ログの書き込み完了 (LSN 以降) が通知されるまでプライマリ レプリカはそのトランザクションをコミットしません可用性グループでは最大で 2 つの同期コミット セカンダリ レプリカを使用できます

同期コミット モードではプライマリ レプリカ データベースでトランザクションの遅延が生じますがコミットされたトランザクションに対するセカンダリ レプリカでのデータ損失を確実に防ぐことができます

非同期コミット モードプライマリ レプリカはローカル トランザクション ログの書き込み後にトランザクションをコミットしますが非同期コミット セカンダリ レプリカからトランザクション ログの書き込み完了通知を待つことはしません可用性グループでは最大で 4 つの非同期コミット セカンダリ レプリカを使用できますただし両方の種類を合わせて使用できるセカンダリ レプリカの合計は最大 4 つです

非同期コミット モードではプライマリ レプリカ データベースで生じるトランザクションの遅延が最小になりますがセカンダリ レプリカでのトランザクション ログが遅れる場合があるため一部のデータが失われる可能性があります

詳細については「可用性モード」(httpmsdnmicrosoftcomja-jplibraryff877931(SQL110)aspx) を参照してください

可用性レプリカ間のデータ フローの全体的な正常性は各レプリカの同期状態によって示されますセカンダリ レプリカにフェールオーバーしたときに同期状態が 同期済み または 同期中 になっていなければほとんどの場合はデータ損失が発生することになります

各セカンダリ レプリカの同期ストリームにはセッション タイムアウト プロパティがあります同期コミット モードに構成されているセカンダリ レプリカがセッション タイムアウトでエラーになると内部的には一時的に非同期としてマークされますこれはセカンダ

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 29

リ レプリカのエラーがプライマリ レプリカでのトランザクション ログの書き込みに影響しないようにするためですそのセカンダリ レプリカが正常に戻ってプライマリ レプリカの状態に追いつくと自動的に通常の同期コミット モード動作に戻されます

可用性グループのフェールオーバー可用性グループとそれに対応する仮想ネットワーク名はWSFC クラスターのリソースとして登録されます可用性グループはプライマリ レプリカの正常性とフェールオーバー ポリシーに基づいて可用性レプリカのレベルでフェールオーバーを行います

可用性グループのフェールオーバー ポリシーではsp_server_diagnostics システム ストアド プロシージャと FailureConditionLevel プロパティを使用して可用性グループに対して許容されるエラーの重大度のレベルを示しますこの同じメカニズムがFCI のフェールオーバー ポリシーにも使用されます

フェールオーバーが発生した場合は共有物理リソースの所有権を他のノードに移す代わりにWSFC を利用して他の SQL Server インスタンス上でセカンダリ レプリカを再構成しプライマリ レプリカの役割を引き継がせますその後可用性グループの仮想ネットワーク名リソースがそのインスタンスに転送されます関連する可用性レプリカへのすべてのクライアント接続がリセットされます

レプリカの現在の正常性同期状態および可用性モードに基づいて各レプリカには複合的な フェールオーバーの準備 状態が定義されますこの状態の値はデータ損失の可能性を示していますレプリカの正常性情報はAlwaysOn ダッシュボードまたは sysdm_hadr_availability_replica_states システム ビューで確認できます

各可用性レプリカにはフェールオーバー モードも構成されていますこのモードはフェールオーバーが指示された場合にレプリカの動作を制御します

自動フェールオーバー (データ損失なし)セカンダリ レプリカのトランザクション ログが既に書き込まれ同期されているのですべての AlwaysOn 構成の中でフェールオーバー時間が最短になりますプライマリ レプリカ上の開かれているトランザクションはロールバックされプライマリ レプリカの役割はユーザーによる操作なしでセカンダリ レプリカに転送されます

この場合プライマリ レプリカとセカンダリ レプリカの両方を自動フェールオーバー モードに設定し両方の可用性モードを同期コミットに設定する必要がありますレプリカ間の同期状態は同期済み である必要がありますまたWSFC クラスターは正常なクォーラム状態になっている必要があります

自動フェールオーバーはプライマリ レプリカまたはセカンダリ レプリカが FCI 上にある場合はサポートされませんこれは可用性グループと FCI のフェールオーバー間で競合状態が発生することを防ぐためです

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 30

手動フェールオーバーこの場合管理者はプライマリ レプリカの状態を評価してセカンダリ レプリカにフェールオーバーするかどうかを慎重に判断できます

可用性モードと同期状態に応じて次のような選択が可能です

o 計画的な手動フェールオーバー (データ損失なし)この種類のフェールオーバーを実行できるのはプライマリ レプリカとセカンダリ レプリカの両方が正常で同期済み 状態である場合だけですこれは機能的には自動フェールオーバーと同じです

o 強制手動フェールオーバー (データ損失の可能性を許容)これは対象のセカンダリ レプリカの可用性モードが非同期コミットである場合またはプライマリ レプリカに同期されない場合に使用できる唯一のフェールオーバー形式です

警告 このフェールオーバー オプションは災害復旧の状況に限って使用する必要がありますプライマリ レプリカが正常で使用可能である場合は関連する各レプリカの可用性モードを同期コミットに変更し計画的な手動フェールオーバーを実行してください

詳細については「可用性グループの強制手動フェールオーバーの実行」(httpmsdnmicrosoftcomja-jplibraryff877957(SQL110)aspx) を参照してください

フェールオーバー対象のプライマリ レプリカまたはセカンダリ レプリカが次の条件のいずれかに該当する場合は手動フェールオーバーを実行する必要があります

フェールオーバー モードが手動に設定されている 可用性モードが非同期コミットに設定されている レプリカが FCI 上にある

詳細については「フェールオーバーとフェールオーバー モード (AlwaysOn 可用性グルー プ ) 」(httpmsdnmicrosoftcomja-jplibraryhh213151(SQL110)aspx) を参照してください

注 フェールオーバー後新しいプライマリ レプリカが同期コミット モードに設定されていない場合セカンダリ レプリカの同期状態は 中断状態 になりますプライマリ レプリカが同期コミット モードに設定されるまでデータはセカンダリ レプリカに移動されません

可用性グループ リスナー可用性グループ リスナーはクライアントが可用性グループ内のデータベースにアクセスするために使用できる WSFC 仮想ネットワーク名 (VNN) ですVNN クラスター リソースはプライマリ レプリカをホストしている SQL Server インスタンスによって所有されます

仮想ネットワーク名は可用性グループ リスナーの作成時または構成の変更時にのみDNS に登録されます可用性グループ リスナーで定義されているすべての仮想 IP アドレスは同じ仮想ネットワーク名で DNS に登録されます

可用性グループ リスナーを使用する場合クライアント接続要求ではサーバーとして仮想ネットワーク名を指定してから可用性グループ内のデータベース名を指定する必要があり

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 31

ます既定ではこれによってプライマリ レプリカをホストしている SQL Server インスタンスに接続されます

実行時にはクライアントはローカルの DNS リゾルバーを使用して仮想ネットワーク名にマップされている IP アドレスと TCP ポートの一覧を取得しますクライアントは各 IP アドレスへの接続を成功するか接続タイムアウトに達するまで試し続けますMultiSubnetFailover パラメーターが true に設定されているとクライアントは複数の接続を同時に試行するのでクライアント フェールオーバーが大幅に速くなります

フェールオーバーが行われるとサーバー上でクライアント接続がリセットされ可用性グループ リスナーの所有権はプライマリ レプリカの役割と共に新しい SQL Server インスタンスに移動しVNN エンドポイントは新しいインスタンスの仮想 IP アドレスと TCP ポートにバインドされます

詳細については「可用性グループ リスナークライアント接続およびアプリケーションのフェールオーバー」(httpmsdnmicrosoftcomja-jplibraryhh213417(SQL110)aspx) を参照してください

アプリケーションの目的によるフィルター処理可用性グループ リスナーを使用して接続している場合アプリケーションは接続の目的がデータの読み取りと書き込みの両方なのか読み取り専用操作を実行するだけなのかを指定できます指定しない場合クライアントのアプリケーションの目的は既定で読み取りと書き込みになります

各可用性レプリカのプライマリ ロールとセカンダリ ロールについてはクライアントのアプリケーションの目的に対する接続レベルのフィルターとして接続アクセス プロパティも指定できます既定ではアプリケーションの目的と接続アクセスとの組み合わせが無効であると接続が拒否されますSQL Server は次のルールを使用してクライアントの接続要求を振り分ける必要があります

可用性レプリカがプライマリ ロールであり接続アクセスが次のいずれかである場合

すべてのアプリケーションの目的を許可するアプリケーションの目的でクライアント接続をフィルター処理しません

明示的な読み取り書き込みの目的だけを許可するクライアントが読み取り専用を指定している場合接続を拒否します

可用性レプリカがセカンダリ ロールであり接続アクセスが次のいずれかである場合

接続を許可しないすべての接続を拒否しますレプリカは災害復旧だけに使用されます

すべてのアプリケーションの目的を許可するアプリケーションの目的でクライアント接続をフィルター処理しません

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 32

読み取り専用の目的を許可するクライアントが読み取り専用を指定していない場合接続を拒否します

詳細については「可用性レプリカでの読み取り専用アクセスの構成」(httpmsdnmicrosoftcomja-jplibraryhh213002(SQL110)aspx) を参照してください

アプリケーションの目的の読み取り専用ルーティングAlwaysOn 可用性グループの特に優れた点はスタンバイ ハードウェア インフラストラクチャを災害復旧以外の目的に利用できることです1 つ以上のセカンダリ レプリカを読み取り専用でアクセスできるように構成するとプライマリ レプリカからかなりの量のワークロードを軽減できます

読み取り専用セカンダリ レプリカに回すように簡単に調整できるワークロードはレポートデータベース バックアップデータベース整合性チェックインデックスの断片化の分析データ パイプライン抽出運用サポート操作サポートアドホック クエリなどです

各可用性レプリカではSQL Server インスタンスのエンドポイントについて順次的な読み取り専用ルーティング リストを構成することもできますこのリストはレプリカがプライマリ ロールであるときに適用されますこのリストが存在する場合アプリケーションの目的が読み取り専用と指定されているクライアント接続要求はそのリスト内に記載されていて前述のアプリケーションの目的フィルターに適合する最初のセカンダリ レプリカにリダイレクトされます

注 読み取り専用ルーティングによるリダイレクトはプライマリ レプリカにバインドされている可用性グループ リスナーによって実行されますプライマリ レプリカがオフラインの場合クライアントのリダイレクトは機能しません

詳細については「可用性グループの読み取り専用ルーティングの構成 (SQL Server) 」(httpmsdnmicrosoftcomja-jplibraryhh710054(SQL110)aspx) を参照してください

可用性の向上 ndash データベースSQL Server 2012 ではデータベースの構成と機能に関してさまざまな点が強化されています

以下の機能は復旧時間の短縮に役立ちます

予測可能な復旧時間データベースごとにターゲット復旧時間の長さを設定することでバックグラウンドで実行される CHECKPOINT コマンドのスケジュールを制御できますこのコマンドは間接的なチェックポイントとして再起動時またはフェールオーバー時にトランザクション ログの復旧に必要となる時間の推定値に基づいて定期的に実行されますそれによってチェックポイントごとに IO 操作がほぼ均等に配分され復旧時間 (RTO) の予測可能性が高まります

SQL Server 2012 よりも前のバージョンではバックグラウンドの CHECKPOINT コマンドがトランザクションの量や負荷とは無関係に一定間隔で実行されていたので復旧時間を予測することはできませんでした

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 33

詳細については「データベース チェックポイント」(httpmsdnmicrosoftcomja-jplibraryms189573(SQL110)aspx) を参照してください

以下の向上点は計画的なダウンタイムが必要になる一般的な状況を減らすのに役立ちます

LOB 列のオンライン インデックス操作varbinary(max)varchar(max)nvarchar(max)または XML データ型の列が含まれているインデックスをオンラインで再構築または再構成できるようになりました

新しい NOT NULL 列のオンライン スキーマ修正既定値を使用して新しい NOT NULL 列を SQL Server 2012 データベース テーブルに追加する場合システム メタデータの更新にはスキーマ ロックだけが必要ですALTER TABLE ステートメントですべての行にデータを設定する必要はありません

いずれかの行で実際に変更またはインデックスの再作成が行われない限り列の既定値は物理的に格納されませんクエリでは列に実際の値が存在しない場合メタデータから既定値を返します

ストレージのサポート強化の例として次のようなものがあります

ページの自動修復ある種のストレージ サブシステム エラーが発生するとデータ ページが破損し読み取り不可能になる場合がありますAlwaysOn 可用性グループではそのような種類のエラーを検出し自動的に復旧できます復旧のために影響を受けたデータ ページの最新のコピーが別の可用性レプリカから非同期で取得され適用されます

以前のバージョンでもデータベース ミラーリングに同様の機能がありましたが新しい機能では複数のレプリカをサポートできるようになっています

詳細については「ページの自動修復」(httpmsdnmicrosoftcomja-jplibrarybb677167(SQL110)aspx) を参照してください

クライアント接続の推奨事項クライアント アプリケーションが Microsoft SQL Server 2012 AlwaysOn テクノロジの利点を十分に活用できるようにするには次のガイドラインに従います

AlwaysOn 対応のクライアント ライブラリ表形式のデータ ストリーム (TDS) プロトコル Version 74 以降をサポートしているクライアント ライブラリを使用しますこれによってAlwaysOn の機能に対応した適切な機能がクライアント側でも提供されますクライアント ライブラリの例としてはData Provider for SQL Server in NET Framework 402SQL Native Client 110 などがあります

接続プロバイダー プロパティ MultiSubnetFailover = True接続文字列にこのキーワードを使用することでクライアント ライブラリでは(複数のサブネットに IP アドレスを持つ) 可用性グループ リスナーまたは FCI に登録されているすべての IP アドレスに同時に接

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 34

続できるようになります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 35

接続プロバイダー プロパティ ApplicationIntent = ReadOnly必要に応じてプライマリ レプリカの読み取り専用ワークロードをセカンダリ レプリカに移管することができます

レガシ クライアントの接続タイムアウトレガシ クライアントのデータベース ライブラリには並列で接続を試行する機能が実装されていないため複数の IP アドレスがある場合にはTCP タイムアウトに達するか正常に接続できるまで1 つずつ順番に接続を試行します

複数の IP アドレスが存在する場合はタイムアウトと再試行が逐次的に繰り返される可能性に備えてレガシ クライアントの接続タイムアウトを調整する必要があります値は少なくとも 15 秒 + 21 秒 times セカンダリ レプリカ数にします

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 36

結論このホワイト ペーパーではSQL Server 2012 の AlwaysOn による高可用性災害復旧ソリューションを使用し予定されたダウンタイムや予定外のダウンタイムを短縮したりアプリケーションの可用性を最大限に高めたりデータを保護したりする方法について基本的なコンテキストを確立しました

高可用性データベース環境の計画管理測定に関連したビジネス上の目的と課題は多くの場合目標復旧時点 (RPO) と目標復旧時間 (RTO) という形で数量化して表すことができます

SQL Server 2012 AlwaysOn は組織が高可用性や災害復旧に関する一般的な状況に対処するための機能をRPO と RTO を適切に達成できることを念頭にインフラストラクチャ レベルデータ プラットフォーム レベルデータベース レベルのそれぞれで提供します

詳細情報

httpwwwmicrosoftcomja-jpsqlserver2012defaultaspx SQL Server Web サイト

httptechnetmicrosoftcomja-jpsqlserver SQL Server TechCenter

httpmsdnmicrosoftcomja-jpsqlserver SQL Server 開発者向け技術情報

このホワイト ペーパーはお役に立ちましたか フィードバックをお寄せください1 (役に立たなかった) ~ 5 (非常に役に立った) の 5 段階で評価してくださいまたその評価の理由もお知らせください以下に例を示します

評価が高い 例が適切図がわかりやすい説明が明快といったことが理由である 評価が低い 例が少ない図がわかりにくい説明があいまいといったことが理由で

ある

このようなフィードバックをお寄せいただくと今後のホワイト ペーパーの品質向上につながります

フィードバックの送信

loz Version 112012 年 2 月 21 日

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 37

  • 高可用性と災害復旧の概念
    • 高可用性について
      • 予定されたダウンタイムと予定外のダウンタイム
      • 段階的な可用性
        • ダウンタイムの定量化
          • 復旧目標
          • ROI または機会費用の正当化
          • 可用性の健全度の監視
          • 災害復旧の計画
            • 概要 Microsoft SQL Server 2012 での高可用性
              • SQL Server AlwaysOn
              • 計画的なダウンタイムの大幅な削減
              • アイドル状態のハードウェアをなくしてコスト効率とパフォーマンスを向上
              • 簡単な配置と管理
              • RPO と RTO の機能比較
                  • SQL Server AlwaysOn の保護レイヤー
                    • インフラストラクチャの可用性
                      • Windows オペレーティング システム
                        • Windows Server Core インストール オプション
                        • プライベート クラウド用の SQL Server の最適化
                          • Windows Server フェールオーバー クラスタリング
                            • WSFC ストレージ構成
                            • WSFC リソースの正常性の検出とフェールオーバー
                              • WSFC のクラスター検証ウィザード
                              • WSFC クォーラム モードと投票の構成
                                • クォーラムによるクラスター状態検出
                                • クォーラム モード
                                • 投票ノードと非投票ノード
                                • クォーラム投票に推奨される調整
                                  • WSFC の強制クォーラムによる災害復旧
                                    • SQL Server インスタンス レベルでの保護
                                      • 可用性の向上 ndash SQL Server インスタンス
                                      • AlwaysOn フェールオーバー クラスター インスタンス
                                        • FCI のフェールオーバー プロセス
                                        • FCI の強化
                                            • データベースの可用性
                                              • AlwaysOn 可用性グループ
                                                • 可用性レプリカとロール
                                                • 可用性レプリカの同期
                                                  • 可用性グループのフェールオーバー
                                                  • 可用性グループ リスナー
                                                    • アプリケーションの目的によるフィルター処理
                                                    • アプリケーションの目的の読み取り専用ルーティング
                                                      • 可用性の向上 ndash データベース
                                                        • クライアント接続の推奨事項
                                                          • 結論
Page 16: 高可用性と災害復旧の概念download.microsoft.com/download/6/B/E/6BE0C3F3-2991-4766... · Web view高可用性と災害復旧のソリューションのために最適なデータベース

この操作モードではオペレーティング システムへの攻撃の危険性とシステム オーバーヘッドが低下し継続的なメンテナンスサービス修正プログラムなどの要件が大幅に削減されます

SQL Server 2012 を Windows Server Core に配置する場合の主な注意点はSQL Server およびオペレーティング システムのすべての配置構成管理およびメンテナンスをWindows PowerShell などのスクリプト環境やコマンド ラインまたはリモート ツールを使用して行う必要があることです

プライベート クラウド用の SQL Server の最適化高可用性と災害復旧はプライベート クラウド環境ではさらに重要になってきていますプライベート クラウドに SQL Server を配置すればコンピューターネットワークおよびストレージのリソースが効率的に使用され物理的な場所や資本と運営費用の両方の削減に役立ちます配置の統合リソースの効率的なスケーリングオンデマンドでのリソースの配置が容易になり制御の自由度が失われることもありません

SQL Server ではHyper-V のホストとゲストの両方のシステムに対して Windows Server フェールオーバー クラスタリングをサポートするほかライブ マイグレーションもサポートしていますこれは意識されるほどのダウンタイムを生じることなくホスト間で仮想マシンを移動できる機能ですライブ マイグレーションはゲスト クラスタリングとも協調して動作します

詳細については「プライベート クラウド コンピューティング - プライベート クラウド用の SQL Server の最適化 」(httpwwwmicrosoftcomSqlServerPrivateCloud) を参照してください

Windows Server フェールオーバー クラスタリングWindows Server フェールオーバー クラスタリング (WSFC) はMicrosoft SQL Server などのサーバー アプリケーションに対して高可用性と災害復旧をサポートするインフラストラクチャ機能を提供します

WSFC クラスター ノードまたはサービスに障害が発生するとそのノードでホストされていたサービスまたはリソースは自動的にまたは手動で他の可用性ノードに転送されますこのプロセスをフェールオーバーと呼びますAlwaysOn ソリューションではこのプロセスが FCI と可用性グループの両方に適用されます

WSFC クラスター内の各ノードは連携して次のような機能を提供します

分散メタデータと通知WSFC サービスとホストされるアプリケーション メタデータはクラスター内の各ノードで維持されますこのメタデータにはホストされるアプリケーションの設定に加えWSFC の構成と状態が含まれます1 つのノードでのメタデータまたは状態の変更はクラスター内の他のノードに自動的に反映されます

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 11

リソース管理クラスター内の各ノードは直接アタッチされたストレージ (DAS)ネットワーク インターフェイス共有ディスク ストレージへのアクセスなど物理的リソースを提供する場合がありますSQL Server などホストされるアプリケーション自体もクラスター リソースとして登録されますまた他のリソースに対するスタートアップと正常性にかかわる依存関係を構成できます

正常性の監視ノード間の正常性およびプライマリ ノードの正常性はハートビート ネットワーク通信とリソースの監視を組み合わせることで検出されますクラスターの全体的な正常性状態はクラスター内のノードのクォーラムの投票によって決定されます

フェールオーバーの調整各リソースはプライマリ ノードでホストされるように構成されそれぞれ自動的にまたは手動で 1 つ以上のセカンダリ ノードに転送されます正常性ベースのフェールオーバー ポリシーによってノード間でのリソース所有権の自動転送が制御されますフェールオーバーが発生すると適切に対応できるように各ノードおよびホストされているアプリケーションに通知されます

詳細については「Windows Server | フェールオーバー クラスタリングとノード バランシン グ」(httpwwwmicrosoftcomwindowsserver2008enusfailover-clustering-mainaspx) を参照してください

注 データベース管理者が WSFC クラスターおよびクォーラム管理の内部動作を理解しておくことが非常に重要になりましたAlwaysOn の正常性の監視管理および障害復旧の手順はすべてが本質的に WSFC 構成と関連しています

WSFC ストレージ構成Windows Server フェールオーバー クラスタリングでは接続されているストレージ デバイスディスク ボリュームおよびファイル システムの管理をクラスター内の各ノードに依存していますWSFC はストレージ サブシステムが非常に堅牢であると想定しているためノードに接続されたストレージ デバイスが使用できない場合はクラスター ノードが障害状態であると見なします

書き込みベースの操作ではディスク ボリュームは SCSI-3 の永続的な予約を使用して一度に 1 つのクラスター ノードに論理的に接続されますノードで障害が発生した場合にはストレージ サブシステムの機能と構成に応じてディスク ボリュームの論理的所有権をクラスター内の別のノードに移すことができます

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 12

SQL Server AlwaysOn ソリューションでは次のような WSFC ストレージ構成の組み合わせを利用しその制限も受けます

直接接続とリモートストレージ デバイスはサーバーに物理的に直接接続されるかまたはネットワークやホスト バス アダプター (HBA) を介してリモートのストレージ デバイスを使用しますリモート ストレージのテクノロジにはiSCSI やファイバー チャネルなどのストレージ エリア ネットワーク (SAN) ベースのソリューションとサーバー メッセージ ブロック (SMB) というファイル共有ベースのソリューションがあります

対称と非対称ストレージ デバイスの論理ディスク ボリューム構成とファイル パスがクラスターの各ノードでまったく同じである場合それらのストレージ デバイスは対称的であると見なされます基になるディスク ボリュームの物理的な実装と容量は異なっていてもかまいません

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 13

専用と共有専用ストレージは使用するために予約されクラスター内の 1 つのノードに割り当てられます共有ストレージはクラスターの複数のノードからアクセスできます共有ストレージ デバイスが SCSI-3 プロトコルに準拠していればそれらの制御と所有権をノード間で移動させることができますWSFC ではファイル共有のためにクラスター共有ボリュームを同時に複数のノードでホスティングできますただしSQL Server は複数のノードからの共有ボリュームへの同時アクセスをサポートしていません

注 SQL Server FCI では対称共有ストレージを使用してインスタンスのすべてのノード所有者 (およびその候補) からアクセスできるようにする必要がありますただしAlwaysOn 可用性グループの導入に伴いそれぞれが独自に専用のローカルまたはリモート ストレージを持つ非 FCI の SQL Server インスタンスを WSFC クラスターに配置できるようになりました

WSFC リソースの正常性の検出とフェールオーバーWSFC クラスター ノード内の各リソースの状態と正常性は定期的にまたは要求に応じて報告されますクラスター リソースの障害を示す状況としてはたとえば電源障害ディスクまたはメモリのエラーネットワーク通信エラー構成エラー応答しないサービスなどがあります

ネットワークストレージサービスなどの WSFC クラスター リソースは互いに依存するように構成できますあるリソースの累積的な正常性は依存関係を持つリソースの正常性を連続的にたどってゆくことで決定されます

AlwaysOn 可用性グループでは可用性グループと可用性グループ リスナーがそれぞれ WSFC クラスター リソースとして登録されますAlwaysOn フェールオーバー クラスター インスタンスではSQL Server サービスおよび SQL Server エージェント サービスが WSFC クラスター リソースとして登録されどちらもインスタンスの仮想ネットワーク名リソースに依存します

WSFC クラスター リソースで設定された数のエラーまたは障害が一定期間内に発生した場合構成されたフェールオーバー ポリシーによってクラスター サービスは次のいずれかの操作を行います

現在のノードでのリソースの再起動 リソースをオフライン化 リソースとその依存関係を別のノードへ自動的にフェールオーバー

注 WSFC クラスター リソースの正常性の検出は個々のノードの正常性やクラスターの全体的な正常性には直接影響しません

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 14

WSFC のクラスター検証ウィザードクラスター検証ウィザードはWindows Server 2008 および Windows Server 2008 R2 のフェールオーバー クラスタリングに統合されている機能ですこれはSQL Server AlwaysOn ソリューションの配置前 にクリーンで正常な安定した WSFC 環境が存在していることをデータベース管理者が確認するために使用する主要なツールです

クラスター検証ウィザードではクラスターのノードとして使用するサーバーの集合または既存のクラスターを対象にして一連のテストを実行できますこのプロセスでは基になるハードウェアおよびソフトウェアが個別に直接テストされWSFC クラスターが特定の構成でどの程度良好にサポートされるかについての正確な評価が得られます

この検証プロセスでは各ノードに対して次のようなカテゴリの一連のテストとデータ収集が実施されます

一覧作成BIOS のバージョン環境レベルホスト バス アダプターRAMオペレーティング システムのバージョンデバイスサービスドライバーなどの情報です

ネットワークNIC のバインド順序ネットワーク通信IP 構成ファイアウォール構成などの情報ですすべての NIC でノード間の通信が検証されます

ストレージディスクドライブの容量アクセス待機時間ファイル システムなどの情報ですSCSI コマンドディスク フェールオーバー機能対称的または非対称的なストレージ構成が検証されます

システム構成Active Directory の構成ドライバーの登録メモリ ダンプの設定必要なオペレーティング システムの機能とサービス互換性のあるプロセッサ アーキテクチャおよびサービス パックと Windows Software Update のレベルが検証されます

これらの検証テストの結果を利用してクラスターの構成を微調整したり構成を追跡したりダウンタイムを引き起こすかもしれない潜在的なクラスター構成の問題を特定したりできますテスト結果のレポートは後で参照できるようにHTML ドキュメントとして保存できます

これらのテストはWSFC の構成に何か変更を加える前と加えた後に実行するほかSQL Server をインストールする前および災害復旧プロセスの一環として実行する必要がありますマイクロソフトで特定の WSFC クラスター構成がサポートされるためにはマイクロソフト カスタマー サポート サービス (CSS) にクラスター検証レポートを提出する必要があります

詳細については「フェールオーバー クラスター ステップ バイ ステップ ガイド フェール オーバー クラスター用ハードウェアを検証する」(httptechnetmicrosoftcomja-jplibrarycc732035(WS10)aspx) を参照してください

注 ハードウェアベースの地理的クラスタリング ストレージ ソリューションの場合やAlwaysOn 可用性グループの場合のようにクラスター構成に非対称ストレージがあるとクラスター検証ウィザードでストレージの検証手順を成功させるために多数の修正プログラムを適用しなければならないことがあります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 15

詳細については「AlwaysOn 可用性グループの前提条件制限事項および推奨事項 」(httpmsdnmicrosoftcomja-jplibraryff878487(SQL110)aspxSystemReqsForAOAG) を参照してください

WSFC クォーラム モードと投票の構成WSFC ではクォーラム ベースのアプローチを使用してクラスターの全体的な正常性を監視することでノード レベルのフォールト トレランスを最大限に高めますWSFC のクォーラム モードおよびノード投票構成の基本について理解することはAlwaysOn 高可用性災害復旧ソリューションの設計運用トラブルシューティングのために非常に重要です

クォーラムによるクラスター状態検出WSFC クラスター内の各ノードは定期的なハートビート通信に参加しノードの正常性状態を他のノードと共有します応答しないノードはエラー状態であると見なされます

クォーラム ノード セットとはWSFC クラスター内の投票ノードおよび監視サーバーのうち過半数を占めるノードの集合ですWSFC クラスターの全体的な正常性と状態は定期的なクォーラムの投票 によって決定されますクォーラムはクラスターが正常でありノード レベルのフォールト トレランスを提供できることを意味します

クォーラムに達していない状態はクラスターが正常でないことを示しますプライマリ ノードのフェールオーバー先として正常なセカンダリ ノードを使用できるようにするにはWSFC クラスターの全体的な正常性が維持されている必要があります投票数がクォーラムに達しなかった場合にはWSFC クラスター全体が予防策としてオフラインに設定されますその場合クラスターに登録されている SQL Server インスタンスがすべて停止します

注 クォーラム障害のために WSFC クラスターがオフラインに設定されるとオンラインに戻すために手動の操作が必要です詳細については後の「WSFC の強制クォーラムによる災害 復旧」のセクションを参照してください

クォーラム モードクォーラム モードはWSFC クラスター レベルで構成されクォーラム投票の方法を指定しますフェールオーバー クラスター マネージャー ユーティリティではクラスター内のノード数に基づいて推奨するクォーラム モードが提示されます

次のいずれかのクォーラム モードによって投票クォーラムの構成が決定されます

ノード マジョリティクラスターが正常であるためにはクラスター内の半分以上の投票ノードが肯定的に投票する必要があります

ノードおよびファイル共有マジョリティノード マジョリティ クォーラム モードに似ていますがリモート ファイル共有も投票監視サーバーとして構成され各ノードからそのリモート ファイル共有への接続も肯定的な投票としてカウントされますクラスターが正常であるためには投票の過半数が肯定的である必要があります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 16

推奨事項として監視ファイル共有はクラスター内のノードに存在せずクラスター内のすべてのノードから見える必要があります

ノードおよびディスク マジョリティノード マジョリティ クォーラム モードに似ていますが共有ディスク クラスター リソースも投票監視サーバーとして使用され各ノードからその共有ディスクへの接続も肯定的な投票としてカウントされますクラスターが正常であるためには投票の過半数が肯定的である必要があります

ディスクのみ共有ディスク クラスター リソースが監視サーバーとして使用され各ノードからその共有ディスクへの接続が肯定的な投票としてカウントされます

詳細については「フェールオーバー クラスター ステップ バイ ステップ ガイド フェール オーバー クラスターのクォーラムの構成」(httptechnetmicrosoftcomja-jplibrarycc770620(WS10)aspx) で説明されています

注 クラスターの各ノードが同じ共有ストレージ クォーラム監視ディスクを使用するように構成されていない限り通常投票ノード数が奇数の場合は ノード マジョリティ クォーラム モード投票ノード数が偶数の場合は ノードおよびファイル共有マジョリティ クォーラム モードを使用してください

投票ノードと非投票ノード既定ではWSFC クラスター内の各ノードがクラスター クォーラムのメンバーとなります各ノードファイル共有監視サーバーディスク監視サーバーがクラスターの全体的な正常性の決定においてそれぞれ 1 票ずつの投票権を持ちますクォーラムに関するここまでの説明ではクラスター状態について投票する WSFC クラスター ノードのセットを投票ノードとして注意深く限定してきました状況によってはすべてのノードに投票権を与えることが適切でない場合もあります

WSFC クラスターの各ノードはクォーラムを確立しようとし続けますクラスター内の個々のノードはクラスターが全体として正常であるか正常でないかを明確に決定することはできません特定の時点で各ノードからは他のノードの一部がオフラインフェールオーバー中またはネットワーク通信のエラーにより応答不能に見えますクォーラム投票の主な機能はWSFC クラスターの各ノードの見かけの状態が本当にそれらのノードの実際の状態であるかどうかを判断することです

ディスクのみ 以外のすべてのクォーラム モデルではクォーラム投票の有効性はクラスター内のすべての投票ノード間に信頼できる通信が確立されていることに依存しますすべてのノードが同じ物理サブネット上にある場合はクォーラムの投票を信頼できます

しかしクォーラム投票で他のサブネット上のノードが応答しないように見えても実際はオンラインで正常である場合はサブネット間のネットワーク通信のエラーが原因であることが考えられますクラスター トポロジクォーラム モードおよびフェールオーバー ポリシーの構成によってはネットワーク通信エラーによって投票ノードのセット (またはサブセット) が実質的に複数作成されてしまう可能性があります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 17

投票ノードの複数のサブセットがそれぞれ独自のクォーラムを構築できる状態はスプリット ブレイン と呼ばれますこの状態では各クォーラム上のノードが別々の動作をし相互に矛盾する可能性があります

注 スプリット ブレイン の状況が発生するのはシステム管理者が強制クォーラム動作を手動で実行するかまたは非常にまれですが強制的な手動フェールオーバーを実行することでクォーラム ノード セットが明示的に細分化された場合のみです詳細については後の「WSFC の強制クォーラムによる災害復旧 」のセクションを参照してください

クォーラム構成を単純化し稼働時間を長くする目的でノードの投票がクォーラムにカウントされないように各ノードの NodeWeight 設定 (値 0 または 1) を調整することができます

クォーラム投票に推奨される調整以下のガイドラインをこの順番に適用することでクラスターに対して推奨されるクォーラム投票の構成を判断できます

1 既定は投票権なしにします明確な理由がない限り各ノードには投票権を与えないと考えてください

2 すべてのプライマリ ノードに投票権を与えますAlwaysOn 可用性グループのプライマリ レプリカをホストする各ノードおよび AlwaysOn フェールオーバー クラスター インスタンスの優先所有者である各ノードは投票権を持つ必要があります

3 可能性のある自動フェールオーバーの所有者を含めます自動フェールオーバーの結果としてプライマリ レプリカまたは FCI をホストする可能性がある各ノードは投票を持つ必要があります

4 セカンダリ サイト ノードを除外します通常はセカンダリ災害復旧サイトに存在するノードには投票を提供しないでくださいプライマリ サイトに問題がない場合クラスターをオフラインにする判断にセカンダリ サイト内のノードが影響を与えることは避ける必要があります

5 投票数を奇数にします必要に応じて監視ファイル共有監視ノード (SQL Server インスタンスの有無は問いません)または監視ディスクをクラスターに追加してクォーラム モードを調整しクォーラムの投票結果が同数に分かれるのを防ぎます

6 フェールオーバー後の投票割り当てを再評価します正常なクォーラムをサポートしないクラスター構成にフェールオーバーすることは避けます

ノードの投票の調整の詳細については「クラスター クォーラムの NodeWeight の設定の構 成」(httpmsdnmicrosoftcomja-jplibraryhh270281(SQL110)aspx) を参照してください

ファイル共有監視サーバーの投票は調整できませんその投票を含めるか除外するかを決めるには別のクォーラム モードを選択する必要があります

注 SQL Server ではWSFC クラスター構成およびノード クォーラム投票に関する設定を管理するためにいくつかのシステム動的管理ビュー (DMV) が公開されています

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 18

詳細については「可用性グループの監視」(httpmsdnmicrosoftcomja-jplibraryff878305(SQL110)aspx) を参照してください

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 19

WSFC の強制クォーラムによる災害復旧通常クォーラム障害は災害発生時または WSFC クラスター内の複数のノード間で永続的な通信障害が生じた場合に発生しますクォーラム障害が発生するとクラスターがノード レベルのフォールト トレランスを確保できなくなるためその WSFC クラスター内の SQL Server インスタンス可用性グループおよびクラスター化されているサービスがすべてオフラインになりますクォーラム障害はWSFC クラスター内の正常な投票ノード数がクォーラム モデルを満たさなくなったことを意味しますノードによってまったく機能しなくなるものもあればWSFC サービスがシャットダウンしただけでクォーラムと通信できなくなったことを除けば正常なものもあります

WSFC クラスターをオンラインに戻すには既存の構成の少なくとも 1 つのノードでクォーラム障害の根本的な原因を解決する必要があります災害発生時には使用できる代替ハードウェアの再構成や識別が必要となる場合もあります現状のクラスター トポロジを反映するためにWSFC クラスターの残りのノードを再構成する場合もあります

WSFC クラスター ノードで強制クォーラムの手順を使用するとクラスターがオフラインになる原因となった安全管理機能を無効にすることができますこれによりクラスターでのクォーラム投票のチェックが実質的に中断されクラスター内の任意のノードで WSFC クラスター リソースと SQL Server をオンラインに戻すことができます

このような災害復旧プロセスの手順を次に示します

1) 障害の範囲を特定します応答しない可用性グループや SQL Server インスタンス災害後に使用できるオンラインのクラスター ノードをそれぞれ特定しWindows イベント ログと SQL Server システム ログを確認します必要に応じて後で分析できるように解析データやシステム ログを保存しておきます

2) 1 つのノードで強制クォーラムを使用して WSFC クラスターを起動します他の点では正常なノードで強制クォーラムの手順に従ってクラスターを手動で強制的にオンラインにしますこの場合データ損失の可能性を最小限に抑えるには可用性グループのプライマリ レプリカを最後にホストしていたノードを選択します

詳細については「クォーラムを使用せずに WSFC クラスターを強制的に起動する 」(httpmsdnmicrosoftcomja-jplibraryhh270275(v=SQL110)aspx) を参照してください

注 強制クォーラムの設定を使用するとWSFC クラスターの投票が過半数に達することで通常のクォーラム モードの動作に自動的に切り替わるまでクラスター全体のクォーラムのチェックがブロックされます

3) 他の点では正常な各ノードでWSFC サービスを 1 つずつ通常の方法で起動します他のノードでクラスター サービスを起動するときは強制クォーラム オプションを指定する必要はありません

各ノードの WSFC サービスがオンラインに戻ると他の正常なノードとの間でネゴシエーションが行われ新しいクラスター構成の状態が同期されますクラスターの最新の状態

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 20

を判断するときに競合状態の発生を避けるためこの手順は必ず一度に 1 つのノードで行うようにしてください

注 起動した各ノードが新たにオンラインにした他のノードと通信できることを確認しますそうしないと複数のクォーラム ノード セットが作成されて スプリット ブレイン の状況に陥るおそれがあります手順 1 の結果に問題がなければこの現象は発生しません

4) 新しいクォーラム モードとノードの投票の構成を適用します強制クォーラムの手順によってクラスターのすべてのノードを正常に再起動させクォーラムのエラーの根本原因を修正した場合クォーラム モードとノードの投票を元の構成から変更する必要はありません

それ以外の場合は新たに復元されたクラスター ノードと可用性レプリカのトポロジを評価し必要に応じてクォーラム モードと各ノードの投票割り当てを変更します未復旧のノード上ではWSFC クラスター サービスをオフラインにするかノードの投票をゼロに設定します

注 この時点でクラスター内のノードと SQL Server インスタンスが通常の動作に戻っているように見えることがありますがまだ正常なクォーラムには達していない可能性がありますフェールオーバー クラスター マネージャーやSQL Server Management Studio の AlwaysOn ダッシュボードまたは適切な DMV を使用して正常なクォーラムが復元されたことを確認してください

5) 必要に応じて可用性グループのデータベース レプリカを復旧します一部のデータベースはSQL Server の通常の起動処理の一環として自動的に復旧されオンラインに戻ることがありますそれ以外のデータベースの復旧には追加で手動の手順を実行する必要があります

可用性グループ レプリカのデータ損失の可能性や復旧にかかる時間を最小限に抑えるにはできればプライマリ レプリカ同期セカンダリ レプリカ非同期セカンダリ レプリカの順にオンラインに戻します

6) 障害が発生したコンポーネントを修復するか交換しクラスターを再検証しますこれで最初の災害およびクォーラム障害から復旧できたので障害が発生したノードを修復するか交換しWSFC と AlwaysOn の関連する構成を適切に調整する必要がありますこれには可用性グループ レプリカの削除クラスターからのノードの削除ノードへのソフトウェアの再インストールなどが含まれます

注 停止したすべての可用性レプリカを修復または削除する必要がありますSQL Server 2012 では最も古い可用性レプリカを最後に認識した時点以降トランザクション ログが切り捨てられません停止したレプリカを修復するか可用性グループから削除しないとトランザクション ログが大きくなり他のレプリカのトランザクション ログの領域が不足する可能性があります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 21

7) 必要に応じて手順 4 を繰り返しますこの目的は正常な動作を行うために適切なレベルのフォールト トレランスと高可用性を再確立することです

8) RPORTO 分析を実行しますSQL Server のシステム ログデータベースのタイムスタンプおよび Windows のイベント ログを分析して障害の根本的な原因を特定し実際の復旧ポイントと復旧時間を文書に記録します

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 22

SQL Server インスタンス レベルでの保護次に説明する AlwaysOn ソリューションの保護レイヤーはデータ プラットフォームそれ自体ですMicrosoft SQL Server 2012 とその Windows Server インフラストラクチャ コンポーネントとの統合によって次のような機能が提供されます

可用性の向上 ndash SQL Server インスタンスこれは SQL Server 2012 の新しいインスタンス レベルの機能でAlwaysOn フェールオーバー クラスター インスタンスとAlwaysOn 可用性グループをホストするスタンドアロン インスタンスの両方の可用性を強化します

以下の強化点によってフェールオーバーの管理およびトラブルシューティングが向上します

柔軟なフェールオーバー ポリシー信頼性の高いエラー検出に使用される新しいシステム ストアド プロシージャ sp_server_diagnostics の出力でSQL Server インスタンスに影響するエラーの重大度が FailureConditionLevel プロパティによって示されますWSFC のフェールオーバー ポリシーによってこの値が SQL Server インスタンスにどのように影響するかを制御できますある程度エラーを許容する設定からSQL Server の内部コンポーネント エラーを重点的に検出する設定までさまざまに構成できます

特定のレベルのエラーによってフェールオーバーを開始するように構成できますエラーのレベルにはサーバーの停止サーバーの応答停止重大なエラー中程度のエラーなんらかの条件付きエラーなどがありますFailureConditionLevel プロパティはFCI または可用性グループのフェールオーバー ポリシーのために使用できます

SQL Server 2012 よりも前のバージョンではフェールオーバーを制御できるようなエラー状態の区分がなくすべてのサービス レベルのエラーによってフェールオーバーが発生しました

詳細については「フェールオーバー クラスター インスタンスのフェールオーバー ポリシー」(httpmsdnmicrosoftcomja-jplibraryff878664(SQL110)aspx) を参照してください

強化されたインストルメンテーションとログAlwaysOn 専用のシステム構成ビューDMVパフォーマンス カウンターに加えて拡張されたイベント正常性セッションによってAlwaysOn 配置のトラブルシューティングチューニングおよび監視に必要な情報を取得して表示できますこれらの多くはSQL Server ポリシー管理の新しいファセットおよびポリシーを通じて公開されます

詳細については「AlwaysOn 可用性グループの動的管理ビューおよび関 数」(httpmsdnmicrosoftcomja-jplibraryff877943(SQL110)aspx) と「sysdm_os_cluster_nodes」(httpmsdnmicrosoftcomja-jplibraryms187341(SQL110)aspx) を参照してください

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 23

SMB ファイル共有のサポートWindows Server 2008 以降のスタンドアロン用またはフェールオーバー クラスター インスタンス用のリモート ファイル共有にデータベース ファイルを格納することができますこの場合FCI ごとに異なるドライブ文字を使用する必要がありませんこれはストレージを統合する場合やデータベース ファイルのストレージを仮想マシンのゲスト オペレーティング システム用物理サーバーでホストする場合などに便利なオプションです適切に構成すれば直接接続されたストレージとほぼ同等の IO パフォーマンスが得られます

詳細については「ファイル共有上の SQL データベース - シナリオを再検討すべきとき 」(httpblogsmsdncombsqlserverstorageenginearchive20111018sql-databases-on-file-shares-it-s-time-to-reconsider-the-scenarioaspx) を参照してください

注 WSFC クラスターではSMB ファイル共有リソースの依存関係を SQL Server リソース グループに追加することはできませんファイル共有の可用性を確保するには別の方法を用いる必要がありますファイル共有が使用できなくなった場合SQL Server は IO 例外をスローしオフラインになります

WSFC と DNS の相互運用性FCI または可用性グループ リスナーの仮想ネットワーク名 (VNN) はVNN の作成時または構成の変更時にのみDNS に登録されますすべての仮想 IP アドレスはオンライン状態かオフライン状態かに関係なく同じ仮想ネットワーク名で DNS に登録されますDNS の仮想ネットワーク名を解決するためのクライアント呼び出しは各種のラウンド ロビン シーケンスによってすべての登録済み IP アドレスを返します

AlwaysOn フェールオーバー クラスター インスタンスSQL Server の AlwaysOn フェールオーバー クラスター インスタンス (FCI) の主な目的は1 つのデータ センター内のローカル サーバーとストレージ ハードウェアでホストされている SQL Server インスタンスの可用性を高めることです

FCI はWindows Server フェールオーバー クラスタリング (WSFC) のクラスターに含まれる複数のノードにまたがってインストールされる1 つの論理的な SQL Server インスタンスですただし一度に 1 つのノードだけでアクティブになることができますクライアント アプリケーションはアクティブなクラスター ノードが所有している仮想ネットワーク名および仮想 IP アドレスに接続します

FCI をインストールした各ノードは同一の構成を持ち同一の SQL Server バイナリを含んでいますWSFC クラスター サービスはアクティブなインスタンス上にある Windows レジストリのエントリからFCI をインストールした各ノードに関連のある変更をレプリケートしますFCI がインストールされている各ノードはインスタンスとそのリソースの所有者の候補として指定されフェールオーバーの優先順位に従って所有者となります

共有対称ストレージ ボリュームに格納されているデータベース ファイルはリソースとして WSFC クラスターに登録され現在 FCI をホストしているノードによって所有されます

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 24

詳細については「AlwaysOn フェールオーバー クラスター インスタン ス」(httpmsdnmicrosoftcomja-jplibraryms189134(SQL110)aspx) を参照してください

FCI のフェールオーバー プロセス依存しているクラスター リソースで障害が発生した場合AlwaysOn フェールオーバー クラスター インスタンスはWSFC クラスター サービスと連携してフェールオーバーを行いますそのプロセスの概要を以下に示します

1) 再起動が指示されますWSFC の定期的なチェックまたは SQL Server のフェールオーバー ポリシー構成によってエラー状態が示されます既定では他のノードへのフェールオーバーを開始する前にサービスの再起動が試みられます再起動の試みがタイムアウトするようであればリソースの障害が発生しています

2) フェールオーバーが指示されますフェールオーバー ポリシー チェックによってノードのフェールオーバーが必要であることが示されます

3) SQL Server サービスが停止されますSQL Server サービスが現在実行されている場合はその正常なシャットダウンが試みられます

4) WSFC クラスター リソースが転送されますSQL Server クラスター リソース グループの所有権とそれが依存するネットワークおよび共有ストレージ リソースがFCI で次に優先されるノード所有者に転送されます

5) 新しいノードで SQL Server が起動されますSQL Server インスタンスは通常のスタートアップ プロシージャで起動されます所定のタイムアウト時間内にオンラインに戻らない場合クラスター サービスはこの新しいノード上のリソースをエラー状態と見なします

6) 新しいノードでユーザー データベースが復旧されます各ユーザー データベースは復旧モードに設定されます復旧モードではトランザクション ログの再実行操作が適用されコミットされていなかったトランザクションがロールバックされます

FCI の強化以前のバージョンの SQL Server でも FCI のインストール オプションは用意されていましたがSQL Server 2012 では次のような機能強化によって可用性の堅牢性と利便性が向上しました

マルチサブネット クラスタリングSQL Server 2012 では複数のサブネットに存在する WSFC クラスター ノードがサポートされていますWSFC クラスター ノードに存在する SQL Server インスタンスはいずれかのネットワーク インターフェイスが使用可能であれば起動できますこれはクラスター リソースの OR 依存関係と呼ばれます

以前のバージョンの SQL Server の場合SQL Server サービスを起動またはフェールオーバーするにはすべてのネットワーク インターフェイスが機能しそれらがすべて同じサブネットまたは VLAN に存在している必要がありました

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 25

注 マルチサブネット クラスタリングではクラスター ノード間のストレージ レベルのレプリケーションが自動的には有効になりませんマルチサブネットの FCI ソリューションでクラスター ノード間でデータのレプリケーションを行いストレージ フェールオーバーを調整するためにはサード パーティから提供される SAN ベースのソリューションを利用する必要があります

詳細については「SQL Server 2012 AlwaysOn マルチサイト フェールオーバー クラスター インスタンス」(httpsqlcatcomsqlcatbwhitepapersarchive20111222sql-server-2012-alwayson_3a00_-multisite-failover-cluster-instanceaspx) を参照してください

信頼性の高いエラー検出WSFC クラスター サービスではノードの各 SQL Server 2012 FCI に対してそれぞれ専用の管理者接続が維持されますこの接続では特殊なシステム ストアド プロシージャ sp_server_diagnostics を定期的に呼び出すことでシステムの正常性診断に役立つ豊富な情報を含む配列が返されます

SQL Server 2012 よりも前のバージョンではFCI の主な正常性検出メカニズムは単純な一方向のポーリング プロセスとして実装されていましたこのプロセスではWSFC クラスター サービスがインスタンスへの新しい SQL クライアント接続を定期的に作成しサーバー名を照会した後で接続を切断していました何かの理由で接続が失敗するかクエリがタイムアウトした場合フェールオーバーが開始されますが診断情報はほとんど提供されません

詳細については「sql_server_diagnostics」(httpmsdnmicrosoftcomja-jplibraryff878233(SQL110)aspx) を参照してください

現在ではFCI ストレージが次のように幅広い状況でサポートされています

向上したマウント ポイント サポートSQL Server のセットアップ時にクラスター ディスクのマウント ポイント設定が認識されるようになりました指定されたクラスター ディスクとそれにマウントされているすべてのディスクがセットアップ時に SQL Server リソースの依存関係に自動的に追加されます

ローカル ストレージの tempdbFCI ではローカルの非共有ストレージ (ローカル ソリッド ステート ドライブなど) に tempdb を配置できるようになったため共有 SAN での IO 動作の負荷を大幅に軽減できる可能性があります

SQL Server 2012 よりも前のバージョンの FCI ではtempdb が他のシステム データベースと共にフェールオーバーされる対称共有ストレージ ボリュームに配置される必要がありました

注 tempdb の場所はmaster データベースに格納されますこのデータベースはフェールオーバー時にノード間で移動されますtempdb は所有者候補となっているすべてのノード上で有効で対称的なファイル パス (ドライブフォルダーおよび権限) に配置されている必要がありますそうなっていない場合SQL Server サービスが一部のノードでは起動されません

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 26

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 27

データベースの可用性インフラストラクチャ レベルおよび SQL Server インスタンス レベルのコンポーネントで提供されている高可用性機能は互いに連係してホストされているデータベースを暗黙的に保護しますAlwaysOn ソリューションではデータベースのデータおよびデータ層アプリケーションを明示的に保護するために一連のオプションが追加で用意されています

AlwaysOn 可用性グループ可用性グループは1 つの SQL Server インスタンスから同じ WSFC クラスター内の別のインスタンスへと同時にフェールオーバーされるユーザー データベースのセットですクライアント アプリケーションは可用性グループ リスナーと呼ばれる WSFC 仮想ネットワーク名を通じて可用性グループのデータベースに接続できますこうすることで基になる SQL Server インスタンスが抽象化されます

AlwaysOn 可用性グループは正常性監視フェールオーバーの調整およびサーバー接続を Windows Server フェールオーバー クラスタリングに依存していますWSFC クラスター ノード上の SQL Server インスタンスでAlwaysOn サポートを有効にする必要がありますただしそのインスタンスが FCI である必要はなく対称共有ストレージを使用する必要もありません

詳細については「AlwaysOn 可用性グループの概要 」(httpmsdnmicrosoftcomja-jplibraryff877884(SQL110)aspx) を参照してください

可用性レプリカとロール可用性グループの各 SQL Server インスタンスは可用性グループのユーザー データベースのコピーを保持している可用性レプリカをホストしますSQL Server インスタンスは特定の可用性グループの可用性レプリカを 1 つだけホストすることができますが複数の可用性グループを同じインスタンスに置くことは可能ですSQL Server インスタンスは専用の (非共有) ストレージ ボリュームを持つ必要があります

可用性レプリカの 1 つがプライマリ レプリカの役割を果たしますこれは可用性グループ データベースのマスター コピーとして指定されていて読み取り書き込み操作を行うことができます

可用性グループには読み取り専用の可用性レプリカを最大 4 つまで追加で含めることができますこれらは個別にセカンダリ レプリカの役割を果たします

可用性レプリカの同期可用性グループの各データベースの内容はSQL Server によるログ ベースのデータ移動メカニズムを通じてプライマリ レプリカから各セカンダリ レプリカに同期されますそのため可用性グループのすべてのデータベースは完全復旧モデルに設定する必要があります

セカンダリ レプリカはプライマリ レプリカのデータベースとトランザクション ログの完全なバックアップと復元によって初期化されますプライマリ レプリカで新しいトランザクションがコミットされるとトランザクション ログの対応する部分がキャッシュされ

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 28

キューに入れられてネットワーク経由でセカンダリ レプリカ ノード上のデータベース ミラーリング エンドポイントに送信されます

この方法によりプライマリ レプリカのトランザクション ログの新しいエントリが各セカンダリ レプリカのトランザクション ログに追加されます各セカンダリ レプリカはログ シーケンス番号 (LSN) をプライマリ レプリカに定期的に送り返しトランザクション ログのどのくらいの量がリモート ディスクに書き込まれフラッシュされたかを示します

注 各可用性レプリカはそれぞれ独自に独立したトランザクション ログ再実行スレッドのセットを保持していますこれは可用性レプリカの同期プロセスには含まれませんセカンダリ レプリカ上ではログ再実行プロセスによって遅延時間が生じるためユーザーはそれをデータの待機時間として感じる場合があります

プライマリまたはセカンダリの役割を果たす他に各可用性レプリカには可用性モードもありますこのモードは次のようにCOMMIT TRAN ステートメントの実行時にトランザクション ログの書き込みの連係を制御します

同期コミット モードすべての同期コミット セカンダリ レプリカからそれぞれ独自のトランザクション ログの書き込み完了 (LSN 以降) が通知されるまでプライマリ レプリカはそのトランザクションをコミットしません可用性グループでは最大で 2 つの同期コミット セカンダリ レプリカを使用できます

同期コミット モードではプライマリ レプリカ データベースでトランザクションの遅延が生じますがコミットされたトランザクションに対するセカンダリ レプリカでのデータ損失を確実に防ぐことができます

非同期コミット モードプライマリ レプリカはローカル トランザクション ログの書き込み後にトランザクションをコミットしますが非同期コミット セカンダリ レプリカからトランザクション ログの書き込み完了通知を待つことはしません可用性グループでは最大で 4 つの非同期コミット セカンダリ レプリカを使用できますただし両方の種類を合わせて使用できるセカンダリ レプリカの合計は最大 4 つです

非同期コミット モードではプライマリ レプリカ データベースで生じるトランザクションの遅延が最小になりますがセカンダリ レプリカでのトランザクション ログが遅れる場合があるため一部のデータが失われる可能性があります

詳細については「可用性モード」(httpmsdnmicrosoftcomja-jplibraryff877931(SQL110)aspx) を参照してください

可用性レプリカ間のデータ フローの全体的な正常性は各レプリカの同期状態によって示されますセカンダリ レプリカにフェールオーバーしたときに同期状態が 同期済み または 同期中 になっていなければほとんどの場合はデータ損失が発生することになります

各セカンダリ レプリカの同期ストリームにはセッション タイムアウト プロパティがあります同期コミット モードに構成されているセカンダリ レプリカがセッション タイムアウトでエラーになると内部的には一時的に非同期としてマークされますこれはセカンダ

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 29

リ レプリカのエラーがプライマリ レプリカでのトランザクション ログの書き込みに影響しないようにするためですそのセカンダリ レプリカが正常に戻ってプライマリ レプリカの状態に追いつくと自動的に通常の同期コミット モード動作に戻されます

可用性グループのフェールオーバー可用性グループとそれに対応する仮想ネットワーク名はWSFC クラスターのリソースとして登録されます可用性グループはプライマリ レプリカの正常性とフェールオーバー ポリシーに基づいて可用性レプリカのレベルでフェールオーバーを行います

可用性グループのフェールオーバー ポリシーではsp_server_diagnostics システム ストアド プロシージャと FailureConditionLevel プロパティを使用して可用性グループに対して許容されるエラーの重大度のレベルを示しますこの同じメカニズムがFCI のフェールオーバー ポリシーにも使用されます

フェールオーバーが発生した場合は共有物理リソースの所有権を他のノードに移す代わりにWSFC を利用して他の SQL Server インスタンス上でセカンダリ レプリカを再構成しプライマリ レプリカの役割を引き継がせますその後可用性グループの仮想ネットワーク名リソースがそのインスタンスに転送されます関連する可用性レプリカへのすべてのクライアント接続がリセットされます

レプリカの現在の正常性同期状態および可用性モードに基づいて各レプリカには複合的な フェールオーバーの準備 状態が定義されますこの状態の値はデータ損失の可能性を示していますレプリカの正常性情報はAlwaysOn ダッシュボードまたは sysdm_hadr_availability_replica_states システム ビューで確認できます

各可用性レプリカにはフェールオーバー モードも構成されていますこのモードはフェールオーバーが指示された場合にレプリカの動作を制御します

自動フェールオーバー (データ損失なし)セカンダリ レプリカのトランザクション ログが既に書き込まれ同期されているのですべての AlwaysOn 構成の中でフェールオーバー時間が最短になりますプライマリ レプリカ上の開かれているトランザクションはロールバックされプライマリ レプリカの役割はユーザーによる操作なしでセカンダリ レプリカに転送されます

この場合プライマリ レプリカとセカンダリ レプリカの両方を自動フェールオーバー モードに設定し両方の可用性モードを同期コミットに設定する必要がありますレプリカ間の同期状態は同期済み である必要がありますまたWSFC クラスターは正常なクォーラム状態になっている必要があります

自動フェールオーバーはプライマリ レプリカまたはセカンダリ レプリカが FCI 上にある場合はサポートされませんこれは可用性グループと FCI のフェールオーバー間で競合状態が発生することを防ぐためです

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 30

手動フェールオーバーこの場合管理者はプライマリ レプリカの状態を評価してセカンダリ レプリカにフェールオーバーするかどうかを慎重に判断できます

可用性モードと同期状態に応じて次のような選択が可能です

o 計画的な手動フェールオーバー (データ損失なし)この種類のフェールオーバーを実行できるのはプライマリ レプリカとセカンダリ レプリカの両方が正常で同期済み 状態である場合だけですこれは機能的には自動フェールオーバーと同じです

o 強制手動フェールオーバー (データ損失の可能性を許容)これは対象のセカンダリ レプリカの可用性モードが非同期コミットである場合またはプライマリ レプリカに同期されない場合に使用できる唯一のフェールオーバー形式です

警告 このフェールオーバー オプションは災害復旧の状況に限って使用する必要がありますプライマリ レプリカが正常で使用可能である場合は関連する各レプリカの可用性モードを同期コミットに変更し計画的な手動フェールオーバーを実行してください

詳細については「可用性グループの強制手動フェールオーバーの実行」(httpmsdnmicrosoftcomja-jplibraryff877957(SQL110)aspx) を参照してください

フェールオーバー対象のプライマリ レプリカまたはセカンダリ レプリカが次の条件のいずれかに該当する場合は手動フェールオーバーを実行する必要があります

フェールオーバー モードが手動に設定されている 可用性モードが非同期コミットに設定されている レプリカが FCI 上にある

詳細については「フェールオーバーとフェールオーバー モード (AlwaysOn 可用性グルー プ ) 」(httpmsdnmicrosoftcomja-jplibraryhh213151(SQL110)aspx) を参照してください

注 フェールオーバー後新しいプライマリ レプリカが同期コミット モードに設定されていない場合セカンダリ レプリカの同期状態は 中断状態 になりますプライマリ レプリカが同期コミット モードに設定されるまでデータはセカンダリ レプリカに移動されません

可用性グループ リスナー可用性グループ リスナーはクライアントが可用性グループ内のデータベースにアクセスするために使用できる WSFC 仮想ネットワーク名 (VNN) ですVNN クラスター リソースはプライマリ レプリカをホストしている SQL Server インスタンスによって所有されます

仮想ネットワーク名は可用性グループ リスナーの作成時または構成の変更時にのみDNS に登録されます可用性グループ リスナーで定義されているすべての仮想 IP アドレスは同じ仮想ネットワーク名で DNS に登録されます

可用性グループ リスナーを使用する場合クライアント接続要求ではサーバーとして仮想ネットワーク名を指定してから可用性グループ内のデータベース名を指定する必要があり

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 31

ます既定ではこれによってプライマリ レプリカをホストしている SQL Server インスタンスに接続されます

実行時にはクライアントはローカルの DNS リゾルバーを使用して仮想ネットワーク名にマップされている IP アドレスと TCP ポートの一覧を取得しますクライアントは各 IP アドレスへの接続を成功するか接続タイムアウトに達するまで試し続けますMultiSubnetFailover パラメーターが true に設定されているとクライアントは複数の接続を同時に試行するのでクライアント フェールオーバーが大幅に速くなります

フェールオーバーが行われるとサーバー上でクライアント接続がリセットされ可用性グループ リスナーの所有権はプライマリ レプリカの役割と共に新しい SQL Server インスタンスに移動しVNN エンドポイントは新しいインスタンスの仮想 IP アドレスと TCP ポートにバインドされます

詳細については「可用性グループ リスナークライアント接続およびアプリケーションのフェールオーバー」(httpmsdnmicrosoftcomja-jplibraryhh213417(SQL110)aspx) を参照してください

アプリケーションの目的によるフィルター処理可用性グループ リスナーを使用して接続している場合アプリケーションは接続の目的がデータの読み取りと書き込みの両方なのか読み取り専用操作を実行するだけなのかを指定できます指定しない場合クライアントのアプリケーションの目的は既定で読み取りと書き込みになります

各可用性レプリカのプライマリ ロールとセカンダリ ロールについてはクライアントのアプリケーションの目的に対する接続レベルのフィルターとして接続アクセス プロパティも指定できます既定ではアプリケーションの目的と接続アクセスとの組み合わせが無効であると接続が拒否されますSQL Server は次のルールを使用してクライアントの接続要求を振り分ける必要があります

可用性レプリカがプライマリ ロールであり接続アクセスが次のいずれかである場合

すべてのアプリケーションの目的を許可するアプリケーションの目的でクライアント接続をフィルター処理しません

明示的な読み取り書き込みの目的だけを許可するクライアントが読み取り専用を指定している場合接続を拒否します

可用性レプリカがセカンダリ ロールであり接続アクセスが次のいずれかである場合

接続を許可しないすべての接続を拒否しますレプリカは災害復旧だけに使用されます

すべてのアプリケーションの目的を許可するアプリケーションの目的でクライアント接続をフィルター処理しません

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 32

読み取り専用の目的を許可するクライアントが読み取り専用を指定していない場合接続を拒否します

詳細については「可用性レプリカでの読み取り専用アクセスの構成」(httpmsdnmicrosoftcomja-jplibraryhh213002(SQL110)aspx) を参照してください

アプリケーションの目的の読み取り専用ルーティングAlwaysOn 可用性グループの特に優れた点はスタンバイ ハードウェア インフラストラクチャを災害復旧以外の目的に利用できることです1 つ以上のセカンダリ レプリカを読み取り専用でアクセスできるように構成するとプライマリ レプリカからかなりの量のワークロードを軽減できます

読み取り専用セカンダリ レプリカに回すように簡単に調整できるワークロードはレポートデータベース バックアップデータベース整合性チェックインデックスの断片化の分析データ パイプライン抽出運用サポート操作サポートアドホック クエリなどです

各可用性レプリカではSQL Server インスタンスのエンドポイントについて順次的な読み取り専用ルーティング リストを構成することもできますこのリストはレプリカがプライマリ ロールであるときに適用されますこのリストが存在する場合アプリケーションの目的が読み取り専用と指定されているクライアント接続要求はそのリスト内に記載されていて前述のアプリケーションの目的フィルターに適合する最初のセカンダリ レプリカにリダイレクトされます

注 読み取り専用ルーティングによるリダイレクトはプライマリ レプリカにバインドされている可用性グループ リスナーによって実行されますプライマリ レプリカがオフラインの場合クライアントのリダイレクトは機能しません

詳細については「可用性グループの読み取り専用ルーティングの構成 (SQL Server) 」(httpmsdnmicrosoftcomja-jplibraryhh710054(SQL110)aspx) を参照してください

可用性の向上 ndash データベースSQL Server 2012 ではデータベースの構成と機能に関してさまざまな点が強化されています

以下の機能は復旧時間の短縮に役立ちます

予測可能な復旧時間データベースごとにターゲット復旧時間の長さを設定することでバックグラウンドで実行される CHECKPOINT コマンドのスケジュールを制御できますこのコマンドは間接的なチェックポイントとして再起動時またはフェールオーバー時にトランザクション ログの復旧に必要となる時間の推定値に基づいて定期的に実行されますそれによってチェックポイントごとに IO 操作がほぼ均等に配分され復旧時間 (RTO) の予測可能性が高まります

SQL Server 2012 よりも前のバージョンではバックグラウンドの CHECKPOINT コマンドがトランザクションの量や負荷とは無関係に一定間隔で実行されていたので復旧時間を予測することはできませんでした

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 33

詳細については「データベース チェックポイント」(httpmsdnmicrosoftcomja-jplibraryms189573(SQL110)aspx) を参照してください

以下の向上点は計画的なダウンタイムが必要になる一般的な状況を減らすのに役立ちます

LOB 列のオンライン インデックス操作varbinary(max)varchar(max)nvarchar(max)または XML データ型の列が含まれているインデックスをオンラインで再構築または再構成できるようになりました

新しい NOT NULL 列のオンライン スキーマ修正既定値を使用して新しい NOT NULL 列を SQL Server 2012 データベース テーブルに追加する場合システム メタデータの更新にはスキーマ ロックだけが必要ですALTER TABLE ステートメントですべての行にデータを設定する必要はありません

いずれかの行で実際に変更またはインデックスの再作成が行われない限り列の既定値は物理的に格納されませんクエリでは列に実際の値が存在しない場合メタデータから既定値を返します

ストレージのサポート強化の例として次のようなものがあります

ページの自動修復ある種のストレージ サブシステム エラーが発生するとデータ ページが破損し読み取り不可能になる場合がありますAlwaysOn 可用性グループではそのような種類のエラーを検出し自動的に復旧できます復旧のために影響を受けたデータ ページの最新のコピーが別の可用性レプリカから非同期で取得され適用されます

以前のバージョンでもデータベース ミラーリングに同様の機能がありましたが新しい機能では複数のレプリカをサポートできるようになっています

詳細については「ページの自動修復」(httpmsdnmicrosoftcomja-jplibrarybb677167(SQL110)aspx) を参照してください

クライアント接続の推奨事項クライアント アプリケーションが Microsoft SQL Server 2012 AlwaysOn テクノロジの利点を十分に活用できるようにするには次のガイドラインに従います

AlwaysOn 対応のクライアント ライブラリ表形式のデータ ストリーム (TDS) プロトコル Version 74 以降をサポートしているクライアント ライブラリを使用しますこれによってAlwaysOn の機能に対応した適切な機能がクライアント側でも提供されますクライアント ライブラリの例としてはData Provider for SQL Server in NET Framework 402SQL Native Client 110 などがあります

接続プロバイダー プロパティ MultiSubnetFailover = True接続文字列にこのキーワードを使用することでクライアント ライブラリでは(複数のサブネットに IP アドレスを持つ) 可用性グループ リスナーまたは FCI に登録されているすべての IP アドレスに同時に接

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 34

続できるようになります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 35

接続プロバイダー プロパティ ApplicationIntent = ReadOnly必要に応じてプライマリ レプリカの読み取り専用ワークロードをセカンダリ レプリカに移管することができます

レガシ クライアントの接続タイムアウトレガシ クライアントのデータベース ライブラリには並列で接続を試行する機能が実装されていないため複数の IP アドレスがある場合にはTCP タイムアウトに達するか正常に接続できるまで1 つずつ順番に接続を試行します

複数の IP アドレスが存在する場合はタイムアウトと再試行が逐次的に繰り返される可能性に備えてレガシ クライアントの接続タイムアウトを調整する必要があります値は少なくとも 15 秒 + 21 秒 times セカンダリ レプリカ数にします

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 36

結論このホワイト ペーパーではSQL Server 2012 の AlwaysOn による高可用性災害復旧ソリューションを使用し予定されたダウンタイムや予定外のダウンタイムを短縮したりアプリケーションの可用性を最大限に高めたりデータを保護したりする方法について基本的なコンテキストを確立しました

高可用性データベース環境の計画管理測定に関連したビジネス上の目的と課題は多くの場合目標復旧時点 (RPO) と目標復旧時間 (RTO) という形で数量化して表すことができます

SQL Server 2012 AlwaysOn は組織が高可用性や災害復旧に関する一般的な状況に対処するための機能をRPO と RTO を適切に達成できることを念頭にインフラストラクチャ レベルデータ プラットフォーム レベルデータベース レベルのそれぞれで提供します

詳細情報

httpwwwmicrosoftcomja-jpsqlserver2012defaultaspx SQL Server Web サイト

httptechnetmicrosoftcomja-jpsqlserver SQL Server TechCenter

httpmsdnmicrosoftcomja-jpsqlserver SQL Server 開発者向け技術情報

このホワイト ペーパーはお役に立ちましたか フィードバックをお寄せください1 (役に立たなかった) ~ 5 (非常に役に立った) の 5 段階で評価してくださいまたその評価の理由もお知らせください以下に例を示します

評価が高い 例が適切図がわかりやすい説明が明快といったことが理由である 評価が低い 例が少ない図がわかりにくい説明があいまいといったことが理由で

ある

このようなフィードバックをお寄せいただくと今後のホワイト ペーパーの品質向上につながります

フィードバックの送信

loz Version 112012 年 2 月 21 日

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 37

  • 高可用性と災害復旧の概念
    • 高可用性について
      • 予定されたダウンタイムと予定外のダウンタイム
      • 段階的な可用性
        • ダウンタイムの定量化
          • 復旧目標
          • ROI または機会費用の正当化
          • 可用性の健全度の監視
          • 災害復旧の計画
            • 概要 Microsoft SQL Server 2012 での高可用性
              • SQL Server AlwaysOn
              • 計画的なダウンタイムの大幅な削減
              • アイドル状態のハードウェアをなくしてコスト効率とパフォーマンスを向上
              • 簡単な配置と管理
              • RPO と RTO の機能比較
                  • SQL Server AlwaysOn の保護レイヤー
                    • インフラストラクチャの可用性
                      • Windows オペレーティング システム
                        • Windows Server Core インストール オプション
                        • プライベート クラウド用の SQL Server の最適化
                          • Windows Server フェールオーバー クラスタリング
                            • WSFC ストレージ構成
                            • WSFC リソースの正常性の検出とフェールオーバー
                              • WSFC のクラスター検証ウィザード
                              • WSFC クォーラム モードと投票の構成
                                • クォーラムによるクラスター状態検出
                                • クォーラム モード
                                • 投票ノードと非投票ノード
                                • クォーラム投票に推奨される調整
                                  • WSFC の強制クォーラムによる災害復旧
                                    • SQL Server インスタンス レベルでの保護
                                      • 可用性の向上 ndash SQL Server インスタンス
                                      • AlwaysOn フェールオーバー クラスター インスタンス
                                        • FCI のフェールオーバー プロセス
                                        • FCI の強化
                                            • データベースの可用性
                                              • AlwaysOn 可用性グループ
                                                • 可用性レプリカとロール
                                                • 可用性レプリカの同期
                                                  • 可用性グループのフェールオーバー
                                                  • 可用性グループ リスナー
                                                    • アプリケーションの目的によるフィルター処理
                                                    • アプリケーションの目的の読み取り専用ルーティング
                                                      • 可用性の向上 ndash データベース
                                                        • クライアント接続の推奨事項
                                                          • 結論
Page 17: 高可用性と災害復旧の概念download.microsoft.com/download/6/B/E/6BE0C3F3-2991-4766... · Web view高可用性と災害復旧のソリューションのために最適なデータベース

リソース管理クラスター内の各ノードは直接アタッチされたストレージ (DAS)ネットワーク インターフェイス共有ディスク ストレージへのアクセスなど物理的リソースを提供する場合がありますSQL Server などホストされるアプリケーション自体もクラスター リソースとして登録されますまた他のリソースに対するスタートアップと正常性にかかわる依存関係を構成できます

正常性の監視ノード間の正常性およびプライマリ ノードの正常性はハートビート ネットワーク通信とリソースの監視を組み合わせることで検出されますクラスターの全体的な正常性状態はクラスター内のノードのクォーラムの投票によって決定されます

フェールオーバーの調整各リソースはプライマリ ノードでホストされるように構成されそれぞれ自動的にまたは手動で 1 つ以上のセカンダリ ノードに転送されます正常性ベースのフェールオーバー ポリシーによってノード間でのリソース所有権の自動転送が制御されますフェールオーバーが発生すると適切に対応できるように各ノードおよびホストされているアプリケーションに通知されます

詳細については「Windows Server | フェールオーバー クラスタリングとノード バランシン グ」(httpwwwmicrosoftcomwindowsserver2008enusfailover-clustering-mainaspx) を参照してください

注 データベース管理者が WSFC クラスターおよびクォーラム管理の内部動作を理解しておくことが非常に重要になりましたAlwaysOn の正常性の監視管理および障害復旧の手順はすべてが本質的に WSFC 構成と関連しています

WSFC ストレージ構成Windows Server フェールオーバー クラスタリングでは接続されているストレージ デバイスディスク ボリュームおよびファイル システムの管理をクラスター内の各ノードに依存していますWSFC はストレージ サブシステムが非常に堅牢であると想定しているためノードに接続されたストレージ デバイスが使用できない場合はクラスター ノードが障害状態であると見なします

書き込みベースの操作ではディスク ボリュームは SCSI-3 の永続的な予約を使用して一度に 1 つのクラスター ノードに論理的に接続されますノードで障害が発生した場合にはストレージ サブシステムの機能と構成に応じてディスク ボリュームの論理的所有権をクラスター内の別のノードに移すことができます

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 12

SQL Server AlwaysOn ソリューションでは次のような WSFC ストレージ構成の組み合わせを利用しその制限も受けます

直接接続とリモートストレージ デバイスはサーバーに物理的に直接接続されるかまたはネットワークやホスト バス アダプター (HBA) を介してリモートのストレージ デバイスを使用しますリモート ストレージのテクノロジにはiSCSI やファイバー チャネルなどのストレージ エリア ネットワーク (SAN) ベースのソリューションとサーバー メッセージ ブロック (SMB) というファイル共有ベースのソリューションがあります

対称と非対称ストレージ デバイスの論理ディスク ボリューム構成とファイル パスがクラスターの各ノードでまったく同じである場合それらのストレージ デバイスは対称的であると見なされます基になるディスク ボリュームの物理的な実装と容量は異なっていてもかまいません

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 13

専用と共有専用ストレージは使用するために予約されクラスター内の 1 つのノードに割り当てられます共有ストレージはクラスターの複数のノードからアクセスできます共有ストレージ デバイスが SCSI-3 プロトコルに準拠していればそれらの制御と所有権をノード間で移動させることができますWSFC ではファイル共有のためにクラスター共有ボリュームを同時に複数のノードでホスティングできますただしSQL Server は複数のノードからの共有ボリュームへの同時アクセスをサポートしていません

注 SQL Server FCI では対称共有ストレージを使用してインスタンスのすべてのノード所有者 (およびその候補) からアクセスできるようにする必要がありますただしAlwaysOn 可用性グループの導入に伴いそれぞれが独自に専用のローカルまたはリモート ストレージを持つ非 FCI の SQL Server インスタンスを WSFC クラスターに配置できるようになりました

WSFC リソースの正常性の検出とフェールオーバーWSFC クラスター ノード内の各リソースの状態と正常性は定期的にまたは要求に応じて報告されますクラスター リソースの障害を示す状況としてはたとえば電源障害ディスクまたはメモリのエラーネットワーク通信エラー構成エラー応答しないサービスなどがあります

ネットワークストレージサービスなどの WSFC クラスター リソースは互いに依存するように構成できますあるリソースの累積的な正常性は依存関係を持つリソースの正常性を連続的にたどってゆくことで決定されます

AlwaysOn 可用性グループでは可用性グループと可用性グループ リスナーがそれぞれ WSFC クラスター リソースとして登録されますAlwaysOn フェールオーバー クラスター インスタンスではSQL Server サービスおよび SQL Server エージェント サービスが WSFC クラスター リソースとして登録されどちらもインスタンスの仮想ネットワーク名リソースに依存します

WSFC クラスター リソースで設定された数のエラーまたは障害が一定期間内に発生した場合構成されたフェールオーバー ポリシーによってクラスター サービスは次のいずれかの操作を行います

現在のノードでのリソースの再起動 リソースをオフライン化 リソースとその依存関係を別のノードへ自動的にフェールオーバー

注 WSFC クラスター リソースの正常性の検出は個々のノードの正常性やクラスターの全体的な正常性には直接影響しません

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 14

WSFC のクラスター検証ウィザードクラスター検証ウィザードはWindows Server 2008 および Windows Server 2008 R2 のフェールオーバー クラスタリングに統合されている機能ですこれはSQL Server AlwaysOn ソリューションの配置前 にクリーンで正常な安定した WSFC 環境が存在していることをデータベース管理者が確認するために使用する主要なツールです

クラスター検証ウィザードではクラスターのノードとして使用するサーバーの集合または既存のクラスターを対象にして一連のテストを実行できますこのプロセスでは基になるハードウェアおよびソフトウェアが個別に直接テストされWSFC クラスターが特定の構成でどの程度良好にサポートされるかについての正確な評価が得られます

この検証プロセスでは各ノードに対して次のようなカテゴリの一連のテストとデータ収集が実施されます

一覧作成BIOS のバージョン環境レベルホスト バス アダプターRAMオペレーティング システムのバージョンデバイスサービスドライバーなどの情報です

ネットワークNIC のバインド順序ネットワーク通信IP 構成ファイアウォール構成などの情報ですすべての NIC でノード間の通信が検証されます

ストレージディスクドライブの容量アクセス待機時間ファイル システムなどの情報ですSCSI コマンドディスク フェールオーバー機能対称的または非対称的なストレージ構成が検証されます

システム構成Active Directory の構成ドライバーの登録メモリ ダンプの設定必要なオペレーティング システムの機能とサービス互換性のあるプロセッサ アーキテクチャおよびサービス パックと Windows Software Update のレベルが検証されます

これらの検証テストの結果を利用してクラスターの構成を微調整したり構成を追跡したりダウンタイムを引き起こすかもしれない潜在的なクラスター構成の問題を特定したりできますテスト結果のレポートは後で参照できるようにHTML ドキュメントとして保存できます

これらのテストはWSFC の構成に何か変更を加える前と加えた後に実行するほかSQL Server をインストールする前および災害復旧プロセスの一環として実行する必要がありますマイクロソフトで特定の WSFC クラスター構成がサポートされるためにはマイクロソフト カスタマー サポート サービス (CSS) にクラスター検証レポートを提出する必要があります

詳細については「フェールオーバー クラスター ステップ バイ ステップ ガイド フェール オーバー クラスター用ハードウェアを検証する」(httptechnetmicrosoftcomja-jplibrarycc732035(WS10)aspx) を参照してください

注 ハードウェアベースの地理的クラスタリング ストレージ ソリューションの場合やAlwaysOn 可用性グループの場合のようにクラスター構成に非対称ストレージがあるとクラスター検証ウィザードでストレージの検証手順を成功させるために多数の修正プログラムを適用しなければならないことがあります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 15

詳細については「AlwaysOn 可用性グループの前提条件制限事項および推奨事項 」(httpmsdnmicrosoftcomja-jplibraryff878487(SQL110)aspxSystemReqsForAOAG) を参照してください

WSFC クォーラム モードと投票の構成WSFC ではクォーラム ベースのアプローチを使用してクラスターの全体的な正常性を監視することでノード レベルのフォールト トレランスを最大限に高めますWSFC のクォーラム モードおよびノード投票構成の基本について理解することはAlwaysOn 高可用性災害復旧ソリューションの設計運用トラブルシューティングのために非常に重要です

クォーラムによるクラスター状態検出WSFC クラスター内の各ノードは定期的なハートビート通信に参加しノードの正常性状態を他のノードと共有します応答しないノードはエラー状態であると見なされます

クォーラム ノード セットとはWSFC クラスター内の投票ノードおよび監視サーバーのうち過半数を占めるノードの集合ですWSFC クラスターの全体的な正常性と状態は定期的なクォーラムの投票 によって決定されますクォーラムはクラスターが正常でありノード レベルのフォールト トレランスを提供できることを意味します

クォーラムに達していない状態はクラスターが正常でないことを示しますプライマリ ノードのフェールオーバー先として正常なセカンダリ ノードを使用できるようにするにはWSFC クラスターの全体的な正常性が維持されている必要があります投票数がクォーラムに達しなかった場合にはWSFC クラスター全体が予防策としてオフラインに設定されますその場合クラスターに登録されている SQL Server インスタンスがすべて停止します

注 クォーラム障害のために WSFC クラスターがオフラインに設定されるとオンラインに戻すために手動の操作が必要です詳細については後の「WSFC の強制クォーラムによる災害 復旧」のセクションを参照してください

クォーラム モードクォーラム モードはWSFC クラスター レベルで構成されクォーラム投票の方法を指定しますフェールオーバー クラスター マネージャー ユーティリティではクラスター内のノード数に基づいて推奨するクォーラム モードが提示されます

次のいずれかのクォーラム モードによって投票クォーラムの構成が決定されます

ノード マジョリティクラスターが正常であるためにはクラスター内の半分以上の投票ノードが肯定的に投票する必要があります

ノードおよびファイル共有マジョリティノード マジョリティ クォーラム モードに似ていますがリモート ファイル共有も投票監視サーバーとして構成され各ノードからそのリモート ファイル共有への接続も肯定的な投票としてカウントされますクラスターが正常であるためには投票の過半数が肯定的である必要があります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 16

推奨事項として監視ファイル共有はクラスター内のノードに存在せずクラスター内のすべてのノードから見える必要があります

ノードおよびディスク マジョリティノード マジョリティ クォーラム モードに似ていますが共有ディスク クラスター リソースも投票監視サーバーとして使用され各ノードからその共有ディスクへの接続も肯定的な投票としてカウントされますクラスターが正常であるためには投票の過半数が肯定的である必要があります

ディスクのみ共有ディスク クラスター リソースが監視サーバーとして使用され各ノードからその共有ディスクへの接続が肯定的な投票としてカウントされます

詳細については「フェールオーバー クラスター ステップ バイ ステップ ガイド フェール オーバー クラスターのクォーラムの構成」(httptechnetmicrosoftcomja-jplibrarycc770620(WS10)aspx) で説明されています

注 クラスターの各ノードが同じ共有ストレージ クォーラム監視ディスクを使用するように構成されていない限り通常投票ノード数が奇数の場合は ノード マジョリティ クォーラム モード投票ノード数が偶数の場合は ノードおよびファイル共有マジョリティ クォーラム モードを使用してください

投票ノードと非投票ノード既定ではWSFC クラスター内の各ノードがクラスター クォーラムのメンバーとなります各ノードファイル共有監視サーバーディスク監視サーバーがクラスターの全体的な正常性の決定においてそれぞれ 1 票ずつの投票権を持ちますクォーラムに関するここまでの説明ではクラスター状態について投票する WSFC クラスター ノードのセットを投票ノードとして注意深く限定してきました状況によってはすべてのノードに投票権を与えることが適切でない場合もあります

WSFC クラスターの各ノードはクォーラムを確立しようとし続けますクラスター内の個々のノードはクラスターが全体として正常であるか正常でないかを明確に決定することはできません特定の時点で各ノードからは他のノードの一部がオフラインフェールオーバー中またはネットワーク通信のエラーにより応答不能に見えますクォーラム投票の主な機能はWSFC クラスターの各ノードの見かけの状態が本当にそれらのノードの実際の状態であるかどうかを判断することです

ディスクのみ 以外のすべてのクォーラム モデルではクォーラム投票の有効性はクラスター内のすべての投票ノード間に信頼できる通信が確立されていることに依存しますすべてのノードが同じ物理サブネット上にある場合はクォーラムの投票を信頼できます

しかしクォーラム投票で他のサブネット上のノードが応答しないように見えても実際はオンラインで正常である場合はサブネット間のネットワーク通信のエラーが原因であることが考えられますクラスター トポロジクォーラム モードおよびフェールオーバー ポリシーの構成によってはネットワーク通信エラーによって投票ノードのセット (またはサブセット) が実質的に複数作成されてしまう可能性があります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 17

投票ノードの複数のサブセットがそれぞれ独自のクォーラムを構築できる状態はスプリット ブレイン と呼ばれますこの状態では各クォーラム上のノードが別々の動作をし相互に矛盾する可能性があります

注 スプリット ブレイン の状況が発生するのはシステム管理者が強制クォーラム動作を手動で実行するかまたは非常にまれですが強制的な手動フェールオーバーを実行することでクォーラム ノード セットが明示的に細分化された場合のみです詳細については後の「WSFC の強制クォーラムによる災害復旧 」のセクションを参照してください

クォーラム構成を単純化し稼働時間を長くする目的でノードの投票がクォーラムにカウントされないように各ノードの NodeWeight 設定 (値 0 または 1) を調整することができます

クォーラム投票に推奨される調整以下のガイドラインをこの順番に適用することでクラスターに対して推奨されるクォーラム投票の構成を判断できます

1 既定は投票権なしにします明確な理由がない限り各ノードには投票権を与えないと考えてください

2 すべてのプライマリ ノードに投票権を与えますAlwaysOn 可用性グループのプライマリ レプリカをホストする各ノードおよび AlwaysOn フェールオーバー クラスター インスタンスの優先所有者である各ノードは投票権を持つ必要があります

3 可能性のある自動フェールオーバーの所有者を含めます自動フェールオーバーの結果としてプライマリ レプリカまたは FCI をホストする可能性がある各ノードは投票を持つ必要があります

4 セカンダリ サイト ノードを除外します通常はセカンダリ災害復旧サイトに存在するノードには投票を提供しないでくださいプライマリ サイトに問題がない場合クラスターをオフラインにする判断にセカンダリ サイト内のノードが影響を与えることは避ける必要があります

5 投票数を奇数にします必要に応じて監視ファイル共有監視ノード (SQL Server インスタンスの有無は問いません)または監視ディスクをクラスターに追加してクォーラム モードを調整しクォーラムの投票結果が同数に分かれるのを防ぎます

6 フェールオーバー後の投票割り当てを再評価します正常なクォーラムをサポートしないクラスター構成にフェールオーバーすることは避けます

ノードの投票の調整の詳細については「クラスター クォーラムの NodeWeight の設定の構 成」(httpmsdnmicrosoftcomja-jplibraryhh270281(SQL110)aspx) を参照してください

ファイル共有監視サーバーの投票は調整できませんその投票を含めるか除外するかを決めるには別のクォーラム モードを選択する必要があります

注 SQL Server ではWSFC クラスター構成およびノード クォーラム投票に関する設定を管理するためにいくつかのシステム動的管理ビュー (DMV) が公開されています

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 18

詳細については「可用性グループの監視」(httpmsdnmicrosoftcomja-jplibraryff878305(SQL110)aspx) を参照してください

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 19

WSFC の強制クォーラムによる災害復旧通常クォーラム障害は災害発生時または WSFC クラスター内の複数のノード間で永続的な通信障害が生じた場合に発生しますクォーラム障害が発生するとクラスターがノード レベルのフォールト トレランスを確保できなくなるためその WSFC クラスター内の SQL Server インスタンス可用性グループおよびクラスター化されているサービスがすべてオフラインになりますクォーラム障害はWSFC クラスター内の正常な投票ノード数がクォーラム モデルを満たさなくなったことを意味しますノードによってまったく機能しなくなるものもあればWSFC サービスがシャットダウンしただけでクォーラムと通信できなくなったことを除けば正常なものもあります

WSFC クラスターをオンラインに戻すには既存の構成の少なくとも 1 つのノードでクォーラム障害の根本的な原因を解決する必要があります災害発生時には使用できる代替ハードウェアの再構成や識別が必要となる場合もあります現状のクラスター トポロジを反映するためにWSFC クラスターの残りのノードを再構成する場合もあります

WSFC クラスター ノードで強制クォーラムの手順を使用するとクラスターがオフラインになる原因となった安全管理機能を無効にすることができますこれによりクラスターでのクォーラム投票のチェックが実質的に中断されクラスター内の任意のノードで WSFC クラスター リソースと SQL Server をオンラインに戻すことができます

このような災害復旧プロセスの手順を次に示します

1) 障害の範囲を特定します応答しない可用性グループや SQL Server インスタンス災害後に使用できるオンラインのクラスター ノードをそれぞれ特定しWindows イベント ログと SQL Server システム ログを確認します必要に応じて後で分析できるように解析データやシステム ログを保存しておきます

2) 1 つのノードで強制クォーラムを使用して WSFC クラスターを起動します他の点では正常なノードで強制クォーラムの手順に従ってクラスターを手動で強制的にオンラインにしますこの場合データ損失の可能性を最小限に抑えるには可用性グループのプライマリ レプリカを最後にホストしていたノードを選択します

詳細については「クォーラムを使用せずに WSFC クラスターを強制的に起動する 」(httpmsdnmicrosoftcomja-jplibraryhh270275(v=SQL110)aspx) を参照してください

注 強制クォーラムの設定を使用するとWSFC クラスターの投票が過半数に達することで通常のクォーラム モードの動作に自動的に切り替わるまでクラスター全体のクォーラムのチェックがブロックされます

3) 他の点では正常な各ノードでWSFC サービスを 1 つずつ通常の方法で起動します他のノードでクラスター サービスを起動するときは強制クォーラム オプションを指定する必要はありません

各ノードの WSFC サービスがオンラインに戻ると他の正常なノードとの間でネゴシエーションが行われ新しいクラスター構成の状態が同期されますクラスターの最新の状態

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 20

を判断するときに競合状態の発生を避けるためこの手順は必ず一度に 1 つのノードで行うようにしてください

注 起動した各ノードが新たにオンラインにした他のノードと通信できることを確認しますそうしないと複数のクォーラム ノード セットが作成されて スプリット ブレイン の状況に陥るおそれがあります手順 1 の結果に問題がなければこの現象は発生しません

4) 新しいクォーラム モードとノードの投票の構成を適用します強制クォーラムの手順によってクラスターのすべてのノードを正常に再起動させクォーラムのエラーの根本原因を修正した場合クォーラム モードとノードの投票を元の構成から変更する必要はありません

それ以外の場合は新たに復元されたクラスター ノードと可用性レプリカのトポロジを評価し必要に応じてクォーラム モードと各ノードの投票割り当てを変更します未復旧のノード上ではWSFC クラスター サービスをオフラインにするかノードの投票をゼロに設定します

注 この時点でクラスター内のノードと SQL Server インスタンスが通常の動作に戻っているように見えることがありますがまだ正常なクォーラムには達していない可能性がありますフェールオーバー クラスター マネージャーやSQL Server Management Studio の AlwaysOn ダッシュボードまたは適切な DMV を使用して正常なクォーラムが復元されたことを確認してください

5) 必要に応じて可用性グループのデータベース レプリカを復旧します一部のデータベースはSQL Server の通常の起動処理の一環として自動的に復旧されオンラインに戻ることがありますそれ以外のデータベースの復旧には追加で手動の手順を実行する必要があります

可用性グループ レプリカのデータ損失の可能性や復旧にかかる時間を最小限に抑えるにはできればプライマリ レプリカ同期セカンダリ レプリカ非同期セカンダリ レプリカの順にオンラインに戻します

6) 障害が発生したコンポーネントを修復するか交換しクラスターを再検証しますこれで最初の災害およびクォーラム障害から復旧できたので障害が発生したノードを修復するか交換しWSFC と AlwaysOn の関連する構成を適切に調整する必要がありますこれには可用性グループ レプリカの削除クラスターからのノードの削除ノードへのソフトウェアの再インストールなどが含まれます

注 停止したすべての可用性レプリカを修復または削除する必要がありますSQL Server 2012 では最も古い可用性レプリカを最後に認識した時点以降トランザクション ログが切り捨てられません停止したレプリカを修復するか可用性グループから削除しないとトランザクション ログが大きくなり他のレプリカのトランザクション ログの領域が不足する可能性があります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 21

7) 必要に応じて手順 4 を繰り返しますこの目的は正常な動作を行うために適切なレベルのフォールト トレランスと高可用性を再確立することです

8) RPORTO 分析を実行しますSQL Server のシステム ログデータベースのタイムスタンプおよび Windows のイベント ログを分析して障害の根本的な原因を特定し実際の復旧ポイントと復旧時間を文書に記録します

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 22

SQL Server インスタンス レベルでの保護次に説明する AlwaysOn ソリューションの保護レイヤーはデータ プラットフォームそれ自体ですMicrosoft SQL Server 2012 とその Windows Server インフラストラクチャ コンポーネントとの統合によって次のような機能が提供されます

可用性の向上 ndash SQL Server インスタンスこれは SQL Server 2012 の新しいインスタンス レベルの機能でAlwaysOn フェールオーバー クラスター インスタンスとAlwaysOn 可用性グループをホストするスタンドアロン インスタンスの両方の可用性を強化します

以下の強化点によってフェールオーバーの管理およびトラブルシューティングが向上します

柔軟なフェールオーバー ポリシー信頼性の高いエラー検出に使用される新しいシステム ストアド プロシージャ sp_server_diagnostics の出力でSQL Server インスタンスに影響するエラーの重大度が FailureConditionLevel プロパティによって示されますWSFC のフェールオーバー ポリシーによってこの値が SQL Server インスタンスにどのように影響するかを制御できますある程度エラーを許容する設定からSQL Server の内部コンポーネント エラーを重点的に検出する設定までさまざまに構成できます

特定のレベルのエラーによってフェールオーバーを開始するように構成できますエラーのレベルにはサーバーの停止サーバーの応答停止重大なエラー中程度のエラーなんらかの条件付きエラーなどがありますFailureConditionLevel プロパティはFCI または可用性グループのフェールオーバー ポリシーのために使用できます

SQL Server 2012 よりも前のバージョンではフェールオーバーを制御できるようなエラー状態の区分がなくすべてのサービス レベルのエラーによってフェールオーバーが発生しました

詳細については「フェールオーバー クラスター インスタンスのフェールオーバー ポリシー」(httpmsdnmicrosoftcomja-jplibraryff878664(SQL110)aspx) を参照してください

強化されたインストルメンテーションとログAlwaysOn 専用のシステム構成ビューDMVパフォーマンス カウンターに加えて拡張されたイベント正常性セッションによってAlwaysOn 配置のトラブルシューティングチューニングおよび監視に必要な情報を取得して表示できますこれらの多くはSQL Server ポリシー管理の新しいファセットおよびポリシーを通じて公開されます

詳細については「AlwaysOn 可用性グループの動的管理ビューおよび関 数」(httpmsdnmicrosoftcomja-jplibraryff877943(SQL110)aspx) と「sysdm_os_cluster_nodes」(httpmsdnmicrosoftcomja-jplibraryms187341(SQL110)aspx) を参照してください

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 23

SMB ファイル共有のサポートWindows Server 2008 以降のスタンドアロン用またはフェールオーバー クラスター インスタンス用のリモート ファイル共有にデータベース ファイルを格納することができますこの場合FCI ごとに異なるドライブ文字を使用する必要がありませんこれはストレージを統合する場合やデータベース ファイルのストレージを仮想マシンのゲスト オペレーティング システム用物理サーバーでホストする場合などに便利なオプションです適切に構成すれば直接接続されたストレージとほぼ同等の IO パフォーマンスが得られます

詳細については「ファイル共有上の SQL データベース - シナリオを再検討すべきとき 」(httpblogsmsdncombsqlserverstorageenginearchive20111018sql-databases-on-file-shares-it-s-time-to-reconsider-the-scenarioaspx) を参照してください

注 WSFC クラスターではSMB ファイル共有リソースの依存関係を SQL Server リソース グループに追加することはできませんファイル共有の可用性を確保するには別の方法を用いる必要がありますファイル共有が使用できなくなった場合SQL Server は IO 例外をスローしオフラインになります

WSFC と DNS の相互運用性FCI または可用性グループ リスナーの仮想ネットワーク名 (VNN) はVNN の作成時または構成の変更時にのみDNS に登録されますすべての仮想 IP アドレスはオンライン状態かオフライン状態かに関係なく同じ仮想ネットワーク名で DNS に登録されますDNS の仮想ネットワーク名を解決するためのクライアント呼び出しは各種のラウンド ロビン シーケンスによってすべての登録済み IP アドレスを返します

AlwaysOn フェールオーバー クラスター インスタンスSQL Server の AlwaysOn フェールオーバー クラスター インスタンス (FCI) の主な目的は1 つのデータ センター内のローカル サーバーとストレージ ハードウェアでホストされている SQL Server インスタンスの可用性を高めることです

FCI はWindows Server フェールオーバー クラスタリング (WSFC) のクラスターに含まれる複数のノードにまたがってインストールされる1 つの論理的な SQL Server インスタンスですただし一度に 1 つのノードだけでアクティブになることができますクライアント アプリケーションはアクティブなクラスター ノードが所有している仮想ネットワーク名および仮想 IP アドレスに接続します

FCI をインストールした各ノードは同一の構成を持ち同一の SQL Server バイナリを含んでいますWSFC クラスター サービスはアクティブなインスタンス上にある Windows レジストリのエントリからFCI をインストールした各ノードに関連のある変更をレプリケートしますFCI がインストールされている各ノードはインスタンスとそのリソースの所有者の候補として指定されフェールオーバーの優先順位に従って所有者となります

共有対称ストレージ ボリュームに格納されているデータベース ファイルはリソースとして WSFC クラスターに登録され現在 FCI をホストしているノードによって所有されます

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 24

詳細については「AlwaysOn フェールオーバー クラスター インスタン ス」(httpmsdnmicrosoftcomja-jplibraryms189134(SQL110)aspx) を参照してください

FCI のフェールオーバー プロセス依存しているクラスター リソースで障害が発生した場合AlwaysOn フェールオーバー クラスター インスタンスはWSFC クラスター サービスと連携してフェールオーバーを行いますそのプロセスの概要を以下に示します

1) 再起動が指示されますWSFC の定期的なチェックまたは SQL Server のフェールオーバー ポリシー構成によってエラー状態が示されます既定では他のノードへのフェールオーバーを開始する前にサービスの再起動が試みられます再起動の試みがタイムアウトするようであればリソースの障害が発生しています

2) フェールオーバーが指示されますフェールオーバー ポリシー チェックによってノードのフェールオーバーが必要であることが示されます

3) SQL Server サービスが停止されますSQL Server サービスが現在実行されている場合はその正常なシャットダウンが試みられます

4) WSFC クラスター リソースが転送されますSQL Server クラスター リソース グループの所有権とそれが依存するネットワークおよび共有ストレージ リソースがFCI で次に優先されるノード所有者に転送されます

5) 新しいノードで SQL Server が起動されますSQL Server インスタンスは通常のスタートアップ プロシージャで起動されます所定のタイムアウト時間内にオンラインに戻らない場合クラスター サービスはこの新しいノード上のリソースをエラー状態と見なします

6) 新しいノードでユーザー データベースが復旧されます各ユーザー データベースは復旧モードに設定されます復旧モードではトランザクション ログの再実行操作が適用されコミットされていなかったトランザクションがロールバックされます

FCI の強化以前のバージョンの SQL Server でも FCI のインストール オプションは用意されていましたがSQL Server 2012 では次のような機能強化によって可用性の堅牢性と利便性が向上しました

マルチサブネット クラスタリングSQL Server 2012 では複数のサブネットに存在する WSFC クラスター ノードがサポートされていますWSFC クラスター ノードに存在する SQL Server インスタンスはいずれかのネットワーク インターフェイスが使用可能であれば起動できますこれはクラスター リソースの OR 依存関係と呼ばれます

以前のバージョンの SQL Server の場合SQL Server サービスを起動またはフェールオーバーするにはすべてのネットワーク インターフェイスが機能しそれらがすべて同じサブネットまたは VLAN に存在している必要がありました

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 25

注 マルチサブネット クラスタリングではクラスター ノード間のストレージ レベルのレプリケーションが自動的には有効になりませんマルチサブネットの FCI ソリューションでクラスター ノード間でデータのレプリケーションを行いストレージ フェールオーバーを調整するためにはサード パーティから提供される SAN ベースのソリューションを利用する必要があります

詳細については「SQL Server 2012 AlwaysOn マルチサイト フェールオーバー クラスター インスタンス」(httpsqlcatcomsqlcatbwhitepapersarchive20111222sql-server-2012-alwayson_3a00_-multisite-failover-cluster-instanceaspx) を参照してください

信頼性の高いエラー検出WSFC クラスター サービスではノードの各 SQL Server 2012 FCI に対してそれぞれ専用の管理者接続が維持されますこの接続では特殊なシステム ストアド プロシージャ sp_server_diagnostics を定期的に呼び出すことでシステムの正常性診断に役立つ豊富な情報を含む配列が返されます

SQL Server 2012 よりも前のバージョンではFCI の主な正常性検出メカニズムは単純な一方向のポーリング プロセスとして実装されていましたこのプロセスではWSFC クラスター サービスがインスタンスへの新しい SQL クライアント接続を定期的に作成しサーバー名を照会した後で接続を切断していました何かの理由で接続が失敗するかクエリがタイムアウトした場合フェールオーバーが開始されますが診断情報はほとんど提供されません

詳細については「sql_server_diagnostics」(httpmsdnmicrosoftcomja-jplibraryff878233(SQL110)aspx) を参照してください

現在ではFCI ストレージが次のように幅広い状況でサポートされています

向上したマウント ポイント サポートSQL Server のセットアップ時にクラスター ディスクのマウント ポイント設定が認識されるようになりました指定されたクラスター ディスクとそれにマウントされているすべてのディスクがセットアップ時に SQL Server リソースの依存関係に自動的に追加されます

ローカル ストレージの tempdbFCI ではローカルの非共有ストレージ (ローカル ソリッド ステート ドライブなど) に tempdb を配置できるようになったため共有 SAN での IO 動作の負荷を大幅に軽減できる可能性があります

SQL Server 2012 よりも前のバージョンの FCI ではtempdb が他のシステム データベースと共にフェールオーバーされる対称共有ストレージ ボリュームに配置される必要がありました

注 tempdb の場所はmaster データベースに格納されますこのデータベースはフェールオーバー時にノード間で移動されますtempdb は所有者候補となっているすべてのノード上で有効で対称的なファイル パス (ドライブフォルダーおよび権限) に配置されている必要がありますそうなっていない場合SQL Server サービスが一部のノードでは起動されません

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 26

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 27

データベースの可用性インフラストラクチャ レベルおよび SQL Server インスタンス レベルのコンポーネントで提供されている高可用性機能は互いに連係してホストされているデータベースを暗黙的に保護しますAlwaysOn ソリューションではデータベースのデータおよびデータ層アプリケーションを明示的に保護するために一連のオプションが追加で用意されています

AlwaysOn 可用性グループ可用性グループは1 つの SQL Server インスタンスから同じ WSFC クラスター内の別のインスタンスへと同時にフェールオーバーされるユーザー データベースのセットですクライアント アプリケーションは可用性グループ リスナーと呼ばれる WSFC 仮想ネットワーク名を通じて可用性グループのデータベースに接続できますこうすることで基になる SQL Server インスタンスが抽象化されます

AlwaysOn 可用性グループは正常性監視フェールオーバーの調整およびサーバー接続を Windows Server フェールオーバー クラスタリングに依存していますWSFC クラスター ノード上の SQL Server インスタンスでAlwaysOn サポートを有効にする必要がありますただしそのインスタンスが FCI である必要はなく対称共有ストレージを使用する必要もありません

詳細については「AlwaysOn 可用性グループの概要 」(httpmsdnmicrosoftcomja-jplibraryff877884(SQL110)aspx) を参照してください

可用性レプリカとロール可用性グループの各 SQL Server インスタンスは可用性グループのユーザー データベースのコピーを保持している可用性レプリカをホストしますSQL Server インスタンスは特定の可用性グループの可用性レプリカを 1 つだけホストすることができますが複数の可用性グループを同じインスタンスに置くことは可能ですSQL Server インスタンスは専用の (非共有) ストレージ ボリュームを持つ必要があります

可用性レプリカの 1 つがプライマリ レプリカの役割を果たしますこれは可用性グループ データベースのマスター コピーとして指定されていて読み取り書き込み操作を行うことができます

可用性グループには読み取り専用の可用性レプリカを最大 4 つまで追加で含めることができますこれらは個別にセカンダリ レプリカの役割を果たします

可用性レプリカの同期可用性グループの各データベースの内容はSQL Server によるログ ベースのデータ移動メカニズムを通じてプライマリ レプリカから各セカンダリ レプリカに同期されますそのため可用性グループのすべてのデータベースは完全復旧モデルに設定する必要があります

セカンダリ レプリカはプライマリ レプリカのデータベースとトランザクション ログの完全なバックアップと復元によって初期化されますプライマリ レプリカで新しいトランザクションがコミットされるとトランザクション ログの対応する部分がキャッシュされ

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 28

キューに入れられてネットワーク経由でセカンダリ レプリカ ノード上のデータベース ミラーリング エンドポイントに送信されます

この方法によりプライマリ レプリカのトランザクション ログの新しいエントリが各セカンダリ レプリカのトランザクション ログに追加されます各セカンダリ レプリカはログ シーケンス番号 (LSN) をプライマリ レプリカに定期的に送り返しトランザクション ログのどのくらいの量がリモート ディスクに書き込まれフラッシュされたかを示します

注 各可用性レプリカはそれぞれ独自に独立したトランザクション ログ再実行スレッドのセットを保持していますこれは可用性レプリカの同期プロセスには含まれませんセカンダリ レプリカ上ではログ再実行プロセスによって遅延時間が生じるためユーザーはそれをデータの待機時間として感じる場合があります

プライマリまたはセカンダリの役割を果たす他に各可用性レプリカには可用性モードもありますこのモードは次のようにCOMMIT TRAN ステートメントの実行時にトランザクション ログの書き込みの連係を制御します

同期コミット モードすべての同期コミット セカンダリ レプリカからそれぞれ独自のトランザクション ログの書き込み完了 (LSN 以降) が通知されるまでプライマリ レプリカはそのトランザクションをコミットしません可用性グループでは最大で 2 つの同期コミット セカンダリ レプリカを使用できます

同期コミット モードではプライマリ レプリカ データベースでトランザクションの遅延が生じますがコミットされたトランザクションに対するセカンダリ レプリカでのデータ損失を確実に防ぐことができます

非同期コミット モードプライマリ レプリカはローカル トランザクション ログの書き込み後にトランザクションをコミットしますが非同期コミット セカンダリ レプリカからトランザクション ログの書き込み完了通知を待つことはしません可用性グループでは最大で 4 つの非同期コミット セカンダリ レプリカを使用できますただし両方の種類を合わせて使用できるセカンダリ レプリカの合計は最大 4 つです

非同期コミット モードではプライマリ レプリカ データベースで生じるトランザクションの遅延が最小になりますがセカンダリ レプリカでのトランザクション ログが遅れる場合があるため一部のデータが失われる可能性があります

詳細については「可用性モード」(httpmsdnmicrosoftcomja-jplibraryff877931(SQL110)aspx) を参照してください

可用性レプリカ間のデータ フローの全体的な正常性は各レプリカの同期状態によって示されますセカンダリ レプリカにフェールオーバーしたときに同期状態が 同期済み または 同期中 になっていなければほとんどの場合はデータ損失が発生することになります

各セカンダリ レプリカの同期ストリームにはセッション タイムアウト プロパティがあります同期コミット モードに構成されているセカンダリ レプリカがセッション タイムアウトでエラーになると内部的には一時的に非同期としてマークされますこれはセカンダ

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 29

リ レプリカのエラーがプライマリ レプリカでのトランザクション ログの書き込みに影響しないようにするためですそのセカンダリ レプリカが正常に戻ってプライマリ レプリカの状態に追いつくと自動的に通常の同期コミット モード動作に戻されます

可用性グループのフェールオーバー可用性グループとそれに対応する仮想ネットワーク名はWSFC クラスターのリソースとして登録されます可用性グループはプライマリ レプリカの正常性とフェールオーバー ポリシーに基づいて可用性レプリカのレベルでフェールオーバーを行います

可用性グループのフェールオーバー ポリシーではsp_server_diagnostics システム ストアド プロシージャと FailureConditionLevel プロパティを使用して可用性グループに対して許容されるエラーの重大度のレベルを示しますこの同じメカニズムがFCI のフェールオーバー ポリシーにも使用されます

フェールオーバーが発生した場合は共有物理リソースの所有権を他のノードに移す代わりにWSFC を利用して他の SQL Server インスタンス上でセカンダリ レプリカを再構成しプライマリ レプリカの役割を引き継がせますその後可用性グループの仮想ネットワーク名リソースがそのインスタンスに転送されます関連する可用性レプリカへのすべてのクライアント接続がリセットされます

レプリカの現在の正常性同期状態および可用性モードに基づいて各レプリカには複合的な フェールオーバーの準備 状態が定義されますこの状態の値はデータ損失の可能性を示していますレプリカの正常性情報はAlwaysOn ダッシュボードまたは sysdm_hadr_availability_replica_states システム ビューで確認できます

各可用性レプリカにはフェールオーバー モードも構成されていますこのモードはフェールオーバーが指示された場合にレプリカの動作を制御します

自動フェールオーバー (データ損失なし)セカンダリ レプリカのトランザクション ログが既に書き込まれ同期されているのですべての AlwaysOn 構成の中でフェールオーバー時間が最短になりますプライマリ レプリカ上の開かれているトランザクションはロールバックされプライマリ レプリカの役割はユーザーによる操作なしでセカンダリ レプリカに転送されます

この場合プライマリ レプリカとセカンダリ レプリカの両方を自動フェールオーバー モードに設定し両方の可用性モードを同期コミットに設定する必要がありますレプリカ間の同期状態は同期済み である必要がありますまたWSFC クラスターは正常なクォーラム状態になっている必要があります

自動フェールオーバーはプライマリ レプリカまたはセカンダリ レプリカが FCI 上にある場合はサポートされませんこれは可用性グループと FCI のフェールオーバー間で競合状態が発生することを防ぐためです

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 30

手動フェールオーバーこの場合管理者はプライマリ レプリカの状態を評価してセカンダリ レプリカにフェールオーバーするかどうかを慎重に判断できます

可用性モードと同期状態に応じて次のような選択が可能です

o 計画的な手動フェールオーバー (データ損失なし)この種類のフェールオーバーを実行できるのはプライマリ レプリカとセカンダリ レプリカの両方が正常で同期済み 状態である場合だけですこれは機能的には自動フェールオーバーと同じです

o 強制手動フェールオーバー (データ損失の可能性を許容)これは対象のセカンダリ レプリカの可用性モードが非同期コミットである場合またはプライマリ レプリカに同期されない場合に使用できる唯一のフェールオーバー形式です

警告 このフェールオーバー オプションは災害復旧の状況に限って使用する必要がありますプライマリ レプリカが正常で使用可能である場合は関連する各レプリカの可用性モードを同期コミットに変更し計画的な手動フェールオーバーを実行してください

詳細については「可用性グループの強制手動フェールオーバーの実行」(httpmsdnmicrosoftcomja-jplibraryff877957(SQL110)aspx) を参照してください

フェールオーバー対象のプライマリ レプリカまたはセカンダリ レプリカが次の条件のいずれかに該当する場合は手動フェールオーバーを実行する必要があります

フェールオーバー モードが手動に設定されている 可用性モードが非同期コミットに設定されている レプリカが FCI 上にある

詳細については「フェールオーバーとフェールオーバー モード (AlwaysOn 可用性グルー プ ) 」(httpmsdnmicrosoftcomja-jplibraryhh213151(SQL110)aspx) を参照してください

注 フェールオーバー後新しいプライマリ レプリカが同期コミット モードに設定されていない場合セカンダリ レプリカの同期状態は 中断状態 になりますプライマリ レプリカが同期コミット モードに設定されるまでデータはセカンダリ レプリカに移動されません

可用性グループ リスナー可用性グループ リスナーはクライアントが可用性グループ内のデータベースにアクセスするために使用できる WSFC 仮想ネットワーク名 (VNN) ですVNN クラスター リソースはプライマリ レプリカをホストしている SQL Server インスタンスによって所有されます

仮想ネットワーク名は可用性グループ リスナーの作成時または構成の変更時にのみDNS に登録されます可用性グループ リスナーで定義されているすべての仮想 IP アドレスは同じ仮想ネットワーク名で DNS に登録されます

可用性グループ リスナーを使用する場合クライアント接続要求ではサーバーとして仮想ネットワーク名を指定してから可用性グループ内のデータベース名を指定する必要があり

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 31

ます既定ではこれによってプライマリ レプリカをホストしている SQL Server インスタンスに接続されます

実行時にはクライアントはローカルの DNS リゾルバーを使用して仮想ネットワーク名にマップされている IP アドレスと TCP ポートの一覧を取得しますクライアントは各 IP アドレスへの接続を成功するか接続タイムアウトに達するまで試し続けますMultiSubnetFailover パラメーターが true に設定されているとクライアントは複数の接続を同時に試行するのでクライアント フェールオーバーが大幅に速くなります

フェールオーバーが行われるとサーバー上でクライアント接続がリセットされ可用性グループ リスナーの所有権はプライマリ レプリカの役割と共に新しい SQL Server インスタンスに移動しVNN エンドポイントは新しいインスタンスの仮想 IP アドレスと TCP ポートにバインドされます

詳細については「可用性グループ リスナークライアント接続およびアプリケーションのフェールオーバー」(httpmsdnmicrosoftcomja-jplibraryhh213417(SQL110)aspx) を参照してください

アプリケーションの目的によるフィルター処理可用性グループ リスナーを使用して接続している場合アプリケーションは接続の目的がデータの読み取りと書き込みの両方なのか読み取り専用操作を実行するだけなのかを指定できます指定しない場合クライアントのアプリケーションの目的は既定で読み取りと書き込みになります

各可用性レプリカのプライマリ ロールとセカンダリ ロールについてはクライアントのアプリケーションの目的に対する接続レベルのフィルターとして接続アクセス プロパティも指定できます既定ではアプリケーションの目的と接続アクセスとの組み合わせが無効であると接続が拒否されますSQL Server は次のルールを使用してクライアントの接続要求を振り分ける必要があります

可用性レプリカがプライマリ ロールであり接続アクセスが次のいずれかである場合

すべてのアプリケーションの目的を許可するアプリケーションの目的でクライアント接続をフィルター処理しません

明示的な読み取り書き込みの目的だけを許可するクライアントが読み取り専用を指定している場合接続を拒否します

可用性レプリカがセカンダリ ロールであり接続アクセスが次のいずれかである場合

接続を許可しないすべての接続を拒否しますレプリカは災害復旧だけに使用されます

すべてのアプリケーションの目的を許可するアプリケーションの目的でクライアント接続をフィルター処理しません

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 32

読み取り専用の目的を許可するクライアントが読み取り専用を指定していない場合接続を拒否します

詳細については「可用性レプリカでの読み取り専用アクセスの構成」(httpmsdnmicrosoftcomja-jplibraryhh213002(SQL110)aspx) を参照してください

アプリケーションの目的の読み取り専用ルーティングAlwaysOn 可用性グループの特に優れた点はスタンバイ ハードウェア インフラストラクチャを災害復旧以外の目的に利用できることです1 つ以上のセカンダリ レプリカを読み取り専用でアクセスできるように構成するとプライマリ レプリカからかなりの量のワークロードを軽減できます

読み取り専用セカンダリ レプリカに回すように簡単に調整できるワークロードはレポートデータベース バックアップデータベース整合性チェックインデックスの断片化の分析データ パイプライン抽出運用サポート操作サポートアドホック クエリなどです

各可用性レプリカではSQL Server インスタンスのエンドポイントについて順次的な読み取り専用ルーティング リストを構成することもできますこのリストはレプリカがプライマリ ロールであるときに適用されますこのリストが存在する場合アプリケーションの目的が読み取り専用と指定されているクライアント接続要求はそのリスト内に記載されていて前述のアプリケーションの目的フィルターに適合する最初のセカンダリ レプリカにリダイレクトされます

注 読み取り専用ルーティングによるリダイレクトはプライマリ レプリカにバインドされている可用性グループ リスナーによって実行されますプライマリ レプリカがオフラインの場合クライアントのリダイレクトは機能しません

詳細については「可用性グループの読み取り専用ルーティングの構成 (SQL Server) 」(httpmsdnmicrosoftcomja-jplibraryhh710054(SQL110)aspx) を参照してください

可用性の向上 ndash データベースSQL Server 2012 ではデータベースの構成と機能に関してさまざまな点が強化されています

以下の機能は復旧時間の短縮に役立ちます

予測可能な復旧時間データベースごとにターゲット復旧時間の長さを設定することでバックグラウンドで実行される CHECKPOINT コマンドのスケジュールを制御できますこのコマンドは間接的なチェックポイントとして再起動時またはフェールオーバー時にトランザクション ログの復旧に必要となる時間の推定値に基づいて定期的に実行されますそれによってチェックポイントごとに IO 操作がほぼ均等に配分され復旧時間 (RTO) の予測可能性が高まります

SQL Server 2012 よりも前のバージョンではバックグラウンドの CHECKPOINT コマンドがトランザクションの量や負荷とは無関係に一定間隔で実行されていたので復旧時間を予測することはできませんでした

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 33

詳細については「データベース チェックポイント」(httpmsdnmicrosoftcomja-jplibraryms189573(SQL110)aspx) を参照してください

以下の向上点は計画的なダウンタイムが必要になる一般的な状況を減らすのに役立ちます

LOB 列のオンライン インデックス操作varbinary(max)varchar(max)nvarchar(max)または XML データ型の列が含まれているインデックスをオンラインで再構築または再構成できるようになりました

新しい NOT NULL 列のオンライン スキーマ修正既定値を使用して新しい NOT NULL 列を SQL Server 2012 データベース テーブルに追加する場合システム メタデータの更新にはスキーマ ロックだけが必要ですALTER TABLE ステートメントですべての行にデータを設定する必要はありません

いずれかの行で実際に変更またはインデックスの再作成が行われない限り列の既定値は物理的に格納されませんクエリでは列に実際の値が存在しない場合メタデータから既定値を返します

ストレージのサポート強化の例として次のようなものがあります

ページの自動修復ある種のストレージ サブシステム エラーが発生するとデータ ページが破損し読み取り不可能になる場合がありますAlwaysOn 可用性グループではそのような種類のエラーを検出し自動的に復旧できます復旧のために影響を受けたデータ ページの最新のコピーが別の可用性レプリカから非同期で取得され適用されます

以前のバージョンでもデータベース ミラーリングに同様の機能がありましたが新しい機能では複数のレプリカをサポートできるようになっています

詳細については「ページの自動修復」(httpmsdnmicrosoftcomja-jplibrarybb677167(SQL110)aspx) を参照してください

クライアント接続の推奨事項クライアント アプリケーションが Microsoft SQL Server 2012 AlwaysOn テクノロジの利点を十分に活用できるようにするには次のガイドラインに従います

AlwaysOn 対応のクライアント ライブラリ表形式のデータ ストリーム (TDS) プロトコル Version 74 以降をサポートしているクライアント ライブラリを使用しますこれによってAlwaysOn の機能に対応した適切な機能がクライアント側でも提供されますクライアント ライブラリの例としてはData Provider for SQL Server in NET Framework 402SQL Native Client 110 などがあります

接続プロバイダー プロパティ MultiSubnetFailover = True接続文字列にこのキーワードを使用することでクライアント ライブラリでは(複数のサブネットに IP アドレスを持つ) 可用性グループ リスナーまたは FCI に登録されているすべての IP アドレスに同時に接

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 34

続できるようになります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 35

接続プロバイダー プロパティ ApplicationIntent = ReadOnly必要に応じてプライマリ レプリカの読み取り専用ワークロードをセカンダリ レプリカに移管することができます

レガシ クライアントの接続タイムアウトレガシ クライアントのデータベース ライブラリには並列で接続を試行する機能が実装されていないため複数の IP アドレスがある場合にはTCP タイムアウトに達するか正常に接続できるまで1 つずつ順番に接続を試行します

複数の IP アドレスが存在する場合はタイムアウトと再試行が逐次的に繰り返される可能性に備えてレガシ クライアントの接続タイムアウトを調整する必要があります値は少なくとも 15 秒 + 21 秒 times セカンダリ レプリカ数にします

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 36

結論このホワイト ペーパーではSQL Server 2012 の AlwaysOn による高可用性災害復旧ソリューションを使用し予定されたダウンタイムや予定外のダウンタイムを短縮したりアプリケーションの可用性を最大限に高めたりデータを保護したりする方法について基本的なコンテキストを確立しました

高可用性データベース環境の計画管理測定に関連したビジネス上の目的と課題は多くの場合目標復旧時点 (RPO) と目標復旧時間 (RTO) という形で数量化して表すことができます

SQL Server 2012 AlwaysOn は組織が高可用性や災害復旧に関する一般的な状況に対処するための機能をRPO と RTO を適切に達成できることを念頭にインフラストラクチャ レベルデータ プラットフォーム レベルデータベース レベルのそれぞれで提供します

詳細情報

httpwwwmicrosoftcomja-jpsqlserver2012defaultaspx SQL Server Web サイト

httptechnetmicrosoftcomja-jpsqlserver SQL Server TechCenter

httpmsdnmicrosoftcomja-jpsqlserver SQL Server 開発者向け技術情報

このホワイト ペーパーはお役に立ちましたか フィードバックをお寄せください1 (役に立たなかった) ~ 5 (非常に役に立った) の 5 段階で評価してくださいまたその評価の理由もお知らせください以下に例を示します

評価が高い 例が適切図がわかりやすい説明が明快といったことが理由である 評価が低い 例が少ない図がわかりにくい説明があいまいといったことが理由で

ある

このようなフィードバックをお寄せいただくと今後のホワイト ペーパーの品質向上につながります

フィードバックの送信

loz Version 112012 年 2 月 21 日

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 37

  • 高可用性と災害復旧の概念
    • 高可用性について
      • 予定されたダウンタイムと予定外のダウンタイム
      • 段階的な可用性
        • ダウンタイムの定量化
          • 復旧目標
          • ROI または機会費用の正当化
          • 可用性の健全度の監視
          • 災害復旧の計画
            • 概要 Microsoft SQL Server 2012 での高可用性
              • SQL Server AlwaysOn
              • 計画的なダウンタイムの大幅な削減
              • アイドル状態のハードウェアをなくしてコスト効率とパフォーマンスを向上
              • 簡単な配置と管理
              • RPO と RTO の機能比較
                  • SQL Server AlwaysOn の保護レイヤー
                    • インフラストラクチャの可用性
                      • Windows オペレーティング システム
                        • Windows Server Core インストール オプション
                        • プライベート クラウド用の SQL Server の最適化
                          • Windows Server フェールオーバー クラスタリング
                            • WSFC ストレージ構成
                            • WSFC リソースの正常性の検出とフェールオーバー
                              • WSFC のクラスター検証ウィザード
                              • WSFC クォーラム モードと投票の構成
                                • クォーラムによるクラスター状態検出
                                • クォーラム モード
                                • 投票ノードと非投票ノード
                                • クォーラム投票に推奨される調整
                                  • WSFC の強制クォーラムによる災害復旧
                                    • SQL Server インスタンス レベルでの保護
                                      • 可用性の向上 ndash SQL Server インスタンス
                                      • AlwaysOn フェールオーバー クラスター インスタンス
                                        • FCI のフェールオーバー プロセス
                                        • FCI の強化
                                            • データベースの可用性
                                              • AlwaysOn 可用性グループ
                                                • 可用性レプリカとロール
                                                • 可用性レプリカの同期
                                                  • 可用性グループのフェールオーバー
                                                  • 可用性グループ リスナー
                                                    • アプリケーションの目的によるフィルター処理
                                                    • アプリケーションの目的の読み取り専用ルーティング
                                                      • 可用性の向上 ndash データベース
                                                        • クライアント接続の推奨事項
                                                          • 結論
Page 18: 高可用性と災害復旧の概念download.microsoft.com/download/6/B/E/6BE0C3F3-2991-4766... · Web view高可用性と災害復旧のソリューションのために最適なデータベース

SQL Server AlwaysOn ソリューションでは次のような WSFC ストレージ構成の組み合わせを利用しその制限も受けます

直接接続とリモートストレージ デバイスはサーバーに物理的に直接接続されるかまたはネットワークやホスト バス アダプター (HBA) を介してリモートのストレージ デバイスを使用しますリモート ストレージのテクノロジにはiSCSI やファイバー チャネルなどのストレージ エリア ネットワーク (SAN) ベースのソリューションとサーバー メッセージ ブロック (SMB) というファイル共有ベースのソリューションがあります

対称と非対称ストレージ デバイスの論理ディスク ボリューム構成とファイル パスがクラスターの各ノードでまったく同じである場合それらのストレージ デバイスは対称的であると見なされます基になるディスク ボリュームの物理的な実装と容量は異なっていてもかまいません

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 13

専用と共有専用ストレージは使用するために予約されクラスター内の 1 つのノードに割り当てられます共有ストレージはクラスターの複数のノードからアクセスできます共有ストレージ デバイスが SCSI-3 プロトコルに準拠していればそれらの制御と所有権をノード間で移動させることができますWSFC ではファイル共有のためにクラスター共有ボリュームを同時に複数のノードでホスティングできますただしSQL Server は複数のノードからの共有ボリュームへの同時アクセスをサポートしていません

注 SQL Server FCI では対称共有ストレージを使用してインスタンスのすべてのノード所有者 (およびその候補) からアクセスできるようにする必要がありますただしAlwaysOn 可用性グループの導入に伴いそれぞれが独自に専用のローカルまたはリモート ストレージを持つ非 FCI の SQL Server インスタンスを WSFC クラスターに配置できるようになりました

WSFC リソースの正常性の検出とフェールオーバーWSFC クラスター ノード内の各リソースの状態と正常性は定期的にまたは要求に応じて報告されますクラスター リソースの障害を示す状況としてはたとえば電源障害ディスクまたはメモリのエラーネットワーク通信エラー構成エラー応答しないサービスなどがあります

ネットワークストレージサービスなどの WSFC クラスター リソースは互いに依存するように構成できますあるリソースの累積的な正常性は依存関係を持つリソースの正常性を連続的にたどってゆくことで決定されます

AlwaysOn 可用性グループでは可用性グループと可用性グループ リスナーがそれぞれ WSFC クラスター リソースとして登録されますAlwaysOn フェールオーバー クラスター インスタンスではSQL Server サービスおよび SQL Server エージェント サービスが WSFC クラスター リソースとして登録されどちらもインスタンスの仮想ネットワーク名リソースに依存します

WSFC クラスター リソースで設定された数のエラーまたは障害が一定期間内に発生した場合構成されたフェールオーバー ポリシーによってクラスター サービスは次のいずれかの操作を行います

現在のノードでのリソースの再起動 リソースをオフライン化 リソースとその依存関係を別のノードへ自動的にフェールオーバー

注 WSFC クラスター リソースの正常性の検出は個々のノードの正常性やクラスターの全体的な正常性には直接影響しません

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 14

WSFC のクラスター検証ウィザードクラスター検証ウィザードはWindows Server 2008 および Windows Server 2008 R2 のフェールオーバー クラスタリングに統合されている機能ですこれはSQL Server AlwaysOn ソリューションの配置前 にクリーンで正常な安定した WSFC 環境が存在していることをデータベース管理者が確認するために使用する主要なツールです

クラスター検証ウィザードではクラスターのノードとして使用するサーバーの集合または既存のクラスターを対象にして一連のテストを実行できますこのプロセスでは基になるハードウェアおよびソフトウェアが個別に直接テストされWSFC クラスターが特定の構成でどの程度良好にサポートされるかについての正確な評価が得られます

この検証プロセスでは各ノードに対して次のようなカテゴリの一連のテストとデータ収集が実施されます

一覧作成BIOS のバージョン環境レベルホスト バス アダプターRAMオペレーティング システムのバージョンデバイスサービスドライバーなどの情報です

ネットワークNIC のバインド順序ネットワーク通信IP 構成ファイアウォール構成などの情報ですすべての NIC でノード間の通信が検証されます

ストレージディスクドライブの容量アクセス待機時間ファイル システムなどの情報ですSCSI コマンドディスク フェールオーバー機能対称的または非対称的なストレージ構成が検証されます

システム構成Active Directory の構成ドライバーの登録メモリ ダンプの設定必要なオペレーティング システムの機能とサービス互換性のあるプロセッサ アーキテクチャおよびサービス パックと Windows Software Update のレベルが検証されます

これらの検証テストの結果を利用してクラスターの構成を微調整したり構成を追跡したりダウンタイムを引き起こすかもしれない潜在的なクラスター構成の問題を特定したりできますテスト結果のレポートは後で参照できるようにHTML ドキュメントとして保存できます

これらのテストはWSFC の構成に何か変更を加える前と加えた後に実行するほかSQL Server をインストールする前および災害復旧プロセスの一環として実行する必要がありますマイクロソフトで特定の WSFC クラスター構成がサポートされるためにはマイクロソフト カスタマー サポート サービス (CSS) にクラスター検証レポートを提出する必要があります

詳細については「フェールオーバー クラスター ステップ バイ ステップ ガイド フェール オーバー クラスター用ハードウェアを検証する」(httptechnetmicrosoftcomja-jplibrarycc732035(WS10)aspx) を参照してください

注 ハードウェアベースの地理的クラスタリング ストレージ ソリューションの場合やAlwaysOn 可用性グループの場合のようにクラスター構成に非対称ストレージがあるとクラスター検証ウィザードでストレージの検証手順を成功させるために多数の修正プログラムを適用しなければならないことがあります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 15

詳細については「AlwaysOn 可用性グループの前提条件制限事項および推奨事項 」(httpmsdnmicrosoftcomja-jplibraryff878487(SQL110)aspxSystemReqsForAOAG) を参照してください

WSFC クォーラム モードと投票の構成WSFC ではクォーラム ベースのアプローチを使用してクラスターの全体的な正常性を監視することでノード レベルのフォールト トレランスを最大限に高めますWSFC のクォーラム モードおよびノード投票構成の基本について理解することはAlwaysOn 高可用性災害復旧ソリューションの設計運用トラブルシューティングのために非常に重要です

クォーラムによるクラスター状態検出WSFC クラスター内の各ノードは定期的なハートビート通信に参加しノードの正常性状態を他のノードと共有します応答しないノードはエラー状態であると見なされます

クォーラム ノード セットとはWSFC クラスター内の投票ノードおよび監視サーバーのうち過半数を占めるノードの集合ですWSFC クラスターの全体的な正常性と状態は定期的なクォーラムの投票 によって決定されますクォーラムはクラスターが正常でありノード レベルのフォールト トレランスを提供できることを意味します

クォーラムに達していない状態はクラスターが正常でないことを示しますプライマリ ノードのフェールオーバー先として正常なセカンダリ ノードを使用できるようにするにはWSFC クラスターの全体的な正常性が維持されている必要があります投票数がクォーラムに達しなかった場合にはWSFC クラスター全体が予防策としてオフラインに設定されますその場合クラスターに登録されている SQL Server インスタンスがすべて停止します

注 クォーラム障害のために WSFC クラスターがオフラインに設定されるとオンラインに戻すために手動の操作が必要です詳細については後の「WSFC の強制クォーラムによる災害 復旧」のセクションを参照してください

クォーラム モードクォーラム モードはWSFC クラスター レベルで構成されクォーラム投票の方法を指定しますフェールオーバー クラスター マネージャー ユーティリティではクラスター内のノード数に基づいて推奨するクォーラム モードが提示されます

次のいずれかのクォーラム モードによって投票クォーラムの構成が決定されます

ノード マジョリティクラスターが正常であるためにはクラスター内の半分以上の投票ノードが肯定的に投票する必要があります

ノードおよびファイル共有マジョリティノード マジョリティ クォーラム モードに似ていますがリモート ファイル共有も投票監視サーバーとして構成され各ノードからそのリモート ファイル共有への接続も肯定的な投票としてカウントされますクラスターが正常であるためには投票の過半数が肯定的である必要があります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 16

推奨事項として監視ファイル共有はクラスター内のノードに存在せずクラスター内のすべてのノードから見える必要があります

ノードおよびディスク マジョリティノード マジョリティ クォーラム モードに似ていますが共有ディスク クラスター リソースも投票監視サーバーとして使用され各ノードからその共有ディスクへの接続も肯定的な投票としてカウントされますクラスターが正常であるためには投票の過半数が肯定的である必要があります

ディスクのみ共有ディスク クラスター リソースが監視サーバーとして使用され各ノードからその共有ディスクへの接続が肯定的な投票としてカウントされます

詳細については「フェールオーバー クラスター ステップ バイ ステップ ガイド フェール オーバー クラスターのクォーラムの構成」(httptechnetmicrosoftcomja-jplibrarycc770620(WS10)aspx) で説明されています

注 クラスターの各ノードが同じ共有ストレージ クォーラム監視ディスクを使用するように構成されていない限り通常投票ノード数が奇数の場合は ノード マジョリティ クォーラム モード投票ノード数が偶数の場合は ノードおよびファイル共有マジョリティ クォーラム モードを使用してください

投票ノードと非投票ノード既定ではWSFC クラスター内の各ノードがクラスター クォーラムのメンバーとなります各ノードファイル共有監視サーバーディスク監視サーバーがクラスターの全体的な正常性の決定においてそれぞれ 1 票ずつの投票権を持ちますクォーラムに関するここまでの説明ではクラスター状態について投票する WSFC クラスター ノードのセットを投票ノードとして注意深く限定してきました状況によってはすべてのノードに投票権を与えることが適切でない場合もあります

WSFC クラスターの各ノードはクォーラムを確立しようとし続けますクラスター内の個々のノードはクラスターが全体として正常であるか正常でないかを明確に決定することはできません特定の時点で各ノードからは他のノードの一部がオフラインフェールオーバー中またはネットワーク通信のエラーにより応答不能に見えますクォーラム投票の主な機能はWSFC クラスターの各ノードの見かけの状態が本当にそれらのノードの実際の状態であるかどうかを判断することです

ディスクのみ 以外のすべてのクォーラム モデルではクォーラム投票の有効性はクラスター内のすべての投票ノード間に信頼できる通信が確立されていることに依存しますすべてのノードが同じ物理サブネット上にある場合はクォーラムの投票を信頼できます

しかしクォーラム投票で他のサブネット上のノードが応答しないように見えても実際はオンラインで正常である場合はサブネット間のネットワーク通信のエラーが原因であることが考えられますクラスター トポロジクォーラム モードおよびフェールオーバー ポリシーの構成によってはネットワーク通信エラーによって投票ノードのセット (またはサブセット) が実質的に複数作成されてしまう可能性があります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 17

投票ノードの複数のサブセットがそれぞれ独自のクォーラムを構築できる状態はスプリット ブレイン と呼ばれますこの状態では各クォーラム上のノードが別々の動作をし相互に矛盾する可能性があります

注 スプリット ブレイン の状況が発生するのはシステム管理者が強制クォーラム動作を手動で実行するかまたは非常にまれですが強制的な手動フェールオーバーを実行することでクォーラム ノード セットが明示的に細分化された場合のみです詳細については後の「WSFC の強制クォーラムによる災害復旧 」のセクションを参照してください

クォーラム構成を単純化し稼働時間を長くする目的でノードの投票がクォーラムにカウントされないように各ノードの NodeWeight 設定 (値 0 または 1) を調整することができます

クォーラム投票に推奨される調整以下のガイドラインをこの順番に適用することでクラスターに対して推奨されるクォーラム投票の構成を判断できます

1 既定は投票権なしにします明確な理由がない限り各ノードには投票権を与えないと考えてください

2 すべてのプライマリ ノードに投票権を与えますAlwaysOn 可用性グループのプライマリ レプリカをホストする各ノードおよび AlwaysOn フェールオーバー クラスター インスタンスの優先所有者である各ノードは投票権を持つ必要があります

3 可能性のある自動フェールオーバーの所有者を含めます自動フェールオーバーの結果としてプライマリ レプリカまたは FCI をホストする可能性がある各ノードは投票を持つ必要があります

4 セカンダリ サイト ノードを除外します通常はセカンダリ災害復旧サイトに存在するノードには投票を提供しないでくださいプライマリ サイトに問題がない場合クラスターをオフラインにする判断にセカンダリ サイト内のノードが影響を与えることは避ける必要があります

5 投票数を奇数にします必要に応じて監視ファイル共有監視ノード (SQL Server インスタンスの有無は問いません)または監視ディスクをクラスターに追加してクォーラム モードを調整しクォーラムの投票結果が同数に分かれるのを防ぎます

6 フェールオーバー後の投票割り当てを再評価します正常なクォーラムをサポートしないクラスター構成にフェールオーバーすることは避けます

ノードの投票の調整の詳細については「クラスター クォーラムの NodeWeight の設定の構 成」(httpmsdnmicrosoftcomja-jplibraryhh270281(SQL110)aspx) を参照してください

ファイル共有監視サーバーの投票は調整できませんその投票を含めるか除外するかを決めるには別のクォーラム モードを選択する必要があります

注 SQL Server ではWSFC クラスター構成およびノード クォーラム投票に関する設定を管理するためにいくつかのシステム動的管理ビュー (DMV) が公開されています

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 18

詳細については「可用性グループの監視」(httpmsdnmicrosoftcomja-jplibraryff878305(SQL110)aspx) を参照してください

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 19

WSFC の強制クォーラムによる災害復旧通常クォーラム障害は災害発生時または WSFC クラスター内の複数のノード間で永続的な通信障害が生じた場合に発生しますクォーラム障害が発生するとクラスターがノード レベルのフォールト トレランスを確保できなくなるためその WSFC クラスター内の SQL Server インスタンス可用性グループおよびクラスター化されているサービスがすべてオフラインになりますクォーラム障害はWSFC クラスター内の正常な投票ノード数がクォーラム モデルを満たさなくなったことを意味しますノードによってまったく機能しなくなるものもあればWSFC サービスがシャットダウンしただけでクォーラムと通信できなくなったことを除けば正常なものもあります

WSFC クラスターをオンラインに戻すには既存の構成の少なくとも 1 つのノードでクォーラム障害の根本的な原因を解決する必要があります災害発生時には使用できる代替ハードウェアの再構成や識別が必要となる場合もあります現状のクラスター トポロジを反映するためにWSFC クラスターの残りのノードを再構成する場合もあります

WSFC クラスター ノードで強制クォーラムの手順を使用するとクラスターがオフラインになる原因となった安全管理機能を無効にすることができますこれによりクラスターでのクォーラム投票のチェックが実質的に中断されクラスター内の任意のノードで WSFC クラスター リソースと SQL Server をオンラインに戻すことができます

このような災害復旧プロセスの手順を次に示します

1) 障害の範囲を特定します応答しない可用性グループや SQL Server インスタンス災害後に使用できるオンラインのクラスター ノードをそれぞれ特定しWindows イベント ログと SQL Server システム ログを確認します必要に応じて後で分析できるように解析データやシステム ログを保存しておきます

2) 1 つのノードで強制クォーラムを使用して WSFC クラスターを起動します他の点では正常なノードで強制クォーラムの手順に従ってクラスターを手動で強制的にオンラインにしますこの場合データ損失の可能性を最小限に抑えるには可用性グループのプライマリ レプリカを最後にホストしていたノードを選択します

詳細については「クォーラムを使用せずに WSFC クラスターを強制的に起動する 」(httpmsdnmicrosoftcomja-jplibraryhh270275(v=SQL110)aspx) を参照してください

注 強制クォーラムの設定を使用するとWSFC クラスターの投票が過半数に達することで通常のクォーラム モードの動作に自動的に切り替わるまでクラスター全体のクォーラムのチェックがブロックされます

3) 他の点では正常な各ノードでWSFC サービスを 1 つずつ通常の方法で起動します他のノードでクラスター サービスを起動するときは強制クォーラム オプションを指定する必要はありません

各ノードの WSFC サービスがオンラインに戻ると他の正常なノードとの間でネゴシエーションが行われ新しいクラスター構成の状態が同期されますクラスターの最新の状態

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 20

を判断するときに競合状態の発生を避けるためこの手順は必ず一度に 1 つのノードで行うようにしてください

注 起動した各ノードが新たにオンラインにした他のノードと通信できることを確認しますそうしないと複数のクォーラム ノード セットが作成されて スプリット ブレイン の状況に陥るおそれがあります手順 1 の結果に問題がなければこの現象は発生しません

4) 新しいクォーラム モードとノードの投票の構成を適用します強制クォーラムの手順によってクラスターのすべてのノードを正常に再起動させクォーラムのエラーの根本原因を修正した場合クォーラム モードとノードの投票を元の構成から変更する必要はありません

それ以外の場合は新たに復元されたクラスター ノードと可用性レプリカのトポロジを評価し必要に応じてクォーラム モードと各ノードの投票割り当てを変更します未復旧のノード上ではWSFC クラスター サービスをオフラインにするかノードの投票をゼロに設定します

注 この時点でクラスター内のノードと SQL Server インスタンスが通常の動作に戻っているように見えることがありますがまだ正常なクォーラムには達していない可能性がありますフェールオーバー クラスター マネージャーやSQL Server Management Studio の AlwaysOn ダッシュボードまたは適切な DMV を使用して正常なクォーラムが復元されたことを確認してください

5) 必要に応じて可用性グループのデータベース レプリカを復旧します一部のデータベースはSQL Server の通常の起動処理の一環として自動的に復旧されオンラインに戻ることがありますそれ以外のデータベースの復旧には追加で手動の手順を実行する必要があります

可用性グループ レプリカのデータ損失の可能性や復旧にかかる時間を最小限に抑えるにはできればプライマリ レプリカ同期セカンダリ レプリカ非同期セカンダリ レプリカの順にオンラインに戻します

6) 障害が発生したコンポーネントを修復するか交換しクラスターを再検証しますこれで最初の災害およびクォーラム障害から復旧できたので障害が発生したノードを修復するか交換しWSFC と AlwaysOn の関連する構成を適切に調整する必要がありますこれには可用性グループ レプリカの削除クラスターからのノードの削除ノードへのソフトウェアの再インストールなどが含まれます

注 停止したすべての可用性レプリカを修復または削除する必要がありますSQL Server 2012 では最も古い可用性レプリカを最後に認識した時点以降トランザクション ログが切り捨てられません停止したレプリカを修復するか可用性グループから削除しないとトランザクション ログが大きくなり他のレプリカのトランザクション ログの領域が不足する可能性があります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 21

7) 必要に応じて手順 4 を繰り返しますこの目的は正常な動作を行うために適切なレベルのフォールト トレランスと高可用性を再確立することです

8) RPORTO 分析を実行しますSQL Server のシステム ログデータベースのタイムスタンプおよび Windows のイベント ログを分析して障害の根本的な原因を特定し実際の復旧ポイントと復旧時間を文書に記録します

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 22

SQL Server インスタンス レベルでの保護次に説明する AlwaysOn ソリューションの保護レイヤーはデータ プラットフォームそれ自体ですMicrosoft SQL Server 2012 とその Windows Server インフラストラクチャ コンポーネントとの統合によって次のような機能が提供されます

可用性の向上 ndash SQL Server インスタンスこれは SQL Server 2012 の新しいインスタンス レベルの機能でAlwaysOn フェールオーバー クラスター インスタンスとAlwaysOn 可用性グループをホストするスタンドアロン インスタンスの両方の可用性を強化します

以下の強化点によってフェールオーバーの管理およびトラブルシューティングが向上します

柔軟なフェールオーバー ポリシー信頼性の高いエラー検出に使用される新しいシステム ストアド プロシージャ sp_server_diagnostics の出力でSQL Server インスタンスに影響するエラーの重大度が FailureConditionLevel プロパティによって示されますWSFC のフェールオーバー ポリシーによってこの値が SQL Server インスタンスにどのように影響するかを制御できますある程度エラーを許容する設定からSQL Server の内部コンポーネント エラーを重点的に検出する設定までさまざまに構成できます

特定のレベルのエラーによってフェールオーバーを開始するように構成できますエラーのレベルにはサーバーの停止サーバーの応答停止重大なエラー中程度のエラーなんらかの条件付きエラーなどがありますFailureConditionLevel プロパティはFCI または可用性グループのフェールオーバー ポリシーのために使用できます

SQL Server 2012 よりも前のバージョンではフェールオーバーを制御できるようなエラー状態の区分がなくすべてのサービス レベルのエラーによってフェールオーバーが発生しました

詳細については「フェールオーバー クラスター インスタンスのフェールオーバー ポリシー」(httpmsdnmicrosoftcomja-jplibraryff878664(SQL110)aspx) を参照してください

強化されたインストルメンテーションとログAlwaysOn 専用のシステム構成ビューDMVパフォーマンス カウンターに加えて拡張されたイベント正常性セッションによってAlwaysOn 配置のトラブルシューティングチューニングおよび監視に必要な情報を取得して表示できますこれらの多くはSQL Server ポリシー管理の新しいファセットおよびポリシーを通じて公開されます

詳細については「AlwaysOn 可用性グループの動的管理ビューおよび関 数」(httpmsdnmicrosoftcomja-jplibraryff877943(SQL110)aspx) と「sysdm_os_cluster_nodes」(httpmsdnmicrosoftcomja-jplibraryms187341(SQL110)aspx) を参照してください

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 23

SMB ファイル共有のサポートWindows Server 2008 以降のスタンドアロン用またはフェールオーバー クラスター インスタンス用のリモート ファイル共有にデータベース ファイルを格納することができますこの場合FCI ごとに異なるドライブ文字を使用する必要がありませんこれはストレージを統合する場合やデータベース ファイルのストレージを仮想マシンのゲスト オペレーティング システム用物理サーバーでホストする場合などに便利なオプションです適切に構成すれば直接接続されたストレージとほぼ同等の IO パフォーマンスが得られます

詳細については「ファイル共有上の SQL データベース - シナリオを再検討すべきとき 」(httpblogsmsdncombsqlserverstorageenginearchive20111018sql-databases-on-file-shares-it-s-time-to-reconsider-the-scenarioaspx) を参照してください

注 WSFC クラスターではSMB ファイル共有リソースの依存関係を SQL Server リソース グループに追加することはできませんファイル共有の可用性を確保するには別の方法を用いる必要がありますファイル共有が使用できなくなった場合SQL Server は IO 例外をスローしオフラインになります

WSFC と DNS の相互運用性FCI または可用性グループ リスナーの仮想ネットワーク名 (VNN) はVNN の作成時または構成の変更時にのみDNS に登録されますすべての仮想 IP アドレスはオンライン状態かオフライン状態かに関係なく同じ仮想ネットワーク名で DNS に登録されますDNS の仮想ネットワーク名を解決するためのクライアント呼び出しは各種のラウンド ロビン シーケンスによってすべての登録済み IP アドレスを返します

AlwaysOn フェールオーバー クラスター インスタンスSQL Server の AlwaysOn フェールオーバー クラスター インスタンス (FCI) の主な目的は1 つのデータ センター内のローカル サーバーとストレージ ハードウェアでホストされている SQL Server インスタンスの可用性を高めることです

FCI はWindows Server フェールオーバー クラスタリング (WSFC) のクラスターに含まれる複数のノードにまたがってインストールされる1 つの論理的な SQL Server インスタンスですただし一度に 1 つのノードだけでアクティブになることができますクライアント アプリケーションはアクティブなクラスター ノードが所有している仮想ネットワーク名および仮想 IP アドレスに接続します

FCI をインストールした各ノードは同一の構成を持ち同一の SQL Server バイナリを含んでいますWSFC クラスター サービスはアクティブなインスタンス上にある Windows レジストリのエントリからFCI をインストールした各ノードに関連のある変更をレプリケートしますFCI がインストールされている各ノードはインスタンスとそのリソースの所有者の候補として指定されフェールオーバーの優先順位に従って所有者となります

共有対称ストレージ ボリュームに格納されているデータベース ファイルはリソースとして WSFC クラスターに登録され現在 FCI をホストしているノードによって所有されます

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 24

詳細については「AlwaysOn フェールオーバー クラスター インスタン ス」(httpmsdnmicrosoftcomja-jplibraryms189134(SQL110)aspx) を参照してください

FCI のフェールオーバー プロセス依存しているクラスター リソースで障害が発生した場合AlwaysOn フェールオーバー クラスター インスタンスはWSFC クラスター サービスと連携してフェールオーバーを行いますそのプロセスの概要を以下に示します

1) 再起動が指示されますWSFC の定期的なチェックまたは SQL Server のフェールオーバー ポリシー構成によってエラー状態が示されます既定では他のノードへのフェールオーバーを開始する前にサービスの再起動が試みられます再起動の試みがタイムアウトするようであればリソースの障害が発生しています

2) フェールオーバーが指示されますフェールオーバー ポリシー チェックによってノードのフェールオーバーが必要であることが示されます

3) SQL Server サービスが停止されますSQL Server サービスが現在実行されている場合はその正常なシャットダウンが試みられます

4) WSFC クラスター リソースが転送されますSQL Server クラスター リソース グループの所有権とそれが依存するネットワークおよび共有ストレージ リソースがFCI で次に優先されるノード所有者に転送されます

5) 新しいノードで SQL Server が起動されますSQL Server インスタンスは通常のスタートアップ プロシージャで起動されます所定のタイムアウト時間内にオンラインに戻らない場合クラスター サービスはこの新しいノード上のリソースをエラー状態と見なします

6) 新しいノードでユーザー データベースが復旧されます各ユーザー データベースは復旧モードに設定されます復旧モードではトランザクション ログの再実行操作が適用されコミットされていなかったトランザクションがロールバックされます

FCI の強化以前のバージョンの SQL Server でも FCI のインストール オプションは用意されていましたがSQL Server 2012 では次のような機能強化によって可用性の堅牢性と利便性が向上しました

マルチサブネット クラスタリングSQL Server 2012 では複数のサブネットに存在する WSFC クラスター ノードがサポートされていますWSFC クラスター ノードに存在する SQL Server インスタンスはいずれかのネットワーク インターフェイスが使用可能であれば起動できますこれはクラスター リソースの OR 依存関係と呼ばれます

以前のバージョンの SQL Server の場合SQL Server サービスを起動またはフェールオーバーするにはすべてのネットワーク インターフェイスが機能しそれらがすべて同じサブネットまたは VLAN に存在している必要がありました

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 25

注 マルチサブネット クラスタリングではクラスター ノード間のストレージ レベルのレプリケーションが自動的には有効になりませんマルチサブネットの FCI ソリューションでクラスター ノード間でデータのレプリケーションを行いストレージ フェールオーバーを調整するためにはサード パーティから提供される SAN ベースのソリューションを利用する必要があります

詳細については「SQL Server 2012 AlwaysOn マルチサイト フェールオーバー クラスター インスタンス」(httpsqlcatcomsqlcatbwhitepapersarchive20111222sql-server-2012-alwayson_3a00_-multisite-failover-cluster-instanceaspx) を参照してください

信頼性の高いエラー検出WSFC クラスター サービスではノードの各 SQL Server 2012 FCI に対してそれぞれ専用の管理者接続が維持されますこの接続では特殊なシステム ストアド プロシージャ sp_server_diagnostics を定期的に呼び出すことでシステムの正常性診断に役立つ豊富な情報を含む配列が返されます

SQL Server 2012 よりも前のバージョンではFCI の主な正常性検出メカニズムは単純な一方向のポーリング プロセスとして実装されていましたこのプロセスではWSFC クラスター サービスがインスタンスへの新しい SQL クライアント接続を定期的に作成しサーバー名を照会した後で接続を切断していました何かの理由で接続が失敗するかクエリがタイムアウトした場合フェールオーバーが開始されますが診断情報はほとんど提供されません

詳細については「sql_server_diagnostics」(httpmsdnmicrosoftcomja-jplibraryff878233(SQL110)aspx) を参照してください

現在ではFCI ストレージが次のように幅広い状況でサポートされています

向上したマウント ポイント サポートSQL Server のセットアップ時にクラスター ディスクのマウント ポイント設定が認識されるようになりました指定されたクラスター ディスクとそれにマウントされているすべてのディスクがセットアップ時に SQL Server リソースの依存関係に自動的に追加されます

ローカル ストレージの tempdbFCI ではローカルの非共有ストレージ (ローカル ソリッド ステート ドライブなど) に tempdb を配置できるようになったため共有 SAN での IO 動作の負荷を大幅に軽減できる可能性があります

SQL Server 2012 よりも前のバージョンの FCI ではtempdb が他のシステム データベースと共にフェールオーバーされる対称共有ストレージ ボリュームに配置される必要がありました

注 tempdb の場所はmaster データベースに格納されますこのデータベースはフェールオーバー時にノード間で移動されますtempdb は所有者候補となっているすべてのノード上で有効で対称的なファイル パス (ドライブフォルダーおよび権限) に配置されている必要がありますそうなっていない場合SQL Server サービスが一部のノードでは起動されません

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 26

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 27

データベースの可用性インフラストラクチャ レベルおよび SQL Server インスタンス レベルのコンポーネントで提供されている高可用性機能は互いに連係してホストされているデータベースを暗黙的に保護しますAlwaysOn ソリューションではデータベースのデータおよびデータ層アプリケーションを明示的に保護するために一連のオプションが追加で用意されています

AlwaysOn 可用性グループ可用性グループは1 つの SQL Server インスタンスから同じ WSFC クラスター内の別のインスタンスへと同時にフェールオーバーされるユーザー データベースのセットですクライアント アプリケーションは可用性グループ リスナーと呼ばれる WSFC 仮想ネットワーク名を通じて可用性グループのデータベースに接続できますこうすることで基になる SQL Server インスタンスが抽象化されます

AlwaysOn 可用性グループは正常性監視フェールオーバーの調整およびサーバー接続を Windows Server フェールオーバー クラスタリングに依存していますWSFC クラスター ノード上の SQL Server インスタンスでAlwaysOn サポートを有効にする必要がありますただしそのインスタンスが FCI である必要はなく対称共有ストレージを使用する必要もありません

詳細については「AlwaysOn 可用性グループの概要 」(httpmsdnmicrosoftcomja-jplibraryff877884(SQL110)aspx) を参照してください

可用性レプリカとロール可用性グループの各 SQL Server インスタンスは可用性グループのユーザー データベースのコピーを保持している可用性レプリカをホストしますSQL Server インスタンスは特定の可用性グループの可用性レプリカを 1 つだけホストすることができますが複数の可用性グループを同じインスタンスに置くことは可能ですSQL Server インスタンスは専用の (非共有) ストレージ ボリュームを持つ必要があります

可用性レプリカの 1 つがプライマリ レプリカの役割を果たしますこれは可用性グループ データベースのマスター コピーとして指定されていて読み取り書き込み操作を行うことができます

可用性グループには読み取り専用の可用性レプリカを最大 4 つまで追加で含めることができますこれらは個別にセカンダリ レプリカの役割を果たします

可用性レプリカの同期可用性グループの各データベースの内容はSQL Server によるログ ベースのデータ移動メカニズムを通じてプライマリ レプリカから各セカンダリ レプリカに同期されますそのため可用性グループのすべてのデータベースは完全復旧モデルに設定する必要があります

セカンダリ レプリカはプライマリ レプリカのデータベースとトランザクション ログの完全なバックアップと復元によって初期化されますプライマリ レプリカで新しいトランザクションがコミットされるとトランザクション ログの対応する部分がキャッシュされ

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 28

キューに入れられてネットワーク経由でセカンダリ レプリカ ノード上のデータベース ミラーリング エンドポイントに送信されます

この方法によりプライマリ レプリカのトランザクション ログの新しいエントリが各セカンダリ レプリカのトランザクション ログに追加されます各セカンダリ レプリカはログ シーケンス番号 (LSN) をプライマリ レプリカに定期的に送り返しトランザクション ログのどのくらいの量がリモート ディスクに書き込まれフラッシュされたかを示します

注 各可用性レプリカはそれぞれ独自に独立したトランザクション ログ再実行スレッドのセットを保持していますこれは可用性レプリカの同期プロセスには含まれませんセカンダリ レプリカ上ではログ再実行プロセスによって遅延時間が生じるためユーザーはそれをデータの待機時間として感じる場合があります

プライマリまたはセカンダリの役割を果たす他に各可用性レプリカには可用性モードもありますこのモードは次のようにCOMMIT TRAN ステートメントの実行時にトランザクション ログの書き込みの連係を制御します

同期コミット モードすべての同期コミット セカンダリ レプリカからそれぞれ独自のトランザクション ログの書き込み完了 (LSN 以降) が通知されるまでプライマリ レプリカはそのトランザクションをコミットしません可用性グループでは最大で 2 つの同期コミット セカンダリ レプリカを使用できます

同期コミット モードではプライマリ レプリカ データベースでトランザクションの遅延が生じますがコミットされたトランザクションに対するセカンダリ レプリカでのデータ損失を確実に防ぐことができます

非同期コミット モードプライマリ レプリカはローカル トランザクション ログの書き込み後にトランザクションをコミットしますが非同期コミット セカンダリ レプリカからトランザクション ログの書き込み完了通知を待つことはしません可用性グループでは最大で 4 つの非同期コミット セカンダリ レプリカを使用できますただし両方の種類を合わせて使用できるセカンダリ レプリカの合計は最大 4 つです

非同期コミット モードではプライマリ レプリカ データベースで生じるトランザクションの遅延が最小になりますがセカンダリ レプリカでのトランザクション ログが遅れる場合があるため一部のデータが失われる可能性があります

詳細については「可用性モード」(httpmsdnmicrosoftcomja-jplibraryff877931(SQL110)aspx) を参照してください

可用性レプリカ間のデータ フローの全体的な正常性は各レプリカの同期状態によって示されますセカンダリ レプリカにフェールオーバーしたときに同期状態が 同期済み または 同期中 になっていなければほとんどの場合はデータ損失が発生することになります

各セカンダリ レプリカの同期ストリームにはセッション タイムアウト プロパティがあります同期コミット モードに構成されているセカンダリ レプリカがセッション タイムアウトでエラーになると内部的には一時的に非同期としてマークされますこれはセカンダ

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 29

リ レプリカのエラーがプライマリ レプリカでのトランザクション ログの書き込みに影響しないようにするためですそのセカンダリ レプリカが正常に戻ってプライマリ レプリカの状態に追いつくと自動的に通常の同期コミット モード動作に戻されます

可用性グループのフェールオーバー可用性グループとそれに対応する仮想ネットワーク名はWSFC クラスターのリソースとして登録されます可用性グループはプライマリ レプリカの正常性とフェールオーバー ポリシーに基づいて可用性レプリカのレベルでフェールオーバーを行います

可用性グループのフェールオーバー ポリシーではsp_server_diagnostics システム ストアド プロシージャと FailureConditionLevel プロパティを使用して可用性グループに対して許容されるエラーの重大度のレベルを示しますこの同じメカニズムがFCI のフェールオーバー ポリシーにも使用されます

フェールオーバーが発生した場合は共有物理リソースの所有権を他のノードに移す代わりにWSFC を利用して他の SQL Server インスタンス上でセカンダリ レプリカを再構成しプライマリ レプリカの役割を引き継がせますその後可用性グループの仮想ネットワーク名リソースがそのインスタンスに転送されます関連する可用性レプリカへのすべてのクライアント接続がリセットされます

レプリカの現在の正常性同期状態および可用性モードに基づいて各レプリカには複合的な フェールオーバーの準備 状態が定義されますこの状態の値はデータ損失の可能性を示していますレプリカの正常性情報はAlwaysOn ダッシュボードまたは sysdm_hadr_availability_replica_states システム ビューで確認できます

各可用性レプリカにはフェールオーバー モードも構成されていますこのモードはフェールオーバーが指示された場合にレプリカの動作を制御します

自動フェールオーバー (データ損失なし)セカンダリ レプリカのトランザクション ログが既に書き込まれ同期されているのですべての AlwaysOn 構成の中でフェールオーバー時間が最短になりますプライマリ レプリカ上の開かれているトランザクションはロールバックされプライマリ レプリカの役割はユーザーによる操作なしでセカンダリ レプリカに転送されます

この場合プライマリ レプリカとセカンダリ レプリカの両方を自動フェールオーバー モードに設定し両方の可用性モードを同期コミットに設定する必要がありますレプリカ間の同期状態は同期済み である必要がありますまたWSFC クラスターは正常なクォーラム状態になっている必要があります

自動フェールオーバーはプライマリ レプリカまたはセカンダリ レプリカが FCI 上にある場合はサポートされませんこれは可用性グループと FCI のフェールオーバー間で競合状態が発生することを防ぐためです

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 30

手動フェールオーバーこの場合管理者はプライマリ レプリカの状態を評価してセカンダリ レプリカにフェールオーバーするかどうかを慎重に判断できます

可用性モードと同期状態に応じて次のような選択が可能です

o 計画的な手動フェールオーバー (データ損失なし)この種類のフェールオーバーを実行できるのはプライマリ レプリカとセカンダリ レプリカの両方が正常で同期済み 状態である場合だけですこれは機能的には自動フェールオーバーと同じです

o 強制手動フェールオーバー (データ損失の可能性を許容)これは対象のセカンダリ レプリカの可用性モードが非同期コミットである場合またはプライマリ レプリカに同期されない場合に使用できる唯一のフェールオーバー形式です

警告 このフェールオーバー オプションは災害復旧の状況に限って使用する必要がありますプライマリ レプリカが正常で使用可能である場合は関連する各レプリカの可用性モードを同期コミットに変更し計画的な手動フェールオーバーを実行してください

詳細については「可用性グループの強制手動フェールオーバーの実行」(httpmsdnmicrosoftcomja-jplibraryff877957(SQL110)aspx) を参照してください

フェールオーバー対象のプライマリ レプリカまたはセカンダリ レプリカが次の条件のいずれかに該当する場合は手動フェールオーバーを実行する必要があります

フェールオーバー モードが手動に設定されている 可用性モードが非同期コミットに設定されている レプリカが FCI 上にある

詳細については「フェールオーバーとフェールオーバー モード (AlwaysOn 可用性グルー プ ) 」(httpmsdnmicrosoftcomja-jplibraryhh213151(SQL110)aspx) を参照してください

注 フェールオーバー後新しいプライマリ レプリカが同期コミット モードに設定されていない場合セカンダリ レプリカの同期状態は 中断状態 になりますプライマリ レプリカが同期コミット モードに設定されるまでデータはセカンダリ レプリカに移動されません

可用性グループ リスナー可用性グループ リスナーはクライアントが可用性グループ内のデータベースにアクセスするために使用できる WSFC 仮想ネットワーク名 (VNN) ですVNN クラスター リソースはプライマリ レプリカをホストしている SQL Server インスタンスによって所有されます

仮想ネットワーク名は可用性グループ リスナーの作成時または構成の変更時にのみDNS に登録されます可用性グループ リスナーで定義されているすべての仮想 IP アドレスは同じ仮想ネットワーク名で DNS に登録されます

可用性グループ リスナーを使用する場合クライアント接続要求ではサーバーとして仮想ネットワーク名を指定してから可用性グループ内のデータベース名を指定する必要があり

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 31

ます既定ではこれによってプライマリ レプリカをホストしている SQL Server インスタンスに接続されます

実行時にはクライアントはローカルの DNS リゾルバーを使用して仮想ネットワーク名にマップされている IP アドレスと TCP ポートの一覧を取得しますクライアントは各 IP アドレスへの接続を成功するか接続タイムアウトに達するまで試し続けますMultiSubnetFailover パラメーターが true に設定されているとクライアントは複数の接続を同時に試行するのでクライアント フェールオーバーが大幅に速くなります

フェールオーバーが行われるとサーバー上でクライアント接続がリセットされ可用性グループ リスナーの所有権はプライマリ レプリカの役割と共に新しい SQL Server インスタンスに移動しVNN エンドポイントは新しいインスタンスの仮想 IP アドレスと TCP ポートにバインドされます

詳細については「可用性グループ リスナークライアント接続およびアプリケーションのフェールオーバー」(httpmsdnmicrosoftcomja-jplibraryhh213417(SQL110)aspx) を参照してください

アプリケーションの目的によるフィルター処理可用性グループ リスナーを使用して接続している場合アプリケーションは接続の目的がデータの読み取りと書き込みの両方なのか読み取り専用操作を実行するだけなのかを指定できます指定しない場合クライアントのアプリケーションの目的は既定で読み取りと書き込みになります

各可用性レプリカのプライマリ ロールとセカンダリ ロールについてはクライアントのアプリケーションの目的に対する接続レベルのフィルターとして接続アクセス プロパティも指定できます既定ではアプリケーションの目的と接続アクセスとの組み合わせが無効であると接続が拒否されますSQL Server は次のルールを使用してクライアントの接続要求を振り分ける必要があります

可用性レプリカがプライマリ ロールであり接続アクセスが次のいずれかである場合

すべてのアプリケーションの目的を許可するアプリケーションの目的でクライアント接続をフィルター処理しません

明示的な読み取り書き込みの目的だけを許可するクライアントが読み取り専用を指定している場合接続を拒否します

可用性レプリカがセカンダリ ロールであり接続アクセスが次のいずれかである場合

接続を許可しないすべての接続を拒否しますレプリカは災害復旧だけに使用されます

すべてのアプリケーションの目的を許可するアプリケーションの目的でクライアント接続をフィルター処理しません

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 32

読み取り専用の目的を許可するクライアントが読み取り専用を指定していない場合接続を拒否します

詳細については「可用性レプリカでの読み取り専用アクセスの構成」(httpmsdnmicrosoftcomja-jplibraryhh213002(SQL110)aspx) を参照してください

アプリケーションの目的の読み取り専用ルーティングAlwaysOn 可用性グループの特に優れた点はスタンバイ ハードウェア インフラストラクチャを災害復旧以外の目的に利用できることです1 つ以上のセカンダリ レプリカを読み取り専用でアクセスできるように構成するとプライマリ レプリカからかなりの量のワークロードを軽減できます

読み取り専用セカンダリ レプリカに回すように簡単に調整できるワークロードはレポートデータベース バックアップデータベース整合性チェックインデックスの断片化の分析データ パイプライン抽出運用サポート操作サポートアドホック クエリなどです

各可用性レプリカではSQL Server インスタンスのエンドポイントについて順次的な読み取り専用ルーティング リストを構成することもできますこのリストはレプリカがプライマリ ロールであるときに適用されますこのリストが存在する場合アプリケーションの目的が読み取り専用と指定されているクライアント接続要求はそのリスト内に記載されていて前述のアプリケーションの目的フィルターに適合する最初のセカンダリ レプリカにリダイレクトされます

注 読み取り専用ルーティングによるリダイレクトはプライマリ レプリカにバインドされている可用性グループ リスナーによって実行されますプライマリ レプリカがオフラインの場合クライアントのリダイレクトは機能しません

詳細については「可用性グループの読み取り専用ルーティングの構成 (SQL Server) 」(httpmsdnmicrosoftcomja-jplibraryhh710054(SQL110)aspx) を参照してください

可用性の向上 ndash データベースSQL Server 2012 ではデータベースの構成と機能に関してさまざまな点が強化されています

以下の機能は復旧時間の短縮に役立ちます

予測可能な復旧時間データベースごとにターゲット復旧時間の長さを設定することでバックグラウンドで実行される CHECKPOINT コマンドのスケジュールを制御できますこのコマンドは間接的なチェックポイントとして再起動時またはフェールオーバー時にトランザクション ログの復旧に必要となる時間の推定値に基づいて定期的に実行されますそれによってチェックポイントごとに IO 操作がほぼ均等に配分され復旧時間 (RTO) の予測可能性が高まります

SQL Server 2012 よりも前のバージョンではバックグラウンドの CHECKPOINT コマンドがトランザクションの量や負荷とは無関係に一定間隔で実行されていたので復旧時間を予測することはできませんでした

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 33

詳細については「データベース チェックポイント」(httpmsdnmicrosoftcomja-jplibraryms189573(SQL110)aspx) を参照してください

以下の向上点は計画的なダウンタイムが必要になる一般的な状況を減らすのに役立ちます

LOB 列のオンライン インデックス操作varbinary(max)varchar(max)nvarchar(max)または XML データ型の列が含まれているインデックスをオンラインで再構築または再構成できるようになりました

新しい NOT NULL 列のオンライン スキーマ修正既定値を使用して新しい NOT NULL 列を SQL Server 2012 データベース テーブルに追加する場合システム メタデータの更新にはスキーマ ロックだけが必要ですALTER TABLE ステートメントですべての行にデータを設定する必要はありません

いずれかの行で実際に変更またはインデックスの再作成が行われない限り列の既定値は物理的に格納されませんクエリでは列に実際の値が存在しない場合メタデータから既定値を返します

ストレージのサポート強化の例として次のようなものがあります

ページの自動修復ある種のストレージ サブシステム エラーが発生するとデータ ページが破損し読み取り不可能になる場合がありますAlwaysOn 可用性グループではそのような種類のエラーを検出し自動的に復旧できます復旧のために影響を受けたデータ ページの最新のコピーが別の可用性レプリカから非同期で取得され適用されます

以前のバージョンでもデータベース ミラーリングに同様の機能がありましたが新しい機能では複数のレプリカをサポートできるようになっています

詳細については「ページの自動修復」(httpmsdnmicrosoftcomja-jplibrarybb677167(SQL110)aspx) を参照してください

クライアント接続の推奨事項クライアント アプリケーションが Microsoft SQL Server 2012 AlwaysOn テクノロジの利点を十分に活用できるようにするには次のガイドラインに従います

AlwaysOn 対応のクライアント ライブラリ表形式のデータ ストリーム (TDS) プロトコル Version 74 以降をサポートしているクライアント ライブラリを使用しますこれによってAlwaysOn の機能に対応した適切な機能がクライアント側でも提供されますクライアント ライブラリの例としてはData Provider for SQL Server in NET Framework 402SQL Native Client 110 などがあります

接続プロバイダー プロパティ MultiSubnetFailover = True接続文字列にこのキーワードを使用することでクライアント ライブラリでは(複数のサブネットに IP アドレスを持つ) 可用性グループ リスナーまたは FCI に登録されているすべての IP アドレスに同時に接

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 34

続できるようになります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 35

接続プロバイダー プロパティ ApplicationIntent = ReadOnly必要に応じてプライマリ レプリカの読み取り専用ワークロードをセカンダリ レプリカに移管することができます

レガシ クライアントの接続タイムアウトレガシ クライアントのデータベース ライブラリには並列で接続を試行する機能が実装されていないため複数の IP アドレスがある場合にはTCP タイムアウトに達するか正常に接続できるまで1 つずつ順番に接続を試行します

複数の IP アドレスが存在する場合はタイムアウトと再試行が逐次的に繰り返される可能性に備えてレガシ クライアントの接続タイムアウトを調整する必要があります値は少なくとも 15 秒 + 21 秒 times セカンダリ レプリカ数にします

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 36

結論このホワイト ペーパーではSQL Server 2012 の AlwaysOn による高可用性災害復旧ソリューションを使用し予定されたダウンタイムや予定外のダウンタイムを短縮したりアプリケーションの可用性を最大限に高めたりデータを保護したりする方法について基本的なコンテキストを確立しました

高可用性データベース環境の計画管理測定に関連したビジネス上の目的と課題は多くの場合目標復旧時点 (RPO) と目標復旧時間 (RTO) という形で数量化して表すことができます

SQL Server 2012 AlwaysOn は組織が高可用性や災害復旧に関する一般的な状況に対処するための機能をRPO と RTO を適切に達成できることを念頭にインフラストラクチャ レベルデータ プラットフォーム レベルデータベース レベルのそれぞれで提供します

詳細情報

httpwwwmicrosoftcomja-jpsqlserver2012defaultaspx SQL Server Web サイト

httptechnetmicrosoftcomja-jpsqlserver SQL Server TechCenter

httpmsdnmicrosoftcomja-jpsqlserver SQL Server 開発者向け技術情報

このホワイト ペーパーはお役に立ちましたか フィードバックをお寄せください1 (役に立たなかった) ~ 5 (非常に役に立った) の 5 段階で評価してくださいまたその評価の理由もお知らせください以下に例を示します

評価が高い 例が適切図がわかりやすい説明が明快といったことが理由である 評価が低い 例が少ない図がわかりにくい説明があいまいといったことが理由で

ある

このようなフィードバックをお寄せいただくと今後のホワイト ペーパーの品質向上につながります

フィードバックの送信

loz Version 112012 年 2 月 21 日

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 37

  • 高可用性と災害復旧の概念
    • 高可用性について
      • 予定されたダウンタイムと予定外のダウンタイム
      • 段階的な可用性
        • ダウンタイムの定量化
          • 復旧目標
          • ROI または機会費用の正当化
          • 可用性の健全度の監視
          • 災害復旧の計画
            • 概要 Microsoft SQL Server 2012 での高可用性
              • SQL Server AlwaysOn
              • 計画的なダウンタイムの大幅な削減
              • アイドル状態のハードウェアをなくしてコスト効率とパフォーマンスを向上
              • 簡単な配置と管理
              • RPO と RTO の機能比較
                  • SQL Server AlwaysOn の保護レイヤー
                    • インフラストラクチャの可用性
                      • Windows オペレーティング システム
                        • Windows Server Core インストール オプション
                        • プライベート クラウド用の SQL Server の最適化
                          • Windows Server フェールオーバー クラスタリング
                            • WSFC ストレージ構成
                            • WSFC リソースの正常性の検出とフェールオーバー
                              • WSFC のクラスター検証ウィザード
                              • WSFC クォーラム モードと投票の構成
                                • クォーラムによるクラスター状態検出
                                • クォーラム モード
                                • 投票ノードと非投票ノード
                                • クォーラム投票に推奨される調整
                                  • WSFC の強制クォーラムによる災害復旧
                                    • SQL Server インスタンス レベルでの保護
                                      • 可用性の向上 ndash SQL Server インスタンス
                                      • AlwaysOn フェールオーバー クラスター インスタンス
                                        • FCI のフェールオーバー プロセス
                                        • FCI の強化
                                            • データベースの可用性
                                              • AlwaysOn 可用性グループ
                                                • 可用性レプリカとロール
                                                • 可用性レプリカの同期
                                                  • 可用性グループのフェールオーバー
                                                  • 可用性グループ リスナー
                                                    • アプリケーションの目的によるフィルター処理
                                                    • アプリケーションの目的の読み取り専用ルーティング
                                                      • 可用性の向上 ndash データベース
                                                        • クライアント接続の推奨事項
                                                          • 結論
Page 19: 高可用性と災害復旧の概念download.microsoft.com/download/6/B/E/6BE0C3F3-2991-4766... · Web view高可用性と災害復旧のソリューションのために最適なデータベース

専用と共有専用ストレージは使用するために予約されクラスター内の 1 つのノードに割り当てられます共有ストレージはクラスターの複数のノードからアクセスできます共有ストレージ デバイスが SCSI-3 プロトコルに準拠していればそれらの制御と所有権をノード間で移動させることができますWSFC ではファイル共有のためにクラスター共有ボリュームを同時に複数のノードでホスティングできますただしSQL Server は複数のノードからの共有ボリュームへの同時アクセスをサポートしていません

注 SQL Server FCI では対称共有ストレージを使用してインスタンスのすべてのノード所有者 (およびその候補) からアクセスできるようにする必要がありますただしAlwaysOn 可用性グループの導入に伴いそれぞれが独自に専用のローカルまたはリモート ストレージを持つ非 FCI の SQL Server インスタンスを WSFC クラスターに配置できるようになりました

WSFC リソースの正常性の検出とフェールオーバーWSFC クラスター ノード内の各リソースの状態と正常性は定期的にまたは要求に応じて報告されますクラスター リソースの障害を示す状況としてはたとえば電源障害ディスクまたはメモリのエラーネットワーク通信エラー構成エラー応答しないサービスなどがあります

ネットワークストレージサービスなどの WSFC クラスター リソースは互いに依存するように構成できますあるリソースの累積的な正常性は依存関係を持つリソースの正常性を連続的にたどってゆくことで決定されます

AlwaysOn 可用性グループでは可用性グループと可用性グループ リスナーがそれぞれ WSFC クラスター リソースとして登録されますAlwaysOn フェールオーバー クラスター インスタンスではSQL Server サービスおよび SQL Server エージェント サービスが WSFC クラスター リソースとして登録されどちらもインスタンスの仮想ネットワーク名リソースに依存します

WSFC クラスター リソースで設定された数のエラーまたは障害が一定期間内に発生した場合構成されたフェールオーバー ポリシーによってクラスター サービスは次のいずれかの操作を行います

現在のノードでのリソースの再起動 リソースをオフライン化 リソースとその依存関係を別のノードへ自動的にフェールオーバー

注 WSFC クラスター リソースの正常性の検出は個々のノードの正常性やクラスターの全体的な正常性には直接影響しません

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 14

WSFC のクラスター検証ウィザードクラスター検証ウィザードはWindows Server 2008 および Windows Server 2008 R2 のフェールオーバー クラスタリングに統合されている機能ですこれはSQL Server AlwaysOn ソリューションの配置前 にクリーンで正常な安定した WSFC 環境が存在していることをデータベース管理者が確認するために使用する主要なツールです

クラスター検証ウィザードではクラスターのノードとして使用するサーバーの集合または既存のクラスターを対象にして一連のテストを実行できますこのプロセスでは基になるハードウェアおよびソフトウェアが個別に直接テストされWSFC クラスターが特定の構成でどの程度良好にサポートされるかについての正確な評価が得られます

この検証プロセスでは各ノードに対して次のようなカテゴリの一連のテストとデータ収集が実施されます

一覧作成BIOS のバージョン環境レベルホスト バス アダプターRAMオペレーティング システムのバージョンデバイスサービスドライバーなどの情報です

ネットワークNIC のバインド順序ネットワーク通信IP 構成ファイアウォール構成などの情報ですすべての NIC でノード間の通信が検証されます

ストレージディスクドライブの容量アクセス待機時間ファイル システムなどの情報ですSCSI コマンドディスク フェールオーバー機能対称的または非対称的なストレージ構成が検証されます

システム構成Active Directory の構成ドライバーの登録メモリ ダンプの設定必要なオペレーティング システムの機能とサービス互換性のあるプロセッサ アーキテクチャおよびサービス パックと Windows Software Update のレベルが検証されます

これらの検証テストの結果を利用してクラスターの構成を微調整したり構成を追跡したりダウンタイムを引き起こすかもしれない潜在的なクラスター構成の問題を特定したりできますテスト結果のレポートは後で参照できるようにHTML ドキュメントとして保存できます

これらのテストはWSFC の構成に何か変更を加える前と加えた後に実行するほかSQL Server をインストールする前および災害復旧プロセスの一環として実行する必要がありますマイクロソフトで特定の WSFC クラスター構成がサポートされるためにはマイクロソフト カスタマー サポート サービス (CSS) にクラスター検証レポートを提出する必要があります

詳細については「フェールオーバー クラスター ステップ バイ ステップ ガイド フェール オーバー クラスター用ハードウェアを検証する」(httptechnetmicrosoftcomja-jplibrarycc732035(WS10)aspx) を参照してください

注 ハードウェアベースの地理的クラスタリング ストレージ ソリューションの場合やAlwaysOn 可用性グループの場合のようにクラスター構成に非対称ストレージがあるとクラスター検証ウィザードでストレージの検証手順を成功させるために多数の修正プログラムを適用しなければならないことがあります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 15

詳細については「AlwaysOn 可用性グループの前提条件制限事項および推奨事項 」(httpmsdnmicrosoftcomja-jplibraryff878487(SQL110)aspxSystemReqsForAOAG) を参照してください

WSFC クォーラム モードと投票の構成WSFC ではクォーラム ベースのアプローチを使用してクラスターの全体的な正常性を監視することでノード レベルのフォールト トレランスを最大限に高めますWSFC のクォーラム モードおよびノード投票構成の基本について理解することはAlwaysOn 高可用性災害復旧ソリューションの設計運用トラブルシューティングのために非常に重要です

クォーラムによるクラスター状態検出WSFC クラスター内の各ノードは定期的なハートビート通信に参加しノードの正常性状態を他のノードと共有します応答しないノードはエラー状態であると見なされます

クォーラム ノード セットとはWSFC クラスター内の投票ノードおよび監視サーバーのうち過半数を占めるノードの集合ですWSFC クラスターの全体的な正常性と状態は定期的なクォーラムの投票 によって決定されますクォーラムはクラスターが正常でありノード レベルのフォールト トレランスを提供できることを意味します

クォーラムに達していない状態はクラスターが正常でないことを示しますプライマリ ノードのフェールオーバー先として正常なセカンダリ ノードを使用できるようにするにはWSFC クラスターの全体的な正常性が維持されている必要があります投票数がクォーラムに達しなかった場合にはWSFC クラスター全体が予防策としてオフラインに設定されますその場合クラスターに登録されている SQL Server インスタンスがすべて停止します

注 クォーラム障害のために WSFC クラスターがオフラインに設定されるとオンラインに戻すために手動の操作が必要です詳細については後の「WSFC の強制クォーラムによる災害 復旧」のセクションを参照してください

クォーラム モードクォーラム モードはWSFC クラスター レベルで構成されクォーラム投票の方法を指定しますフェールオーバー クラスター マネージャー ユーティリティではクラスター内のノード数に基づいて推奨するクォーラム モードが提示されます

次のいずれかのクォーラム モードによって投票クォーラムの構成が決定されます

ノード マジョリティクラスターが正常であるためにはクラスター内の半分以上の投票ノードが肯定的に投票する必要があります

ノードおよびファイル共有マジョリティノード マジョリティ クォーラム モードに似ていますがリモート ファイル共有も投票監視サーバーとして構成され各ノードからそのリモート ファイル共有への接続も肯定的な投票としてカウントされますクラスターが正常であるためには投票の過半数が肯定的である必要があります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 16

推奨事項として監視ファイル共有はクラスター内のノードに存在せずクラスター内のすべてのノードから見える必要があります

ノードおよびディスク マジョリティノード マジョリティ クォーラム モードに似ていますが共有ディスク クラスター リソースも投票監視サーバーとして使用され各ノードからその共有ディスクへの接続も肯定的な投票としてカウントされますクラスターが正常であるためには投票の過半数が肯定的である必要があります

ディスクのみ共有ディスク クラスター リソースが監視サーバーとして使用され各ノードからその共有ディスクへの接続が肯定的な投票としてカウントされます

詳細については「フェールオーバー クラスター ステップ バイ ステップ ガイド フェール オーバー クラスターのクォーラムの構成」(httptechnetmicrosoftcomja-jplibrarycc770620(WS10)aspx) で説明されています

注 クラスターの各ノードが同じ共有ストレージ クォーラム監視ディスクを使用するように構成されていない限り通常投票ノード数が奇数の場合は ノード マジョリティ クォーラム モード投票ノード数が偶数の場合は ノードおよびファイル共有マジョリティ クォーラム モードを使用してください

投票ノードと非投票ノード既定ではWSFC クラスター内の各ノードがクラスター クォーラムのメンバーとなります各ノードファイル共有監視サーバーディスク監視サーバーがクラスターの全体的な正常性の決定においてそれぞれ 1 票ずつの投票権を持ちますクォーラムに関するここまでの説明ではクラスター状態について投票する WSFC クラスター ノードのセットを投票ノードとして注意深く限定してきました状況によってはすべてのノードに投票権を与えることが適切でない場合もあります

WSFC クラスターの各ノードはクォーラムを確立しようとし続けますクラスター内の個々のノードはクラスターが全体として正常であるか正常でないかを明確に決定することはできません特定の時点で各ノードからは他のノードの一部がオフラインフェールオーバー中またはネットワーク通信のエラーにより応答不能に見えますクォーラム投票の主な機能はWSFC クラスターの各ノードの見かけの状態が本当にそれらのノードの実際の状態であるかどうかを判断することです

ディスクのみ 以外のすべてのクォーラム モデルではクォーラム投票の有効性はクラスター内のすべての投票ノード間に信頼できる通信が確立されていることに依存しますすべてのノードが同じ物理サブネット上にある場合はクォーラムの投票を信頼できます

しかしクォーラム投票で他のサブネット上のノードが応答しないように見えても実際はオンラインで正常である場合はサブネット間のネットワーク通信のエラーが原因であることが考えられますクラスター トポロジクォーラム モードおよびフェールオーバー ポリシーの構成によってはネットワーク通信エラーによって投票ノードのセット (またはサブセット) が実質的に複数作成されてしまう可能性があります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 17

投票ノードの複数のサブセットがそれぞれ独自のクォーラムを構築できる状態はスプリット ブレイン と呼ばれますこの状態では各クォーラム上のノードが別々の動作をし相互に矛盾する可能性があります

注 スプリット ブレイン の状況が発生するのはシステム管理者が強制クォーラム動作を手動で実行するかまたは非常にまれですが強制的な手動フェールオーバーを実行することでクォーラム ノード セットが明示的に細分化された場合のみです詳細については後の「WSFC の強制クォーラムによる災害復旧 」のセクションを参照してください

クォーラム構成を単純化し稼働時間を長くする目的でノードの投票がクォーラムにカウントされないように各ノードの NodeWeight 設定 (値 0 または 1) を調整することができます

クォーラム投票に推奨される調整以下のガイドラインをこの順番に適用することでクラスターに対して推奨されるクォーラム投票の構成を判断できます

1 既定は投票権なしにします明確な理由がない限り各ノードには投票権を与えないと考えてください

2 すべてのプライマリ ノードに投票権を与えますAlwaysOn 可用性グループのプライマリ レプリカをホストする各ノードおよび AlwaysOn フェールオーバー クラスター インスタンスの優先所有者である各ノードは投票権を持つ必要があります

3 可能性のある自動フェールオーバーの所有者を含めます自動フェールオーバーの結果としてプライマリ レプリカまたは FCI をホストする可能性がある各ノードは投票を持つ必要があります

4 セカンダリ サイト ノードを除外します通常はセカンダリ災害復旧サイトに存在するノードには投票を提供しないでくださいプライマリ サイトに問題がない場合クラスターをオフラインにする判断にセカンダリ サイト内のノードが影響を与えることは避ける必要があります

5 投票数を奇数にします必要に応じて監視ファイル共有監視ノード (SQL Server インスタンスの有無は問いません)または監視ディスクをクラスターに追加してクォーラム モードを調整しクォーラムの投票結果が同数に分かれるのを防ぎます

6 フェールオーバー後の投票割り当てを再評価します正常なクォーラムをサポートしないクラスター構成にフェールオーバーすることは避けます

ノードの投票の調整の詳細については「クラスター クォーラムの NodeWeight の設定の構 成」(httpmsdnmicrosoftcomja-jplibraryhh270281(SQL110)aspx) を参照してください

ファイル共有監視サーバーの投票は調整できませんその投票を含めるか除外するかを決めるには別のクォーラム モードを選択する必要があります

注 SQL Server ではWSFC クラスター構成およびノード クォーラム投票に関する設定を管理するためにいくつかのシステム動的管理ビュー (DMV) が公開されています

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 18

詳細については「可用性グループの監視」(httpmsdnmicrosoftcomja-jplibraryff878305(SQL110)aspx) を参照してください

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 19

WSFC の強制クォーラムによる災害復旧通常クォーラム障害は災害発生時または WSFC クラスター内の複数のノード間で永続的な通信障害が生じた場合に発生しますクォーラム障害が発生するとクラスターがノード レベルのフォールト トレランスを確保できなくなるためその WSFC クラスター内の SQL Server インスタンス可用性グループおよびクラスター化されているサービスがすべてオフラインになりますクォーラム障害はWSFC クラスター内の正常な投票ノード数がクォーラム モデルを満たさなくなったことを意味しますノードによってまったく機能しなくなるものもあればWSFC サービスがシャットダウンしただけでクォーラムと通信できなくなったことを除けば正常なものもあります

WSFC クラスターをオンラインに戻すには既存の構成の少なくとも 1 つのノードでクォーラム障害の根本的な原因を解決する必要があります災害発生時には使用できる代替ハードウェアの再構成や識別が必要となる場合もあります現状のクラスター トポロジを反映するためにWSFC クラスターの残りのノードを再構成する場合もあります

WSFC クラスター ノードで強制クォーラムの手順を使用するとクラスターがオフラインになる原因となった安全管理機能を無効にすることができますこれによりクラスターでのクォーラム投票のチェックが実質的に中断されクラスター内の任意のノードで WSFC クラスター リソースと SQL Server をオンラインに戻すことができます

このような災害復旧プロセスの手順を次に示します

1) 障害の範囲を特定します応答しない可用性グループや SQL Server インスタンス災害後に使用できるオンラインのクラスター ノードをそれぞれ特定しWindows イベント ログと SQL Server システム ログを確認します必要に応じて後で分析できるように解析データやシステム ログを保存しておきます

2) 1 つのノードで強制クォーラムを使用して WSFC クラスターを起動します他の点では正常なノードで強制クォーラムの手順に従ってクラスターを手動で強制的にオンラインにしますこの場合データ損失の可能性を最小限に抑えるには可用性グループのプライマリ レプリカを最後にホストしていたノードを選択します

詳細については「クォーラムを使用せずに WSFC クラスターを強制的に起動する 」(httpmsdnmicrosoftcomja-jplibraryhh270275(v=SQL110)aspx) を参照してください

注 強制クォーラムの設定を使用するとWSFC クラスターの投票が過半数に達することで通常のクォーラム モードの動作に自動的に切り替わるまでクラスター全体のクォーラムのチェックがブロックされます

3) 他の点では正常な各ノードでWSFC サービスを 1 つずつ通常の方法で起動します他のノードでクラスター サービスを起動するときは強制クォーラム オプションを指定する必要はありません

各ノードの WSFC サービスがオンラインに戻ると他の正常なノードとの間でネゴシエーションが行われ新しいクラスター構成の状態が同期されますクラスターの最新の状態

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 20

を判断するときに競合状態の発生を避けるためこの手順は必ず一度に 1 つのノードで行うようにしてください

注 起動した各ノードが新たにオンラインにした他のノードと通信できることを確認しますそうしないと複数のクォーラム ノード セットが作成されて スプリット ブレイン の状況に陥るおそれがあります手順 1 の結果に問題がなければこの現象は発生しません

4) 新しいクォーラム モードとノードの投票の構成を適用します強制クォーラムの手順によってクラスターのすべてのノードを正常に再起動させクォーラムのエラーの根本原因を修正した場合クォーラム モードとノードの投票を元の構成から変更する必要はありません

それ以外の場合は新たに復元されたクラスター ノードと可用性レプリカのトポロジを評価し必要に応じてクォーラム モードと各ノードの投票割り当てを変更します未復旧のノード上ではWSFC クラスター サービスをオフラインにするかノードの投票をゼロに設定します

注 この時点でクラスター内のノードと SQL Server インスタンスが通常の動作に戻っているように見えることがありますがまだ正常なクォーラムには達していない可能性がありますフェールオーバー クラスター マネージャーやSQL Server Management Studio の AlwaysOn ダッシュボードまたは適切な DMV を使用して正常なクォーラムが復元されたことを確認してください

5) 必要に応じて可用性グループのデータベース レプリカを復旧します一部のデータベースはSQL Server の通常の起動処理の一環として自動的に復旧されオンラインに戻ることがありますそれ以外のデータベースの復旧には追加で手動の手順を実行する必要があります

可用性グループ レプリカのデータ損失の可能性や復旧にかかる時間を最小限に抑えるにはできればプライマリ レプリカ同期セカンダリ レプリカ非同期セカンダリ レプリカの順にオンラインに戻します

6) 障害が発生したコンポーネントを修復するか交換しクラスターを再検証しますこれで最初の災害およびクォーラム障害から復旧できたので障害が発生したノードを修復するか交換しWSFC と AlwaysOn の関連する構成を適切に調整する必要がありますこれには可用性グループ レプリカの削除クラスターからのノードの削除ノードへのソフトウェアの再インストールなどが含まれます

注 停止したすべての可用性レプリカを修復または削除する必要がありますSQL Server 2012 では最も古い可用性レプリカを最後に認識した時点以降トランザクション ログが切り捨てられません停止したレプリカを修復するか可用性グループから削除しないとトランザクション ログが大きくなり他のレプリカのトランザクション ログの領域が不足する可能性があります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 21

7) 必要に応じて手順 4 を繰り返しますこの目的は正常な動作を行うために適切なレベルのフォールト トレランスと高可用性を再確立することです

8) RPORTO 分析を実行しますSQL Server のシステム ログデータベースのタイムスタンプおよび Windows のイベント ログを分析して障害の根本的な原因を特定し実際の復旧ポイントと復旧時間を文書に記録します

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 22

SQL Server インスタンス レベルでの保護次に説明する AlwaysOn ソリューションの保護レイヤーはデータ プラットフォームそれ自体ですMicrosoft SQL Server 2012 とその Windows Server インフラストラクチャ コンポーネントとの統合によって次のような機能が提供されます

可用性の向上 ndash SQL Server インスタンスこれは SQL Server 2012 の新しいインスタンス レベルの機能でAlwaysOn フェールオーバー クラスター インスタンスとAlwaysOn 可用性グループをホストするスタンドアロン インスタンスの両方の可用性を強化します

以下の強化点によってフェールオーバーの管理およびトラブルシューティングが向上します

柔軟なフェールオーバー ポリシー信頼性の高いエラー検出に使用される新しいシステム ストアド プロシージャ sp_server_diagnostics の出力でSQL Server インスタンスに影響するエラーの重大度が FailureConditionLevel プロパティによって示されますWSFC のフェールオーバー ポリシーによってこの値が SQL Server インスタンスにどのように影響するかを制御できますある程度エラーを許容する設定からSQL Server の内部コンポーネント エラーを重点的に検出する設定までさまざまに構成できます

特定のレベルのエラーによってフェールオーバーを開始するように構成できますエラーのレベルにはサーバーの停止サーバーの応答停止重大なエラー中程度のエラーなんらかの条件付きエラーなどがありますFailureConditionLevel プロパティはFCI または可用性グループのフェールオーバー ポリシーのために使用できます

SQL Server 2012 よりも前のバージョンではフェールオーバーを制御できるようなエラー状態の区分がなくすべてのサービス レベルのエラーによってフェールオーバーが発生しました

詳細については「フェールオーバー クラスター インスタンスのフェールオーバー ポリシー」(httpmsdnmicrosoftcomja-jplibraryff878664(SQL110)aspx) を参照してください

強化されたインストルメンテーションとログAlwaysOn 専用のシステム構成ビューDMVパフォーマンス カウンターに加えて拡張されたイベント正常性セッションによってAlwaysOn 配置のトラブルシューティングチューニングおよび監視に必要な情報を取得して表示できますこれらの多くはSQL Server ポリシー管理の新しいファセットおよびポリシーを通じて公開されます

詳細については「AlwaysOn 可用性グループの動的管理ビューおよび関 数」(httpmsdnmicrosoftcomja-jplibraryff877943(SQL110)aspx) と「sysdm_os_cluster_nodes」(httpmsdnmicrosoftcomja-jplibraryms187341(SQL110)aspx) を参照してください

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 23

SMB ファイル共有のサポートWindows Server 2008 以降のスタンドアロン用またはフェールオーバー クラスター インスタンス用のリモート ファイル共有にデータベース ファイルを格納することができますこの場合FCI ごとに異なるドライブ文字を使用する必要がありませんこれはストレージを統合する場合やデータベース ファイルのストレージを仮想マシンのゲスト オペレーティング システム用物理サーバーでホストする場合などに便利なオプションです適切に構成すれば直接接続されたストレージとほぼ同等の IO パフォーマンスが得られます

詳細については「ファイル共有上の SQL データベース - シナリオを再検討すべきとき 」(httpblogsmsdncombsqlserverstorageenginearchive20111018sql-databases-on-file-shares-it-s-time-to-reconsider-the-scenarioaspx) を参照してください

注 WSFC クラスターではSMB ファイル共有リソースの依存関係を SQL Server リソース グループに追加することはできませんファイル共有の可用性を確保するには別の方法を用いる必要がありますファイル共有が使用できなくなった場合SQL Server は IO 例外をスローしオフラインになります

WSFC と DNS の相互運用性FCI または可用性グループ リスナーの仮想ネットワーク名 (VNN) はVNN の作成時または構成の変更時にのみDNS に登録されますすべての仮想 IP アドレスはオンライン状態かオフライン状態かに関係なく同じ仮想ネットワーク名で DNS に登録されますDNS の仮想ネットワーク名を解決するためのクライアント呼び出しは各種のラウンド ロビン シーケンスによってすべての登録済み IP アドレスを返します

AlwaysOn フェールオーバー クラスター インスタンスSQL Server の AlwaysOn フェールオーバー クラスター インスタンス (FCI) の主な目的は1 つのデータ センター内のローカル サーバーとストレージ ハードウェアでホストされている SQL Server インスタンスの可用性を高めることです

FCI はWindows Server フェールオーバー クラスタリング (WSFC) のクラスターに含まれる複数のノードにまたがってインストールされる1 つの論理的な SQL Server インスタンスですただし一度に 1 つのノードだけでアクティブになることができますクライアント アプリケーションはアクティブなクラスター ノードが所有している仮想ネットワーク名および仮想 IP アドレスに接続します

FCI をインストールした各ノードは同一の構成を持ち同一の SQL Server バイナリを含んでいますWSFC クラスター サービスはアクティブなインスタンス上にある Windows レジストリのエントリからFCI をインストールした各ノードに関連のある変更をレプリケートしますFCI がインストールされている各ノードはインスタンスとそのリソースの所有者の候補として指定されフェールオーバーの優先順位に従って所有者となります

共有対称ストレージ ボリュームに格納されているデータベース ファイルはリソースとして WSFC クラスターに登録され現在 FCI をホストしているノードによって所有されます

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 24

詳細については「AlwaysOn フェールオーバー クラスター インスタン ス」(httpmsdnmicrosoftcomja-jplibraryms189134(SQL110)aspx) を参照してください

FCI のフェールオーバー プロセス依存しているクラスター リソースで障害が発生した場合AlwaysOn フェールオーバー クラスター インスタンスはWSFC クラスター サービスと連携してフェールオーバーを行いますそのプロセスの概要を以下に示します

1) 再起動が指示されますWSFC の定期的なチェックまたは SQL Server のフェールオーバー ポリシー構成によってエラー状態が示されます既定では他のノードへのフェールオーバーを開始する前にサービスの再起動が試みられます再起動の試みがタイムアウトするようであればリソースの障害が発生しています

2) フェールオーバーが指示されますフェールオーバー ポリシー チェックによってノードのフェールオーバーが必要であることが示されます

3) SQL Server サービスが停止されますSQL Server サービスが現在実行されている場合はその正常なシャットダウンが試みられます

4) WSFC クラスター リソースが転送されますSQL Server クラスター リソース グループの所有権とそれが依存するネットワークおよび共有ストレージ リソースがFCI で次に優先されるノード所有者に転送されます

5) 新しいノードで SQL Server が起動されますSQL Server インスタンスは通常のスタートアップ プロシージャで起動されます所定のタイムアウト時間内にオンラインに戻らない場合クラスター サービスはこの新しいノード上のリソースをエラー状態と見なします

6) 新しいノードでユーザー データベースが復旧されます各ユーザー データベースは復旧モードに設定されます復旧モードではトランザクション ログの再実行操作が適用されコミットされていなかったトランザクションがロールバックされます

FCI の強化以前のバージョンの SQL Server でも FCI のインストール オプションは用意されていましたがSQL Server 2012 では次のような機能強化によって可用性の堅牢性と利便性が向上しました

マルチサブネット クラスタリングSQL Server 2012 では複数のサブネットに存在する WSFC クラスター ノードがサポートされていますWSFC クラスター ノードに存在する SQL Server インスタンスはいずれかのネットワーク インターフェイスが使用可能であれば起動できますこれはクラスター リソースの OR 依存関係と呼ばれます

以前のバージョンの SQL Server の場合SQL Server サービスを起動またはフェールオーバーするにはすべてのネットワーク インターフェイスが機能しそれらがすべて同じサブネットまたは VLAN に存在している必要がありました

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 25

注 マルチサブネット クラスタリングではクラスター ノード間のストレージ レベルのレプリケーションが自動的には有効になりませんマルチサブネットの FCI ソリューションでクラスター ノード間でデータのレプリケーションを行いストレージ フェールオーバーを調整するためにはサード パーティから提供される SAN ベースのソリューションを利用する必要があります

詳細については「SQL Server 2012 AlwaysOn マルチサイト フェールオーバー クラスター インスタンス」(httpsqlcatcomsqlcatbwhitepapersarchive20111222sql-server-2012-alwayson_3a00_-multisite-failover-cluster-instanceaspx) を参照してください

信頼性の高いエラー検出WSFC クラスター サービスではノードの各 SQL Server 2012 FCI に対してそれぞれ専用の管理者接続が維持されますこの接続では特殊なシステム ストアド プロシージャ sp_server_diagnostics を定期的に呼び出すことでシステムの正常性診断に役立つ豊富な情報を含む配列が返されます

SQL Server 2012 よりも前のバージョンではFCI の主な正常性検出メカニズムは単純な一方向のポーリング プロセスとして実装されていましたこのプロセスではWSFC クラスター サービスがインスタンスへの新しい SQL クライアント接続を定期的に作成しサーバー名を照会した後で接続を切断していました何かの理由で接続が失敗するかクエリがタイムアウトした場合フェールオーバーが開始されますが診断情報はほとんど提供されません

詳細については「sql_server_diagnostics」(httpmsdnmicrosoftcomja-jplibraryff878233(SQL110)aspx) を参照してください

現在ではFCI ストレージが次のように幅広い状況でサポートされています

向上したマウント ポイント サポートSQL Server のセットアップ時にクラスター ディスクのマウント ポイント設定が認識されるようになりました指定されたクラスター ディスクとそれにマウントされているすべてのディスクがセットアップ時に SQL Server リソースの依存関係に自動的に追加されます

ローカル ストレージの tempdbFCI ではローカルの非共有ストレージ (ローカル ソリッド ステート ドライブなど) に tempdb を配置できるようになったため共有 SAN での IO 動作の負荷を大幅に軽減できる可能性があります

SQL Server 2012 よりも前のバージョンの FCI ではtempdb が他のシステム データベースと共にフェールオーバーされる対称共有ストレージ ボリュームに配置される必要がありました

注 tempdb の場所はmaster データベースに格納されますこのデータベースはフェールオーバー時にノード間で移動されますtempdb は所有者候補となっているすべてのノード上で有効で対称的なファイル パス (ドライブフォルダーおよび権限) に配置されている必要がありますそうなっていない場合SQL Server サービスが一部のノードでは起動されません

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 26

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 27

データベースの可用性インフラストラクチャ レベルおよび SQL Server インスタンス レベルのコンポーネントで提供されている高可用性機能は互いに連係してホストされているデータベースを暗黙的に保護しますAlwaysOn ソリューションではデータベースのデータおよびデータ層アプリケーションを明示的に保護するために一連のオプションが追加で用意されています

AlwaysOn 可用性グループ可用性グループは1 つの SQL Server インスタンスから同じ WSFC クラスター内の別のインスタンスへと同時にフェールオーバーされるユーザー データベースのセットですクライアント アプリケーションは可用性グループ リスナーと呼ばれる WSFC 仮想ネットワーク名を通じて可用性グループのデータベースに接続できますこうすることで基になる SQL Server インスタンスが抽象化されます

AlwaysOn 可用性グループは正常性監視フェールオーバーの調整およびサーバー接続を Windows Server フェールオーバー クラスタリングに依存していますWSFC クラスター ノード上の SQL Server インスタンスでAlwaysOn サポートを有効にする必要がありますただしそのインスタンスが FCI である必要はなく対称共有ストレージを使用する必要もありません

詳細については「AlwaysOn 可用性グループの概要 」(httpmsdnmicrosoftcomja-jplibraryff877884(SQL110)aspx) を参照してください

可用性レプリカとロール可用性グループの各 SQL Server インスタンスは可用性グループのユーザー データベースのコピーを保持している可用性レプリカをホストしますSQL Server インスタンスは特定の可用性グループの可用性レプリカを 1 つだけホストすることができますが複数の可用性グループを同じインスタンスに置くことは可能ですSQL Server インスタンスは専用の (非共有) ストレージ ボリュームを持つ必要があります

可用性レプリカの 1 つがプライマリ レプリカの役割を果たしますこれは可用性グループ データベースのマスター コピーとして指定されていて読み取り書き込み操作を行うことができます

可用性グループには読み取り専用の可用性レプリカを最大 4 つまで追加で含めることができますこれらは個別にセカンダリ レプリカの役割を果たします

可用性レプリカの同期可用性グループの各データベースの内容はSQL Server によるログ ベースのデータ移動メカニズムを通じてプライマリ レプリカから各セカンダリ レプリカに同期されますそのため可用性グループのすべてのデータベースは完全復旧モデルに設定する必要があります

セカンダリ レプリカはプライマリ レプリカのデータベースとトランザクション ログの完全なバックアップと復元によって初期化されますプライマリ レプリカで新しいトランザクションがコミットされるとトランザクション ログの対応する部分がキャッシュされ

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 28

キューに入れられてネットワーク経由でセカンダリ レプリカ ノード上のデータベース ミラーリング エンドポイントに送信されます

この方法によりプライマリ レプリカのトランザクション ログの新しいエントリが各セカンダリ レプリカのトランザクション ログに追加されます各セカンダリ レプリカはログ シーケンス番号 (LSN) をプライマリ レプリカに定期的に送り返しトランザクション ログのどのくらいの量がリモート ディスクに書き込まれフラッシュされたかを示します

注 各可用性レプリカはそれぞれ独自に独立したトランザクション ログ再実行スレッドのセットを保持していますこれは可用性レプリカの同期プロセスには含まれませんセカンダリ レプリカ上ではログ再実行プロセスによって遅延時間が生じるためユーザーはそれをデータの待機時間として感じる場合があります

プライマリまたはセカンダリの役割を果たす他に各可用性レプリカには可用性モードもありますこのモードは次のようにCOMMIT TRAN ステートメントの実行時にトランザクション ログの書き込みの連係を制御します

同期コミット モードすべての同期コミット セカンダリ レプリカからそれぞれ独自のトランザクション ログの書き込み完了 (LSN 以降) が通知されるまでプライマリ レプリカはそのトランザクションをコミットしません可用性グループでは最大で 2 つの同期コミット セカンダリ レプリカを使用できます

同期コミット モードではプライマリ レプリカ データベースでトランザクションの遅延が生じますがコミットされたトランザクションに対するセカンダリ レプリカでのデータ損失を確実に防ぐことができます

非同期コミット モードプライマリ レプリカはローカル トランザクション ログの書き込み後にトランザクションをコミットしますが非同期コミット セカンダリ レプリカからトランザクション ログの書き込み完了通知を待つことはしません可用性グループでは最大で 4 つの非同期コミット セカンダリ レプリカを使用できますただし両方の種類を合わせて使用できるセカンダリ レプリカの合計は最大 4 つです

非同期コミット モードではプライマリ レプリカ データベースで生じるトランザクションの遅延が最小になりますがセカンダリ レプリカでのトランザクション ログが遅れる場合があるため一部のデータが失われる可能性があります

詳細については「可用性モード」(httpmsdnmicrosoftcomja-jplibraryff877931(SQL110)aspx) を参照してください

可用性レプリカ間のデータ フローの全体的な正常性は各レプリカの同期状態によって示されますセカンダリ レプリカにフェールオーバーしたときに同期状態が 同期済み または 同期中 になっていなければほとんどの場合はデータ損失が発生することになります

各セカンダリ レプリカの同期ストリームにはセッション タイムアウト プロパティがあります同期コミット モードに構成されているセカンダリ レプリカがセッション タイムアウトでエラーになると内部的には一時的に非同期としてマークされますこれはセカンダ

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 29

リ レプリカのエラーがプライマリ レプリカでのトランザクション ログの書き込みに影響しないようにするためですそのセカンダリ レプリカが正常に戻ってプライマリ レプリカの状態に追いつくと自動的に通常の同期コミット モード動作に戻されます

可用性グループのフェールオーバー可用性グループとそれに対応する仮想ネットワーク名はWSFC クラスターのリソースとして登録されます可用性グループはプライマリ レプリカの正常性とフェールオーバー ポリシーに基づいて可用性レプリカのレベルでフェールオーバーを行います

可用性グループのフェールオーバー ポリシーではsp_server_diagnostics システム ストアド プロシージャと FailureConditionLevel プロパティを使用して可用性グループに対して許容されるエラーの重大度のレベルを示しますこの同じメカニズムがFCI のフェールオーバー ポリシーにも使用されます

フェールオーバーが発生した場合は共有物理リソースの所有権を他のノードに移す代わりにWSFC を利用して他の SQL Server インスタンス上でセカンダリ レプリカを再構成しプライマリ レプリカの役割を引き継がせますその後可用性グループの仮想ネットワーク名リソースがそのインスタンスに転送されます関連する可用性レプリカへのすべてのクライアント接続がリセットされます

レプリカの現在の正常性同期状態および可用性モードに基づいて各レプリカには複合的な フェールオーバーの準備 状態が定義されますこの状態の値はデータ損失の可能性を示していますレプリカの正常性情報はAlwaysOn ダッシュボードまたは sysdm_hadr_availability_replica_states システム ビューで確認できます

各可用性レプリカにはフェールオーバー モードも構成されていますこのモードはフェールオーバーが指示された場合にレプリカの動作を制御します

自動フェールオーバー (データ損失なし)セカンダリ レプリカのトランザクション ログが既に書き込まれ同期されているのですべての AlwaysOn 構成の中でフェールオーバー時間が最短になりますプライマリ レプリカ上の開かれているトランザクションはロールバックされプライマリ レプリカの役割はユーザーによる操作なしでセカンダリ レプリカに転送されます

この場合プライマリ レプリカとセカンダリ レプリカの両方を自動フェールオーバー モードに設定し両方の可用性モードを同期コミットに設定する必要がありますレプリカ間の同期状態は同期済み である必要がありますまたWSFC クラスターは正常なクォーラム状態になっている必要があります

自動フェールオーバーはプライマリ レプリカまたはセカンダリ レプリカが FCI 上にある場合はサポートされませんこれは可用性グループと FCI のフェールオーバー間で競合状態が発生することを防ぐためです

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 30

手動フェールオーバーこの場合管理者はプライマリ レプリカの状態を評価してセカンダリ レプリカにフェールオーバーするかどうかを慎重に判断できます

可用性モードと同期状態に応じて次のような選択が可能です

o 計画的な手動フェールオーバー (データ損失なし)この種類のフェールオーバーを実行できるのはプライマリ レプリカとセカンダリ レプリカの両方が正常で同期済み 状態である場合だけですこれは機能的には自動フェールオーバーと同じです

o 強制手動フェールオーバー (データ損失の可能性を許容)これは対象のセカンダリ レプリカの可用性モードが非同期コミットである場合またはプライマリ レプリカに同期されない場合に使用できる唯一のフェールオーバー形式です

警告 このフェールオーバー オプションは災害復旧の状況に限って使用する必要がありますプライマリ レプリカが正常で使用可能である場合は関連する各レプリカの可用性モードを同期コミットに変更し計画的な手動フェールオーバーを実行してください

詳細については「可用性グループの強制手動フェールオーバーの実行」(httpmsdnmicrosoftcomja-jplibraryff877957(SQL110)aspx) を参照してください

フェールオーバー対象のプライマリ レプリカまたはセカンダリ レプリカが次の条件のいずれかに該当する場合は手動フェールオーバーを実行する必要があります

フェールオーバー モードが手動に設定されている 可用性モードが非同期コミットに設定されている レプリカが FCI 上にある

詳細については「フェールオーバーとフェールオーバー モード (AlwaysOn 可用性グルー プ ) 」(httpmsdnmicrosoftcomja-jplibraryhh213151(SQL110)aspx) を参照してください

注 フェールオーバー後新しいプライマリ レプリカが同期コミット モードに設定されていない場合セカンダリ レプリカの同期状態は 中断状態 になりますプライマリ レプリカが同期コミット モードに設定されるまでデータはセカンダリ レプリカに移動されません

可用性グループ リスナー可用性グループ リスナーはクライアントが可用性グループ内のデータベースにアクセスするために使用できる WSFC 仮想ネットワーク名 (VNN) ですVNN クラスター リソースはプライマリ レプリカをホストしている SQL Server インスタンスによって所有されます

仮想ネットワーク名は可用性グループ リスナーの作成時または構成の変更時にのみDNS に登録されます可用性グループ リスナーで定義されているすべての仮想 IP アドレスは同じ仮想ネットワーク名で DNS に登録されます

可用性グループ リスナーを使用する場合クライアント接続要求ではサーバーとして仮想ネットワーク名を指定してから可用性グループ内のデータベース名を指定する必要があり

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 31

ます既定ではこれによってプライマリ レプリカをホストしている SQL Server インスタンスに接続されます

実行時にはクライアントはローカルの DNS リゾルバーを使用して仮想ネットワーク名にマップされている IP アドレスと TCP ポートの一覧を取得しますクライアントは各 IP アドレスへの接続を成功するか接続タイムアウトに達するまで試し続けますMultiSubnetFailover パラメーターが true に設定されているとクライアントは複数の接続を同時に試行するのでクライアント フェールオーバーが大幅に速くなります

フェールオーバーが行われるとサーバー上でクライアント接続がリセットされ可用性グループ リスナーの所有権はプライマリ レプリカの役割と共に新しい SQL Server インスタンスに移動しVNN エンドポイントは新しいインスタンスの仮想 IP アドレスと TCP ポートにバインドされます

詳細については「可用性グループ リスナークライアント接続およびアプリケーションのフェールオーバー」(httpmsdnmicrosoftcomja-jplibraryhh213417(SQL110)aspx) を参照してください

アプリケーションの目的によるフィルター処理可用性グループ リスナーを使用して接続している場合アプリケーションは接続の目的がデータの読み取りと書き込みの両方なのか読み取り専用操作を実行するだけなのかを指定できます指定しない場合クライアントのアプリケーションの目的は既定で読み取りと書き込みになります

各可用性レプリカのプライマリ ロールとセカンダリ ロールについてはクライアントのアプリケーションの目的に対する接続レベルのフィルターとして接続アクセス プロパティも指定できます既定ではアプリケーションの目的と接続アクセスとの組み合わせが無効であると接続が拒否されますSQL Server は次のルールを使用してクライアントの接続要求を振り分ける必要があります

可用性レプリカがプライマリ ロールであり接続アクセスが次のいずれかである場合

すべてのアプリケーションの目的を許可するアプリケーションの目的でクライアント接続をフィルター処理しません

明示的な読み取り書き込みの目的だけを許可するクライアントが読み取り専用を指定している場合接続を拒否します

可用性レプリカがセカンダリ ロールであり接続アクセスが次のいずれかである場合

接続を許可しないすべての接続を拒否しますレプリカは災害復旧だけに使用されます

すべてのアプリケーションの目的を許可するアプリケーションの目的でクライアント接続をフィルター処理しません

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 32

読み取り専用の目的を許可するクライアントが読み取り専用を指定していない場合接続を拒否します

詳細については「可用性レプリカでの読み取り専用アクセスの構成」(httpmsdnmicrosoftcomja-jplibraryhh213002(SQL110)aspx) を参照してください

アプリケーションの目的の読み取り専用ルーティングAlwaysOn 可用性グループの特に優れた点はスタンバイ ハードウェア インフラストラクチャを災害復旧以外の目的に利用できることです1 つ以上のセカンダリ レプリカを読み取り専用でアクセスできるように構成するとプライマリ レプリカからかなりの量のワークロードを軽減できます

読み取り専用セカンダリ レプリカに回すように簡単に調整できるワークロードはレポートデータベース バックアップデータベース整合性チェックインデックスの断片化の分析データ パイプライン抽出運用サポート操作サポートアドホック クエリなどです

各可用性レプリカではSQL Server インスタンスのエンドポイントについて順次的な読み取り専用ルーティング リストを構成することもできますこのリストはレプリカがプライマリ ロールであるときに適用されますこのリストが存在する場合アプリケーションの目的が読み取り専用と指定されているクライアント接続要求はそのリスト内に記載されていて前述のアプリケーションの目的フィルターに適合する最初のセカンダリ レプリカにリダイレクトされます

注 読み取り専用ルーティングによるリダイレクトはプライマリ レプリカにバインドされている可用性グループ リスナーによって実行されますプライマリ レプリカがオフラインの場合クライアントのリダイレクトは機能しません

詳細については「可用性グループの読み取り専用ルーティングの構成 (SQL Server) 」(httpmsdnmicrosoftcomja-jplibraryhh710054(SQL110)aspx) を参照してください

可用性の向上 ndash データベースSQL Server 2012 ではデータベースの構成と機能に関してさまざまな点が強化されています

以下の機能は復旧時間の短縮に役立ちます

予測可能な復旧時間データベースごとにターゲット復旧時間の長さを設定することでバックグラウンドで実行される CHECKPOINT コマンドのスケジュールを制御できますこのコマンドは間接的なチェックポイントとして再起動時またはフェールオーバー時にトランザクション ログの復旧に必要となる時間の推定値に基づいて定期的に実行されますそれによってチェックポイントごとに IO 操作がほぼ均等に配分され復旧時間 (RTO) の予測可能性が高まります

SQL Server 2012 よりも前のバージョンではバックグラウンドの CHECKPOINT コマンドがトランザクションの量や負荷とは無関係に一定間隔で実行されていたので復旧時間を予測することはできませんでした

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 33

詳細については「データベース チェックポイント」(httpmsdnmicrosoftcomja-jplibraryms189573(SQL110)aspx) を参照してください

以下の向上点は計画的なダウンタイムが必要になる一般的な状況を減らすのに役立ちます

LOB 列のオンライン インデックス操作varbinary(max)varchar(max)nvarchar(max)または XML データ型の列が含まれているインデックスをオンラインで再構築または再構成できるようになりました

新しい NOT NULL 列のオンライン スキーマ修正既定値を使用して新しい NOT NULL 列を SQL Server 2012 データベース テーブルに追加する場合システム メタデータの更新にはスキーマ ロックだけが必要ですALTER TABLE ステートメントですべての行にデータを設定する必要はありません

いずれかの行で実際に変更またはインデックスの再作成が行われない限り列の既定値は物理的に格納されませんクエリでは列に実際の値が存在しない場合メタデータから既定値を返します

ストレージのサポート強化の例として次のようなものがあります

ページの自動修復ある種のストレージ サブシステム エラーが発生するとデータ ページが破損し読み取り不可能になる場合がありますAlwaysOn 可用性グループではそのような種類のエラーを検出し自動的に復旧できます復旧のために影響を受けたデータ ページの最新のコピーが別の可用性レプリカから非同期で取得され適用されます

以前のバージョンでもデータベース ミラーリングに同様の機能がありましたが新しい機能では複数のレプリカをサポートできるようになっています

詳細については「ページの自動修復」(httpmsdnmicrosoftcomja-jplibrarybb677167(SQL110)aspx) を参照してください

クライアント接続の推奨事項クライアント アプリケーションが Microsoft SQL Server 2012 AlwaysOn テクノロジの利点を十分に活用できるようにするには次のガイドラインに従います

AlwaysOn 対応のクライアント ライブラリ表形式のデータ ストリーム (TDS) プロトコル Version 74 以降をサポートしているクライアント ライブラリを使用しますこれによってAlwaysOn の機能に対応した適切な機能がクライアント側でも提供されますクライアント ライブラリの例としてはData Provider for SQL Server in NET Framework 402SQL Native Client 110 などがあります

接続プロバイダー プロパティ MultiSubnetFailover = True接続文字列にこのキーワードを使用することでクライアント ライブラリでは(複数のサブネットに IP アドレスを持つ) 可用性グループ リスナーまたは FCI に登録されているすべての IP アドレスに同時に接

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 34

続できるようになります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 35

接続プロバイダー プロパティ ApplicationIntent = ReadOnly必要に応じてプライマリ レプリカの読み取り専用ワークロードをセカンダリ レプリカに移管することができます

レガシ クライアントの接続タイムアウトレガシ クライアントのデータベース ライブラリには並列で接続を試行する機能が実装されていないため複数の IP アドレスがある場合にはTCP タイムアウトに達するか正常に接続できるまで1 つずつ順番に接続を試行します

複数の IP アドレスが存在する場合はタイムアウトと再試行が逐次的に繰り返される可能性に備えてレガシ クライアントの接続タイムアウトを調整する必要があります値は少なくとも 15 秒 + 21 秒 times セカンダリ レプリカ数にします

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 36

結論このホワイト ペーパーではSQL Server 2012 の AlwaysOn による高可用性災害復旧ソリューションを使用し予定されたダウンタイムや予定外のダウンタイムを短縮したりアプリケーションの可用性を最大限に高めたりデータを保護したりする方法について基本的なコンテキストを確立しました

高可用性データベース環境の計画管理測定に関連したビジネス上の目的と課題は多くの場合目標復旧時点 (RPO) と目標復旧時間 (RTO) という形で数量化して表すことができます

SQL Server 2012 AlwaysOn は組織が高可用性や災害復旧に関する一般的な状況に対処するための機能をRPO と RTO を適切に達成できることを念頭にインフラストラクチャ レベルデータ プラットフォーム レベルデータベース レベルのそれぞれで提供します

詳細情報

httpwwwmicrosoftcomja-jpsqlserver2012defaultaspx SQL Server Web サイト

httptechnetmicrosoftcomja-jpsqlserver SQL Server TechCenter

httpmsdnmicrosoftcomja-jpsqlserver SQL Server 開発者向け技術情報

このホワイト ペーパーはお役に立ちましたか フィードバックをお寄せください1 (役に立たなかった) ~ 5 (非常に役に立った) の 5 段階で評価してくださいまたその評価の理由もお知らせください以下に例を示します

評価が高い 例が適切図がわかりやすい説明が明快といったことが理由である 評価が低い 例が少ない図がわかりにくい説明があいまいといったことが理由で

ある

このようなフィードバックをお寄せいただくと今後のホワイト ペーパーの品質向上につながります

フィードバックの送信

loz Version 112012 年 2 月 21 日

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 37

  • 高可用性と災害復旧の概念
    • 高可用性について
      • 予定されたダウンタイムと予定外のダウンタイム
      • 段階的な可用性
        • ダウンタイムの定量化
          • 復旧目標
          • ROI または機会費用の正当化
          • 可用性の健全度の監視
          • 災害復旧の計画
            • 概要 Microsoft SQL Server 2012 での高可用性
              • SQL Server AlwaysOn
              • 計画的なダウンタイムの大幅な削減
              • アイドル状態のハードウェアをなくしてコスト効率とパフォーマンスを向上
              • 簡単な配置と管理
              • RPO と RTO の機能比較
                  • SQL Server AlwaysOn の保護レイヤー
                    • インフラストラクチャの可用性
                      • Windows オペレーティング システム
                        • Windows Server Core インストール オプション
                        • プライベート クラウド用の SQL Server の最適化
                          • Windows Server フェールオーバー クラスタリング
                            • WSFC ストレージ構成
                            • WSFC リソースの正常性の検出とフェールオーバー
                              • WSFC のクラスター検証ウィザード
                              • WSFC クォーラム モードと投票の構成
                                • クォーラムによるクラスター状態検出
                                • クォーラム モード
                                • 投票ノードと非投票ノード
                                • クォーラム投票に推奨される調整
                                  • WSFC の強制クォーラムによる災害復旧
                                    • SQL Server インスタンス レベルでの保護
                                      • 可用性の向上 ndash SQL Server インスタンス
                                      • AlwaysOn フェールオーバー クラスター インスタンス
                                        • FCI のフェールオーバー プロセス
                                        • FCI の強化
                                            • データベースの可用性
                                              • AlwaysOn 可用性グループ
                                                • 可用性レプリカとロール
                                                • 可用性レプリカの同期
                                                  • 可用性グループのフェールオーバー
                                                  • 可用性グループ リスナー
                                                    • アプリケーションの目的によるフィルター処理
                                                    • アプリケーションの目的の読み取り専用ルーティング
                                                      • 可用性の向上 ndash データベース
                                                        • クライアント接続の推奨事項
                                                          • 結論
Page 20: 高可用性と災害復旧の概念download.microsoft.com/download/6/B/E/6BE0C3F3-2991-4766... · Web view高可用性と災害復旧のソリューションのために最適なデータベース

WSFC のクラスター検証ウィザードクラスター検証ウィザードはWindows Server 2008 および Windows Server 2008 R2 のフェールオーバー クラスタリングに統合されている機能ですこれはSQL Server AlwaysOn ソリューションの配置前 にクリーンで正常な安定した WSFC 環境が存在していることをデータベース管理者が確認するために使用する主要なツールです

クラスター検証ウィザードではクラスターのノードとして使用するサーバーの集合または既存のクラスターを対象にして一連のテストを実行できますこのプロセスでは基になるハードウェアおよびソフトウェアが個別に直接テストされWSFC クラスターが特定の構成でどの程度良好にサポートされるかについての正確な評価が得られます

この検証プロセスでは各ノードに対して次のようなカテゴリの一連のテストとデータ収集が実施されます

一覧作成BIOS のバージョン環境レベルホスト バス アダプターRAMオペレーティング システムのバージョンデバイスサービスドライバーなどの情報です

ネットワークNIC のバインド順序ネットワーク通信IP 構成ファイアウォール構成などの情報ですすべての NIC でノード間の通信が検証されます

ストレージディスクドライブの容量アクセス待機時間ファイル システムなどの情報ですSCSI コマンドディスク フェールオーバー機能対称的または非対称的なストレージ構成が検証されます

システム構成Active Directory の構成ドライバーの登録メモリ ダンプの設定必要なオペレーティング システムの機能とサービス互換性のあるプロセッサ アーキテクチャおよびサービス パックと Windows Software Update のレベルが検証されます

これらの検証テストの結果を利用してクラスターの構成を微調整したり構成を追跡したりダウンタイムを引き起こすかもしれない潜在的なクラスター構成の問題を特定したりできますテスト結果のレポートは後で参照できるようにHTML ドキュメントとして保存できます

これらのテストはWSFC の構成に何か変更を加える前と加えた後に実行するほかSQL Server をインストールする前および災害復旧プロセスの一環として実行する必要がありますマイクロソフトで特定の WSFC クラスター構成がサポートされるためにはマイクロソフト カスタマー サポート サービス (CSS) にクラスター検証レポートを提出する必要があります

詳細については「フェールオーバー クラスター ステップ バイ ステップ ガイド フェール オーバー クラスター用ハードウェアを検証する」(httptechnetmicrosoftcomja-jplibrarycc732035(WS10)aspx) を参照してください

注 ハードウェアベースの地理的クラスタリング ストレージ ソリューションの場合やAlwaysOn 可用性グループの場合のようにクラスター構成に非対称ストレージがあるとクラスター検証ウィザードでストレージの検証手順を成功させるために多数の修正プログラムを適用しなければならないことがあります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 15

詳細については「AlwaysOn 可用性グループの前提条件制限事項および推奨事項 」(httpmsdnmicrosoftcomja-jplibraryff878487(SQL110)aspxSystemReqsForAOAG) を参照してください

WSFC クォーラム モードと投票の構成WSFC ではクォーラム ベースのアプローチを使用してクラスターの全体的な正常性を監視することでノード レベルのフォールト トレランスを最大限に高めますWSFC のクォーラム モードおよびノード投票構成の基本について理解することはAlwaysOn 高可用性災害復旧ソリューションの設計運用トラブルシューティングのために非常に重要です

クォーラムによるクラスター状態検出WSFC クラスター内の各ノードは定期的なハートビート通信に参加しノードの正常性状態を他のノードと共有します応答しないノードはエラー状態であると見なされます

クォーラム ノード セットとはWSFC クラスター内の投票ノードおよび監視サーバーのうち過半数を占めるノードの集合ですWSFC クラスターの全体的な正常性と状態は定期的なクォーラムの投票 によって決定されますクォーラムはクラスターが正常でありノード レベルのフォールト トレランスを提供できることを意味します

クォーラムに達していない状態はクラスターが正常でないことを示しますプライマリ ノードのフェールオーバー先として正常なセカンダリ ノードを使用できるようにするにはWSFC クラスターの全体的な正常性が維持されている必要があります投票数がクォーラムに達しなかった場合にはWSFC クラスター全体が予防策としてオフラインに設定されますその場合クラスターに登録されている SQL Server インスタンスがすべて停止します

注 クォーラム障害のために WSFC クラスターがオフラインに設定されるとオンラインに戻すために手動の操作が必要です詳細については後の「WSFC の強制クォーラムによる災害 復旧」のセクションを参照してください

クォーラム モードクォーラム モードはWSFC クラスター レベルで構成されクォーラム投票の方法を指定しますフェールオーバー クラスター マネージャー ユーティリティではクラスター内のノード数に基づいて推奨するクォーラム モードが提示されます

次のいずれかのクォーラム モードによって投票クォーラムの構成が決定されます

ノード マジョリティクラスターが正常であるためにはクラスター内の半分以上の投票ノードが肯定的に投票する必要があります

ノードおよびファイル共有マジョリティノード マジョリティ クォーラム モードに似ていますがリモート ファイル共有も投票監視サーバーとして構成され各ノードからそのリモート ファイル共有への接続も肯定的な投票としてカウントされますクラスターが正常であるためには投票の過半数が肯定的である必要があります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 16

推奨事項として監視ファイル共有はクラスター内のノードに存在せずクラスター内のすべてのノードから見える必要があります

ノードおよびディスク マジョリティノード マジョリティ クォーラム モードに似ていますが共有ディスク クラスター リソースも投票監視サーバーとして使用され各ノードからその共有ディスクへの接続も肯定的な投票としてカウントされますクラスターが正常であるためには投票の過半数が肯定的である必要があります

ディスクのみ共有ディスク クラスター リソースが監視サーバーとして使用され各ノードからその共有ディスクへの接続が肯定的な投票としてカウントされます

詳細については「フェールオーバー クラスター ステップ バイ ステップ ガイド フェール オーバー クラスターのクォーラムの構成」(httptechnetmicrosoftcomja-jplibrarycc770620(WS10)aspx) で説明されています

注 クラスターの各ノードが同じ共有ストレージ クォーラム監視ディスクを使用するように構成されていない限り通常投票ノード数が奇数の場合は ノード マジョリティ クォーラム モード投票ノード数が偶数の場合は ノードおよびファイル共有マジョリティ クォーラム モードを使用してください

投票ノードと非投票ノード既定ではWSFC クラスター内の各ノードがクラスター クォーラムのメンバーとなります各ノードファイル共有監視サーバーディスク監視サーバーがクラスターの全体的な正常性の決定においてそれぞれ 1 票ずつの投票権を持ちますクォーラムに関するここまでの説明ではクラスター状態について投票する WSFC クラスター ノードのセットを投票ノードとして注意深く限定してきました状況によってはすべてのノードに投票権を与えることが適切でない場合もあります

WSFC クラスターの各ノードはクォーラムを確立しようとし続けますクラスター内の個々のノードはクラスターが全体として正常であるか正常でないかを明確に決定することはできません特定の時点で各ノードからは他のノードの一部がオフラインフェールオーバー中またはネットワーク通信のエラーにより応答不能に見えますクォーラム投票の主な機能はWSFC クラスターの各ノードの見かけの状態が本当にそれらのノードの実際の状態であるかどうかを判断することです

ディスクのみ 以外のすべてのクォーラム モデルではクォーラム投票の有効性はクラスター内のすべての投票ノード間に信頼できる通信が確立されていることに依存しますすべてのノードが同じ物理サブネット上にある場合はクォーラムの投票を信頼できます

しかしクォーラム投票で他のサブネット上のノードが応答しないように見えても実際はオンラインで正常である場合はサブネット間のネットワーク通信のエラーが原因であることが考えられますクラスター トポロジクォーラム モードおよびフェールオーバー ポリシーの構成によってはネットワーク通信エラーによって投票ノードのセット (またはサブセット) が実質的に複数作成されてしまう可能性があります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 17

投票ノードの複数のサブセットがそれぞれ独自のクォーラムを構築できる状態はスプリット ブレイン と呼ばれますこの状態では各クォーラム上のノードが別々の動作をし相互に矛盾する可能性があります

注 スプリット ブレイン の状況が発生するのはシステム管理者が強制クォーラム動作を手動で実行するかまたは非常にまれですが強制的な手動フェールオーバーを実行することでクォーラム ノード セットが明示的に細分化された場合のみです詳細については後の「WSFC の強制クォーラムによる災害復旧 」のセクションを参照してください

クォーラム構成を単純化し稼働時間を長くする目的でノードの投票がクォーラムにカウントされないように各ノードの NodeWeight 設定 (値 0 または 1) を調整することができます

クォーラム投票に推奨される調整以下のガイドラインをこの順番に適用することでクラスターに対して推奨されるクォーラム投票の構成を判断できます

1 既定は投票権なしにします明確な理由がない限り各ノードには投票権を与えないと考えてください

2 すべてのプライマリ ノードに投票権を与えますAlwaysOn 可用性グループのプライマリ レプリカをホストする各ノードおよび AlwaysOn フェールオーバー クラスター インスタンスの優先所有者である各ノードは投票権を持つ必要があります

3 可能性のある自動フェールオーバーの所有者を含めます自動フェールオーバーの結果としてプライマリ レプリカまたは FCI をホストする可能性がある各ノードは投票を持つ必要があります

4 セカンダリ サイト ノードを除外します通常はセカンダリ災害復旧サイトに存在するノードには投票を提供しないでくださいプライマリ サイトに問題がない場合クラスターをオフラインにする判断にセカンダリ サイト内のノードが影響を与えることは避ける必要があります

5 投票数を奇数にします必要に応じて監視ファイル共有監視ノード (SQL Server インスタンスの有無は問いません)または監視ディスクをクラスターに追加してクォーラム モードを調整しクォーラムの投票結果が同数に分かれるのを防ぎます

6 フェールオーバー後の投票割り当てを再評価します正常なクォーラムをサポートしないクラスター構成にフェールオーバーすることは避けます

ノードの投票の調整の詳細については「クラスター クォーラムの NodeWeight の設定の構 成」(httpmsdnmicrosoftcomja-jplibraryhh270281(SQL110)aspx) を参照してください

ファイル共有監視サーバーの投票は調整できませんその投票を含めるか除外するかを決めるには別のクォーラム モードを選択する必要があります

注 SQL Server ではWSFC クラスター構成およびノード クォーラム投票に関する設定を管理するためにいくつかのシステム動的管理ビュー (DMV) が公開されています

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 18

詳細については「可用性グループの監視」(httpmsdnmicrosoftcomja-jplibraryff878305(SQL110)aspx) を参照してください

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 19

WSFC の強制クォーラムによる災害復旧通常クォーラム障害は災害発生時または WSFC クラスター内の複数のノード間で永続的な通信障害が生じた場合に発生しますクォーラム障害が発生するとクラスターがノード レベルのフォールト トレランスを確保できなくなるためその WSFC クラスター内の SQL Server インスタンス可用性グループおよびクラスター化されているサービスがすべてオフラインになりますクォーラム障害はWSFC クラスター内の正常な投票ノード数がクォーラム モデルを満たさなくなったことを意味しますノードによってまったく機能しなくなるものもあればWSFC サービスがシャットダウンしただけでクォーラムと通信できなくなったことを除けば正常なものもあります

WSFC クラスターをオンラインに戻すには既存の構成の少なくとも 1 つのノードでクォーラム障害の根本的な原因を解決する必要があります災害発生時には使用できる代替ハードウェアの再構成や識別が必要となる場合もあります現状のクラスター トポロジを反映するためにWSFC クラスターの残りのノードを再構成する場合もあります

WSFC クラスター ノードで強制クォーラムの手順を使用するとクラスターがオフラインになる原因となった安全管理機能を無効にすることができますこれによりクラスターでのクォーラム投票のチェックが実質的に中断されクラスター内の任意のノードで WSFC クラスター リソースと SQL Server をオンラインに戻すことができます

このような災害復旧プロセスの手順を次に示します

1) 障害の範囲を特定します応答しない可用性グループや SQL Server インスタンス災害後に使用できるオンラインのクラスター ノードをそれぞれ特定しWindows イベント ログと SQL Server システム ログを確認します必要に応じて後で分析できるように解析データやシステム ログを保存しておきます

2) 1 つのノードで強制クォーラムを使用して WSFC クラスターを起動します他の点では正常なノードで強制クォーラムの手順に従ってクラスターを手動で強制的にオンラインにしますこの場合データ損失の可能性を最小限に抑えるには可用性グループのプライマリ レプリカを最後にホストしていたノードを選択します

詳細については「クォーラムを使用せずに WSFC クラスターを強制的に起動する 」(httpmsdnmicrosoftcomja-jplibraryhh270275(v=SQL110)aspx) を参照してください

注 強制クォーラムの設定を使用するとWSFC クラスターの投票が過半数に達することで通常のクォーラム モードの動作に自動的に切り替わるまでクラスター全体のクォーラムのチェックがブロックされます

3) 他の点では正常な各ノードでWSFC サービスを 1 つずつ通常の方法で起動します他のノードでクラスター サービスを起動するときは強制クォーラム オプションを指定する必要はありません

各ノードの WSFC サービスがオンラインに戻ると他の正常なノードとの間でネゴシエーションが行われ新しいクラスター構成の状態が同期されますクラスターの最新の状態

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 20

を判断するときに競合状態の発生を避けるためこの手順は必ず一度に 1 つのノードで行うようにしてください

注 起動した各ノードが新たにオンラインにした他のノードと通信できることを確認しますそうしないと複数のクォーラム ノード セットが作成されて スプリット ブレイン の状況に陥るおそれがあります手順 1 の結果に問題がなければこの現象は発生しません

4) 新しいクォーラム モードとノードの投票の構成を適用します強制クォーラムの手順によってクラスターのすべてのノードを正常に再起動させクォーラムのエラーの根本原因を修正した場合クォーラム モードとノードの投票を元の構成から変更する必要はありません

それ以外の場合は新たに復元されたクラスター ノードと可用性レプリカのトポロジを評価し必要に応じてクォーラム モードと各ノードの投票割り当てを変更します未復旧のノード上ではWSFC クラスター サービスをオフラインにするかノードの投票をゼロに設定します

注 この時点でクラスター内のノードと SQL Server インスタンスが通常の動作に戻っているように見えることがありますがまだ正常なクォーラムには達していない可能性がありますフェールオーバー クラスター マネージャーやSQL Server Management Studio の AlwaysOn ダッシュボードまたは適切な DMV を使用して正常なクォーラムが復元されたことを確認してください

5) 必要に応じて可用性グループのデータベース レプリカを復旧します一部のデータベースはSQL Server の通常の起動処理の一環として自動的に復旧されオンラインに戻ることがありますそれ以外のデータベースの復旧には追加で手動の手順を実行する必要があります

可用性グループ レプリカのデータ損失の可能性や復旧にかかる時間を最小限に抑えるにはできればプライマリ レプリカ同期セカンダリ レプリカ非同期セカンダリ レプリカの順にオンラインに戻します

6) 障害が発生したコンポーネントを修復するか交換しクラスターを再検証しますこれで最初の災害およびクォーラム障害から復旧できたので障害が発生したノードを修復するか交換しWSFC と AlwaysOn の関連する構成を適切に調整する必要がありますこれには可用性グループ レプリカの削除クラスターからのノードの削除ノードへのソフトウェアの再インストールなどが含まれます

注 停止したすべての可用性レプリカを修復または削除する必要がありますSQL Server 2012 では最も古い可用性レプリカを最後に認識した時点以降トランザクション ログが切り捨てられません停止したレプリカを修復するか可用性グループから削除しないとトランザクション ログが大きくなり他のレプリカのトランザクション ログの領域が不足する可能性があります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 21

7) 必要に応じて手順 4 を繰り返しますこの目的は正常な動作を行うために適切なレベルのフォールト トレランスと高可用性を再確立することです

8) RPORTO 分析を実行しますSQL Server のシステム ログデータベースのタイムスタンプおよび Windows のイベント ログを分析して障害の根本的な原因を特定し実際の復旧ポイントと復旧時間を文書に記録します

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 22

SQL Server インスタンス レベルでの保護次に説明する AlwaysOn ソリューションの保護レイヤーはデータ プラットフォームそれ自体ですMicrosoft SQL Server 2012 とその Windows Server インフラストラクチャ コンポーネントとの統合によって次のような機能が提供されます

可用性の向上 ndash SQL Server インスタンスこれは SQL Server 2012 の新しいインスタンス レベルの機能でAlwaysOn フェールオーバー クラスター インスタンスとAlwaysOn 可用性グループをホストするスタンドアロン インスタンスの両方の可用性を強化します

以下の強化点によってフェールオーバーの管理およびトラブルシューティングが向上します

柔軟なフェールオーバー ポリシー信頼性の高いエラー検出に使用される新しいシステム ストアド プロシージャ sp_server_diagnostics の出力でSQL Server インスタンスに影響するエラーの重大度が FailureConditionLevel プロパティによって示されますWSFC のフェールオーバー ポリシーによってこの値が SQL Server インスタンスにどのように影響するかを制御できますある程度エラーを許容する設定からSQL Server の内部コンポーネント エラーを重点的に検出する設定までさまざまに構成できます

特定のレベルのエラーによってフェールオーバーを開始するように構成できますエラーのレベルにはサーバーの停止サーバーの応答停止重大なエラー中程度のエラーなんらかの条件付きエラーなどがありますFailureConditionLevel プロパティはFCI または可用性グループのフェールオーバー ポリシーのために使用できます

SQL Server 2012 よりも前のバージョンではフェールオーバーを制御できるようなエラー状態の区分がなくすべてのサービス レベルのエラーによってフェールオーバーが発生しました

詳細については「フェールオーバー クラスター インスタンスのフェールオーバー ポリシー」(httpmsdnmicrosoftcomja-jplibraryff878664(SQL110)aspx) を参照してください

強化されたインストルメンテーションとログAlwaysOn 専用のシステム構成ビューDMVパフォーマンス カウンターに加えて拡張されたイベント正常性セッションによってAlwaysOn 配置のトラブルシューティングチューニングおよび監視に必要な情報を取得して表示できますこれらの多くはSQL Server ポリシー管理の新しいファセットおよびポリシーを通じて公開されます

詳細については「AlwaysOn 可用性グループの動的管理ビューおよび関 数」(httpmsdnmicrosoftcomja-jplibraryff877943(SQL110)aspx) と「sysdm_os_cluster_nodes」(httpmsdnmicrosoftcomja-jplibraryms187341(SQL110)aspx) を参照してください

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 23

SMB ファイル共有のサポートWindows Server 2008 以降のスタンドアロン用またはフェールオーバー クラスター インスタンス用のリモート ファイル共有にデータベース ファイルを格納することができますこの場合FCI ごとに異なるドライブ文字を使用する必要がありませんこれはストレージを統合する場合やデータベース ファイルのストレージを仮想マシンのゲスト オペレーティング システム用物理サーバーでホストする場合などに便利なオプションです適切に構成すれば直接接続されたストレージとほぼ同等の IO パフォーマンスが得られます

詳細については「ファイル共有上の SQL データベース - シナリオを再検討すべきとき 」(httpblogsmsdncombsqlserverstorageenginearchive20111018sql-databases-on-file-shares-it-s-time-to-reconsider-the-scenarioaspx) を参照してください

注 WSFC クラスターではSMB ファイル共有リソースの依存関係を SQL Server リソース グループに追加することはできませんファイル共有の可用性を確保するには別の方法を用いる必要がありますファイル共有が使用できなくなった場合SQL Server は IO 例外をスローしオフラインになります

WSFC と DNS の相互運用性FCI または可用性グループ リスナーの仮想ネットワーク名 (VNN) はVNN の作成時または構成の変更時にのみDNS に登録されますすべての仮想 IP アドレスはオンライン状態かオフライン状態かに関係なく同じ仮想ネットワーク名で DNS に登録されますDNS の仮想ネットワーク名を解決するためのクライアント呼び出しは各種のラウンド ロビン シーケンスによってすべての登録済み IP アドレスを返します

AlwaysOn フェールオーバー クラスター インスタンスSQL Server の AlwaysOn フェールオーバー クラスター インスタンス (FCI) の主な目的は1 つのデータ センター内のローカル サーバーとストレージ ハードウェアでホストされている SQL Server インスタンスの可用性を高めることです

FCI はWindows Server フェールオーバー クラスタリング (WSFC) のクラスターに含まれる複数のノードにまたがってインストールされる1 つの論理的な SQL Server インスタンスですただし一度に 1 つのノードだけでアクティブになることができますクライアント アプリケーションはアクティブなクラスター ノードが所有している仮想ネットワーク名および仮想 IP アドレスに接続します

FCI をインストールした各ノードは同一の構成を持ち同一の SQL Server バイナリを含んでいますWSFC クラスター サービスはアクティブなインスタンス上にある Windows レジストリのエントリからFCI をインストールした各ノードに関連のある変更をレプリケートしますFCI がインストールされている各ノードはインスタンスとそのリソースの所有者の候補として指定されフェールオーバーの優先順位に従って所有者となります

共有対称ストレージ ボリュームに格納されているデータベース ファイルはリソースとして WSFC クラスターに登録され現在 FCI をホストしているノードによって所有されます

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 24

詳細については「AlwaysOn フェールオーバー クラスター インスタン ス」(httpmsdnmicrosoftcomja-jplibraryms189134(SQL110)aspx) を参照してください

FCI のフェールオーバー プロセス依存しているクラスター リソースで障害が発生した場合AlwaysOn フェールオーバー クラスター インスタンスはWSFC クラスター サービスと連携してフェールオーバーを行いますそのプロセスの概要を以下に示します

1) 再起動が指示されますWSFC の定期的なチェックまたは SQL Server のフェールオーバー ポリシー構成によってエラー状態が示されます既定では他のノードへのフェールオーバーを開始する前にサービスの再起動が試みられます再起動の試みがタイムアウトするようであればリソースの障害が発生しています

2) フェールオーバーが指示されますフェールオーバー ポリシー チェックによってノードのフェールオーバーが必要であることが示されます

3) SQL Server サービスが停止されますSQL Server サービスが現在実行されている場合はその正常なシャットダウンが試みられます

4) WSFC クラスター リソースが転送されますSQL Server クラスター リソース グループの所有権とそれが依存するネットワークおよび共有ストレージ リソースがFCI で次に優先されるノード所有者に転送されます

5) 新しいノードで SQL Server が起動されますSQL Server インスタンスは通常のスタートアップ プロシージャで起動されます所定のタイムアウト時間内にオンラインに戻らない場合クラスター サービスはこの新しいノード上のリソースをエラー状態と見なします

6) 新しいノードでユーザー データベースが復旧されます各ユーザー データベースは復旧モードに設定されます復旧モードではトランザクション ログの再実行操作が適用されコミットされていなかったトランザクションがロールバックされます

FCI の強化以前のバージョンの SQL Server でも FCI のインストール オプションは用意されていましたがSQL Server 2012 では次のような機能強化によって可用性の堅牢性と利便性が向上しました

マルチサブネット クラスタリングSQL Server 2012 では複数のサブネットに存在する WSFC クラスター ノードがサポートされていますWSFC クラスター ノードに存在する SQL Server インスタンスはいずれかのネットワーク インターフェイスが使用可能であれば起動できますこれはクラスター リソースの OR 依存関係と呼ばれます

以前のバージョンの SQL Server の場合SQL Server サービスを起動またはフェールオーバーするにはすべてのネットワーク インターフェイスが機能しそれらがすべて同じサブネットまたは VLAN に存在している必要がありました

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 25

注 マルチサブネット クラスタリングではクラスター ノード間のストレージ レベルのレプリケーションが自動的には有効になりませんマルチサブネットの FCI ソリューションでクラスター ノード間でデータのレプリケーションを行いストレージ フェールオーバーを調整するためにはサード パーティから提供される SAN ベースのソリューションを利用する必要があります

詳細については「SQL Server 2012 AlwaysOn マルチサイト フェールオーバー クラスター インスタンス」(httpsqlcatcomsqlcatbwhitepapersarchive20111222sql-server-2012-alwayson_3a00_-multisite-failover-cluster-instanceaspx) を参照してください

信頼性の高いエラー検出WSFC クラスター サービスではノードの各 SQL Server 2012 FCI に対してそれぞれ専用の管理者接続が維持されますこの接続では特殊なシステム ストアド プロシージャ sp_server_diagnostics を定期的に呼び出すことでシステムの正常性診断に役立つ豊富な情報を含む配列が返されます

SQL Server 2012 よりも前のバージョンではFCI の主な正常性検出メカニズムは単純な一方向のポーリング プロセスとして実装されていましたこのプロセスではWSFC クラスター サービスがインスタンスへの新しい SQL クライアント接続を定期的に作成しサーバー名を照会した後で接続を切断していました何かの理由で接続が失敗するかクエリがタイムアウトした場合フェールオーバーが開始されますが診断情報はほとんど提供されません

詳細については「sql_server_diagnostics」(httpmsdnmicrosoftcomja-jplibraryff878233(SQL110)aspx) を参照してください

現在ではFCI ストレージが次のように幅広い状況でサポートされています

向上したマウント ポイント サポートSQL Server のセットアップ時にクラスター ディスクのマウント ポイント設定が認識されるようになりました指定されたクラスター ディスクとそれにマウントされているすべてのディスクがセットアップ時に SQL Server リソースの依存関係に自動的に追加されます

ローカル ストレージの tempdbFCI ではローカルの非共有ストレージ (ローカル ソリッド ステート ドライブなど) に tempdb を配置できるようになったため共有 SAN での IO 動作の負荷を大幅に軽減できる可能性があります

SQL Server 2012 よりも前のバージョンの FCI ではtempdb が他のシステム データベースと共にフェールオーバーされる対称共有ストレージ ボリュームに配置される必要がありました

注 tempdb の場所はmaster データベースに格納されますこのデータベースはフェールオーバー時にノード間で移動されますtempdb は所有者候補となっているすべてのノード上で有効で対称的なファイル パス (ドライブフォルダーおよび権限) に配置されている必要がありますそうなっていない場合SQL Server サービスが一部のノードでは起動されません

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 26

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 27

データベースの可用性インフラストラクチャ レベルおよび SQL Server インスタンス レベルのコンポーネントで提供されている高可用性機能は互いに連係してホストされているデータベースを暗黙的に保護しますAlwaysOn ソリューションではデータベースのデータおよびデータ層アプリケーションを明示的に保護するために一連のオプションが追加で用意されています

AlwaysOn 可用性グループ可用性グループは1 つの SQL Server インスタンスから同じ WSFC クラスター内の別のインスタンスへと同時にフェールオーバーされるユーザー データベースのセットですクライアント アプリケーションは可用性グループ リスナーと呼ばれる WSFC 仮想ネットワーク名を通じて可用性グループのデータベースに接続できますこうすることで基になる SQL Server インスタンスが抽象化されます

AlwaysOn 可用性グループは正常性監視フェールオーバーの調整およびサーバー接続を Windows Server フェールオーバー クラスタリングに依存していますWSFC クラスター ノード上の SQL Server インスタンスでAlwaysOn サポートを有効にする必要がありますただしそのインスタンスが FCI である必要はなく対称共有ストレージを使用する必要もありません

詳細については「AlwaysOn 可用性グループの概要 」(httpmsdnmicrosoftcomja-jplibraryff877884(SQL110)aspx) を参照してください

可用性レプリカとロール可用性グループの各 SQL Server インスタンスは可用性グループのユーザー データベースのコピーを保持している可用性レプリカをホストしますSQL Server インスタンスは特定の可用性グループの可用性レプリカを 1 つだけホストすることができますが複数の可用性グループを同じインスタンスに置くことは可能ですSQL Server インスタンスは専用の (非共有) ストレージ ボリュームを持つ必要があります

可用性レプリカの 1 つがプライマリ レプリカの役割を果たしますこれは可用性グループ データベースのマスター コピーとして指定されていて読み取り書き込み操作を行うことができます

可用性グループには読み取り専用の可用性レプリカを最大 4 つまで追加で含めることができますこれらは個別にセカンダリ レプリカの役割を果たします

可用性レプリカの同期可用性グループの各データベースの内容はSQL Server によるログ ベースのデータ移動メカニズムを通じてプライマリ レプリカから各セカンダリ レプリカに同期されますそのため可用性グループのすべてのデータベースは完全復旧モデルに設定する必要があります

セカンダリ レプリカはプライマリ レプリカのデータベースとトランザクション ログの完全なバックアップと復元によって初期化されますプライマリ レプリカで新しいトランザクションがコミットされるとトランザクション ログの対応する部分がキャッシュされ

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 28

キューに入れられてネットワーク経由でセカンダリ レプリカ ノード上のデータベース ミラーリング エンドポイントに送信されます

この方法によりプライマリ レプリカのトランザクション ログの新しいエントリが各セカンダリ レプリカのトランザクション ログに追加されます各セカンダリ レプリカはログ シーケンス番号 (LSN) をプライマリ レプリカに定期的に送り返しトランザクション ログのどのくらいの量がリモート ディスクに書き込まれフラッシュされたかを示します

注 各可用性レプリカはそれぞれ独自に独立したトランザクション ログ再実行スレッドのセットを保持していますこれは可用性レプリカの同期プロセスには含まれませんセカンダリ レプリカ上ではログ再実行プロセスによって遅延時間が生じるためユーザーはそれをデータの待機時間として感じる場合があります

プライマリまたはセカンダリの役割を果たす他に各可用性レプリカには可用性モードもありますこのモードは次のようにCOMMIT TRAN ステートメントの実行時にトランザクション ログの書き込みの連係を制御します

同期コミット モードすべての同期コミット セカンダリ レプリカからそれぞれ独自のトランザクション ログの書き込み完了 (LSN 以降) が通知されるまでプライマリ レプリカはそのトランザクションをコミットしません可用性グループでは最大で 2 つの同期コミット セカンダリ レプリカを使用できます

同期コミット モードではプライマリ レプリカ データベースでトランザクションの遅延が生じますがコミットされたトランザクションに対するセカンダリ レプリカでのデータ損失を確実に防ぐことができます

非同期コミット モードプライマリ レプリカはローカル トランザクション ログの書き込み後にトランザクションをコミットしますが非同期コミット セカンダリ レプリカからトランザクション ログの書き込み完了通知を待つことはしません可用性グループでは最大で 4 つの非同期コミット セカンダリ レプリカを使用できますただし両方の種類を合わせて使用できるセカンダリ レプリカの合計は最大 4 つです

非同期コミット モードではプライマリ レプリカ データベースで生じるトランザクションの遅延が最小になりますがセカンダリ レプリカでのトランザクション ログが遅れる場合があるため一部のデータが失われる可能性があります

詳細については「可用性モード」(httpmsdnmicrosoftcomja-jplibraryff877931(SQL110)aspx) を参照してください

可用性レプリカ間のデータ フローの全体的な正常性は各レプリカの同期状態によって示されますセカンダリ レプリカにフェールオーバーしたときに同期状態が 同期済み または 同期中 になっていなければほとんどの場合はデータ損失が発生することになります

各セカンダリ レプリカの同期ストリームにはセッション タイムアウト プロパティがあります同期コミット モードに構成されているセカンダリ レプリカがセッション タイムアウトでエラーになると内部的には一時的に非同期としてマークされますこれはセカンダ

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 29

リ レプリカのエラーがプライマリ レプリカでのトランザクション ログの書き込みに影響しないようにするためですそのセカンダリ レプリカが正常に戻ってプライマリ レプリカの状態に追いつくと自動的に通常の同期コミット モード動作に戻されます

可用性グループのフェールオーバー可用性グループとそれに対応する仮想ネットワーク名はWSFC クラスターのリソースとして登録されます可用性グループはプライマリ レプリカの正常性とフェールオーバー ポリシーに基づいて可用性レプリカのレベルでフェールオーバーを行います

可用性グループのフェールオーバー ポリシーではsp_server_diagnostics システム ストアド プロシージャと FailureConditionLevel プロパティを使用して可用性グループに対して許容されるエラーの重大度のレベルを示しますこの同じメカニズムがFCI のフェールオーバー ポリシーにも使用されます

フェールオーバーが発生した場合は共有物理リソースの所有権を他のノードに移す代わりにWSFC を利用して他の SQL Server インスタンス上でセカンダリ レプリカを再構成しプライマリ レプリカの役割を引き継がせますその後可用性グループの仮想ネットワーク名リソースがそのインスタンスに転送されます関連する可用性レプリカへのすべてのクライアント接続がリセットされます

レプリカの現在の正常性同期状態および可用性モードに基づいて各レプリカには複合的な フェールオーバーの準備 状態が定義されますこの状態の値はデータ損失の可能性を示していますレプリカの正常性情報はAlwaysOn ダッシュボードまたは sysdm_hadr_availability_replica_states システム ビューで確認できます

各可用性レプリカにはフェールオーバー モードも構成されていますこのモードはフェールオーバーが指示された場合にレプリカの動作を制御します

自動フェールオーバー (データ損失なし)セカンダリ レプリカのトランザクション ログが既に書き込まれ同期されているのですべての AlwaysOn 構成の中でフェールオーバー時間が最短になりますプライマリ レプリカ上の開かれているトランザクションはロールバックされプライマリ レプリカの役割はユーザーによる操作なしでセカンダリ レプリカに転送されます

この場合プライマリ レプリカとセカンダリ レプリカの両方を自動フェールオーバー モードに設定し両方の可用性モードを同期コミットに設定する必要がありますレプリカ間の同期状態は同期済み である必要がありますまたWSFC クラスターは正常なクォーラム状態になっている必要があります

自動フェールオーバーはプライマリ レプリカまたはセカンダリ レプリカが FCI 上にある場合はサポートされませんこれは可用性グループと FCI のフェールオーバー間で競合状態が発生することを防ぐためです

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 30

手動フェールオーバーこの場合管理者はプライマリ レプリカの状態を評価してセカンダリ レプリカにフェールオーバーするかどうかを慎重に判断できます

可用性モードと同期状態に応じて次のような選択が可能です

o 計画的な手動フェールオーバー (データ損失なし)この種類のフェールオーバーを実行できるのはプライマリ レプリカとセカンダリ レプリカの両方が正常で同期済み 状態である場合だけですこれは機能的には自動フェールオーバーと同じです

o 強制手動フェールオーバー (データ損失の可能性を許容)これは対象のセカンダリ レプリカの可用性モードが非同期コミットである場合またはプライマリ レプリカに同期されない場合に使用できる唯一のフェールオーバー形式です

警告 このフェールオーバー オプションは災害復旧の状況に限って使用する必要がありますプライマリ レプリカが正常で使用可能である場合は関連する各レプリカの可用性モードを同期コミットに変更し計画的な手動フェールオーバーを実行してください

詳細については「可用性グループの強制手動フェールオーバーの実行」(httpmsdnmicrosoftcomja-jplibraryff877957(SQL110)aspx) を参照してください

フェールオーバー対象のプライマリ レプリカまたはセカンダリ レプリカが次の条件のいずれかに該当する場合は手動フェールオーバーを実行する必要があります

フェールオーバー モードが手動に設定されている 可用性モードが非同期コミットに設定されている レプリカが FCI 上にある

詳細については「フェールオーバーとフェールオーバー モード (AlwaysOn 可用性グルー プ ) 」(httpmsdnmicrosoftcomja-jplibraryhh213151(SQL110)aspx) を参照してください

注 フェールオーバー後新しいプライマリ レプリカが同期コミット モードに設定されていない場合セカンダリ レプリカの同期状態は 中断状態 になりますプライマリ レプリカが同期コミット モードに設定されるまでデータはセカンダリ レプリカに移動されません

可用性グループ リスナー可用性グループ リスナーはクライアントが可用性グループ内のデータベースにアクセスするために使用できる WSFC 仮想ネットワーク名 (VNN) ですVNN クラスター リソースはプライマリ レプリカをホストしている SQL Server インスタンスによって所有されます

仮想ネットワーク名は可用性グループ リスナーの作成時または構成の変更時にのみDNS に登録されます可用性グループ リスナーで定義されているすべての仮想 IP アドレスは同じ仮想ネットワーク名で DNS に登録されます

可用性グループ リスナーを使用する場合クライアント接続要求ではサーバーとして仮想ネットワーク名を指定してから可用性グループ内のデータベース名を指定する必要があり

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 31

ます既定ではこれによってプライマリ レプリカをホストしている SQL Server インスタンスに接続されます

実行時にはクライアントはローカルの DNS リゾルバーを使用して仮想ネットワーク名にマップされている IP アドレスと TCP ポートの一覧を取得しますクライアントは各 IP アドレスへの接続を成功するか接続タイムアウトに達するまで試し続けますMultiSubnetFailover パラメーターが true に設定されているとクライアントは複数の接続を同時に試行するのでクライアント フェールオーバーが大幅に速くなります

フェールオーバーが行われるとサーバー上でクライアント接続がリセットされ可用性グループ リスナーの所有権はプライマリ レプリカの役割と共に新しい SQL Server インスタンスに移動しVNN エンドポイントは新しいインスタンスの仮想 IP アドレスと TCP ポートにバインドされます

詳細については「可用性グループ リスナークライアント接続およびアプリケーションのフェールオーバー」(httpmsdnmicrosoftcomja-jplibraryhh213417(SQL110)aspx) を参照してください

アプリケーションの目的によるフィルター処理可用性グループ リスナーを使用して接続している場合アプリケーションは接続の目的がデータの読み取りと書き込みの両方なのか読み取り専用操作を実行するだけなのかを指定できます指定しない場合クライアントのアプリケーションの目的は既定で読み取りと書き込みになります

各可用性レプリカのプライマリ ロールとセカンダリ ロールについてはクライアントのアプリケーションの目的に対する接続レベルのフィルターとして接続アクセス プロパティも指定できます既定ではアプリケーションの目的と接続アクセスとの組み合わせが無効であると接続が拒否されますSQL Server は次のルールを使用してクライアントの接続要求を振り分ける必要があります

可用性レプリカがプライマリ ロールであり接続アクセスが次のいずれかである場合

すべてのアプリケーションの目的を許可するアプリケーションの目的でクライアント接続をフィルター処理しません

明示的な読み取り書き込みの目的だけを許可するクライアントが読み取り専用を指定している場合接続を拒否します

可用性レプリカがセカンダリ ロールであり接続アクセスが次のいずれかである場合

接続を許可しないすべての接続を拒否しますレプリカは災害復旧だけに使用されます

すべてのアプリケーションの目的を許可するアプリケーションの目的でクライアント接続をフィルター処理しません

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 32

読み取り専用の目的を許可するクライアントが読み取り専用を指定していない場合接続を拒否します

詳細については「可用性レプリカでの読み取り専用アクセスの構成」(httpmsdnmicrosoftcomja-jplibraryhh213002(SQL110)aspx) を参照してください

アプリケーションの目的の読み取り専用ルーティングAlwaysOn 可用性グループの特に優れた点はスタンバイ ハードウェア インフラストラクチャを災害復旧以外の目的に利用できることです1 つ以上のセカンダリ レプリカを読み取り専用でアクセスできるように構成するとプライマリ レプリカからかなりの量のワークロードを軽減できます

読み取り専用セカンダリ レプリカに回すように簡単に調整できるワークロードはレポートデータベース バックアップデータベース整合性チェックインデックスの断片化の分析データ パイプライン抽出運用サポート操作サポートアドホック クエリなどです

各可用性レプリカではSQL Server インスタンスのエンドポイントについて順次的な読み取り専用ルーティング リストを構成することもできますこのリストはレプリカがプライマリ ロールであるときに適用されますこのリストが存在する場合アプリケーションの目的が読み取り専用と指定されているクライアント接続要求はそのリスト内に記載されていて前述のアプリケーションの目的フィルターに適合する最初のセカンダリ レプリカにリダイレクトされます

注 読み取り専用ルーティングによるリダイレクトはプライマリ レプリカにバインドされている可用性グループ リスナーによって実行されますプライマリ レプリカがオフラインの場合クライアントのリダイレクトは機能しません

詳細については「可用性グループの読み取り専用ルーティングの構成 (SQL Server) 」(httpmsdnmicrosoftcomja-jplibraryhh710054(SQL110)aspx) を参照してください

可用性の向上 ndash データベースSQL Server 2012 ではデータベースの構成と機能に関してさまざまな点が強化されています

以下の機能は復旧時間の短縮に役立ちます

予測可能な復旧時間データベースごとにターゲット復旧時間の長さを設定することでバックグラウンドで実行される CHECKPOINT コマンドのスケジュールを制御できますこのコマンドは間接的なチェックポイントとして再起動時またはフェールオーバー時にトランザクション ログの復旧に必要となる時間の推定値に基づいて定期的に実行されますそれによってチェックポイントごとに IO 操作がほぼ均等に配分され復旧時間 (RTO) の予測可能性が高まります

SQL Server 2012 よりも前のバージョンではバックグラウンドの CHECKPOINT コマンドがトランザクションの量や負荷とは無関係に一定間隔で実行されていたので復旧時間を予測することはできませんでした

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 33

詳細については「データベース チェックポイント」(httpmsdnmicrosoftcomja-jplibraryms189573(SQL110)aspx) を参照してください

以下の向上点は計画的なダウンタイムが必要になる一般的な状況を減らすのに役立ちます

LOB 列のオンライン インデックス操作varbinary(max)varchar(max)nvarchar(max)または XML データ型の列が含まれているインデックスをオンラインで再構築または再構成できるようになりました

新しい NOT NULL 列のオンライン スキーマ修正既定値を使用して新しい NOT NULL 列を SQL Server 2012 データベース テーブルに追加する場合システム メタデータの更新にはスキーマ ロックだけが必要ですALTER TABLE ステートメントですべての行にデータを設定する必要はありません

いずれかの行で実際に変更またはインデックスの再作成が行われない限り列の既定値は物理的に格納されませんクエリでは列に実際の値が存在しない場合メタデータから既定値を返します

ストレージのサポート強化の例として次のようなものがあります

ページの自動修復ある種のストレージ サブシステム エラーが発生するとデータ ページが破損し読み取り不可能になる場合がありますAlwaysOn 可用性グループではそのような種類のエラーを検出し自動的に復旧できます復旧のために影響を受けたデータ ページの最新のコピーが別の可用性レプリカから非同期で取得され適用されます

以前のバージョンでもデータベース ミラーリングに同様の機能がありましたが新しい機能では複数のレプリカをサポートできるようになっています

詳細については「ページの自動修復」(httpmsdnmicrosoftcomja-jplibrarybb677167(SQL110)aspx) を参照してください

クライアント接続の推奨事項クライアント アプリケーションが Microsoft SQL Server 2012 AlwaysOn テクノロジの利点を十分に活用できるようにするには次のガイドラインに従います

AlwaysOn 対応のクライアント ライブラリ表形式のデータ ストリーム (TDS) プロトコル Version 74 以降をサポートしているクライアント ライブラリを使用しますこれによってAlwaysOn の機能に対応した適切な機能がクライアント側でも提供されますクライアント ライブラリの例としてはData Provider for SQL Server in NET Framework 402SQL Native Client 110 などがあります

接続プロバイダー プロパティ MultiSubnetFailover = True接続文字列にこのキーワードを使用することでクライアント ライブラリでは(複数のサブネットに IP アドレスを持つ) 可用性グループ リスナーまたは FCI に登録されているすべての IP アドレスに同時に接

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 34

続できるようになります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 35

接続プロバイダー プロパティ ApplicationIntent = ReadOnly必要に応じてプライマリ レプリカの読み取り専用ワークロードをセカンダリ レプリカに移管することができます

レガシ クライアントの接続タイムアウトレガシ クライアントのデータベース ライブラリには並列で接続を試行する機能が実装されていないため複数の IP アドレスがある場合にはTCP タイムアウトに達するか正常に接続できるまで1 つずつ順番に接続を試行します

複数の IP アドレスが存在する場合はタイムアウトと再試行が逐次的に繰り返される可能性に備えてレガシ クライアントの接続タイムアウトを調整する必要があります値は少なくとも 15 秒 + 21 秒 times セカンダリ レプリカ数にします

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 36

結論このホワイト ペーパーではSQL Server 2012 の AlwaysOn による高可用性災害復旧ソリューションを使用し予定されたダウンタイムや予定外のダウンタイムを短縮したりアプリケーションの可用性を最大限に高めたりデータを保護したりする方法について基本的なコンテキストを確立しました

高可用性データベース環境の計画管理測定に関連したビジネス上の目的と課題は多くの場合目標復旧時点 (RPO) と目標復旧時間 (RTO) という形で数量化して表すことができます

SQL Server 2012 AlwaysOn は組織が高可用性や災害復旧に関する一般的な状況に対処するための機能をRPO と RTO を適切に達成できることを念頭にインフラストラクチャ レベルデータ プラットフォーム レベルデータベース レベルのそれぞれで提供します

詳細情報

httpwwwmicrosoftcomja-jpsqlserver2012defaultaspx SQL Server Web サイト

httptechnetmicrosoftcomja-jpsqlserver SQL Server TechCenter

httpmsdnmicrosoftcomja-jpsqlserver SQL Server 開発者向け技術情報

このホワイト ペーパーはお役に立ちましたか フィードバックをお寄せください1 (役に立たなかった) ~ 5 (非常に役に立った) の 5 段階で評価してくださいまたその評価の理由もお知らせください以下に例を示します

評価が高い 例が適切図がわかりやすい説明が明快といったことが理由である 評価が低い 例が少ない図がわかりにくい説明があいまいといったことが理由で

ある

このようなフィードバックをお寄せいただくと今後のホワイト ペーパーの品質向上につながります

フィードバックの送信

loz Version 112012 年 2 月 21 日

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 37

  • 高可用性と災害復旧の概念
    • 高可用性について
      • 予定されたダウンタイムと予定外のダウンタイム
      • 段階的な可用性
        • ダウンタイムの定量化
          • 復旧目標
          • ROI または機会費用の正当化
          • 可用性の健全度の監視
          • 災害復旧の計画
            • 概要 Microsoft SQL Server 2012 での高可用性
              • SQL Server AlwaysOn
              • 計画的なダウンタイムの大幅な削減
              • アイドル状態のハードウェアをなくしてコスト効率とパフォーマンスを向上
              • 簡単な配置と管理
              • RPO と RTO の機能比較
                  • SQL Server AlwaysOn の保護レイヤー
                    • インフラストラクチャの可用性
                      • Windows オペレーティング システム
                        • Windows Server Core インストール オプション
                        • プライベート クラウド用の SQL Server の最適化
                          • Windows Server フェールオーバー クラスタリング
                            • WSFC ストレージ構成
                            • WSFC リソースの正常性の検出とフェールオーバー
                              • WSFC のクラスター検証ウィザード
                              • WSFC クォーラム モードと投票の構成
                                • クォーラムによるクラスター状態検出
                                • クォーラム モード
                                • 投票ノードと非投票ノード
                                • クォーラム投票に推奨される調整
                                  • WSFC の強制クォーラムによる災害復旧
                                    • SQL Server インスタンス レベルでの保護
                                      • 可用性の向上 ndash SQL Server インスタンス
                                      • AlwaysOn フェールオーバー クラスター インスタンス
                                        • FCI のフェールオーバー プロセス
                                        • FCI の強化
                                            • データベースの可用性
                                              • AlwaysOn 可用性グループ
                                                • 可用性レプリカとロール
                                                • 可用性レプリカの同期
                                                  • 可用性グループのフェールオーバー
                                                  • 可用性グループ リスナー
                                                    • アプリケーションの目的によるフィルター処理
                                                    • アプリケーションの目的の読み取り専用ルーティング
                                                      • 可用性の向上 ndash データベース
                                                        • クライアント接続の推奨事項
                                                          • 結論
Page 21: 高可用性と災害復旧の概念download.microsoft.com/download/6/B/E/6BE0C3F3-2991-4766... · Web view高可用性と災害復旧のソリューションのために最適なデータベース

詳細については「AlwaysOn 可用性グループの前提条件制限事項および推奨事項 」(httpmsdnmicrosoftcomja-jplibraryff878487(SQL110)aspxSystemReqsForAOAG) を参照してください

WSFC クォーラム モードと投票の構成WSFC ではクォーラム ベースのアプローチを使用してクラスターの全体的な正常性を監視することでノード レベルのフォールト トレランスを最大限に高めますWSFC のクォーラム モードおよびノード投票構成の基本について理解することはAlwaysOn 高可用性災害復旧ソリューションの設計運用トラブルシューティングのために非常に重要です

クォーラムによるクラスター状態検出WSFC クラスター内の各ノードは定期的なハートビート通信に参加しノードの正常性状態を他のノードと共有します応答しないノードはエラー状態であると見なされます

クォーラム ノード セットとはWSFC クラスター内の投票ノードおよび監視サーバーのうち過半数を占めるノードの集合ですWSFC クラスターの全体的な正常性と状態は定期的なクォーラムの投票 によって決定されますクォーラムはクラスターが正常でありノード レベルのフォールト トレランスを提供できることを意味します

クォーラムに達していない状態はクラスターが正常でないことを示しますプライマリ ノードのフェールオーバー先として正常なセカンダリ ノードを使用できるようにするにはWSFC クラスターの全体的な正常性が維持されている必要があります投票数がクォーラムに達しなかった場合にはWSFC クラスター全体が予防策としてオフラインに設定されますその場合クラスターに登録されている SQL Server インスタンスがすべて停止します

注 クォーラム障害のために WSFC クラスターがオフラインに設定されるとオンラインに戻すために手動の操作が必要です詳細については後の「WSFC の強制クォーラムによる災害 復旧」のセクションを参照してください

クォーラム モードクォーラム モードはWSFC クラスター レベルで構成されクォーラム投票の方法を指定しますフェールオーバー クラスター マネージャー ユーティリティではクラスター内のノード数に基づいて推奨するクォーラム モードが提示されます

次のいずれかのクォーラム モードによって投票クォーラムの構成が決定されます

ノード マジョリティクラスターが正常であるためにはクラスター内の半分以上の投票ノードが肯定的に投票する必要があります

ノードおよびファイル共有マジョリティノード マジョリティ クォーラム モードに似ていますがリモート ファイル共有も投票監視サーバーとして構成され各ノードからそのリモート ファイル共有への接続も肯定的な投票としてカウントされますクラスターが正常であるためには投票の過半数が肯定的である必要があります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 16

推奨事項として監視ファイル共有はクラスター内のノードに存在せずクラスター内のすべてのノードから見える必要があります

ノードおよびディスク マジョリティノード マジョリティ クォーラム モードに似ていますが共有ディスク クラスター リソースも投票監視サーバーとして使用され各ノードからその共有ディスクへの接続も肯定的な投票としてカウントされますクラスターが正常であるためには投票の過半数が肯定的である必要があります

ディスクのみ共有ディスク クラスター リソースが監視サーバーとして使用され各ノードからその共有ディスクへの接続が肯定的な投票としてカウントされます

詳細については「フェールオーバー クラスター ステップ バイ ステップ ガイド フェール オーバー クラスターのクォーラムの構成」(httptechnetmicrosoftcomja-jplibrarycc770620(WS10)aspx) で説明されています

注 クラスターの各ノードが同じ共有ストレージ クォーラム監視ディスクを使用するように構成されていない限り通常投票ノード数が奇数の場合は ノード マジョリティ クォーラム モード投票ノード数が偶数の場合は ノードおよびファイル共有マジョリティ クォーラム モードを使用してください

投票ノードと非投票ノード既定ではWSFC クラスター内の各ノードがクラスター クォーラムのメンバーとなります各ノードファイル共有監視サーバーディスク監視サーバーがクラスターの全体的な正常性の決定においてそれぞれ 1 票ずつの投票権を持ちますクォーラムに関するここまでの説明ではクラスター状態について投票する WSFC クラスター ノードのセットを投票ノードとして注意深く限定してきました状況によってはすべてのノードに投票権を与えることが適切でない場合もあります

WSFC クラスターの各ノードはクォーラムを確立しようとし続けますクラスター内の個々のノードはクラスターが全体として正常であるか正常でないかを明確に決定することはできません特定の時点で各ノードからは他のノードの一部がオフラインフェールオーバー中またはネットワーク通信のエラーにより応答不能に見えますクォーラム投票の主な機能はWSFC クラスターの各ノードの見かけの状態が本当にそれらのノードの実際の状態であるかどうかを判断することです

ディスクのみ 以外のすべてのクォーラム モデルではクォーラム投票の有効性はクラスター内のすべての投票ノード間に信頼できる通信が確立されていることに依存しますすべてのノードが同じ物理サブネット上にある場合はクォーラムの投票を信頼できます

しかしクォーラム投票で他のサブネット上のノードが応答しないように見えても実際はオンラインで正常である場合はサブネット間のネットワーク通信のエラーが原因であることが考えられますクラスター トポロジクォーラム モードおよびフェールオーバー ポリシーの構成によってはネットワーク通信エラーによって投票ノードのセット (またはサブセット) が実質的に複数作成されてしまう可能性があります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 17

投票ノードの複数のサブセットがそれぞれ独自のクォーラムを構築できる状態はスプリット ブレイン と呼ばれますこの状態では各クォーラム上のノードが別々の動作をし相互に矛盾する可能性があります

注 スプリット ブレイン の状況が発生するのはシステム管理者が強制クォーラム動作を手動で実行するかまたは非常にまれですが強制的な手動フェールオーバーを実行することでクォーラム ノード セットが明示的に細分化された場合のみです詳細については後の「WSFC の強制クォーラムによる災害復旧 」のセクションを参照してください

クォーラム構成を単純化し稼働時間を長くする目的でノードの投票がクォーラムにカウントされないように各ノードの NodeWeight 設定 (値 0 または 1) を調整することができます

クォーラム投票に推奨される調整以下のガイドラインをこの順番に適用することでクラスターに対して推奨されるクォーラム投票の構成を判断できます

1 既定は投票権なしにします明確な理由がない限り各ノードには投票権を与えないと考えてください

2 すべてのプライマリ ノードに投票権を与えますAlwaysOn 可用性グループのプライマリ レプリカをホストする各ノードおよび AlwaysOn フェールオーバー クラスター インスタンスの優先所有者である各ノードは投票権を持つ必要があります

3 可能性のある自動フェールオーバーの所有者を含めます自動フェールオーバーの結果としてプライマリ レプリカまたは FCI をホストする可能性がある各ノードは投票を持つ必要があります

4 セカンダリ サイト ノードを除外します通常はセカンダリ災害復旧サイトに存在するノードには投票を提供しないでくださいプライマリ サイトに問題がない場合クラスターをオフラインにする判断にセカンダリ サイト内のノードが影響を与えることは避ける必要があります

5 投票数を奇数にします必要に応じて監視ファイル共有監視ノード (SQL Server インスタンスの有無は問いません)または監視ディスクをクラスターに追加してクォーラム モードを調整しクォーラムの投票結果が同数に分かれるのを防ぎます

6 フェールオーバー後の投票割り当てを再評価します正常なクォーラムをサポートしないクラスター構成にフェールオーバーすることは避けます

ノードの投票の調整の詳細については「クラスター クォーラムの NodeWeight の設定の構 成」(httpmsdnmicrosoftcomja-jplibraryhh270281(SQL110)aspx) を参照してください

ファイル共有監視サーバーの投票は調整できませんその投票を含めるか除外するかを決めるには別のクォーラム モードを選択する必要があります

注 SQL Server ではWSFC クラスター構成およびノード クォーラム投票に関する設定を管理するためにいくつかのシステム動的管理ビュー (DMV) が公開されています

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 18

詳細については「可用性グループの監視」(httpmsdnmicrosoftcomja-jplibraryff878305(SQL110)aspx) を参照してください

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 19

WSFC の強制クォーラムによる災害復旧通常クォーラム障害は災害発生時または WSFC クラスター内の複数のノード間で永続的な通信障害が生じた場合に発生しますクォーラム障害が発生するとクラスターがノード レベルのフォールト トレランスを確保できなくなるためその WSFC クラスター内の SQL Server インスタンス可用性グループおよびクラスター化されているサービスがすべてオフラインになりますクォーラム障害はWSFC クラスター内の正常な投票ノード数がクォーラム モデルを満たさなくなったことを意味しますノードによってまったく機能しなくなるものもあればWSFC サービスがシャットダウンしただけでクォーラムと通信できなくなったことを除けば正常なものもあります

WSFC クラスターをオンラインに戻すには既存の構成の少なくとも 1 つのノードでクォーラム障害の根本的な原因を解決する必要があります災害発生時には使用できる代替ハードウェアの再構成や識別が必要となる場合もあります現状のクラスター トポロジを反映するためにWSFC クラスターの残りのノードを再構成する場合もあります

WSFC クラスター ノードで強制クォーラムの手順を使用するとクラスターがオフラインになる原因となった安全管理機能を無効にすることができますこれによりクラスターでのクォーラム投票のチェックが実質的に中断されクラスター内の任意のノードで WSFC クラスター リソースと SQL Server をオンラインに戻すことができます

このような災害復旧プロセスの手順を次に示します

1) 障害の範囲を特定します応答しない可用性グループや SQL Server インスタンス災害後に使用できるオンラインのクラスター ノードをそれぞれ特定しWindows イベント ログと SQL Server システム ログを確認します必要に応じて後で分析できるように解析データやシステム ログを保存しておきます

2) 1 つのノードで強制クォーラムを使用して WSFC クラスターを起動します他の点では正常なノードで強制クォーラムの手順に従ってクラスターを手動で強制的にオンラインにしますこの場合データ損失の可能性を最小限に抑えるには可用性グループのプライマリ レプリカを最後にホストしていたノードを選択します

詳細については「クォーラムを使用せずに WSFC クラスターを強制的に起動する 」(httpmsdnmicrosoftcomja-jplibraryhh270275(v=SQL110)aspx) を参照してください

注 強制クォーラムの設定を使用するとWSFC クラスターの投票が過半数に達することで通常のクォーラム モードの動作に自動的に切り替わるまでクラスター全体のクォーラムのチェックがブロックされます

3) 他の点では正常な各ノードでWSFC サービスを 1 つずつ通常の方法で起動します他のノードでクラスター サービスを起動するときは強制クォーラム オプションを指定する必要はありません

各ノードの WSFC サービスがオンラインに戻ると他の正常なノードとの間でネゴシエーションが行われ新しいクラスター構成の状態が同期されますクラスターの最新の状態

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 20

を判断するときに競合状態の発生を避けるためこの手順は必ず一度に 1 つのノードで行うようにしてください

注 起動した各ノードが新たにオンラインにした他のノードと通信できることを確認しますそうしないと複数のクォーラム ノード セットが作成されて スプリット ブレイン の状況に陥るおそれがあります手順 1 の結果に問題がなければこの現象は発生しません

4) 新しいクォーラム モードとノードの投票の構成を適用します強制クォーラムの手順によってクラスターのすべてのノードを正常に再起動させクォーラムのエラーの根本原因を修正した場合クォーラム モードとノードの投票を元の構成から変更する必要はありません

それ以外の場合は新たに復元されたクラスター ノードと可用性レプリカのトポロジを評価し必要に応じてクォーラム モードと各ノードの投票割り当てを変更します未復旧のノード上ではWSFC クラスター サービスをオフラインにするかノードの投票をゼロに設定します

注 この時点でクラスター内のノードと SQL Server インスタンスが通常の動作に戻っているように見えることがありますがまだ正常なクォーラムには達していない可能性がありますフェールオーバー クラスター マネージャーやSQL Server Management Studio の AlwaysOn ダッシュボードまたは適切な DMV を使用して正常なクォーラムが復元されたことを確認してください

5) 必要に応じて可用性グループのデータベース レプリカを復旧します一部のデータベースはSQL Server の通常の起動処理の一環として自動的に復旧されオンラインに戻ることがありますそれ以外のデータベースの復旧には追加で手動の手順を実行する必要があります

可用性グループ レプリカのデータ損失の可能性や復旧にかかる時間を最小限に抑えるにはできればプライマリ レプリカ同期セカンダリ レプリカ非同期セカンダリ レプリカの順にオンラインに戻します

6) 障害が発生したコンポーネントを修復するか交換しクラスターを再検証しますこれで最初の災害およびクォーラム障害から復旧できたので障害が発生したノードを修復するか交換しWSFC と AlwaysOn の関連する構成を適切に調整する必要がありますこれには可用性グループ レプリカの削除クラスターからのノードの削除ノードへのソフトウェアの再インストールなどが含まれます

注 停止したすべての可用性レプリカを修復または削除する必要がありますSQL Server 2012 では最も古い可用性レプリカを最後に認識した時点以降トランザクション ログが切り捨てられません停止したレプリカを修復するか可用性グループから削除しないとトランザクション ログが大きくなり他のレプリカのトランザクション ログの領域が不足する可能性があります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 21

7) 必要に応じて手順 4 を繰り返しますこの目的は正常な動作を行うために適切なレベルのフォールト トレランスと高可用性を再確立することです

8) RPORTO 分析を実行しますSQL Server のシステム ログデータベースのタイムスタンプおよび Windows のイベント ログを分析して障害の根本的な原因を特定し実際の復旧ポイントと復旧時間を文書に記録します

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 22

SQL Server インスタンス レベルでの保護次に説明する AlwaysOn ソリューションの保護レイヤーはデータ プラットフォームそれ自体ですMicrosoft SQL Server 2012 とその Windows Server インフラストラクチャ コンポーネントとの統合によって次のような機能が提供されます

可用性の向上 ndash SQL Server インスタンスこれは SQL Server 2012 の新しいインスタンス レベルの機能でAlwaysOn フェールオーバー クラスター インスタンスとAlwaysOn 可用性グループをホストするスタンドアロン インスタンスの両方の可用性を強化します

以下の強化点によってフェールオーバーの管理およびトラブルシューティングが向上します

柔軟なフェールオーバー ポリシー信頼性の高いエラー検出に使用される新しいシステム ストアド プロシージャ sp_server_diagnostics の出力でSQL Server インスタンスに影響するエラーの重大度が FailureConditionLevel プロパティによって示されますWSFC のフェールオーバー ポリシーによってこの値が SQL Server インスタンスにどのように影響するかを制御できますある程度エラーを許容する設定からSQL Server の内部コンポーネント エラーを重点的に検出する設定までさまざまに構成できます

特定のレベルのエラーによってフェールオーバーを開始するように構成できますエラーのレベルにはサーバーの停止サーバーの応答停止重大なエラー中程度のエラーなんらかの条件付きエラーなどがありますFailureConditionLevel プロパティはFCI または可用性グループのフェールオーバー ポリシーのために使用できます

SQL Server 2012 よりも前のバージョンではフェールオーバーを制御できるようなエラー状態の区分がなくすべてのサービス レベルのエラーによってフェールオーバーが発生しました

詳細については「フェールオーバー クラスター インスタンスのフェールオーバー ポリシー」(httpmsdnmicrosoftcomja-jplibraryff878664(SQL110)aspx) を参照してください

強化されたインストルメンテーションとログAlwaysOn 専用のシステム構成ビューDMVパフォーマンス カウンターに加えて拡張されたイベント正常性セッションによってAlwaysOn 配置のトラブルシューティングチューニングおよび監視に必要な情報を取得して表示できますこれらの多くはSQL Server ポリシー管理の新しいファセットおよびポリシーを通じて公開されます

詳細については「AlwaysOn 可用性グループの動的管理ビューおよび関 数」(httpmsdnmicrosoftcomja-jplibraryff877943(SQL110)aspx) と「sysdm_os_cluster_nodes」(httpmsdnmicrosoftcomja-jplibraryms187341(SQL110)aspx) を参照してください

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 23

SMB ファイル共有のサポートWindows Server 2008 以降のスタンドアロン用またはフェールオーバー クラスター インスタンス用のリモート ファイル共有にデータベース ファイルを格納することができますこの場合FCI ごとに異なるドライブ文字を使用する必要がありませんこれはストレージを統合する場合やデータベース ファイルのストレージを仮想マシンのゲスト オペレーティング システム用物理サーバーでホストする場合などに便利なオプションです適切に構成すれば直接接続されたストレージとほぼ同等の IO パフォーマンスが得られます

詳細については「ファイル共有上の SQL データベース - シナリオを再検討すべきとき 」(httpblogsmsdncombsqlserverstorageenginearchive20111018sql-databases-on-file-shares-it-s-time-to-reconsider-the-scenarioaspx) を参照してください

注 WSFC クラスターではSMB ファイル共有リソースの依存関係を SQL Server リソース グループに追加することはできませんファイル共有の可用性を確保するには別の方法を用いる必要がありますファイル共有が使用できなくなった場合SQL Server は IO 例外をスローしオフラインになります

WSFC と DNS の相互運用性FCI または可用性グループ リスナーの仮想ネットワーク名 (VNN) はVNN の作成時または構成の変更時にのみDNS に登録されますすべての仮想 IP アドレスはオンライン状態かオフライン状態かに関係なく同じ仮想ネットワーク名で DNS に登録されますDNS の仮想ネットワーク名を解決するためのクライアント呼び出しは各種のラウンド ロビン シーケンスによってすべての登録済み IP アドレスを返します

AlwaysOn フェールオーバー クラスター インスタンスSQL Server の AlwaysOn フェールオーバー クラスター インスタンス (FCI) の主な目的は1 つのデータ センター内のローカル サーバーとストレージ ハードウェアでホストされている SQL Server インスタンスの可用性を高めることです

FCI はWindows Server フェールオーバー クラスタリング (WSFC) のクラスターに含まれる複数のノードにまたがってインストールされる1 つの論理的な SQL Server インスタンスですただし一度に 1 つのノードだけでアクティブになることができますクライアント アプリケーションはアクティブなクラスター ノードが所有している仮想ネットワーク名および仮想 IP アドレスに接続します

FCI をインストールした各ノードは同一の構成を持ち同一の SQL Server バイナリを含んでいますWSFC クラスター サービスはアクティブなインスタンス上にある Windows レジストリのエントリからFCI をインストールした各ノードに関連のある変更をレプリケートしますFCI がインストールされている各ノードはインスタンスとそのリソースの所有者の候補として指定されフェールオーバーの優先順位に従って所有者となります

共有対称ストレージ ボリュームに格納されているデータベース ファイルはリソースとして WSFC クラスターに登録され現在 FCI をホストしているノードによって所有されます

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 24

詳細については「AlwaysOn フェールオーバー クラスター インスタン ス」(httpmsdnmicrosoftcomja-jplibraryms189134(SQL110)aspx) を参照してください

FCI のフェールオーバー プロセス依存しているクラスター リソースで障害が発生した場合AlwaysOn フェールオーバー クラスター インスタンスはWSFC クラスター サービスと連携してフェールオーバーを行いますそのプロセスの概要を以下に示します

1) 再起動が指示されますWSFC の定期的なチェックまたは SQL Server のフェールオーバー ポリシー構成によってエラー状態が示されます既定では他のノードへのフェールオーバーを開始する前にサービスの再起動が試みられます再起動の試みがタイムアウトするようであればリソースの障害が発生しています

2) フェールオーバーが指示されますフェールオーバー ポリシー チェックによってノードのフェールオーバーが必要であることが示されます

3) SQL Server サービスが停止されますSQL Server サービスが現在実行されている場合はその正常なシャットダウンが試みられます

4) WSFC クラスター リソースが転送されますSQL Server クラスター リソース グループの所有権とそれが依存するネットワークおよび共有ストレージ リソースがFCI で次に優先されるノード所有者に転送されます

5) 新しいノードで SQL Server が起動されますSQL Server インスタンスは通常のスタートアップ プロシージャで起動されます所定のタイムアウト時間内にオンラインに戻らない場合クラスター サービスはこの新しいノード上のリソースをエラー状態と見なします

6) 新しいノードでユーザー データベースが復旧されます各ユーザー データベースは復旧モードに設定されます復旧モードではトランザクション ログの再実行操作が適用されコミットされていなかったトランザクションがロールバックされます

FCI の強化以前のバージョンの SQL Server でも FCI のインストール オプションは用意されていましたがSQL Server 2012 では次のような機能強化によって可用性の堅牢性と利便性が向上しました

マルチサブネット クラスタリングSQL Server 2012 では複数のサブネットに存在する WSFC クラスター ノードがサポートされていますWSFC クラスター ノードに存在する SQL Server インスタンスはいずれかのネットワーク インターフェイスが使用可能であれば起動できますこれはクラスター リソースの OR 依存関係と呼ばれます

以前のバージョンの SQL Server の場合SQL Server サービスを起動またはフェールオーバーするにはすべてのネットワーク インターフェイスが機能しそれらがすべて同じサブネットまたは VLAN に存在している必要がありました

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 25

注 マルチサブネット クラスタリングではクラスター ノード間のストレージ レベルのレプリケーションが自動的には有効になりませんマルチサブネットの FCI ソリューションでクラスター ノード間でデータのレプリケーションを行いストレージ フェールオーバーを調整するためにはサード パーティから提供される SAN ベースのソリューションを利用する必要があります

詳細については「SQL Server 2012 AlwaysOn マルチサイト フェールオーバー クラスター インスタンス」(httpsqlcatcomsqlcatbwhitepapersarchive20111222sql-server-2012-alwayson_3a00_-multisite-failover-cluster-instanceaspx) を参照してください

信頼性の高いエラー検出WSFC クラスター サービスではノードの各 SQL Server 2012 FCI に対してそれぞれ専用の管理者接続が維持されますこの接続では特殊なシステム ストアド プロシージャ sp_server_diagnostics を定期的に呼び出すことでシステムの正常性診断に役立つ豊富な情報を含む配列が返されます

SQL Server 2012 よりも前のバージョンではFCI の主な正常性検出メカニズムは単純な一方向のポーリング プロセスとして実装されていましたこのプロセスではWSFC クラスター サービスがインスタンスへの新しい SQL クライアント接続を定期的に作成しサーバー名を照会した後で接続を切断していました何かの理由で接続が失敗するかクエリがタイムアウトした場合フェールオーバーが開始されますが診断情報はほとんど提供されません

詳細については「sql_server_diagnostics」(httpmsdnmicrosoftcomja-jplibraryff878233(SQL110)aspx) を参照してください

現在ではFCI ストレージが次のように幅広い状況でサポートされています

向上したマウント ポイント サポートSQL Server のセットアップ時にクラスター ディスクのマウント ポイント設定が認識されるようになりました指定されたクラスター ディスクとそれにマウントされているすべてのディスクがセットアップ時に SQL Server リソースの依存関係に自動的に追加されます

ローカル ストレージの tempdbFCI ではローカルの非共有ストレージ (ローカル ソリッド ステート ドライブなど) に tempdb を配置できるようになったため共有 SAN での IO 動作の負荷を大幅に軽減できる可能性があります

SQL Server 2012 よりも前のバージョンの FCI ではtempdb が他のシステム データベースと共にフェールオーバーされる対称共有ストレージ ボリュームに配置される必要がありました

注 tempdb の場所はmaster データベースに格納されますこのデータベースはフェールオーバー時にノード間で移動されますtempdb は所有者候補となっているすべてのノード上で有効で対称的なファイル パス (ドライブフォルダーおよび権限) に配置されている必要がありますそうなっていない場合SQL Server サービスが一部のノードでは起動されません

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 26

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 27

データベースの可用性インフラストラクチャ レベルおよび SQL Server インスタンス レベルのコンポーネントで提供されている高可用性機能は互いに連係してホストされているデータベースを暗黙的に保護しますAlwaysOn ソリューションではデータベースのデータおよびデータ層アプリケーションを明示的に保護するために一連のオプションが追加で用意されています

AlwaysOn 可用性グループ可用性グループは1 つの SQL Server インスタンスから同じ WSFC クラスター内の別のインスタンスへと同時にフェールオーバーされるユーザー データベースのセットですクライアント アプリケーションは可用性グループ リスナーと呼ばれる WSFC 仮想ネットワーク名を通じて可用性グループのデータベースに接続できますこうすることで基になる SQL Server インスタンスが抽象化されます

AlwaysOn 可用性グループは正常性監視フェールオーバーの調整およびサーバー接続を Windows Server フェールオーバー クラスタリングに依存していますWSFC クラスター ノード上の SQL Server インスタンスでAlwaysOn サポートを有効にする必要がありますただしそのインスタンスが FCI である必要はなく対称共有ストレージを使用する必要もありません

詳細については「AlwaysOn 可用性グループの概要 」(httpmsdnmicrosoftcomja-jplibraryff877884(SQL110)aspx) を参照してください

可用性レプリカとロール可用性グループの各 SQL Server インスタンスは可用性グループのユーザー データベースのコピーを保持している可用性レプリカをホストしますSQL Server インスタンスは特定の可用性グループの可用性レプリカを 1 つだけホストすることができますが複数の可用性グループを同じインスタンスに置くことは可能ですSQL Server インスタンスは専用の (非共有) ストレージ ボリュームを持つ必要があります

可用性レプリカの 1 つがプライマリ レプリカの役割を果たしますこれは可用性グループ データベースのマスター コピーとして指定されていて読み取り書き込み操作を行うことができます

可用性グループには読み取り専用の可用性レプリカを最大 4 つまで追加で含めることができますこれらは個別にセカンダリ レプリカの役割を果たします

可用性レプリカの同期可用性グループの各データベースの内容はSQL Server によるログ ベースのデータ移動メカニズムを通じてプライマリ レプリカから各セカンダリ レプリカに同期されますそのため可用性グループのすべてのデータベースは完全復旧モデルに設定する必要があります

セカンダリ レプリカはプライマリ レプリカのデータベースとトランザクション ログの完全なバックアップと復元によって初期化されますプライマリ レプリカで新しいトランザクションがコミットされるとトランザクション ログの対応する部分がキャッシュされ

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 28

キューに入れられてネットワーク経由でセカンダリ レプリカ ノード上のデータベース ミラーリング エンドポイントに送信されます

この方法によりプライマリ レプリカのトランザクション ログの新しいエントリが各セカンダリ レプリカのトランザクション ログに追加されます各セカンダリ レプリカはログ シーケンス番号 (LSN) をプライマリ レプリカに定期的に送り返しトランザクション ログのどのくらいの量がリモート ディスクに書き込まれフラッシュされたかを示します

注 各可用性レプリカはそれぞれ独自に独立したトランザクション ログ再実行スレッドのセットを保持していますこれは可用性レプリカの同期プロセスには含まれませんセカンダリ レプリカ上ではログ再実行プロセスによって遅延時間が生じるためユーザーはそれをデータの待機時間として感じる場合があります

プライマリまたはセカンダリの役割を果たす他に各可用性レプリカには可用性モードもありますこのモードは次のようにCOMMIT TRAN ステートメントの実行時にトランザクション ログの書き込みの連係を制御します

同期コミット モードすべての同期コミット セカンダリ レプリカからそれぞれ独自のトランザクション ログの書き込み完了 (LSN 以降) が通知されるまでプライマリ レプリカはそのトランザクションをコミットしません可用性グループでは最大で 2 つの同期コミット セカンダリ レプリカを使用できます

同期コミット モードではプライマリ レプリカ データベースでトランザクションの遅延が生じますがコミットされたトランザクションに対するセカンダリ レプリカでのデータ損失を確実に防ぐことができます

非同期コミット モードプライマリ レプリカはローカル トランザクション ログの書き込み後にトランザクションをコミットしますが非同期コミット セカンダリ レプリカからトランザクション ログの書き込み完了通知を待つことはしません可用性グループでは最大で 4 つの非同期コミット セカンダリ レプリカを使用できますただし両方の種類を合わせて使用できるセカンダリ レプリカの合計は最大 4 つです

非同期コミット モードではプライマリ レプリカ データベースで生じるトランザクションの遅延が最小になりますがセカンダリ レプリカでのトランザクション ログが遅れる場合があるため一部のデータが失われる可能性があります

詳細については「可用性モード」(httpmsdnmicrosoftcomja-jplibraryff877931(SQL110)aspx) を参照してください

可用性レプリカ間のデータ フローの全体的な正常性は各レプリカの同期状態によって示されますセカンダリ レプリカにフェールオーバーしたときに同期状態が 同期済み または 同期中 になっていなければほとんどの場合はデータ損失が発生することになります

各セカンダリ レプリカの同期ストリームにはセッション タイムアウト プロパティがあります同期コミット モードに構成されているセカンダリ レプリカがセッション タイムアウトでエラーになると内部的には一時的に非同期としてマークされますこれはセカンダ

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 29

リ レプリカのエラーがプライマリ レプリカでのトランザクション ログの書き込みに影響しないようにするためですそのセカンダリ レプリカが正常に戻ってプライマリ レプリカの状態に追いつくと自動的に通常の同期コミット モード動作に戻されます

可用性グループのフェールオーバー可用性グループとそれに対応する仮想ネットワーク名はWSFC クラスターのリソースとして登録されます可用性グループはプライマリ レプリカの正常性とフェールオーバー ポリシーに基づいて可用性レプリカのレベルでフェールオーバーを行います

可用性グループのフェールオーバー ポリシーではsp_server_diagnostics システム ストアド プロシージャと FailureConditionLevel プロパティを使用して可用性グループに対して許容されるエラーの重大度のレベルを示しますこの同じメカニズムがFCI のフェールオーバー ポリシーにも使用されます

フェールオーバーが発生した場合は共有物理リソースの所有権を他のノードに移す代わりにWSFC を利用して他の SQL Server インスタンス上でセカンダリ レプリカを再構成しプライマリ レプリカの役割を引き継がせますその後可用性グループの仮想ネットワーク名リソースがそのインスタンスに転送されます関連する可用性レプリカへのすべてのクライアント接続がリセットされます

レプリカの現在の正常性同期状態および可用性モードに基づいて各レプリカには複合的な フェールオーバーの準備 状態が定義されますこの状態の値はデータ損失の可能性を示していますレプリカの正常性情報はAlwaysOn ダッシュボードまたは sysdm_hadr_availability_replica_states システム ビューで確認できます

各可用性レプリカにはフェールオーバー モードも構成されていますこのモードはフェールオーバーが指示された場合にレプリカの動作を制御します

自動フェールオーバー (データ損失なし)セカンダリ レプリカのトランザクション ログが既に書き込まれ同期されているのですべての AlwaysOn 構成の中でフェールオーバー時間が最短になりますプライマリ レプリカ上の開かれているトランザクションはロールバックされプライマリ レプリカの役割はユーザーによる操作なしでセカンダリ レプリカに転送されます

この場合プライマリ レプリカとセカンダリ レプリカの両方を自動フェールオーバー モードに設定し両方の可用性モードを同期コミットに設定する必要がありますレプリカ間の同期状態は同期済み である必要がありますまたWSFC クラスターは正常なクォーラム状態になっている必要があります

自動フェールオーバーはプライマリ レプリカまたはセカンダリ レプリカが FCI 上にある場合はサポートされませんこれは可用性グループと FCI のフェールオーバー間で競合状態が発生することを防ぐためです

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 30

手動フェールオーバーこの場合管理者はプライマリ レプリカの状態を評価してセカンダリ レプリカにフェールオーバーするかどうかを慎重に判断できます

可用性モードと同期状態に応じて次のような選択が可能です

o 計画的な手動フェールオーバー (データ損失なし)この種類のフェールオーバーを実行できるのはプライマリ レプリカとセカンダリ レプリカの両方が正常で同期済み 状態である場合だけですこれは機能的には自動フェールオーバーと同じです

o 強制手動フェールオーバー (データ損失の可能性を許容)これは対象のセカンダリ レプリカの可用性モードが非同期コミットである場合またはプライマリ レプリカに同期されない場合に使用できる唯一のフェールオーバー形式です

警告 このフェールオーバー オプションは災害復旧の状況に限って使用する必要がありますプライマリ レプリカが正常で使用可能である場合は関連する各レプリカの可用性モードを同期コミットに変更し計画的な手動フェールオーバーを実行してください

詳細については「可用性グループの強制手動フェールオーバーの実行」(httpmsdnmicrosoftcomja-jplibraryff877957(SQL110)aspx) を参照してください

フェールオーバー対象のプライマリ レプリカまたはセカンダリ レプリカが次の条件のいずれかに該当する場合は手動フェールオーバーを実行する必要があります

フェールオーバー モードが手動に設定されている 可用性モードが非同期コミットに設定されている レプリカが FCI 上にある

詳細については「フェールオーバーとフェールオーバー モード (AlwaysOn 可用性グルー プ ) 」(httpmsdnmicrosoftcomja-jplibraryhh213151(SQL110)aspx) を参照してください

注 フェールオーバー後新しいプライマリ レプリカが同期コミット モードに設定されていない場合セカンダリ レプリカの同期状態は 中断状態 になりますプライマリ レプリカが同期コミット モードに設定されるまでデータはセカンダリ レプリカに移動されません

可用性グループ リスナー可用性グループ リスナーはクライアントが可用性グループ内のデータベースにアクセスするために使用できる WSFC 仮想ネットワーク名 (VNN) ですVNN クラスター リソースはプライマリ レプリカをホストしている SQL Server インスタンスによって所有されます

仮想ネットワーク名は可用性グループ リスナーの作成時または構成の変更時にのみDNS に登録されます可用性グループ リスナーで定義されているすべての仮想 IP アドレスは同じ仮想ネットワーク名で DNS に登録されます

可用性グループ リスナーを使用する場合クライアント接続要求ではサーバーとして仮想ネットワーク名を指定してから可用性グループ内のデータベース名を指定する必要があり

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 31

ます既定ではこれによってプライマリ レプリカをホストしている SQL Server インスタンスに接続されます

実行時にはクライアントはローカルの DNS リゾルバーを使用して仮想ネットワーク名にマップされている IP アドレスと TCP ポートの一覧を取得しますクライアントは各 IP アドレスへの接続を成功するか接続タイムアウトに達するまで試し続けますMultiSubnetFailover パラメーターが true に設定されているとクライアントは複数の接続を同時に試行するのでクライアント フェールオーバーが大幅に速くなります

フェールオーバーが行われるとサーバー上でクライアント接続がリセットされ可用性グループ リスナーの所有権はプライマリ レプリカの役割と共に新しい SQL Server インスタンスに移動しVNN エンドポイントは新しいインスタンスの仮想 IP アドレスと TCP ポートにバインドされます

詳細については「可用性グループ リスナークライアント接続およびアプリケーションのフェールオーバー」(httpmsdnmicrosoftcomja-jplibraryhh213417(SQL110)aspx) を参照してください

アプリケーションの目的によるフィルター処理可用性グループ リスナーを使用して接続している場合アプリケーションは接続の目的がデータの読み取りと書き込みの両方なのか読み取り専用操作を実行するだけなのかを指定できます指定しない場合クライアントのアプリケーションの目的は既定で読み取りと書き込みになります

各可用性レプリカのプライマリ ロールとセカンダリ ロールについてはクライアントのアプリケーションの目的に対する接続レベルのフィルターとして接続アクセス プロパティも指定できます既定ではアプリケーションの目的と接続アクセスとの組み合わせが無効であると接続が拒否されますSQL Server は次のルールを使用してクライアントの接続要求を振り分ける必要があります

可用性レプリカがプライマリ ロールであり接続アクセスが次のいずれかである場合

すべてのアプリケーションの目的を許可するアプリケーションの目的でクライアント接続をフィルター処理しません

明示的な読み取り書き込みの目的だけを許可するクライアントが読み取り専用を指定している場合接続を拒否します

可用性レプリカがセカンダリ ロールであり接続アクセスが次のいずれかである場合

接続を許可しないすべての接続を拒否しますレプリカは災害復旧だけに使用されます

すべてのアプリケーションの目的を許可するアプリケーションの目的でクライアント接続をフィルター処理しません

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 32

読み取り専用の目的を許可するクライアントが読み取り専用を指定していない場合接続を拒否します

詳細については「可用性レプリカでの読み取り専用アクセスの構成」(httpmsdnmicrosoftcomja-jplibraryhh213002(SQL110)aspx) を参照してください

アプリケーションの目的の読み取り専用ルーティングAlwaysOn 可用性グループの特に優れた点はスタンバイ ハードウェア インフラストラクチャを災害復旧以外の目的に利用できることです1 つ以上のセカンダリ レプリカを読み取り専用でアクセスできるように構成するとプライマリ レプリカからかなりの量のワークロードを軽減できます

読み取り専用セカンダリ レプリカに回すように簡単に調整できるワークロードはレポートデータベース バックアップデータベース整合性チェックインデックスの断片化の分析データ パイプライン抽出運用サポート操作サポートアドホック クエリなどです

各可用性レプリカではSQL Server インスタンスのエンドポイントについて順次的な読み取り専用ルーティング リストを構成することもできますこのリストはレプリカがプライマリ ロールであるときに適用されますこのリストが存在する場合アプリケーションの目的が読み取り専用と指定されているクライアント接続要求はそのリスト内に記載されていて前述のアプリケーションの目的フィルターに適合する最初のセカンダリ レプリカにリダイレクトされます

注 読み取り専用ルーティングによるリダイレクトはプライマリ レプリカにバインドされている可用性グループ リスナーによって実行されますプライマリ レプリカがオフラインの場合クライアントのリダイレクトは機能しません

詳細については「可用性グループの読み取り専用ルーティングの構成 (SQL Server) 」(httpmsdnmicrosoftcomja-jplibraryhh710054(SQL110)aspx) を参照してください

可用性の向上 ndash データベースSQL Server 2012 ではデータベースの構成と機能に関してさまざまな点が強化されています

以下の機能は復旧時間の短縮に役立ちます

予測可能な復旧時間データベースごとにターゲット復旧時間の長さを設定することでバックグラウンドで実行される CHECKPOINT コマンドのスケジュールを制御できますこのコマンドは間接的なチェックポイントとして再起動時またはフェールオーバー時にトランザクション ログの復旧に必要となる時間の推定値に基づいて定期的に実行されますそれによってチェックポイントごとに IO 操作がほぼ均等に配分され復旧時間 (RTO) の予測可能性が高まります

SQL Server 2012 よりも前のバージョンではバックグラウンドの CHECKPOINT コマンドがトランザクションの量や負荷とは無関係に一定間隔で実行されていたので復旧時間を予測することはできませんでした

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 33

詳細については「データベース チェックポイント」(httpmsdnmicrosoftcomja-jplibraryms189573(SQL110)aspx) を参照してください

以下の向上点は計画的なダウンタイムが必要になる一般的な状況を減らすのに役立ちます

LOB 列のオンライン インデックス操作varbinary(max)varchar(max)nvarchar(max)または XML データ型の列が含まれているインデックスをオンラインで再構築または再構成できるようになりました

新しい NOT NULL 列のオンライン スキーマ修正既定値を使用して新しい NOT NULL 列を SQL Server 2012 データベース テーブルに追加する場合システム メタデータの更新にはスキーマ ロックだけが必要ですALTER TABLE ステートメントですべての行にデータを設定する必要はありません

いずれかの行で実際に変更またはインデックスの再作成が行われない限り列の既定値は物理的に格納されませんクエリでは列に実際の値が存在しない場合メタデータから既定値を返します

ストレージのサポート強化の例として次のようなものがあります

ページの自動修復ある種のストレージ サブシステム エラーが発生するとデータ ページが破損し読み取り不可能になる場合がありますAlwaysOn 可用性グループではそのような種類のエラーを検出し自動的に復旧できます復旧のために影響を受けたデータ ページの最新のコピーが別の可用性レプリカから非同期で取得され適用されます

以前のバージョンでもデータベース ミラーリングに同様の機能がありましたが新しい機能では複数のレプリカをサポートできるようになっています

詳細については「ページの自動修復」(httpmsdnmicrosoftcomja-jplibrarybb677167(SQL110)aspx) を参照してください

クライアント接続の推奨事項クライアント アプリケーションが Microsoft SQL Server 2012 AlwaysOn テクノロジの利点を十分に活用できるようにするには次のガイドラインに従います

AlwaysOn 対応のクライアント ライブラリ表形式のデータ ストリーム (TDS) プロトコル Version 74 以降をサポートしているクライアント ライブラリを使用しますこれによってAlwaysOn の機能に対応した適切な機能がクライアント側でも提供されますクライアント ライブラリの例としてはData Provider for SQL Server in NET Framework 402SQL Native Client 110 などがあります

接続プロバイダー プロパティ MultiSubnetFailover = True接続文字列にこのキーワードを使用することでクライアント ライブラリでは(複数のサブネットに IP アドレスを持つ) 可用性グループ リスナーまたは FCI に登録されているすべての IP アドレスに同時に接

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 34

続できるようになります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 35

接続プロバイダー プロパティ ApplicationIntent = ReadOnly必要に応じてプライマリ レプリカの読み取り専用ワークロードをセカンダリ レプリカに移管することができます

レガシ クライアントの接続タイムアウトレガシ クライアントのデータベース ライブラリには並列で接続を試行する機能が実装されていないため複数の IP アドレスがある場合にはTCP タイムアウトに達するか正常に接続できるまで1 つずつ順番に接続を試行します

複数の IP アドレスが存在する場合はタイムアウトと再試行が逐次的に繰り返される可能性に備えてレガシ クライアントの接続タイムアウトを調整する必要があります値は少なくとも 15 秒 + 21 秒 times セカンダリ レプリカ数にします

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 36

結論このホワイト ペーパーではSQL Server 2012 の AlwaysOn による高可用性災害復旧ソリューションを使用し予定されたダウンタイムや予定外のダウンタイムを短縮したりアプリケーションの可用性を最大限に高めたりデータを保護したりする方法について基本的なコンテキストを確立しました

高可用性データベース環境の計画管理測定に関連したビジネス上の目的と課題は多くの場合目標復旧時点 (RPO) と目標復旧時間 (RTO) という形で数量化して表すことができます

SQL Server 2012 AlwaysOn は組織が高可用性や災害復旧に関する一般的な状況に対処するための機能をRPO と RTO を適切に達成できることを念頭にインフラストラクチャ レベルデータ プラットフォーム レベルデータベース レベルのそれぞれで提供します

詳細情報

httpwwwmicrosoftcomja-jpsqlserver2012defaultaspx SQL Server Web サイト

httptechnetmicrosoftcomja-jpsqlserver SQL Server TechCenter

httpmsdnmicrosoftcomja-jpsqlserver SQL Server 開発者向け技術情報

このホワイト ペーパーはお役に立ちましたか フィードバックをお寄せください1 (役に立たなかった) ~ 5 (非常に役に立った) の 5 段階で評価してくださいまたその評価の理由もお知らせください以下に例を示します

評価が高い 例が適切図がわかりやすい説明が明快といったことが理由である 評価が低い 例が少ない図がわかりにくい説明があいまいといったことが理由で

ある

このようなフィードバックをお寄せいただくと今後のホワイト ペーパーの品質向上につながります

フィードバックの送信

loz Version 112012 年 2 月 21 日

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 37

  • 高可用性と災害復旧の概念
    • 高可用性について
      • 予定されたダウンタイムと予定外のダウンタイム
      • 段階的な可用性
        • ダウンタイムの定量化
          • 復旧目標
          • ROI または機会費用の正当化
          • 可用性の健全度の監視
          • 災害復旧の計画
            • 概要 Microsoft SQL Server 2012 での高可用性
              • SQL Server AlwaysOn
              • 計画的なダウンタイムの大幅な削減
              • アイドル状態のハードウェアをなくしてコスト効率とパフォーマンスを向上
              • 簡単な配置と管理
              • RPO と RTO の機能比較
                  • SQL Server AlwaysOn の保護レイヤー
                    • インフラストラクチャの可用性
                      • Windows オペレーティング システム
                        • Windows Server Core インストール オプション
                        • プライベート クラウド用の SQL Server の最適化
                          • Windows Server フェールオーバー クラスタリング
                            • WSFC ストレージ構成
                            • WSFC リソースの正常性の検出とフェールオーバー
                              • WSFC のクラスター検証ウィザード
                              • WSFC クォーラム モードと投票の構成
                                • クォーラムによるクラスター状態検出
                                • クォーラム モード
                                • 投票ノードと非投票ノード
                                • クォーラム投票に推奨される調整
                                  • WSFC の強制クォーラムによる災害復旧
                                    • SQL Server インスタンス レベルでの保護
                                      • 可用性の向上 ndash SQL Server インスタンス
                                      • AlwaysOn フェールオーバー クラスター インスタンス
                                        • FCI のフェールオーバー プロセス
                                        • FCI の強化
                                            • データベースの可用性
                                              • AlwaysOn 可用性グループ
                                                • 可用性レプリカとロール
                                                • 可用性レプリカの同期
                                                  • 可用性グループのフェールオーバー
                                                  • 可用性グループ リスナー
                                                    • アプリケーションの目的によるフィルター処理
                                                    • アプリケーションの目的の読み取り専用ルーティング
                                                      • 可用性の向上 ndash データベース
                                                        • クライアント接続の推奨事項
                                                          • 結論
Page 22: 高可用性と災害復旧の概念download.microsoft.com/download/6/B/E/6BE0C3F3-2991-4766... · Web view高可用性と災害復旧のソリューションのために最適なデータベース

推奨事項として監視ファイル共有はクラスター内のノードに存在せずクラスター内のすべてのノードから見える必要があります

ノードおよびディスク マジョリティノード マジョリティ クォーラム モードに似ていますが共有ディスク クラスター リソースも投票監視サーバーとして使用され各ノードからその共有ディスクへの接続も肯定的な投票としてカウントされますクラスターが正常であるためには投票の過半数が肯定的である必要があります

ディスクのみ共有ディスク クラスター リソースが監視サーバーとして使用され各ノードからその共有ディスクへの接続が肯定的な投票としてカウントされます

詳細については「フェールオーバー クラスター ステップ バイ ステップ ガイド フェール オーバー クラスターのクォーラムの構成」(httptechnetmicrosoftcomja-jplibrarycc770620(WS10)aspx) で説明されています

注 クラスターの各ノードが同じ共有ストレージ クォーラム監視ディスクを使用するように構成されていない限り通常投票ノード数が奇数の場合は ノード マジョリティ クォーラム モード投票ノード数が偶数の場合は ノードおよびファイル共有マジョリティ クォーラム モードを使用してください

投票ノードと非投票ノード既定ではWSFC クラスター内の各ノードがクラスター クォーラムのメンバーとなります各ノードファイル共有監視サーバーディスク監視サーバーがクラスターの全体的な正常性の決定においてそれぞれ 1 票ずつの投票権を持ちますクォーラムに関するここまでの説明ではクラスター状態について投票する WSFC クラスター ノードのセットを投票ノードとして注意深く限定してきました状況によってはすべてのノードに投票権を与えることが適切でない場合もあります

WSFC クラスターの各ノードはクォーラムを確立しようとし続けますクラスター内の個々のノードはクラスターが全体として正常であるか正常でないかを明確に決定することはできません特定の時点で各ノードからは他のノードの一部がオフラインフェールオーバー中またはネットワーク通信のエラーにより応答不能に見えますクォーラム投票の主な機能はWSFC クラスターの各ノードの見かけの状態が本当にそれらのノードの実際の状態であるかどうかを判断することです

ディスクのみ 以外のすべてのクォーラム モデルではクォーラム投票の有効性はクラスター内のすべての投票ノード間に信頼できる通信が確立されていることに依存しますすべてのノードが同じ物理サブネット上にある場合はクォーラムの投票を信頼できます

しかしクォーラム投票で他のサブネット上のノードが応答しないように見えても実際はオンラインで正常である場合はサブネット間のネットワーク通信のエラーが原因であることが考えられますクラスター トポロジクォーラム モードおよびフェールオーバー ポリシーの構成によってはネットワーク通信エラーによって投票ノードのセット (またはサブセット) が実質的に複数作成されてしまう可能性があります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 17

投票ノードの複数のサブセットがそれぞれ独自のクォーラムを構築できる状態はスプリット ブレイン と呼ばれますこの状態では各クォーラム上のノードが別々の動作をし相互に矛盾する可能性があります

注 スプリット ブレイン の状況が発生するのはシステム管理者が強制クォーラム動作を手動で実行するかまたは非常にまれですが強制的な手動フェールオーバーを実行することでクォーラム ノード セットが明示的に細分化された場合のみです詳細については後の「WSFC の強制クォーラムによる災害復旧 」のセクションを参照してください

クォーラム構成を単純化し稼働時間を長くする目的でノードの投票がクォーラムにカウントされないように各ノードの NodeWeight 設定 (値 0 または 1) を調整することができます

クォーラム投票に推奨される調整以下のガイドラインをこの順番に適用することでクラスターに対して推奨されるクォーラム投票の構成を判断できます

1 既定は投票権なしにします明確な理由がない限り各ノードには投票権を与えないと考えてください

2 すべてのプライマリ ノードに投票権を与えますAlwaysOn 可用性グループのプライマリ レプリカをホストする各ノードおよび AlwaysOn フェールオーバー クラスター インスタンスの優先所有者である各ノードは投票権を持つ必要があります

3 可能性のある自動フェールオーバーの所有者を含めます自動フェールオーバーの結果としてプライマリ レプリカまたは FCI をホストする可能性がある各ノードは投票を持つ必要があります

4 セカンダリ サイト ノードを除外します通常はセカンダリ災害復旧サイトに存在するノードには投票を提供しないでくださいプライマリ サイトに問題がない場合クラスターをオフラインにする判断にセカンダリ サイト内のノードが影響を与えることは避ける必要があります

5 投票数を奇数にします必要に応じて監視ファイル共有監視ノード (SQL Server インスタンスの有無は問いません)または監視ディスクをクラスターに追加してクォーラム モードを調整しクォーラムの投票結果が同数に分かれるのを防ぎます

6 フェールオーバー後の投票割り当てを再評価します正常なクォーラムをサポートしないクラスター構成にフェールオーバーすることは避けます

ノードの投票の調整の詳細については「クラスター クォーラムの NodeWeight の設定の構 成」(httpmsdnmicrosoftcomja-jplibraryhh270281(SQL110)aspx) を参照してください

ファイル共有監視サーバーの投票は調整できませんその投票を含めるか除外するかを決めるには別のクォーラム モードを選択する必要があります

注 SQL Server ではWSFC クラスター構成およびノード クォーラム投票に関する設定を管理するためにいくつかのシステム動的管理ビュー (DMV) が公開されています

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 18

詳細については「可用性グループの監視」(httpmsdnmicrosoftcomja-jplibraryff878305(SQL110)aspx) を参照してください

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 19

WSFC の強制クォーラムによる災害復旧通常クォーラム障害は災害発生時または WSFC クラスター内の複数のノード間で永続的な通信障害が生じた場合に発生しますクォーラム障害が発生するとクラスターがノード レベルのフォールト トレランスを確保できなくなるためその WSFC クラスター内の SQL Server インスタンス可用性グループおよびクラスター化されているサービスがすべてオフラインになりますクォーラム障害はWSFC クラスター内の正常な投票ノード数がクォーラム モデルを満たさなくなったことを意味しますノードによってまったく機能しなくなるものもあればWSFC サービスがシャットダウンしただけでクォーラムと通信できなくなったことを除けば正常なものもあります

WSFC クラスターをオンラインに戻すには既存の構成の少なくとも 1 つのノードでクォーラム障害の根本的な原因を解決する必要があります災害発生時には使用できる代替ハードウェアの再構成や識別が必要となる場合もあります現状のクラスター トポロジを反映するためにWSFC クラスターの残りのノードを再構成する場合もあります

WSFC クラスター ノードで強制クォーラムの手順を使用するとクラスターがオフラインになる原因となった安全管理機能を無効にすることができますこれによりクラスターでのクォーラム投票のチェックが実質的に中断されクラスター内の任意のノードで WSFC クラスター リソースと SQL Server をオンラインに戻すことができます

このような災害復旧プロセスの手順を次に示します

1) 障害の範囲を特定します応答しない可用性グループや SQL Server インスタンス災害後に使用できるオンラインのクラスター ノードをそれぞれ特定しWindows イベント ログと SQL Server システム ログを確認します必要に応じて後で分析できるように解析データやシステム ログを保存しておきます

2) 1 つのノードで強制クォーラムを使用して WSFC クラスターを起動します他の点では正常なノードで強制クォーラムの手順に従ってクラスターを手動で強制的にオンラインにしますこの場合データ損失の可能性を最小限に抑えるには可用性グループのプライマリ レプリカを最後にホストしていたノードを選択します

詳細については「クォーラムを使用せずに WSFC クラスターを強制的に起動する 」(httpmsdnmicrosoftcomja-jplibraryhh270275(v=SQL110)aspx) を参照してください

注 強制クォーラムの設定を使用するとWSFC クラスターの投票が過半数に達することで通常のクォーラム モードの動作に自動的に切り替わるまでクラスター全体のクォーラムのチェックがブロックされます

3) 他の点では正常な各ノードでWSFC サービスを 1 つずつ通常の方法で起動します他のノードでクラスター サービスを起動するときは強制クォーラム オプションを指定する必要はありません

各ノードの WSFC サービスがオンラインに戻ると他の正常なノードとの間でネゴシエーションが行われ新しいクラスター構成の状態が同期されますクラスターの最新の状態

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 20

を判断するときに競合状態の発生を避けるためこの手順は必ず一度に 1 つのノードで行うようにしてください

注 起動した各ノードが新たにオンラインにした他のノードと通信できることを確認しますそうしないと複数のクォーラム ノード セットが作成されて スプリット ブレイン の状況に陥るおそれがあります手順 1 の結果に問題がなければこの現象は発生しません

4) 新しいクォーラム モードとノードの投票の構成を適用します強制クォーラムの手順によってクラスターのすべてのノードを正常に再起動させクォーラムのエラーの根本原因を修正した場合クォーラム モードとノードの投票を元の構成から変更する必要はありません

それ以外の場合は新たに復元されたクラスター ノードと可用性レプリカのトポロジを評価し必要に応じてクォーラム モードと各ノードの投票割り当てを変更します未復旧のノード上ではWSFC クラスター サービスをオフラインにするかノードの投票をゼロに設定します

注 この時点でクラスター内のノードと SQL Server インスタンスが通常の動作に戻っているように見えることがありますがまだ正常なクォーラムには達していない可能性がありますフェールオーバー クラスター マネージャーやSQL Server Management Studio の AlwaysOn ダッシュボードまたは適切な DMV を使用して正常なクォーラムが復元されたことを確認してください

5) 必要に応じて可用性グループのデータベース レプリカを復旧します一部のデータベースはSQL Server の通常の起動処理の一環として自動的に復旧されオンラインに戻ることがありますそれ以外のデータベースの復旧には追加で手動の手順を実行する必要があります

可用性グループ レプリカのデータ損失の可能性や復旧にかかる時間を最小限に抑えるにはできればプライマリ レプリカ同期セカンダリ レプリカ非同期セカンダリ レプリカの順にオンラインに戻します

6) 障害が発生したコンポーネントを修復するか交換しクラスターを再検証しますこれで最初の災害およびクォーラム障害から復旧できたので障害が発生したノードを修復するか交換しWSFC と AlwaysOn の関連する構成を適切に調整する必要がありますこれには可用性グループ レプリカの削除クラスターからのノードの削除ノードへのソフトウェアの再インストールなどが含まれます

注 停止したすべての可用性レプリカを修復または削除する必要がありますSQL Server 2012 では最も古い可用性レプリカを最後に認識した時点以降トランザクション ログが切り捨てられません停止したレプリカを修復するか可用性グループから削除しないとトランザクション ログが大きくなり他のレプリカのトランザクション ログの領域が不足する可能性があります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 21

7) 必要に応じて手順 4 を繰り返しますこの目的は正常な動作を行うために適切なレベルのフォールト トレランスと高可用性を再確立することです

8) RPORTO 分析を実行しますSQL Server のシステム ログデータベースのタイムスタンプおよび Windows のイベント ログを分析して障害の根本的な原因を特定し実際の復旧ポイントと復旧時間を文書に記録します

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 22

SQL Server インスタンス レベルでの保護次に説明する AlwaysOn ソリューションの保護レイヤーはデータ プラットフォームそれ自体ですMicrosoft SQL Server 2012 とその Windows Server インフラストラクチャ コンポーネントとの統合によって次のような機能が提供されます

可用性の向上 ndash SQL Server インスタンスこれは SQL Server 2012 の新しいインスタンス レベルの機能でAlwaysOn フェールオーバー クラスター インスタンスとAlwaysOn 可用性グループをホストするスタンドアロン インスタンスの両方の可用性を強化します

以下の強化点によってフェールオーバーの管理およびトラブルシューティングが向上します

柔軟なフェールオーバー ポリシー信頼性の高いエラー検出に使用される新しいシステム ストアド プロシージャ sp_server_diagnostics の出力でSQL Server インスタンスに影響するエラーの重大度が FailureConditionLevel プロパティによって示されますWSFC のフェールオーバー ポリシーによってこの値が SQL Server インスタンスにどのように影響するかを制御できますある程度エラーを許容する設定からSQL Server の内部コンポーネント エラーを重点的に検出する設定までさまざまに構成できます

特定のレベルのエラーによってフェールオーバーを開始するように構成できますエラーのレベルにはサーバーの停止サーバーの応答停止重大なエラー中程度のエラーなんらかの条件付きエラーなどがありますFailureConditionLevel プロパティはFCI または可用性グループのフェールオーバー ポリシーのために使用できます

SQL Server 2012 よりも前のバージョンではフェールオーバーを制御できるようなエラー状態の区分がなくすべてのサービス レベルのエラーによってフェールオーバーが発生しました

詳細については「フェールオーバー クラスター インスタンスのフェールオーバー ポリシー」(httpmsdnmicrosoftcomja-jplibraryff878664(SQL110)aspx) を参照してください

強化されたインストルメンテーションとログAlwaysOn 専用のシステム構成ビューDMVパフォーマンス カウンターに加えて拡張されたイベント正常性セッションによってAlwaysOn 配置のトラブルシューティングチューニングおよび監視に必要な情報を取得して表示できますこれらの多くはSQL Server ポリシー管理の新しいファセットおよびポリシーを通じて公開されます

詳細については「AlwaysOn 可用性グループの動的管理ビューおよび関 数」(httpmsdnmicrosoftcomja-jplibraryff877943(SQL110)aspx) と「sysdm_os_cluster_nodes」(httpmsdnmicrosoftcomja-jplibraryms187341(SQL110)aspx) を参照してください

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 23

SMB ファイル共有のサポートWindows Server 2008 以降のスタンドアロン用またはフェールオーバー クラスター インスタンス用のリモート ファイル共有にデータベース ファイルを格納することができますこの場合FCI ごとに異なるドライブ文字を使用する必要がありませんこれはストレージを統合する場合やデータベース ファイルのストレージを仮想マシンのゲスト オペレーティング システム用物理サーバーでホストする場合などに便利なオプションです適切に構成すれば直接接続されたストレージとほぼ同等の IO パフォーマンスが得られます

詳細については「ファイル共有上の SQL データベース - シナリオを再検討すべきとき 」(httpblogsmsdncombsqlserverstorageenginearchive20111018sql-databases-on-file-shares-it-s-time-to-reconsider-the-scenarioaspx) を参照してください

注 WSFC クラスターではSMB ファイル共有リソースの依存関係を SQL Server リソース グループに追加することはできませんファイル共有の可用性を確保するには別の方法を用いる必要がありますファイル共有が使用できなくなった場合SQL Server は IO 例外をスローしオフラインになります

WSFC と DNS の相互運用性FCI または可用性グループ リスナーの仮想ネットワーク名 (VNN) はVNN の作成時または構成の変更時にのみDNS に登録されますすべての仮想 IP アドレスはオンライン状態かオフライン状態かに関係なく同じ仮想ネットワーク名で DNS に登録されますDNS の仮想ネットワーク名を解決するためのクライアント呼び出しは各種のラウンド ロビン シーケンスによってすべての登録済み IP アドレスを返します

AlwaysOn フェールオーバー クラスター インスタンスSQL Server の AlwaysOn フェールオーバー クラスター インスタンス (FCI) の主な目的は1 つのデータ センター内のローカル サーバーとストレージ ハードウェアでホストされている SQL Server インスタンスの可用性を高めることです

FCI はWindows Server フェールオーバー クラスタリング (WSFC) のクラスターに含まれる複数のノードにまたがってインストールされる1 つの論理的な SQL Server インスタンスですただし一度に 1 つのノードだけでアクティブになることができますクライアント アプリケーションはアクティブなクラスター ノードが所有している仮想ネットワーク名および仮想 IP アドレスに接続します

FCI をインストールした各ノードは同一の構成を持ち同一の SQL Server バイナリを含んでいますWSFC クラスター サービスはアクティブなインスタンス上にある Windows レジストリのエントリからFCI をインストールした各ノードに関連のある変更をレプリケートしますFCI がインストールされている各ノードはインスタンスとそのリソースの所有者の候補として指定されフェールオーバーの優先順位に従って所有者となります

共有対称ストレージ ボリュームに格納されているデータベース ファイルはリソースとして WSFC クラスターに登録され現在 FCI をホストしているノードによって所有されます

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 24

詳細については「AlwaysOn フェールオーバー クラスター インスタン ス」(httpmsdnmicrosoftcomja-jplibraryms189134(SQL110)aspx) を参照してください

FCI のフェールオーバー プロセス依存しているクラスター リソースで障害が発生した場合AlwaysOn フェールオーバー クラスター インスタンスはWSFC クラスター サービスと連携してフェールオーバーを行いますそのプロセスの概要を以下に示します

1) 再起動が指示されますWSFC の定期的なチェックまたは SQL Server のフェールオーバー ポリシー構成によってエラー状態が示されます既定では他のノードへのフェールオーバーを開始する前にサービスの再起動が試みられます再起動の試みがタイムアウトするようであればリソースの障害が発生しています

2) フェールオーバーが指示されますフェールオーバー ポリシー チェックによってノードのフェールオーバーが必要であることが示されます

3) SQL Server サービスが停止されますSQL Server サービスが現在実行されている場合はその正常なシャットダウンが試みられます

4) WSFC クラスター リソースが転送されますSQL Server クラスター リソース グループの所有権とそれが依存するネットワークおよび共有ストレージ リソースがFCI で次に優先されるノード所有者に転送されます

5) 新しいノードで SQL Server が起動されますSQL Server インスタンスは通常のスタートアップ プロシージャで起動されます所定のタイムアウト時間内にオンラインに戻らない場合クラスター サービスはこの新しいノード上のリソースをエラー状態と見なします

6) 新しいノードでユーザー データベースが復旧されます各ユーザー データベースは復旧モードに設定されます復旧モードではトランザクション ログの再実行操作が適用されコミットされていなかったトランザクションがロールバックされます

FCI の強化以前のバージョンの SQL Server でも FCI のインストール オプションは用意されていましたがSQL Server 2012 では次のような機能強化によって可用性の堅牢性と利便性が向上しました

マルチサブネット クラスタリングSQL Server 2012 では複数のサブネットに存在する WSFC クラスター ノードがサポートされていますWSFC クラスター ノードに存在する SQL Server インスタンスはいずれかのネットワーク インターフェイスが使用可能であれば起動できますこれはクラスター リソースの OR 依存関係と呼ばれます

以前のバージョンの SQL Server の場合SQL Server サービスを起動またはフェールオーバーするにはすべてのネットワーク インターフェイスが機能しそれらがすべて同じサブネットまたは VLAN に存在している必要がありました

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 25

注 マルチサブネット クラスタリングではクラスター ノード間のストレージ レベルのレプリケーションが自動的には有効になりませんマルチサブネットの FCI ソリューションでクラスター ノード間でデータのレプリケーションを行いストレージ フェールオーバーを調整するためにはサード パーティから提供される SAN ベースのソリューションを利用する必要があります

詳細については「SQL Server 2012 AlwaysOn マルチサイト フェールオーバー クラスター インスタンス」(httpsqlcatcomsqlcatbwhitepapersarchive20111222sql-server-2012-alwayson_3a00_-multisite-failover-cluster-instanceaspx) を参照してください

信頼性の高いエラー検出WSFC クラスター サービスではノードの各 SQL Server 2012 FCI に対してそれぞれ専用の管理者接続が維持されますこの接続では特殊なシステム ストアド プロシージャ sp_server_diagnostics を定期的に呼び出すことでシステムの正常性診断に役立つ豊富な情報を含む配列が返されます

SQL Server 2012 よりも前のバージョンではFCI の主な正常性検出メカニズムは単純な一方向のポーリング プロセスとして実装されていましたこのプロセスではWSFC クラスター サービスがインスタンスへの新しい SQL クライアント接続を定期的に作成しサーバー名を照会した後で接続を切断していました何かの理由で接続が失敗するかクエリがタイムアウトした場合フェールオーバーが開始されますが診断情報はほとんど提供されません

詳細については「sql_server_diagnostics」(httpmsdnmicrosoftcomja-jplibraryff878233(SQL110)aspx) を参照してください

現在ではFCI ストレージが次のように幅広い状況でサポートされています

向上したマウント ポイント サポートSQL Server のセットアップ時にクラスター ディスクのマウント ポイント設定が認識されるようになりました指定されたクラスター ディスクとそれにマウントされているすべてのディスクがセットアップ時に SQL Server リソースの依存関係に自動的に追加されます

ローカル ストレージの tempdbFCI ではローカルの非共有ストレージ (ローカル ソリッド ステート ドライブなど) に tempdb を配置できるようになったため共有 SAN での IO 動作の負荷を大幅に軽減できる可能性があります

SQL Server 2012 よりも前のバージョンの FCI ではtempdb が他のシステム データベースと共にフェールオーバーされる対称共有ストレージ ボリュームに配置される必要がありました

注 tempdb の場所はmaster データベースに格納されますこのデータベースはフェールオーバー時にノード間で移動されますtempdb は所有者候補となっているすべてのノード上で有効で対称的なファイル パス (ドライブフォルダーおよび権限) に配置されている必要がありますそうなっていない場合SQL Server サービスが一部のノードでは起動されません

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 26

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 27

データベースの可用性インフラストラクチャ レベルおよび SQL Server インスタンス レベルのコンポーネントで提供されている高可用性機能は互いに連係してホストされているデータベースを暗黙的に保護しますAlwaysOn ソリューションではデータベースのデータおよびデータ層アプリケーションを明示的に保護するために一連のオプションが追加で用意されています

AlwaysOn 可用性グループ可用性グループは1 つの SQL Server インスタンスから同じ WSFC クラスター内の別のインスタンスへと同時にフェールオーバーされるユーザー データベースのセットですクライアント アプリケーションは可用性グループ リスナーと呼ばれる WSFC 仮想ネットワーク名を通じて可用性グループのデータベースに接続できますこうすることで基になる SQL Server インスタンスが抽象化されます

AlwaysOn 可用性グループは正常性監視フェールオーバーの調整およびサーバー接続を Windows Server フェールオーバー クラスタリングに依存していますWSFC クラスター ノード上の SQL Server インスタンスでAlwaysOn サポートを有効にする必要がありますただしそのインスタンスが FCI である必要はなく対称共有ストレージを使用する必要もありません

詳細については「AlwaysOn 可用性グループの概要 」(httpmsdnmicrosoftcomja-jplibraryff877884(SQL110)aspx) を参照してください

可用性レプリカとロール可用性グループの各 SQL Server インスタンスは可用性グループのユーザー データベースのコピーを保持している可用性レプリカをホストしますSQL Server インスタンスは特定の可用性グループの可用性レプリカを 1 つだけホストすることができますが複数の可用性グループを同じインスタンスに置くことは可能ですSQL Server インスタンスは専用の (非共有) ストレージ ボリュームを持つ必要があります

可用性レプリカの 1 つがプライマリ レプリカの役割を果たしますこれは可用性グループ データベースのマスター コピーとして指定されていて読み取り書き込み操作を行うことができます

可用性グループには読み取り専用の可用性レプリカを最大 4 つまで追加で含めることができますこれらは個別にセカンダリ レプリカの役割を果たします

可用性レプリカの同期可用性グループの各データベースの内容はSQL Server によるログ ベースのデータ移動メカニズムを通じてプライマリ レプリカから各セカンダリ レプリカに同期されますそのため可用性グループのすべてのデータベースは完全復旧モデルに設定する必要があります

セカンダリ レプリカはプライマリ レプリカのデータベースとトランザクション ログの完全なバックアップと復元によって初期化されますプライマリ レプリカで新しいトランザクションがコミットされるとトランザクション ログの対応する部分がキャッシュされ

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 28

キューに入れられてネットワーク経由でセカンダリ レプリカ ノード上のデータベース ミラーリング エンドポイントに送信されます

この方法によりプライマリ レプリカのトランザクション ログの新しいエントリが各セカンダリ レプリカのトランザクション ログに追加されます各セカンダリ レプリカはログ シーケンス番号 (LSN) をプライマリ レプリカに定期的に送り返しトランザクション ログのどのくらいの量がリモート ディスクに書き込まれフラッシュされたかを示します

注 各可用性レプリカはそれぞれ独自に独立したトランザクション ログ再実行スレッドのセットを保持していますこれは可用性レプリカの同期プロセスには含まれませんセカンダリ レプリカ上ではログ再実行プロセスによって遅延時間が生じるためユーザーはそれをデータの待機時間として感じる場合があります

プライマリまたはセカンダリの役割を果たす他に各可用性レプリカには可用性モードもありますこのモードは次のようにCOMMIT TRAN ステートメントの実行時にトランザクション ログの書き込みの連係を制御します

同期コミット モードすべての同期コミット セカンダリ レプリカからそれぞれ独自のトランザクション ログの書き込み完了 (LSN 以降) が通知されるまでプライマリ レプリカはそのトランザクションをコミットしません可用性グループでは最大で 2 つの同期コミット セカンダリ レプリカを使用できます

同期コミット モードではプライマリ レプリカ データベースでトランザクションの遅延が生じますがコミットされたトランザクションに対するセカンダリ レプリカでのデータ損失を確実に防ぐことができます

非同期コミット モードプライマリ レプリカはローカル トランザクション ログの書き込み後にトランザクションをコミットしますが非同期コミット セカンダリ レプリカからトランザクション ログの書き込み完了通知を待つことはしません可用性グループでは最大で 4 つの非同期コミット セカンダリ レプリカを使用できますただし両方の種類を合わせて使用できるセカンダリ レプリカの合計は最大 4 つです

非同期コミット モードではプライマリ レプリカ データベースで生じるトランザクションの遅延が最小になりますがセカンダリ レプリカでのトランザクション ログが遅れる場合があるため一部のデータが失われる可能性があります

詳細については「可用性モード」(httpmsdnmicrosoftcomja-jplibraryff877931(SQL110)aspx) を参照してください

可用性レプリカ間のデータ フローの全体的な正常性は各レプリカの同期状態によって示されますセカンダリ レプリカにフェールオーバーしたときに同期状態が 同期済み または 同期中 になっていなければほとんどの場合はデータ損失が発生することになります

各セカンダリ レプリカの同期ストリームにはセッション タイムアウト プロパティがあります同期コミット モードに構成されているセカンダリ レプリカがセッション タイムアウトでエラーになると内部的には一時的に非同期としてマークされますこれはセカンダ

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 29

リ レプリカのエラーがプライマリ レプリカでのトランザクション ログの書き込みに影響しないようにするためですそのセカンダリ レプリカが正常に戻ってプライマリ レプリカの状態に追いつくと自動的に通常の同期コミット モード動作に戻されます

可用性グループのフェールオーバー可用性グループとそれに対応する仮想ネットワーク名はWSFC クラスターのリソースとして登録されます可用性グループはプライマリ レプリカの正常性とフェールオーバー ポリシーに基づいて可用性レプリカのレベルでフェールオーバーを行います

可用性グループのフェールオーバー ポリシーではsp_server_diagnostics システム ストアド プロシージャと FailureConditionLevel プロパティを使用して可用性グループに対して許容されるエラーの重大度のレベルを示しますこの同じメカニズムがFCI のフェールオーバー ポリシーにも使用されます

フェールオーバーが発生した場合は共有物理リソースの所有権を他のノードに移す代わりにWSFC を利用して他の SQL Server インスタンス上でセカンダリ レプリカを再構成しプライマリ レプリカの役割を引き継がせますその後可用性グループの仮想ネットワーク名リソースがそのインスタンスに転送されます関連する可用性レプリカへのすべてのクライアント接続がリセットされます

レプリカの現在の正常性同期状態および可用性モードに基づいて各レプリカには複合的な フェールオーバーの準備 状態が定義されますこの状態の値はデータ損失の可能性を示していますレプリカの正常性情報はAlwaysOn ダッシュボードまたは sysdm_hadr_availability_replica_states システム ビューで確認できます

各可用性レプリカにはフェールオーバー モードも構成されていますこのモードはフェールオーバーが指示された場合にレプリカの動作を制御します

自動フェールオーバー (データ損失なし)セカンダリ レプリカのトランザクション ログが既に書き込まれ同期されているのですべての AlwaysOn 構成の中でフェールオーバー時間が最短になりますプライマリ レプリカ上の開かれているトランザクションはロールバックされプライマリ レプリカの役割はユーザーによる操作なしでセカンダリ レプリカに転送されます

この場合プライマリ レプリカとセカンダリ レプリカの両方を自動フェールオーバー モードに設定し両方の可用性モードを同期コミットに設定する必要がありますレプリカ間の同期状態は同期済み である必要がありますまたWSFC クラスターは正常なクォーラム状態になっている必要があります

自動フェールオーバーはプライマリ レプリカまたはセカンダリ レプリカが FCI 上にある場合はサポートされませんこれは可用性グループと FCI のフェールオーバー間で競合状態が発生することを防ぐためです

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 30

手動フェールオーバーこの場合管理者はプライマリ レプリカの状態を評価してセカンダリ レプリカにフェールオーバーするかどうかを慎重に判断できます

可用性モードと同期状態に応じて次のような選択が可能です

o 計画的な手動フェールオーバー (データ損失なし)この種類のフェールオーバーを実行できるのはプライマリ レプリカとセカンダリ レプリカの両方が正常で同期済み 状態である場合だけですこれは機能的には自動フェールオーバーと同じです

o 強制手動フェールオーバー (データ損失の可能性を許容)これは対象のセカンダリ レプリカの可用性モードが非同期コミットである場合またはプライマリ レプリカに同期されない場合に使用できる唯一のフェールオーバー形式です

警告 このフェールオーバー オプションは災害復旧の状況に限って使用する必要がありますプライマリ レプリカが正常で使用可能である場合は関連する各レプリカの可用性モードを同期コミットに変更し計画的な手動フェールオーバーを実行してください

詳細については「可用性グループの強制手動フェールオーバーの実行」(httpmsdnmicrosoftcomja-jplibraryff877957(SQL110)aspx) を参照してください

フェールオーバー対象のプライマリ レプリカまたはセカンダリ レプリカが次の条件のいずれかに該当する場合は手動フェールオーバーを実行する必要があります

フェールオーバー モードが手動に設定されている 可用性モードが非同期コミットに設定されている レプリカが FCI 上にある

詳細については「フェールオーバーとフェールオーバー モード (AlwaysOn 可用性グルー プ ) 」(httpmsdnmicrosoftcomja-jplibraryhh213151(SQL110)aspx) を参照してください

注 フェールオーバー後新しいプライマリ レプリカが同期コミット モードに設定されていない場合セカンダリ レプリカの同期状態は 中断状態 になりますプライマリ レプリカが同期コミット モードに設定されるまでデータはセカンダリ レプリカに移動されません

可用性グループ リスナー可用性グループ リスナーはクライアントが可用性グループ内のデータベースにアクセスするために使用できる WSFC 仮想ネットワーク名 (VNN) ですVNN クラスター リソースはプライマリ レプリカをホストしている SQL Server インスタンスによって所有されます

仮想ネットワーク名は可用性グループ リスナーの作成時または構成の変更時にのみDNS に登録されます可用性グループ リスナーで定義されているすべての仮想 IP アドレスは同じ仮想ネットワーク名で DNS に登録されます

可用性グループ リスナーを使用する場合クライアント接続要求ではサーバーとして仮想ネットワーク名を指定してから可用性グループ内のデータベース名を指定する必要があり

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 31

ます既定ではこれによってプライマリ レプリカをホストしている SQL Server インスタンスに接続されます

実行時にはクライアントはローカルの DNS リゾルバーを使用して仮想ネットワーク名にマップされている IP アドレスと TCP ポートの一覧を取得しますクライアントは各 IP アドレスへの接続を成功するか接続タイムアウトに達するまで試し続けますMultiSubnetFailover パラメーターが true に設定されているとクライアントは複数の接続を同時に試行するのでクライアント フェールオーバーが大幅に速くなります

フェールオーバーが行われるとサーバー上でクライアント接続がリセットされ可用性グループ リスナーの所有権はプライマリ レプリカの役割と共に新しい SQL Server インスタンスに移動しVNN エンドポイントは新しいインスタンスの仮想 IP アドレスと TCP ポートにバインドされます

詳細については「可用性グループ リスナークライアント接続およびアプリケーションのフェールオーバー」(httpmsdnmicrosoftcomja-jplibraryhh213417(SQL110)aspx) を参照してください

アプリケーションの目的によるフィルター処理可用性グループ リスナーを使用して接続している場合アプリケーションは接続の目的がデータの読み取りと書き込みの両方なのか読み取り専用操作を実行するだけなのかを指定できます指定しない場合クライアントのアプリケーションの目的は既定で読み取りと書き込みになります

各可用性レプリカのプライマリ ロールとセカンダリ ロールについてはクライアントのアプリケーションの目的に対する接続レベルのフィルターとして接続アクセス プロパティも指定できます既定ではアプリケーションの目的と接続アクセスとの組み合わせが無効であると接続が拒否されますSQL Server は次のルールを使用してクライアントの接続要求を振り分ける必要があります

可用性レプリカがプライマリ ロールであり接続アクセスが次のいずれかである場合

すべてのアプリケーションの目的を許可するアプリケーションの目的でクライアント接続をフィルター処理しません

明示的な読み取り書き込みの目的だけを許可するクライアントが読み取り専用を指定している場合接続を拒否します

可用性レプリカがセカンダリ ロールであり接続アクセスが次のいずれかである場合

接続を許可しないすべての接続を拒否しますレプリカは災害復旧だけに使用されます

すべてのアプリケーションの目的を許可するアプリケーションの目的でクライアント接続をフィルター処理しません

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 32

読み取り専用の目的を許可するクライアントが読み取り専用を指定していない場合接続を拒否します

詳細については「可用性レプリカでの読み取り専用アクセスの構成」(httpmsdnmicrosoftcomja-jplibraryhh213002(SQL110)aspx) を参照してください

アプリケーションの目的の読み取り専用ルーティングAlwaysOn 可用性グループの特に優れた点はスタンバイ ハードウェア インフラストラクチャを災害復旧以外の目的に利用できることです1 つ以上のセカンダリ レプリカを読み取り専用でアクセスできるように構成するとプライマリ レプリカからかなりの量のワークロードを軽減できます

読み取り専用セカンダリ レプリカに回すように簡単に調整できるワークロードはレポートデータベース バックアップデータベース整合性チェックインデックスの断片化の分析データ パイプライン抽出運用サポート操作サポートアドホック クエリなどです

各可用性レプリカではSQL Server インスタンスのエンドポイントについて順次的な読み取り専用ルーティング リストを構成することもできますこのリストはレプリカがプライマリ ロールであるときに適用されますこのリストが存在する場合アプリケーションの目的が読み取り専用と指定されているクライアント接続要求はそのリスト内に記載されていて前述のアプリケーションの目的フィルターに適合する最初のセカンダリ レプリカにリダイレクトされます

注 読み取り専用ルーティングによるリダイレクトはプライマリ レプリカにバインドされている可用性グループ リスナーによって実行されますプライマリ レプリカがオフラインの場合クライアントのリダイレクトは機能しません

詳細については「可用性グループの読み取り専用ルーティングの構成 (SQL Server) 」(httpmsdnmicrosoftcomja-jplibraryhh710054(SQL110)aspx) を参照してください

可用性の向上 ndash データベースSQL Server 2012 ではデータベースの構成と機能に関してさまざまな点が強化されています

以下の機能は復旧時間の短縮に役立ちます

予測可能な復旧時間データベースごとにターゲット復旧時間の長さを設定することでバックグラウンドで実行される CHECKPOINT コマンドのスケジュールを制御できますこのコマンドは間接的なチェックポイントとして再起動時またはフェールオーバー時にトランザクション ログの復旧に必要となる時間の推定値に基づいて定期的に実行されますそれによってチェックポイントごとに IO 操作がほぼ均等に配分され復旧時間 (RTO) の予測可能性が高まります

SQL Server 2012 よりも前のバージョンではバックグラウンドの CHECKPOINT コマンドがトランザクションの量や負荷とは無関係に一定間隔で実行されていたので復旧時間を予測することはできませんでした

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 33

詳細については「データベース チェックポイント」(httpmsdnmicrosoftcomja-jplibraryms189573(SQL110)aspx) を参照してください

以下の向上点は計画的なダウンタイムが必要になる一般的な状況を減らすのに役立ちます

LOB 列のオンライン インデックス操作varbinary(max)varchar(max)nvarchar(max)または XML データ型の列が含まれているインデックスをオンラインで再構築または再構成できるようになりました

新しい NOT NULL 列のオンライン スキーマ修正既定値を使用して新しい NOT NULL 列を SQL Server 2012 データベース テーブルに追加する場合システム メタデータの更新にはスキーマ ロックだけが必要ですALTER TABLE ステートメントですべての行にデータを設定する必要はありません

いずれかの行で実際に変更またはインデックスの再作成が行われない限り列の既定値は物理的に格納されませんクエリでは列に実際の値が存在しない場合メタデータから既定値を返します

ストレージのサポート強化の例として次のようなものがあります

ページの自動修復ある種のストレージ サブシステム エラーが発生するとデータ ページが破損し読み取り不可能になる場合がありますAlwaysOn 可用性グループではそのような種類のエラーを検出し自動的に復旧できます復旧のために影響を受けたデータ ページの最新のコピーが別の可用性レプリカから非同期で取得され適用されます

以前のバージョンでもデータベース ミラーリングに同様の機能がありましたが新しい機能では複数のレプリカをサポートできるようになっています

詳細については「ページの自動修復」(httpmsdnmicrosoftcomja-jplibrarybb677167(SQL110)aspx) を参照してください

クライアント接続の推奨事項クライアント アプリケーションが Microsoft SQL Server 2012 AlwaysOn テクノロジの利点を十分に活用できるようにするには次のガイドラインに従います

AlwaysOn 対応のクライアント ライブラリ表形式のデータ ストリーム (TDS) プロトコル Version 74 以降をサポートしているクライアント ライブラリを使用しますこれによってAlwaysOn の機能に対応した適切な機能がクライアント側でも提供されますクライアント ライブラリの例としてはData Provider for SQL Server in NET Framework 402SQL Native Client 110 などがあります

接続プロバイダー プロパティ MultiSubnetFailover = True接続文字列にこのキーワードを使用することでクライアント ライブラリでは(複数のサブネットに IP アドレスを持つ) 可用性グループ リスナーまたは FCI に登録されているすべての IP アドレスに同時に接

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 34

続できるようになります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 35

接続プロバイダー プロパティ ApplicationIntent = ReadOnly必要に応じてプライマリ レプリカの読み取り専用ワークロードをセカンダリ レプリカに移管することができます

レガシ クライアントの接続タイムアウトレガシ クライアントのデータベース ライブラリには並列で接続を試行する機能が実装されていないため複数の IP アドレスがある場合にはTCP タイムアウトに達するか正常に接続できるまで1 つずつ順番に接続を試行します

複数の IP アドレスが存在する場合はタイムアウトと再試行が逐次的に繰り返される可能性に備えてレガシ クライアントの接続タイムアウトを調整する必要があります値は少なくとも 15 秒 + 21 秒 times セカンダリ レプリカ数にします

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 36

結論このホワイト ペーパーではSQL Server 2012 の AlwaysOn による高可用性災害復旧ソリューションを使用し予定されたダウンタイムや予定外のダウンタイムを短縮したりアプリケーションの可用性を最大限に高めたりデータを保護したりする方法について基本的なコンテキストを確立しました

高可用性データベース環境の計画管理測定に関連したビジネス上の目的と課題は多くの場合目標復旧時点 (RPO) と目標復旧時間 (RTO) という形で数量化して表すことができます

SQL Server 2012 AlwaysOn は組織が高可用性や災害復旧に関する一般的な状況に対処するための機能をRPO と RTO を適切に達成できることを念頭にインフラストラクチャ レベルデータ プラットフォーム レベルデータベース レベルのそれぞれで提供します

詳細情報

httpwwwmicrosoftcomja-jpsqlserver2012defaultaspx SQL Server Web サイト

httptechnetmicrosoftcomja-jpsqlserver SQL Server TechCenter

httpmsdnmicrosoftcomja-jpsqlserver SQL Server 開発者向け技術情報

このホワイト ペーパーはお役に立ちましたか フィードバックをお寄せください1 (役に立たなかった) ~ 5 (非常に役に立った) の 5 段階で評価してくださいまたその評価の理由もお知らせください以下に例を示します

評価が高い 例が適切図がわかりやすい説明が明快といったことが理由である 評価が低い 例が少ない図がわかりにくい説明があいまいといったことが理由で

ある

このようなフィードバックをお寄せいただくと今後のホワイト ペーパーの品質向上につながります

フィードバックの送信

loz Version 112012 年 2 月 21 日

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 37

  • 高可用性と災害復旧の概念
    • 高可用性について
      • 予定されたダウンタイムと予定外のダウンタイム
      • 段階的な可用性
        • ダウンタイムの定量化
          • 復旧目標
          • ROI または機会費用の正当化
          • 可用性の健全度の監視
          • 災害復旧の計画
            • 概要 Microsoft SQL Server 2012 での高可用性
              • SQL Server AlwaysOn
              • 計画的なダウンタイムの大幅な削減
              • アイドル状態のハードウェアをなくしてコスト効率とパフォーマンスを向上
              • 簡単な配置と管理
              • RPO と RTO の機能比較
                  • SQL Server AlwaysOn の保護レイヤー
                    • インフラストラクチャの可用性
                      • Windows オペレーティング システム
                        • Windows Server Core インストール オプション
                        • プライベート クラウド用の SQL Server の最適化
                          • Windows Server フェールオーバー クラスタリング
                            • WSFC ストレージ構成
                            • WSFC リソースの正常性の検出とフェールオーバー
                              • WSFC のクラスター検証ウィザード
                              • WSFC クォーラム モードと投票の構成
                                • クォーラムによるクラスター状態検出
                                • クォーラム モード
                                • 投票ノードと非投票ノード
                                • クォーラム投票に推奨される調整
                                  • WSFC の強制クォーラムによる災害復旧
                                    • SQL Server インスタンス レベルでの保護
                                      • 可用性の向上 ndash SQL Server インスタンス
                                      • AlwaysOn フェールオーバー クラスター インスタンス
                                        • FCI のフェールオーバー プロセス
                                        • FCI の強化
                                            • データベースの可用性
                                              • AlwaysOn 可用性グループ
                                                • 可用性レプリカとロール
                                                • 可用性レプリカの同期
                                                  • 可用性グループのフェールオーバー
                                                  • 可用性グループ リスナー
                                                    • アプリケーションの目的によるフィルター処理
                                                    • アプリケーションの目的の読み取り専用ルーティング
                                                      • 可用性の向上 ndash データベース
                                                        • クライアント接続の推奨事項
                                                          • 結論
Page 23: 高可用性と災害復旧の概念download.microsoft.com/download/6/B/E/6BE0C3F3-2991-4766... · Web view高可用性と災害復旧のソリューションのために最適なデータベース

投票ノードの複数のサブセットがそれぞれ独自のクォーラムを構築できる状態はスプリット ブレイン と呼ばれますこの状態では各クォーラム上のノードが別々の動作をし相互に矛盾する可能性があります

注 スプリット ブレイン の状況が発生するのはシステム管理者が強制クォーラム動作を手動で実行するかまたは非常にまれですが強制的な手動フェールオーバーを実行することでクォーラム ノード セットが明示的に細分化された場合のみです詳細については後の「WSFC の強制クォーラムによる災害復旧 」のセクションを参照してください

クォーラム構成を単純化し稼働時間を長くする目的でノードの投票がクォーラムにカウントされないように各ノードの NodeWeight 設定 (値 0 または 1) を調整することができます

クォーラム投票に推奨される調整以下のガイドラインをこの順番に適用することでクラスターに対して推奨されるクォーラム投票の構成を判断できます

1 既定は投票権なしにします明確な理由がない限り各ノードには投票権を与えないと考えてください

2 すべてのプライマリ ノードに投票権を与えますAlwaysOn 可用性グループのプライマリ レプリカをホストする各ノードおよび AlwaysOn フェールオーバー クラスター インスタンスの優先所有者である各ノードは投票権を持つ必要があります

3 可能性のある自動フェールオーバーの所有者を含めます自動フェールオーバーの結果としてプライマリ レプリカまたは FCI をホストする可能性がある各ノードは投票を持つ必要があります

4 セカンダリ サイト ノードを除外します通常はセカンダリ災害復旧サイトに存在するノードには投票を提供しないでくださいプライマリ サイトに問題がない場合クラスターをオフラインにする判断にセカンダリ サイト内のノードが影響を与えることは避ける必要があります

5 投票数を奇数にします必要に応じて監視ファイル共有監視ノード (SQL Server インスタンスの有無は問いません)または監視ディスクをクラスターに追加してクォーラム モードを調整しクォーラムの投票結果が同数に分かれるのを防ぎます

6 フェールオーバー後の投票割り当てを再評価します正常なクォーラムをサポートしないクラスター構成にフェールオーバーすることは避けます

ノードの投票の調整の詳細については「クラスター クォーラムの NodeWeight の設定の構 成」(httpmsdnmicrosoftcomja-jplibraryhh270281(SQL110)aspx) を参照してください

ファイル共有監視サーバーの投票は調整できませんその投票を含めるか除外するかを決めるには別のクォーラム モードを選択する必要があります

注 SQL Server ではWSFC クラスター構成およびノード クォーラム投票に関する設定を管理するためにいくつかのシステム動的管理ビュー (DMV) が公開されています

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 18

詳細については「可用性グループの監視」(httpmsdnmicrosoftcomja-jplibraryff878305(SQL110)aspx) を参照してください

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 19

WSFC の強制クォーラムによる災害復旧通常クォーラム障害は災害発生時または WSFC クラスター内の複数のノード間で永続的な通信障害が生じた場合に発生しますクォーラム障害が発生するとクラスターがノード レベルのフォールト トレランスを確保できなくなるためその WSFC クラスター内の SQL Server インスタンス可用性グループおよびクラスター化されているサービスがすべてオフラインになりますクォーラム障害はWSFC クラスター内の正常な投票ノード数がクォーラム モデルを満たさなくなったことを意味しますノードによってまったく機能しなくなるものもあればWSFC サービスがシャットダウンしただけでクォーラムと通信できなくなったことを除けば正常なものもあります

WSFC クラスターをオンラインに戻すには既存の構成の少なくとも 1 つのノードでクォーラム障害の根本的な原因を解決する必要があります災害発生時には使用できる代替ハードウェアの再構成や識別が必要となる場合もあります現状のクラスター トポロジを反映するためにWSFC クラスターの残りのノードを再構成する場合もあります

WSFC クラスター ノードで強制クォーラムの手順を使用するとクラスターがオフラインになる原因となった安全管理機能を無効にすることができますこれによりクラスターでのクォーラム投票のチェックが実質的に中断されクラスター内の任意のノードで WSFC クラスター リソースと SQL Server をオンラインに戻すことができます

このような災害復旧プロセスの手順を次に示します

1) 障害の範囲を特定します応答しない可用性グループや SQL Server インスタンス災害後に使用できるオンラインのクラスター ノードをそれぞれ特定しWindows イベント ログと SQL Server システム ログを確認します必要に応じて後で分析できるように解析データやシステム ログを保存しておきます

2) 1 つのノードで強制クォーラムを使用して WSFC クラスターを起動します他の点では正常なノードで強制クォーラムの手順に従ってクラスターを手動で強制的にオンラインにしますこの場合データ損失の可能性を最小限に抑えるには可用性グループのプライマリ レプリカを最後にホストしていたノードを選択します

詳細については「クォーラムを使用せずに WSFC クラスターを強制的に起動する 」(httpmsdnmicrosoftcomja-jplibraryhh270275(v=SQL110)aspx) を参照してください

注 強制クォーラムの設定を使用するとWSFC クラスターの投票が過半数に達することで通常のクォーラム モードの動作に自動的に切り替わるまでクラスター全体のクォーラムのチェックがブロックされます

3) 他の点では正常な各ノードでWSFC サービスを 1 つずつ通常の方法で起動します他のノードでクラスター サービスを起動するときは強制クォーラム オプションを指定する必要はありません

各ノードの WSFC サービスがオンラインに戻ると他の正常なノードとの間でネゴシエーションが行われ新しいクラスター構成の状態が同期されますクラスターの最新の状態

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 20

を判断するときに競合状態の発生を避けるためこの手順は必ず一度に 1 つのノードで行うようにしてください

注 起動した各ノードが新たにオンラインにした他のノードと通信できることを確認しますそうしないと複数のクォーラム ノード セットが作成されて スプリット ブレイン の状況に陥るおそれがあります手順 1 の結果に問題がなければこの現象は発生しません

4) 新しいクォーラム モードとノードの投票の構成を適用します強制クォーラムの手順によってクラスターのすべてのノードを正常に再起動させクォーラムのエラーの根本原因を修正した場合クォーラム モードとノードの投票を元の構成から変更する必要はありません

それ以外の場合は新たに復元されたクラスター ノードと可用性レプリカのトポロジを評価し必要に応じてクォーラム モードと各ノードの投票割り当てを変更します未復旧のノード上ではWSFC クラスター サービスをオフラインにするかノードの投票をゼロに設定します

注 この時点でクラスター内のノードと SQL Server インスタンスが通常の動作に戻っているように見えることがありますがまだ正常なクォーラムには達していない可能性がありますフェールオーバー クラスター マネージャーやSQL Server Management Studio の AlwaysOn ダッシュボードまたは適切な DMV を使用して正常なクォーラムが復元されたことを確認してください

5) 必要に応じて可用性グループのデータベース レプリカを復旧します一部のデータベースはSQL Server の通常の起動処理の一環として自動的に復旧されオンラインに戻ることがありますそれ以外のデータベースの復旧には追加で手動の手順を実行する必要があります

可用性グループ レプリカのデータ損失の可能性や復旧にかかる時間を最小限に抑えるにはできればプライマリ レプリカ同期セカンダリ レプリカ非同期セカンダリ レプリカの順にオンラインに戻します

6) 障害が発生したコンポーネントを修復するか交換しクラスターを再検証しますこれで最初の災害およびクォーラム障害から復旧できたので障害が発生したノードを修復するか交換しWSFC と AlwaysOn の関連する構成を適切に調整する必要がありますこれには可用性グループ レプリカの削除クラスターからのノードの削除ノードへのソフトウェアの再インストールなどが含まれます

注 停止したすべての可用性レプリカを修復または削除する必要がありますSQL Server 2012 では最も古い可用性レプリカを最後に認識した時点以降トランザクション ログが切り捨てられません停止したレプリカを修復するか可用性グループから削除しないとトランザクション ログが大きくなり他のレプリカのトランザクション ログの領域が不足する可能性があります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 21

7) 必要に応じて手順 4 を繰り返しますこの目的は正常な動作を行うために適切なレベルのフォールト トレランスと高可用性を再確立することです

8) RPORTO 分析を実行しますSQL Server のシステム ログデータベースのタイムスタンプおよび Windows のイベント ログを分析して障害の根本的な原因を特定し実際の復旧ポイントと復旧時間を文書に記録します

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 22

SQL Server インスタンス レベルでの保護次に説明する AlwaysOn ソリューションの保護レイヤーはデータ プラットフォームそれ自体ですMicrosoft SQL Server 2012 とその Windows Server インフラストラクチャ コンポーネントとの統合によって次のような機能が提供されます

可用性の向上 ndash SQL Server インスタンスこれは SQL Server 2012 の新しいインスタンス レベルの機能でAlwaysOn フェールオーバー クラスター インスタンスとAlwaysOn 可用性グループをホストするスタンドアロン インスタンスの両方の可用性を強化します

以下の強化点によってフェールオーバーの管理およびトラブルシューティングが向上します

柔軟なフェールオーバー ポリシー信頼性の高いエラー検出に使用される新しいシステム ストアド プロシージャ sp_server_diagnostics の出力でSQL Server インスタンスに影響するエラーの重大度が FailureConditionLevel プロパティによって示されますWSFC のフェールオーバー ポリシーによってこの値が SQL Server インスタンスにどのように影響するかを制御できますある程度エラーを許容する設定からSQL Server の内部コンポーネント エラーを重点的に検出する設定までさまざまに構成できます

特定のレベルのエラーによってフェールオーバーを開始するように構成できますエラーのレベルにはサーバーの停止サーバーの応答停止重大なエラー中程度のエラーなんらかの条件付きエラーなどがありますFailureConditionLevel プロパティはFCI または可用性グループのフェールオーバー ポリシーのために使用できます

SQL Server 2012 よりも前のバージョンではフェールオーバーを制御できるようなエラー状態の区分がなくすべてのサービス レベルのエラーによってフェールオーバーが発生しました

詳細については「フェールオーバー クラスター インスタンスのフェールオーバー ポリシー」(httpmsdnmicrosoftcomja-jplibraryff878664(SQL110)aspx) を参照してください

強化されたインストルメンテーションとログAlwaysOn 専用のシステム構成ビューDMVパフォーマンス カウンターに加えて拡張されたイベント正常性セッションによってAlwaysOn 配置のトラブルシューティングチューニングおよび監視に必要な情報を取得して表示できますこれらの多くはSQL Server ポリシー管理の新しいファセットおよびポリシーを通じて公開されます

詳細については「AlwaysOn 可用性グループの動的管理ビューおよび関 数」(httpmsdnmicrosoftcomja-jplibraryff877943(SQL110)aspx) と「sysdm_os_cluster_nodes」(httpmsdnmicrosoftcomja-jplibraryms187341(SQL110)aspx) を参照してください

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 23

SMB ファイル共有のサポートWindows Server 2008 以降のスタンドアロン用またはフェールオーバー クラスター インスタンス用のリモート ファイル共有にデータベース ファイルを格納することができますこの場合FCI ごとに異なるドライブ文字を使用する必要がありませんこれはストレージを統合する場合やデータベース ファイルのストレージを仮想マシンのゲスト オペレーティング システム用物理サーバーでホストする場合などに便利なオプションです適切に構成すれば直接接続されたストレージとほぼ同等の IO パフォーマンスが得られます

詳細については「ファイル共有上の SQL データベース - シナリオを再検討すべきとき 」(httpblogsmsdncombsqlserverstorageenginearchive20111018sql-databases-on-file-shares-it-s-time-to-reconsider-the-scenarioaspx) を参照してください

注 WSFC クラスターではSMB ファイル共有リソースの依存関係を SQL Server リソース グループに追加することはできませんファイル共有の可用性を確保するには別の方法を用いる必要がありますファイル共有が使用できなくなった場合SQL Server は IO 例外をスローしオフラインになります

WSFC と DNS の相互運用性FCI または可用性グループ リスナーの仮想ネットワーク名 (VNN) はVNN の作成時または構成の変更時にのみDNS に登録されますすべての仮想 IP アドレスはオンライン状態かオフライン状態かに関係なく同じ仮想ネットワーク名で DNS に登録されますDNS の仮想ネットワーク名を解決するためのクライアント呼び出しは各種のラウンド ロビン シーケンスによってすべての登録済み IP アドレスを返します

AlwaysOn フェールオーバー クラスター インスタンスSQL Server の AlwaysOn フェールオーバー クラスター インスタンス (FCI) の主な目的は1 つのデータ センター内のローカル サーバーとストレージ ハードウェアでホストされている SQL Server インスタンスの可用性を高めることです

FCI はWindows Server フェールオーバー クラスタリング (WSFC) のクラスターに含まれる複数のノードにまたがってインストールされる1 つの論理的な SQL Server インスタンスですただし一度に 1 つのノードだけでアクティブになることができますクライアント アプリケーションはアクティブなクラスター ノードが所有している仮想ネットワーク名および仮想 IP アドレスに接続します

FCI をインストールした各ノードは同一の構成を持ち同一の SQL Server バイナリを含んでいますWSFC クラスター サービスはアクティブなインスタンス上にある Windows レジストリのエントリからFCI をインストールした各ノードに関連のある変更をレプリケートしますFCI がインストールされている各ノードはインスタンスとそのリソースの所有者の候補として指定されフェールオーバーの優先順位に従って所有者となります

共有対称ストレージ ボリュームに格納されているデータベース ファイルはリソースとして WSFC クラスターに登録され現在 FCI をホストしているノードによって所有されます

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 24

詳細については「AlwaysOn フェールオーバー クラスター インスタン ス」(httpmsdnmicrosoftcomja-jplibraryms189134(SQL110)aspx) を参照してください

FCI のフェールオーバー プロセス依存しているクラスター リソースで障害が発生した場合AlwaysOn フェールオーバー クラスター インスタンスはWSFC クラスター サービスと連携してフェールオーバーを行いますそのプロセスの概要を以下に示します

1) 再起動が指示されますWSFC の定期的なチェックまたは SQL Server のフェールオーバー ポリシー構成によってエラー状態が示されます既定では他のノードへのフェールオーバーを開始する前にサービスの再起動が試みられます再起動の試みがタイムアウトするようであればリソースの障害が発生しています

2) フェールオーバーが指示されますフェールオーバー ポリシー チェックによってノードのフェールオーバーが必要であることが示されます

3) SQL Server サービスが停止されますSQL Server サービスが現在実行されている場合はその正常なシャットダウンが試みられます

4) WSFC クラスター リソースが転送されますSQL Server クラスター リソース グループの所有権とそれが依存するネットワークおよび共有ストレージ リソースがFCI で次に優先されるノード所有者に転送されます

5) 新しいノードで SQL Server が起動されますSQL Server インスタンスは通常のスタートアップ プロシージャで起動されます所定のタイムアウト時間内にオンラインに戻らない場合クラスター サービスはこの新しいノード上のリソースをエラー状態と見なします

6) 新しいノードでユーザー データベースが復旧されます各ユーザー データベースは復旧モードに設定されます復旧モードではトランザクション ログの再実行操作が適用されコミットされていなかったトランザクションがロールバックされます

FCI の強化以前のバージョンの SQL Server でも FCI のインストール オプションは用意されていましたがSQL Server 2012 では次のような機能強化によって可用性の堅牢性と利便性が向上しました

マルチサブネット クラスタリングSQL Server 2012 では複数のサブネットに存在する WSFC クラスター ノードがサポートされていますWSFC クラスター ノードに存在する SQL Server インスタンスはいずれかのネットワーク インターフェイスが使用可能であれば起動できますこれはクラスター リソースの OR 依存関係と呼ばれます

以前のバージョンの SQL Server の場合SQL Server サービスを起動またはフェールオーバーするにはすべてのネットワーク インターフェイスが機能しそれらがすべて同じサブネットまたは VLAN に存在している必要がありました

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 25

注 マルチサブネット クラスタリングではクラスター ノード間のストレージ レベルのレプリケーションが自動的には有効になりませんマルチサブネットの FCI ソリューションでクラスター ノード間でデータのレプリケーションを行いストレージ フェールオーバーを調整するためにはサード パーティから提供される SAN ベースのソリューションを利用する必要があります

詳細については「SQL Server 2012 AlwaysOn マルチサイト フェールオーバー クラスター インスタンス」(httpsqlcatcomsqlcatbwhitepapersarchive20111222sql-server-2012-alwayson_3a00_-multisite-failover-cluster-instanceaspx) を参照してください

信頼性の高いエラー検出WSFC クラスター サービスではノードの各 SQL Server 2012 FCI に対してそれぞれ専用の管理者接続が維持されますこの接続では特殊なシステム ストアド プロシージャ sp_server_diagnostics を定期的に呼び出すことでシステムの正常性診断に役立つ豊富な情報を含む配列が返されます

SQL Server 2012 よりも前のバージョンではFCI の主な正常性検出メカニズムは単純な一方向のポーリング プロセスとして実装されていましたこのプロセスではWSFC クラスター サービスがインスタンスへの新しい SQL クライアント接続を定期的に作成しサーバー名を照会した後で接続を切断していました何かの理由で接続が失敗するかクエリがタイムアウトした場合フェールオーバーが開始されますが診断情報はほとんど提供されません

詳細については「sql_server_diagnostics」(httpmsdnmicrosoftcomja-jplibraryff878233(SQL110)aspx) を参照してください

現在ではFCI ストレージが次のように幅広い状況でサポートされています

向上したマウント ポイント サポートSQL Server のセットアップ時にクラスター ディスクのマウント ポイント設定が認識されるようになりました指定されたクラスター ディスクとそれにマウントされているすべてのディスクがセットアップ時に SQL Server リソースの依存関係に自動的に追加されます

ローカル ストレージの tempdbFCI ではローカルの非共有ストレージ (ローカル ソリッド ステート ドライブなど) に tempdb を配置できるようになったため共有 SAN での IO 動作の負荷を大幅に軽減できる可能性があります

SQL Server 2012 よりも前のバージョンの FCI ではtempdb が他のシステム データベースと共にフェールオーバーされる対称共有ストレージ ボリュームに配置される必要がありました

注 tempdb の場所はmaster データベースに格納されますこのデータベースはフェールオーバー時にノード間で移動されますtempdb は所有者候補となっているすべてのノード上で有効で対称的なファイル パス (ドライブフォルダーおよび権限) に配置されている必要がありますそうなっていない場合SQL Server サービスが一部のノードでは起動されません

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 26

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 27

データベースの可用性インフラストラクチャ レベルおよび SQL Server インスタンス レベルのコンポーネントで提供されている高可用性機能は互いに連係してホストされているデータベースを暗黙的に保護しますAlwaysOn ソリューションではデータベースのデータおよびデータ層アプリケーションを明示的に保護するために一連のオプションが追加で用意されています

AlwaysOn 可用性グループ可用性グループは1 つの SQL Server インスタンスから同じ WSFC クラスター内の別のインスタンスへと同時にフェールオーバーされるユーザー データベースのセットですクライアント アプリケーションは可用性グループ リスナーと呼ばれる WSFC 仮想ネットワーク名を通じて可用性グループのデータベースに接続できますこうすることで基になる SQL Server インスタンスが抽象化されます

AlwaysOn 可用性グループは正常性監視フェールオーバーの調整およびサーバー接続を Windows Server フェールオーバー クラスタリングに依存していますWSFC クラスター ノード上の SQL Server インスタンスでAlwaysOn サポートを有効にする必要がありますただしそのインスタンスが FCI である必要はなく対称共有ストレージを使用する必要もありません

詳細については「AlwaysOn 可用性グループの概要 」(httpmsdnmicrosoftcomja-jplibraryff877884(SQL110)aspx) を参照してください

可用性レプリカとロール可用性グループの各 SQL Server インスタンスは可用性グループのユーザー データベースのコピーを保持している可用性レプリカをホストしますSQL Server インスタンスは特定の可用性グループの可用性レプリカを 1 つだけホストすることができますが複数の可用性グループを同じインスタンスに置くことは可能ですSQL Server インスタンスは専用の (非共有) ストレージ ボリュームを持つ必要があります

可用性レプリカの 1 つがプライマリ レプリカの役割を果たしますこれは可用性グループ データベースのマスター コピーとして指定されていて読み取り書き込み操作を行うことができます

可用性グループには読み取り専用の可用性レプリカを最大 4 つまで追加で含めることができますこれらは個別にセカンダリ レプリカの役割を果たします

可用性レプリカの同期可用性グループの各データベースの内容はSQL Server によるログ ベースのデータ移動メカニズムを通じてプライマリ レプリカから各セカンダリ レプリカに同期されますそのため可用性グループのすべてのデータベースは完全復旧モデルに設定する必要があります

セカンダリ レプリカはプライマリ レプリカのデータベースとトランザクション ログの完全なバックアップと復元によって初期化されますプライマリ レプリカで新しいトランザクションがコミットされるとトランザクション ログの対応する部分がキャッシュされ

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 28

キューに入れられてネットワーク経由でセカンダリ レプリカ ノード上のデータベース ミラーリング エンドポイントに送信されます

この方法によりプライマリ レプリカのトランザクション ログの新しいエントリが各セカンダリ レプリカのトランザクション ログに追加されます各セカンダリ レプリカはログ シーケンス番号 (LSN) をプライマリ レプリカに定期的に送り返しトランザクション ログのどのくらいの量がリモート ディスクに書き込まれフラッシュされたかを示します

注 各可用性レプリカはそれぞれ独自に独立したトランザクション ログ再実行スレッドのセットを保持していますこれは可用性レプリカの同期プロセスには含まれませんセカンダリ レプリカ上ではログ再実行プロセスによって遅延時間が生じるためユーザーはそれをデータの待機時間として感じる場合があります

プライマリまたはセカンダリの役割を果たす他に各可用性レプリカには可用性モードもありますこのモードは次のようにCOMMIT TRAN ステートメントの実行時にトランザクション ログの書き込みの連係を制御します

同期コミット モードすべての同期コミット セカンダリ レプリカからそれぞれ独自のトランザクション ログの書き込み完了 (LSN 以降) が通知されるまでプライマリ レプリカはそのトランザクションをコミットしません可用性グループでは最大で 2 つの同期コミット セカンダリ レプリカを使用できます

同期コミット モードではプライマリ レプリカ データベースでトランザクションの遅延が生じますがコミットされたトランザクションに対するセカンダリ レプリカでのデータ損失を確実に防ぐことができます

非同期コミット モードプライマリ レプリカはローカル トランザクション ログの書き込み後にトランザクションをコミットしますが非同期コミット セカンダリ レプリカからトランザクション ログの書き込み完了通知を待つことはしません可用性グループでは最大で 4 つの非同期コミット セカンダリ レプリカを使用できますただし両方の種類を合わせて使用できるセカンダリ レプリカの合計は最大 4 つです

非同期コミット モードではプライマリ レプリカ データベースで生じるトランザクションの遅延が最小になりますがセカンダリ レプリカでのトランザクション ログが遅れる場合があるため一部のデータが失われる可能性があります

詳細については「可用性モード」(httpmsdnmicrosoftcomja-jplibraryff877931(SQL110)aspx) を参照してください

可用性レプリカ間のデータ フローの全体的な正常性は各レプリカの同期状態によって示されますセカンダリ レプリカにフェールオーバーしたときに同期状態が 同期済み または 同期中 になっていなければほとんどの場合はデータ損失が発生することになります

各セカンダリ レプリカの同期ストリームにはセッション タイムアウト プロパティがあります同期コミット モードに構成されているセカンダリ レプリカがセッション タイムアウトでエラーになると内部的には一時的に非同期としてマークされますこれはセカンダ

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 29

リ レプリカのエラーがプライマリ レプリカでのトランザクション ログの書き込みに影響しないようにするためですそのセカンダリ レプリカが正常に戻ってプライマリ レプリカの状態に追いつくと自動的に通常の同期コミット モード動作に戻されます

可用性グループのフェールオーバー可用性グループとそれに対応する仮想ネットワーク名はWSFC クラスターのリソースとして登録されます可用性グループはプライマリ レプリカの正常性とフェールオーバー ポリシーに基づいて可用性レプリカのレベルでフェールオーバーを行います

可用性グループのフェールオーバー ポリシーではsp_server_diagnostics システム ストアド プロシージャと FailureConditionLevel プロパティを使用して可用性グループに対して許容されるエラーの重大度のレベルを示しますこの同じメカニズムがFCI のフェールオーバー ポリシーにも使用されます

フェールオーバーが発生した場合は共有物理リソースの所有権を他のノードに移す代わりにWSFC を利用して他の SQL Server インスタンス上でセカンダリ レプリカを再構成しプライマリ レプリカの役割を引き継がせますその後可用性グループの仮想ネットワーク名リソースがそのインスタンスに転送されます関連する可用性レプリカへのすべてのクライアント接続がリセットされます

レプリカの現在の正常性同期状態および可用性モードに基づいて各レプリカには複合的な フェールオーバーの準備 状態が定義されますこの状態の値はデータ損失の可能性を示していますレプリカの正常性情報はAlwaysOn ダッシュボードまたは sysdm_hadr_availability_replica_states システム ビューで確認できます

各可用性レプリカにはフェールオーバー モードも構成されていますこのモードはフェールオーバーが指示された場合にレプリカの動作を制御します

自動フェールオーバー (データ損失なし)セカンダリ レプリカのトランザクション ログが既に書き込まれ同期されているのですべての AlwaysOn 構成の中でフェールオーバー時間が最短になりますプライマリ レプリカ上の開かれているトランザクションはロールバックされプライマリ レプリカの役割はユーザーによる操作なしでセカンダリ レプリカに転送されます

この場合プライマリ レプリカとセカンダリ レプリカの両方を自動フェールオーバー モードに設定し両方の可用性モードを同期コミットに設定する必要がありますレプリカ間の同期状態は同期済み である必要がありますまたWSFC クラスターは正常なクォーラム状態になっている必要があります

自動フェールオーバーはプライマリ レプリカまたはセカンダリ レプリカが FCI 上にある場合はサポートされませんこれは可用性グループと FCI のフェールオーバー間で競合状態が発生することを防ぐためです

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 30

手動フェールオーバーこの場合管理者はプライマリ レプリカの状態を評価してセカンダリ レプリカにフェールオーバーするかどうかを慎重に判断できます

可用性モードと同期状態に応じて次のような選択が可能です

o 計画的な手動フェールオーバー (データ損失なし)この種類のフェールオーバーを実行できるのはプライマリ レプリカとセカンダリ レプリカの両方が正常で同期済み 状態である場合だけですこれは機能的には自動フェールオーバーと同じです

o 強制手動フェールオーバー (データ損失の可能性を許容)これは対象のセカンダリ レプリカの可用性モードが非同期コミットである場合またはプライマリ レプリカに同期されない場合に使用できる唯一のフェールオーバー形式です

警告 このフェールオーバー オプションは災害復旧の状況に限って使用する必要がありますプライマリ レプリカが正常で使用可能である場合は関連する各レプリカの可用性モードを同期コミットに変更し計画的な手動フェールオーバーを実行してください

詳細については「可用性グループの強制手動フェールオーバーの実行」(httpmsdnmicrosoftcomja-jplibraryff877957(SQL110)aspx) を参照してください

フェールオーバー対象のプライマリ レプリカまたはセカンダリ レプリカが次の条件のいずれかに該当する場合は手動フェールオーバーを実行する必要があります

フェールオーバー モードが手動に設定されている 可用性モードが非同期コミットに設定されている レプリカが FCI 上にある

詳細については「フェールオーバーとフェールオーバー モード (AlwaysOn 可用性グルー プ ) 」(httpmsdnmicrosoftcomja-jplibraryhh213151(SQL110)aspx) を参照してください

注 フェールオーバー後新しいプライマリ レプリカが同期コミット モードに設定されていない場合セカンダリ レプリカの同期状態は 中断状態 になりますプライマリ レプリカが同期コミット モードに設定されるまでデータはセカンダリ レプリカに移動されません

可用性グループ リスナー可用性グループ リスナーはクライアントが可用性グループ内のデータベースにアクセスするために使用できる WSFC 仮想ネットワーク名 (VNN) ですVNN クラスター リソースはプライマリ レプリカをホストしている SQL Server インスタンスによって所有されます

仮想ネットワーク名は可用性グループ リスナーの作成時または構成の変更時にのみDNS に登録されます可用性グループ リスナーで定義されているすべての仮想 IP アドレスは同じ仮想ネットワーク名で DNS に登録されます

可用性グループ リスナーを使用する場合クライアント接続要求ではサーバーとして仮想ネットワーク名を指定してから可用性グループ内のデータベース名を指定する必要があり

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 31

ます既定ではこれによってプライマリ レプリカをホストしている SQL Server インスタンスに接続されます

実行時にはクライアントはローカルの DNS リゾルバーを使用して仮想ネットワーク名にマップされている IP アドレスと TCP ポートの一覧を取得しますクライアントは各 IP アドレスへの接続を成功するか接続タイムアウトに達するまで試し続けますMultiSubnetFailover パラメーターが true に設定されているとクライアントは複数の接続を同時に試行するのでクライアント フェールオーバーが大幅に速くなります

フェールオーバーが行われるとサーバー上でクライアント接続がリセットされ可用性グループ リスナーの所有権はプライマリ レプリカの役割と共に新しい SQL Server インスタンスに移動しVNN エンドポイントは新しいインスタンスの仮想 IP アドレスと TCP ポートにバインドされます

詳細については「可用性グループ リスナークライアント接続およびアプリケーションのフェールオーバー」(httpmsdnmicrosoftcomja-jplibraryhh213417(SQL110)aspx) を参照してください

アプリケーションの目的によるフィルター処理可用性グループ リスナーを使用して接続している場合アプリケーションは接続の目的がデータの読み取りと書き込みの両方なのか読み取り専用操作を実行するだけなのかを指定できます指定しない場合クライアントのアプリケーションの目的は既定で読み取りと書き込みになります

各可用性レプリカのプライマリ ロールとセカンダリ ロールについてはクライアントのアプリケーションの目的に対する接続レベルのフィルターとして接続アクセス プロパティも指定できます既定ではアプリケーションの目的と接続アクセスとの組み合わせが無効であると接続が拒否されますSQL Server は次のルールを使用してクライアントの接続要求を振り分ける必要があります

可用性レプリカがプライマリ ロールであり接続アクセスが次のいずれかである場合

すべてのアプリケーションの目的を許可するアプリケーションの目的でクライアント接続をフィルター処理しません

明示的な読み取り書き込みの目的だけを許可するクライアントが読み取り専用を指定している場合接続を拒否します

可用性レプリカがセカンダリ ロールであり接続アクセスが次のいずれかである場合

接続を許可しないすべての接続を拒否しますレプリカは災害復旧だけに使用されます

すべてのアプリケーションの目的を許可するアプリケーションの目的でクライアント接続をフィルター処理しません

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 32

読み取り専用の目的を許可するクライアントが読み取り専用を指定していない場合接続を拒否します

詳細については「可用性レプリカでの読み取り専用アクセスの構成」(httpmsdnmicrosoftcomja-jplibraryhh213002(SQL110)aspx) を参照してください

アプリケーションの目的の読み取り専用ルーティングAlwaysOn 可用性グループの特に優れた点はスタンバイ ハードウェア インフラストラクチャを災害復旧以外の目的に利用できることです1 つ以上のセカンダリ レプリカを読み取り専用でアクセスできるように構成するとプライマリ レプリカからかなりの量のワークロードを軽減できます

読み取り専用セカンダリ レプリカに回すように簡単に調整できるワークロードはレポートデータベース バックアップデータベース整合性チェックインデックスの断片化の分析データ パイプライン抽出運用サポート操作サポートアドホック クエリなどです

各可用性レプリカではSQL Server インスタンスのエンドポイントについて順次的な読み取り専用ルーティング リストを構成することもできますこのリストはレプリカがプライマリ ロールであるときに適用されますこのリストが存在する場合アプリケーションの目的が読み取り専用と指定されているクライアント接続要求はそのリスト内に記載されていて前述のアプリケーションの目的フィルターに適合する最初のセカンダリ レプリカにリダイレクトされます

注 読み取り専用ルーティングによるリダイレクトはプライマリ レプリカにバインドされている可用性グループ リスナーによって実行されますプライマリ レプリカがオフラインの場合クライアントのリダイレクトは機能しません

詳細については「可用性グループの読み取り専用ルーティングの構成 (SQL Server) 」(httpmsdnmicrosoftcomja-jplibraryhh710054(SQL110)aspx) を参照してください

可用性の向上 ndash データベースSQL Server 2012 ではデータベースの構成と機能に関してさまざまな点が強化されています

以下の機能は復旧時間の短縮に役立ちます

予測可能な復旧時間データベースごとにターゲット復旧時間の長さを設定することでバックグラウンドで実行される CHECKPOINT コマンドのスケジュールを制御できますこのコマンドは間接的なチェックポイントとして再起動時またはフェールオーバー時にトランザクション ログの復旧に必要となる時間の推定値に基づいて定期的に実行されますそれによってチェックポイントごとに IO 操作がほぼ均等に配分され復旧時間 (RTO) の予測可能性が高まります

SQL Server 2012 よりも前のバージョンではバックグラウンドの CHECKPOINT コマンドがトランザクションの量や負荷とは無関係に一定間隔で実行されていたので復旧時間を予測することはできませんでした

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 33

詳細については「データベース チェックポイント」(httpmsdnmicrosoftcomja-jplibraryms189573(SQL110)aspx) を参照してください

以下の向上点は計画的なダウンタイムが必要になる一般的な状況を減らすのに役立ちます

LOB 列のオンライン インデックス操作varbinary(max)varchar(max)nvarchar(max)または XML データ型の列が含まれているインデックスをオンラインで再構築または再構成できるようになりました

新しい NOT NULL 列のオンライン スキーマ修正既定値を使用して新しい NOT NULL 列を SQL Server 2012 データベース テーブルに追加する場合システム メタデータの更新にはスキーマ ロックだけが必要ですALTER TABLE ステートメントですべての行にデータを設定する必要はありません

いずれかの行で実際に変更またはインデックスの再作成が行われない限り列の既定値は物理的に格納されませんクエリでは列に実際の値が存在しない場合メタデータから既定値を返します

ストレージのサポート強化の例として次のようなものがあります

ページの自動修復ある種のストレージ サブシステム エラーが発生するとデータ ページが破損し読み取り不可能になる場合がありますAlwaysOn 可用性グループではそのような種類のエラーを検出し自動的に復旧できます復旧のために影響を受けたデータ ページの最新のコピーが別の可用性レプリカから非同期で取得され適用されます

以前のバージョンでもデータベース ミラーリングに同様の機能がありましたが新しい機能では複数のレプリカをサポートできるようになっています

詳細については「ページの自動修復」(httpmsdnmicrosoftcomja-jplibrarybb677167(SQL110)aspx) を参照してください

クライアント接続の推奨事項クライアント アプリケーションが Microsoft SQL Server 2012 AlwaysOn テクノロジの利点を十分に活用できるようにするには次のガイドラインに従います

AlwaysOn 対応のクライアント ライブラリ表形式のデータ ストリーム (TDS) プロトコル Version 74 以降をサポートしているクライアント ライブラリを使用しますこれによってAlwaysOn の機能に対応した適切な機能がクライアント側でも提供されますクライアント ライブラリの例としてはData Provider for SQL Server in NET Framework 402SQL Native Client 110 などがあります

接続プロバイダー プロパティ MultiSubnetFailover = True接続文字列にこのキーワードを使用することでクライアント ライブラリでは(複数のサブネットに IP アドレスを持つ) 可用性グループ リスナーまたは FCI に登録されているすべての IP アドレスに同時に接

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 34

続できるようになります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 35

接続プロバイダー プロパティ ApplicationIntent = ReadOnly必要に応じてプライマリ レプリカの読み取り専用ワークロードをセカンダリ レプリカに移管することができます

レガシ クライアントの接続タイムアウトレガシ クライアントのデータベース ライブラリには並列で接続を試行する機能が実装されていないため複数の IP アドレスがある場合にはTCP タイムアウトに達するか正常に接続できるまで1 つずつ順番に接続を試行します

複数の IP アドレスが存在する場合はタイムアウトと再試行が逐次的に繰り返される可能性に備えてレガシ クライアントの接続タイムアウトを調整する必要があります値は少なくとも 15 秒 + 21 秒 times セカンダリ レプリカ数にします

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 36

結論このホワイト ペーパーではSQL Server 2012 の AlwaysOn による高可用性災害復旧ソリューションを使用し予定されたダウンタイムや予定外のダウンタイムを短縮したりアプリケーションの可用性を最大限に高めたりデータを保護したりする方法について基本的なコンテキストを確立しました

高可用性データベース環境の計画管理測定に関連したビジネス上の目的と課題は多くの場合目標復旧時点 (RPO) と目標復旧時間 (RTO) という形で数量化して表すことができます

SQL Server 2012 AlwaysOn は組織が高可用性や災害復旧に関する一般的な状況に対処するための機能をRPO と RTO を適切に達成できることを念頭にインフラストラクチャ レベルデータ プラットフォーム レベルデータベース レベルのそれぞれで提供します

詳細情報

httpwwwmicrosoftcomja-jpsqlserver2012defaultaspx SQL Server Web サイト

httptechnetmicrosoftcomja-jpsqlserver SQL Server TechCenter

httpmsdnmicrosoftcomja-jpsqlserver SQL Server 開発者向け技術情報

このホワイト ペーパーはお役に立ちましたか フィードバックをお寄せください1 (役に立たなかった) ~ 5 (非常に役に立った) の 5 段階で評価してくださいまたその評価の理由もお知らせください以下に例を示します

評価が高い 例が適切図がわかりやすい説明が明快といったことが理由である 評価が低い 例が少ない図がわかりにくい説明があいまいといったことが理由で

ある

このようなフィードバックをお寄せいただくと今後のホワイト ペーパーの品質向上につながります

フィードバックの送信

loz Version 112012 年 2 月 21 日

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 37

  • 高可用性と災害復旧の概念
    • 高可用性について
      • 予定されたダウンタイムと予定外のダウンタイム
      • 段階的な可用性
        • ダウンタイムの定量化
          • 復旧目標
          • ROI または機会費用の正当化
          • 可用性の健全度の監視
          • 災害復旧の計画
            • 概要 Microsoft SQL Server 2012 での高可用性
              • SQL Server AlwaysOn
              • 計画的なダウンタイムの大幅な削減
              • アイドル状態のハードウェアをなくしてコスト効率とパフォーマンスを向上
              • 簡単な配置と管理
              • RPO と RTO の機能比較
                  • SQL Server AlwaysOn の保護レイヤー
                    • インフラストラクチャの可用性
                      • Windows オペレーティング システム
                        • Windows Server Core インストール オプション
                        • プライベート クラウド用の SQL Server の最適化
                          • Windows Server フェールオーバー クラスタリング
                            • WSFC ストレージ構成
                            • WSFC リソースの正常性の検出とフェールオーバー
                              • WSFC のクラスター検証ウィザード
                              • WSFC クォーラム モードと投票の構成
                                • クォーラムによるクラスター状態検出
                                • クォーラム モード
                                • 投票ノードと非投票ノード
                                • クォーラム投票に推奨される調整
                                  • WSFC の強制クォーラムによる災害復旧
                                    • SQL Server インスタンス レベルでの保護
                                      • 可用性の向上 ndash SQL Server インスタンス
                                      • AlwaysOn フェールオーバー クラスター インスタンス
                                        • FCI のフェールオーバー プロセス
                                        • FCI の強化
                                            • データベースの可用性
                                              • AlwaysOn 可用性グループ
                                                • 可用性レプリカとロール
                                                • 可用性レプリカの同期
                                                  • 可用性グループのフェールオーバー
                                                  • 可用性グループ リスナー
                                                    • アプリケーションの目的によるフィルター処理
                                                    • アプリケーションの目的の読み取り専用ルーティング
                                                      • 可用性の向上 ndash データベース
                                                        • クライアント接続の推奨事項
                                                          • 結論
Page 24: 高可用性と災害復旧の概念download.microsoft.com/download/6/B/E/6BE0C3F3-2991-4766... · Web view高可用性と災害復旧のソリューションのために最適なデータベース

詳細については「可用性グループの監視」(httpmsdnmicrosoftcomja-jplibraryff878305(SQL110)aspx) を参照してください

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 19

WSFC の強制クォーラムによる災害復旧通常クォーラム障害は災害発生時または WSFC クラスター内の複数のノード間で永続的な通信障害が生じた場合に発生しますクォーラム障害が発生するとクラスターがノード レベルのフォールト トレランスを確保できなくなるためその WSFC クラスター内の SQL Server インスタンス可用性グループおよびクラスター化されているサービスがすべてオフラインになりますクォーラム障害はWSFC クラスター内の正常な投票ノード数がクォーラム モデルを満たさなくなったことを意味しますノードによってまったく機能しなくなるものもあればWSFC サービスがシャットダウンしただけでクォーラムと通信できなくなったことを除けば正常なものもあります

WSFC クラスターをオンラインに戻すには既存の構成の少なくとも 1 つのノードでクォーラム障害の根本的な原因を解決する必要があります災害発生時には使用できる代替ハードウェアの再構成や識別が必要となる場合もあります現状のクラスター トポロジを反映するためにWSFC クラスターの残りのノードを再構成する場合もあります

WSFC クラスター ノードで強制クォーラムの手順を使用するとクラスターがオフラインになる原因となった安全管理機能を無効にすることができますこれによりクラスターでのクォーラム投票のチェックが実質的に中断されクラスター内の任意のノードで WSFC クラスター リソースと SQL Server をオンラインに戻すことができます

このような災害復旧プロセスの手順を次に示します

1) 障害の範囲を特定します応答しない可用性グループや SQL Server インスタンス災害後に使用できるオンラインのクラスター ノードをそれぞれ特定しWindows イベント ログと SQL Server システム ログを確認します必要に応じて後で分析できるように解析データやシステム ログを保存しておきます

2) 1 つのノードで強制クォーラムを使用して WSFC クラスターを起動します他の点では正常なノードで強制クォーラムの手順に従ってクラスターを手動で強制的にオンラインにしますこの場合データ損失の可能性を最小限に抑えるには可用性グループのプライマリ レプリカを最後にホストしていたノードを選択します

詳細については「クォーラムを使用せずに WSFC クラスターを強制的に起動する 」(httpmsdnmicrosoftcomja-jplibraryhh270275(v=SQL110)aspx) を参照してください

注 強制クォーラムの設定を使用するとWSFC クラスターの投票が過半数に達することで通常のクォーラム モードの動作に自動的に切り替わるまでクラスター全体のクォーラムのチェックがブロックされます

3) 他の点では正常な各ノードでWSFC サービスを 1 つずつ通常の方法で起動します他のノードでクラスター サービスを起動するときは強制クォーラム オプションを指定する必要はありません

各ノードの WSFC サービスがオンラインに戻ると他の正常なノードとの間でネゴシエーションが行われ新しいクラスター構成の状態が同期されますクラスターの最新の状態

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 20

を判断するときに競合状態の発生を避けるためこの手順は必ず一度に 1 つのノードで行うようにしてください

注 起動した各ノードが新たにオンラインにした他のノードと通信できることを確認しますそうしないと複数のクォーラム ノード セットが作成されて スプリット ブレイン の状況に陥るおそれがあります手順 1 の結果に問題がなければこの現象は発生しません

4) 新しいクォーラム モードとノードの投票の構成を適用します強制クォーラムの手順によってクラスターのすべてのノードを正常に再起動させクォーラムのエラーの根本原因を修正した場合クォーラム モードとノードの投票を元の構成から変更する必要はありません

それ以外の場合は新たに復元されたクラスター ノードと可用性レプリカのトポロジを評価し必要に応じてクォーラム モードと各ノードの投票割り当てを変更します未復旧のノード上ではWSFC クラスター サービスをオフラインにするかノードの投票をゼロに設定します

注 この時点でクラスター内のノードと SQL Server インスタンスが通常の動作に戻っているように見えることがありますがまだ正常なクォーラムには達していない可能性がありますフェールオーバー クラスター マネージャーやSQL Server Management Studio の AlwaysOn ダッシュボードまたは適切な DMV を使用して正常なクォーラムが復元されたことを確認してください

5) 必要に応じて可用性グループのデータベース レプリカを復旧します一部のデータベースはSQL Server の通常の起動処理の一環として自動的に復旧されオンラインに戻ることがありますそれ以外のデータベースの復旧には追加で手動の手順を実行する必要があります

可用性グループ レプリカのデータ損失の可能性や復旧にかかる時間を最小限に抑えるにはできればプライマリ レプリカ同期セカンダリ レプリカ非同期セカンダリ レプリカの順にオンラインに戻します

6) 障害が発生したコンポーネントを修復するか交換しクラスターを再検証しますこれで最初の災害およびクォーラム障害から復旧できたので障害が発生したノードを修復するか交換しWSFC と AlwaysOn の関連する構成を適切に調整する必要がありますこれには可用性グループ レプリカの削除クラスターからのノードの削除ノードへのソフトウェアの再インストールなどが含まれます

注 停止したすべての可用性レプリカを修復または削除する必要がありますSQL Server 2012 では最も古い可用性レプリカを最後に認識した時点以降トランザクション ログが切り捨てられません停止したレプリカを修復するか可用性グループから削除しないとトランザクション ログが大きくなり他のレプリカのトランザクション ログの領域が不足する可能性があります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 21

7) 必要に応じて手順 4 を繰り返しますこの目的は正常な動作を行うために適切なレベルのフォールト トレランスと高可用性を再確立することです

8) RPORTO 分析を実行しますSQL Server のシステム ログデータベースのタイムスタンプおよび Windows のイベント ログを分析して障害の根本的な原因を特定し実際の復旧ポイントと復旧時間を文書に記録します

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 22

SQL Server インスタンス レベルでの保護次に説明する AlwaysOn ソリューションの保護レイヤーはデータ プラットフォームそれ自体ですMicrosoft SQL Server 2012 とその Windows Server インフラストラクチャ コンポーネントとの統合によって次のような機能が提供されます

可用性の向上 ndash SQL Server インスタンスこれは SQL Server 2012 の新しいインスタンス レベルの機能でAlwaysOn フェールオーバー クラスター インスタンスとAlwaysOn 可用性グループをホストするスタンドアロン インスタンスの両方の可用性を強化します

以下の強化点によってフェールオーバーの管理およびトラブルシューティングが向上します

柔軟なフェールオーバー ポリシー信頼性の高いエラー検出に使用される新しいシステム ストアド プロシージャ sp_server_diagnostics の出力でSQL Server インスタンスに影響するエラーの重大度が FailureConditionLevel プロパティによって示されますWSFC のフェールオーバー ポリシーによってこの値が SQL Server インスタンスにどのように影響するかを制御できますある程度エラーを許容する設定からSQL Server の内部コンポーネント エラーを重点的に検出する設定までさまざまに構成できます

特定のレベルのエラーによってフェールオーバーを開始するように構成できますエラーのレベルにはサーバーの停止サーバーの応答停止重大なエラー中程度のエラーなんらかの条件付きエラーなどがありますFailureConditionLevel プロパティはFCI または可用性グループのフェールオーバー ポリシーのために使用できます

SQL Server 2012 よりも前のバージョンではフェールオーバーを制御できるようなエラー状態の区分がなくすべてのサービス レベルのエラーによってフェールオーバーが発生しました

詳細については「フェールオーバー クラスター インスタンスのフェールオーバー ポリシー」(httpmsdnmicrosoftcomja-jplibraryff878664(SQL110)aspx) を参照してください

強化されたインストルメンテーションとログAlwaysOn 専用のシステム構成ビューDMVパフォーマンス カウンターに加えて拡張されたイベント正常性セッションによってAlwaysOn 配置のトラブルシューティングチューニングおよび監視に必要な情報を取得して表示できますこれらの多くはSQL Server ポリシー管理の新しいファセットおよびポリシーを通じて公開されます

詳細については「AlwaysOn 可用性グループの動的管理ビューおよび関 数」(httpmsdnmicrosoftcomja-jplibraryff877943(SQL110)aspx) と「sysdm_os_cluster_nodes」(httpmsdnmicrosoftcomja-jplibraryms187341(SQL110)aspx) を参照してください

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 23

SMB ファイル共有のサポートWindows Server 2008 以降のスタンドアロン用またはフェールオーバー クラスター インスタンス用のリモート ファイル共有にデータベース ファイルを格納することができますこの場合FCI ごとに異なるドライブ文字を使用する必要がありませんこれはストレージを統合する場合やデータベース ファイルのストレージを仮想マシンのゲスト オペレーティング システム用物理サーバーでホストする場合などに便利なオプションです適切に構成すれば直接接続されたストレージとほぼ同等の IO パフォーマンスが得られます

詳細については「ファイル共有上の SQL データベース - シナリオを再検討すべきとき 」(httpblogsmsdncombsqlserverstorageenginearchive20111018sql-databases-on-file-shares-it-s-time-to-reconsider-the-scenarioaspx) を参照してください

注 WSFC クラスターではSMB ファイル共有リソースの依存関係を SQL Server リソース グループに追加することはできませんファイル共有の可用性を確保するには別の方法を用いる必要がありますファイル共有が使用できなくなった場合SQL Server は IO 例外をスローしオフラインになります

WSFC と DNS の相互運用性FCI または可用性グループ リスナーの仮想ネットワーク名 (VNN) はVNN の作成時または構成の変更時にのみDNS に登録されますすべての仮想 IP アドレスはオンライン状態かオフライン状態かに関係なく同じ仮想ネットワーク名で DNS に登録されますDNS の仮想ネットワーク名を解決するためのクライアント呼び出しは各種のラウンド ロビン シーケンスによってすべての登録済み IP アドレスを返します

AlwaysOn フェールオーバー クラスター インスタンスSQL Server の AlwaysOn フェールオーバー クラスター インスタンス (FCI) の主な目的は1 つのデータ センター内のローカル サーバーとストレージ ハードウェアでホストされている SQL Server インスタンスの可用性を高めることです

FCI はWindows Server フェールオーバー クラスタリング (WSFC) のクラスターに含まれる複数のノードにまたがってインストールされる1 つの論理的な SQL Server インスタンスですただし一度に 1 つのノードだけでアクティブになることができますクライアント アプリケーションはアクティブなクラスター ノードが所有している仮想ネットワーク名および仮想 IP アドレスに接続します

FCI をインストールした各ノードは同一の構成を持ち同一の SQL Server バイナリを含んでいますWSFC クラスター サービスはアクティブなインスタンス上にある Windows レジストリのエントリからFCI をインストールした各ノードに関連のある変更をレプリケートしますFCI がインストールされている各ノードはインスタンスとそのリソースの所有者の候補として指定されフェールオーバーの優先順位に従って所有者となります

共有対称ストレージ ボリュームに格納されているデータベース ファイルはリソースとして WSFC クラスターに登録され現在 FCI をホストしているノードによって所有されます

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 24

詳細については「AlwaysOn フェールオーバー クラスター インスタン ス」(httpmsdnmicrosoftcomja-jplibraryms189134(SQL110)aspx) を参照してください

FCI のフェールオーバー プロセス依存しているクラスター リソースで障害が発生した場合AlwaysOn フェールオーバー クラスター インスタンスはWSFC クラスター サービスと連携してフェールオーバーを行いますそのプロセスの概要を以下に示します

1) 再起動が指示されますWSFC の定期的なチェックまたは SQL Server のフェールオーバー ポリシー構成によってエラー状態が示されます既定では他のノードへのフェールオーバーを開始する前にサービスの再起動が試みられます再起動の試みがタイムアウトするようであればリソースの障害が発生しています

2) フェールオーバーが指示されますフェールオーバー ポリシー チェックによってノードのフェールオーバーが必要であることが示されます

3) SQL Server サービスが停止されますSQL Server サービスが現在実行されている場合はその正常なシャットダウンが試みられます

4) WSFC クラスター リソースが転送されますSQL Server クラスター リソース グループの所有権とそれが依存するネットワークおよび共有ストレージ リソースがFCI で次に優先されるノード所有者に転送されます

5) 新しいノードで SQL Server が起動されますSQL Server インスタンスは通常のスタートアップ プロシージャで起動されます所定のタイムアウト時間内にオンラインに戻らない場合クラスター サービスはこの新しいノード上のリソースをエラー状態と見なします

6) 新しいノードでユーザー データベースが復旧されます各ユーザー データベースは復旧モードに設定されます復旧モードではトランザクション ログの再実行操作が適用されコミットされていなかったトランザクションがロールバックされます

FCI の強化以前のバージョンの SQL Server でも FCI のインストール オプションは用意されていましたがSQL Server 2012 では次のような機能強化によって可用性の堅牢性と利便性が向上しました

マルチサブネット クラスタリングSQL Server 2012 では複数のサブネットに存在する WSFC クラスター ノードがサポートされていますWSFC クラスター ノードに存在する SQL Server インスタンスはいずれかのネットワーク インターフェイスが使用可能であれば起動できますこれはクラスター リソースの OR 依存関係と呼ばれます

以前のバージョンの SQL Server の場合SQL Server サービスを起動またはフェールオーバーするにはすべてのネットワーク インターフェイスが機能しそれらがすべて同じサブネットまたは VLAN に存在している必要がありました

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 25

注 マルチサブネット クラスタリングではクラスター ノード間のストレージ レベルのレプリケーションが自動的には有効になりませんマルチサブネットの FCI ソリューションでクラスター ノード間でデータのレプリケーションを行いストレージ フェールオーバーを調整するためにはサード パーティから提供される SAN ベースのソリューションを利用する必要があります

詳細については「SQL Server 2012 AlwaysOn マルチサイト フェールオーバー クラスター インスタンス」(httpsqlcatcomsqlcatbwhitepapersarchive20111222sql-server-2012-alwayson_3a00_-multisite-failover-cluster-instanceaspx) を参照してください

信頼性の高いエラー検出WSFC クラスター サービスではノードの各 SQL Server 2012 FCI に対してそれぞれ専用の管理者接続が維持されますこの接続では特殊なシステム ストアド プロシージャ sp_server_diagnostics を定期的に呼び出すことでシステムの正常性診断に役立つ豊富な情報を含む配列が返されます

SQL Server 2012 よりも前のバージョンではFCI の主な正常性検出メカニズムは単純な一方向のポーリング プロセスとして実装されていましたこのプロセスではWSFC クラスター サービスがインスタンスへの新しい SQL クライアント接続を定期的に作成しサーバー名を照会した後で接続を切断していました何かの理由で接続が失敗するかクエリがタイムアウトした場合フェールオーバーが開始されますが診断情報はほとんど提供されません

詳細については「sql_server_diagnostics」(httpmsdnmicrosoftcomja-jplibraryff878233(SQL110)aspx) を参照してください

現在ではFCI ストレージが次のように幅広い状況でサポートされています

向上したマウント ポイント サポートSQL Server のセットアップ時にクラスター ディスクのマウント ポイント設定が認識されるようになりました指定されたクラスター ディスクとそれにマウントされているすべてのディスクがセットアップ時に SQL Server リソースの依存関係に自動的に追加されます

ローカル ストレージの tempdbFCI ではローカルの非共有ストレージ (ローカル ソリッド ステート ドライブなど) に tempdb を配置できるようになったため共有 SAN での IO 動作の負荷を大幅に軽減できる可能性があります

SQL Server 2012 よりも前のバージョンの FCI ではtempdb が他のシステム データベースと共にフェールオーバーされる対称共有ストレージ ボリュームに配置される必要がありました

注 tempdb の場所はmaster データベースに格納されますこのデータベースはフェールオーバー時にノード間で移動されますtempdb は所有者候補となっているすべてのノード上で有効で対称的なファイル パス (ドライブフォルダーおよび権限) に配置されている必要がありますそうなっていない場合SQL Server サービスが一部のノードでは起動されません

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 26

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 27

データベースの可用性インフラストラクチャ レベルおよび SQL Server インスタンス レベルのコンポーネントで提供されている高可用性機能は互いに連係してホストされているデータベースを暗黙的に保護しますAlwaysOn ソリューションではデータベースのデータおよびデータ層アプリケーションを明示的に保護するために一連のオプションが追加で用意されています

AlwaysOn 可用性グループ可用性グループは1 つの SQL Server インスタンスから同じ WSFC クラスター内の別のインスタンスへと同時にフェールオーバーされるユーザー データベースのセットですクライアント アプリケーションは可用性グループ リスナーと呼ばれる WSFC 仮想ネットワーク名を通じて可用性グループのデータベースに接続できますこうすることで基になる SQL Server インスタンスが抽象化されます

AlwaysOn 可用性グループは正常性監視フェールオーバーの調整およびサーバー接続を Windows Server フェールオーバー クラスタリングに依存していますWSFC クラスター ノード上の SQL Server インスタンスでAlwaysOn サポートを有効にする必要がありますただしそのインスタンスが FCI である必要はなく対称共有ストレージを使用する必要もありません

詳細については「AlwaysOn 可用性グループの概要 」(httpmsdnmicrosoftcomja-jplibraryff877884(SQL110)aspx) を参照してください

可用性レプリカとロール可用性グループの各 SQL Server インスタンスは可用性グループのユーザー データベースのコピーを保持している可用性レプリカをホストしますSQL Server インスタンスは特定の可用性グループの可用性レプリカを 1 つだけホストすることができますが複数の可用性グループを同じインスタンスに置くことは可能ですSQL Server インスタンスは専用の (非共有) ストレージ ボリュームを持つ必要があります

可用性レプリカの 1 つがプライマリ レプリカの役割を果たしますこれは可用性グループ データベースのマスター コピーとして指定されていて読み取り書き込み操作を行うことができます

可用性グループには読み取り専用の可用性レプリカを最大 4 つまで追加で含めることができますこれらは個別にセカンダリ レプリカの役割を果たします

可用性レプリカの同期可用性グループの各データベースの内容はSQL Server によるログ ベースのデータ移動メカニズムを通じてプライマリ レプリカから各セカンダリ レプリカに同期されますそのため可用性グループのすべてのデータベースは完全復旧モデルに設定する必要があります

セカンダリ レプリカはプライマリ レプリカのデータベースとトランザクション ログの完全なバックアップと復元によって初期化されますプライマリ レプリカで新しいトランザクションがコミットされるとトランザクション ログの対応する部分がキャッシュされ

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 28

キューに入れられてネットワーク経由でセカンダリ レプリカ ノード上のデータベース ミラーリング エンドポイントに送信されます

この方法によりプライマリ レプリカのトランザクション ログの新しいエントリが各セカンダリ レプリカのトランザクション ログに追加されます各セカンダリ レプリカはログ シーケンス番号 (LSN) をプライマリ レプリカに定期的に送り返しトランザクション ログのどのくらいの量がリモート ディスクに書き込まれフラッシュされたかを示します

注 各可用性レプリカはそれぞれ独自に独立したトランザクション ログ再実行スレッドのセットを保持していますこれは可用性レプリカの同期プロセスには含まれませんセカンダリ レプリカ上ではログ再実行プロセスによって遅延時間が生じるためユーザーはそれをデータの待機時間として感じる場合があります

プライマリまたはセカンダリの役割を果たす他に各可用性レプリカには可用性モードもありますこのモードは次のようにCOMMIT TRAN ステートメントの実行時にトランザクション ログの書き込みの連係を制御します

同期コミット モードすべての同期コミット セカンダリ レプリカからそれぞれ独自のトランザクション ログの書き込み完了 (LSN 以降) が通知されるまでプライマリ レプリカはそのトランザクションをコミットしません可用性グループでは最大で 2 つの同期コミット セカンダリ レプリカを使用できます

同期コミット モードではプライマリ レプリカ データベースでトランザクションの遅延が生じますがコミットされたトランザクションに対するセカンダリ レプリカでのデータ損失を確実に防ぐことができます

非同期コミット モードプライマリ レプリカはローカル トランザクション ログの書き込み後にトランザクションをコミットしますが非同期コミット セカンダリ レプリカからトランザクション ログの書き込み完了通知を待つことはしません可用性グループでは最大で 4 つの非同期コミット セカンダリ レプリカを使用できますただし両方の種類を合わせて使用できるセカンダリ レプリカの合計は最大 4 つです

非同期コミット モードではプライマリ レプリカ データベースで生じるトランザクションの遅延が最小になりますがセカンダリ レプリカでのトランザクション ログが遅れる場合があるため一部のデータが失われる可能性があります

詳細については「可用性モード」(httpmsdnmicrosoftcomja-jplibraryff877931(SQL110)aspx) を参照してください

可用性レプリカ間のデータ フローの全体的な正常性は各レプリカの同期状態によって示されますセカンダリ レプリカにフェールオーバーしたときに同期状態が 同期済み または 同期中 になっていなければほとんどの場合はデータ損失が発生することになります

各セカンダリ レプリカの同期ストリームにはセッション タイムアウト プロパティがあります同期コミット モードに構成されているセカンダリ レプリカがセッション タイムアウトでエラーになると内部的には一時的に非同期としてマークされますこれはセカンダ

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 29

リ レプリカのエラーがプライマリ レプリカでのトランザクション ログの書き込みに影響しないようにするためですそのセカンダリ レプリカが正常に戻ってプライマリ レプリカの状態に追いつくと自動的に通常の同期コミット モード動作に戻されます

可用性グループのフェールオーバー可用性グループとそれに対応する仮想ネットワーク名はWSFC クラスターのリソースとして登録されます可用性グループはプライマリ レプリカの正常性とフェールオーバー ポリシーに基づいて可用性レプリカのレベルでフェールオーバーを行います

可用性グループのフェールオーバー ポリシーではsp_server_diagnostics システム ストアド プロシージャと FailureConditionLevel プロパティを使用して可用性グループに対して許容されるエラーの重大度のレベルを示しますこの同じメカニズムがFCI のフェールオーバー ポリシーにも使用されます

フェールオーバーが発生した場合は共有物理リソースの所有権を他のノードに移す代わりにWSFC を利用して他の SQL Server インスタンス上でセカンダリ レプリカを再構成しプライマリ レプリカの役割を引き継がせますその後可用性グループの仮想ネットワーク名リソースがそのインスタンスに転送されます関連する可用性レプリカへのすべてのクライアント接続がリセットされます

レプリカの現在の正常性同期状態および可用性モードに基づいて各レプリカには複合的な フェールオーバーの準備 状態が定義されますこの状態の値はデータ損失の可能性を示していますレプリカの正常性情報はAlwaysOn ダッシュボードまたは sysdm_hadr_availability_replica_states システム ビューで確認できます

各可用性レプリカにはフェールオーバー モードも構成されていますこのモードはフェールオーバーが指示された場合にレプリカの動作を制御します

自動フェールオーバー (データ損失なし)セカンダリ レプリカのトランザクション ログが既に書き込まれ同期されているのですべての AlwaysOn 構成の中でフェールオーバー時間が最短になりますプライマリ レプリカ上の開かれているトランザクションはロールバックされプライマリ レプリカの役割はユーザーによる操作なしでセカンダリ レプリカに転送されます

この場合プライマリ レプリカとセカンダリ レプリカの両方を自動フェールオーバー モードに設定し両方の可用性モードを同期コミットに設定する必要がありますレプリカ間の同期状態は同期済み である必要がありますまたWSFC クラスターは正常なクォーラム状態になっている必要があります

自動フェールオーバーはプライマリ レプリカまたはセカンダリ レプリカが FCI 上にある場合はサポートされませんこれは可用性グループと FCI のフェールオーバー間で競合状態が発生することを防ぐためです

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 30

手動フェールオーバーこの場合管理者はプライマリ レプリカの状態を評価してセカンダリ レプリカにフェールオーバーするかどうかを慎重に判断できます

可用性モードと同期状態に応じて次のような選択が可能です

o 計画的な手動フェールオーバー (データ損失なし)この種類のフェールオーバーを実行できるのはプライマリ レプリカとセカンダリ レプリカの両方が正常で同期済み 状態である場合だけですこれは機能的には自動フェールオーバーと同じです

o 強制手動フェールオーバー (データ損失の可能性を許容)これは対象のセカンダリ レプリカの可用性モードが非同期コミットである場合またはプライマリ レプリカに同期されない場合に使用できる唯一のフェールオーバー形式です

警告 このフェールオーバー オプションは災害復旧の状況に限って使用する必要がありますプライマリ レプリカが正常で使用可能である場合は関連する各レプリカの可用性モードを同期コミットに変更し計画的な手動フェールオーバーを実行してください

詳細については「可用性グループの強制手動フェールオーバーの実行」(httpmsdnmicrosoftcomja-jplibraryff877957(SQL110)aspx) を参照してください

フェールオーバー対象のプライマリ レプリカまたはセカンダリ レプリカが次の条件のいずれかに該当する場合は手動フェールオーバーを実行する必要があります

フェールオーバー モードが手動に設定されている 可用性モードが非同期コミットに設定されている レプリカが FCI 上にある

詳細については「フェールオーバーとフェールオーバー モード (AlwaysOn 可用性グルー プ ) 」(httpmsdnmicrosoftcomja-jplibraryhh213151(SQL110)aspx) を参照してください

注 フェールオーバー後新しいプライマリ レプリカが同期コミット モードに設定されていない場合セカンダリ レプリカの同期状態は 中断状態 になりますプライマリ レプリカが同期コミット モードに設定されるまでデータはセカンダリ レプリカに移動されません

可用性グループ リスナー可用性グループ リスナーはクライアントが可用性グループ内のデータベースにアクセスするために使用できる WSFC 仮想ネットワーク名 (VNN) ですVNN クラスター リソースはプライマリ レプリカをホストしている SQL Server インスタンスによって所有されます

仮想ネットワーク名は可用性グループ リスナーの作成時または構成の変更時にのみDNS に登録されます可用性グループ リスナーで定義されているすべての仮想 IP アドレスは同じ仮想ネットワーク名で DNS に登録されます

可用性グループ リスナーを使用する場合クライアント接続要求ではサーバーとして仮想ネットワーク名を指定してから可用性グループ内のデータベース名を指定する必要があり

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 31

ます既定ではこれによってプライマリ レプリカをホストしている SQL Server インスタンスに接続されます

実行時にはクライアントはローカルの DNS リゾルバーを使用して仮想ネットワーク名にマップされている IP アドレスと TCP ポートの一覧を取得しますクライアントは各 IP アドレスへの接続を成功するか接続タイムアウトに達するまで試し続けますMultiSubnetFailover パラメーターが true に設定されているとクライアントは複数の接続を同時に試行するのでクライアント フェールオーバーが大幅に速くなります

フェールオーバーが行われるとサーバー上でクライアント接続がリセットされ可用性グループ リスナーの所有権はプライマリ レプリカの役割と共に新しい SQL Server インスタンスに移動しVNN エンドポイントは新しいインスタンスの仮想 IP アドレスと TCP ポートにバインドされます

詳細については「可用性グループ リスナークライアント接続およびアプリケーションのフェールオーバー」(httpmsdnmicrosoftcomja-jplibraryhh213417(SQL110)aspx) を参照してください

アプリケーションの目的によるフィルター処理可用性グループ リスナーを使用して接続している場合アプリケーションは接続の目的がデータの読み取りと書き込みの両方なのか読み取り専用操作を実行するだけなのかを指定できます指定しない場合クライアントのアプリケーションの目的は既定で読み取りと書き込みになります

各可用性レプリカのプライマリ ロールとセカンダリ ロールについてはクライアントのアプリケーションの目的に対する接続レベルのフィルターとして接続アクセス プロパティも指定できます既定ではアプリケーションの目的と接続アクセスとの組み合わせが無効であると接続が拒否されますSQL Server は次のルールを使用してクライアントの接続要求を振り分ける必要があります

可用性レプリカがプライマリ ロールであり接続アクセスが次のいずれかである場合

すべてのアプリケーションの目的を許可するアプリケーションの目的でクライアント接続をフィルター処理しません

明示的な読み取り書き込みの目的だけを許可するクライアントが読み取り専用を指定している場合接続を拒否します

可用性レプリカがセカンダリ ロールであり接続アクセスが次のいずれかである場合

接続を許可しないすべての接続を拒否しますレプリカは災害復旧だけに使用されます

すべてのアプリケーションの目的を許可するアプリケーションの目的でクライアント接続をフィルター処理しません

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 32

読み取り専用の目的を許可するクライアントが読み取り専用を指定していない場合接続を拒否します

詳細については「可用性レプリカでの読み取り専用アクセスの構成」(httpmsdnmicrosoftcomja-jplibraryhh213002(SQL110)aspx) を参照してください

アプリケーションの目的の読み取り専用ルーティングAlwaysOn 可用性グループの特に優れた点はスタンバイ ハードウェア インフラストラクチャを災害復旧以外の目的に利用できることです1 つ以上のセカンダリ レプリカを読み取り専用でアクセスできるように構成するとプライマリ レプリカからかなりの量のワークロードを軽減できます

読み取り専用セカンダリ レプリカに回すように簡単に調整できるワークロードはレポートデータベース バックアップデータベース整合性チェックインデックスの断片化の分析データ パイプライン抽出運用サポート操作サポートアドホック クエリなどです

各可用性レプリカではSQL Server インスタンスのエンドポイントについて順次的な読み取り専用ルーティング リストを構成することもできますこのリストはレプリカがプライマリ ロールであるときに適用されますこのリストが存在する場合アプリケーションの目的が読み取り専用と指定されているクライアント接続要求はそのリスト内に記載されていて前述のアプリケーションの目的フィルターに適合する最初のセカンダリ レプリカにリダイレクトされます

注 読み取り専用ルーティングによるリダイレクトはプライマリ レプリカにバインドされている可用性グループ リスナーによって実行されますプライマリ レプリカがオフラインの場合クライアントのリダイレクトは機能しません

詳細については「可用性グループの読み取り専用ルーティングの構成 (SQL Server) 」(httpmsdnmicrosoftcomja-jplibraryhh710054(SQL110)aspx) を参照してください

可用性の向上 ndash データベースSQL Server 2012 ではデータベースの構成と機能に関してさまざまな点が強化されています

以下の機能は復旧時間の短縮に役立ちます

予測可能な復旧時間データベースごとにターゲット復旧時間の長さを設定することでバックグラウンドで実行される CHECKPOINT コマンドのスケジュールを制御できますこのコマンドは間接的なチェックポイントとして再起動時またはフェールオーバー時にトランザクション ログの復旧に必要となる時間の推定値に基づいて定期的に実行されますそれによってチェックポイントごとに IO 操作がほぼ均等に配分され復旧時間 (RTO) の予測可能性が高まります

SQL Server 2012 よりも前のバージョンではバックグラウンドの CHECKPOINT コマンドがトランザクションの量や負荷とは無関係に一定間隔で実行されていたので復旧時間を予測することはできませんでした

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 33

詳細については「データベース チェックポイント」(httpmsdnmicrosoftcomja-jplibraryms189573(SQL110)aspx) を参照してください

以下の向上点は計画的なダウンタイムが必要になる一般的な状況を減らすのに役立ちます

LOB 列のオンライン インデックス操作varbinary(max)varchar(max)nvarchar(max)または XML データ型の列が含まれているインデックスをオンラインで再構築または再構成できるようになりました

新しい NOT NULL 列のオンライン スキーマ修正既定値を使用して新しい NOT NULL 列を SQL Server 2012 データベース テーブルに追加する場合システム メタデータの更新にはスキーマ ロックだけが必要ですALTER TABLE ステートメントですべての行にデータを設定する必要はありません

いずれかの行で実際に変更またはインデックスの再作成が行われない限り列の既定値は物理的に格納されませんクエリでは列に実際の値が存在しない場合メタデータから既定値を返します

ストレージのサポート強化の例として次のようなものがあります

ページの自動修復ある種のストレージ サブシステム エラーが発生するとデータ ページが破損し読み取り不可能になる場合がありますAlwaysOn 可用性グループではそのような種類のエラーを検出し自動的に復旧できます復旧のために影響を受けたデータ ページの最新のコピーが別の可用性レプリカから非同期で取得され適用されます

以前のバージョンでもデータベース ミラーリングに同様の機能がありましたが新しい機能では複数のレプリカをサポートできるようになっています

詳細については「ページの自動修復」(httpmsdnmicrosoftcomja-jplibrarybb677167(SQL110)aspx) を参照してください

クライアント接続の推奨事項クライアント アプリケーションが Microsoft SQL Server 2012 AlwaysOn テクノロジの利点を十分に活用できるようにするには次のガイドラインに従います

AlwaysOn 対応のクライアント ライブラリ表形式のデータ ストリーム (TDS) プロトコル Version 74 以降をサポートしているクライアント ライブラリを使用しますこれによってAlwaysOn の機能に対応した適切な機能がクライアント側でも提供されますクライアント ライブラリの例としてはData Provider for SQL Server in NET Framework 402SQL Native Client 110 などがあります

接続プロバイダー プロパティ MultiSubnetFailover = True接続文字列にこのキーワードを使用することでクライアント ライブラリでは(複数のサブネットに IP アドレスを持つ) 可用性グループ リスナーまたは FCI に登録されているすべての IP アドレスに同時に接

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 34

続できるようになります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 35

接続プロバイダー プロパティ ApplicationIntent = ReadOnly必要に応じてプライマリ レプリカの読み取り専用ワークロードをセカンダリ レプリカに移管することができます

レガシ クライアントの接続タイムアウトレガシ クライアントのデータベース ライブラリには並列で接続を試行する機能が実装されていないため複数の IP アドレスがある場合にはTCP タイムアウトに達するか正常に接続できるまで1 つずつ順番に接続を試行します

複数の IP アドレスが存在する場合はタイムアウトと再試行が逐次的に繰り返される可能性に備えてレガシ クライアントの接続タイムアウトを調整する必要があります値は少なくとも 15 秒 + 21 秒 times セカンダリ レプリカ数にします

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 36

結論このホワイト ペーパーではSQL Server 2012 の AlwaysOn による高可用性災害復旧ソリューションを使用し予定されたダウンタイムや予定外のダウンタイムを短縮したりアプリケーションの可用性を最大限に高めたりデータを保護したりする方法について基本的なコンテキストを確立しました

高可用性データベース環境の計画管理測定に関連したビジネス上の目的と課題は多くの場合目標復旧時点 (RPO) と目標復旧時間 (RTO) という形で数量化して表すことができます

SQL Server 2012 AlwaysOn は組織が高可用性や災害復旧に関する一般的な状況に対処するための機能をRPO と RTO を適切に達成できることを念頭にインフラストラクチャ レベルデータ プラットフォーム レベルデータベース レベルのそれぞれで提供します

詳細情報

httpwwwmicrosoftcomja-jpsqlserver2012defaultaspx SQL Server Web サイト

httptechnetmicrosoftcomja-jpsqlserver SQL Server TechCenter

httpmsdnmicrosoftcomja-jpsqlserver SQL Server 開発者向け技術情報

このホワイト ペーパーはお役に立ちましたか フィードバックをお寄せください1 (役に立たなかった) ~ 5 (非常に役に立った) の 5 段階で評価してくださいまたその評価の理由もお知らせください以下に例を示します

評価が高い 例が適切図がわかりやすい説明が明快といったことが理由である 評価が低い 例が少ない図がわかりにくい説明があいまいといったことが理由で

ある

このようなフィードバックをお寄せいただくと今後のホワイト ペーパーの品質向上につながります

フィードバックの送信

loz Version 112012 年 2 月 21 日

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 37

  • 高可用性と災害復旧の概念
    • 高可用性について
      • 予定されたダウンタイムと予定外のダウンタイム
      • 段階的な可用性
        • ダウンタイムの定量化
          • 復旧目標
          • ROI または機会費用の正当化
          • 可用性の健全度の監視
          • 災害復旧の計画
            • 概要 Microsoft SQL Server 2012 での高可用性
              • SQL Server AlwaysOn
              • 計画的なダウンタイムの大幅な削減
              • アイドル状態のハードウェアをなくしてコスト効率とパフォーマンスを向上
              • 簡単な配置と管理
              • RPO と RTO の機能比較
                  • SQL Server AlwaysOn の保護レイヤー
                    • インフラストラクチャの可用性
                      • Windows オペレーティング システム
                        • Windows Server Core インストール オプション
                        • プライベート クラウド用の SQL Server の最適化
                          • Windows Server フェールオーバー クラスタリング
                            • WSFC ストレージ構成
                            • WSFC リソースの正常性の検出とフェールオーバー
                              • WSFC のクラスター検証ウィザード
                              • WSFC クォーラム モードと投票の構成
                                • クォーラムによるクラスター状態検出
                                • クォーラム モード
                                • 投票ノードと非投票ノード
                                • クォーラム投票に推奨される調整
                                  • WSFC の強制クォーラムによる災害復旧
                                    • SQL Server インスタンス レベルでの保護
                                      • 可用性の向上 ndash SQL Server インスタンス
                                      • AlwaysOn フェールオーバー クラスター インスタンス
                                        • FCI のフェールオーバー プロセス
                                        • FCI の強化
                                            • データベースの可用性
                                              • AlwaysOn 可用性グループ
                                                • 可用性レプリカとロール
                                                • 可用性レプリカの同期
                                                  • 可用性グループのフェールオーバー
                                                  • 可用性グループ リスナー
                                                    • アプリケーションの目的によるフィルター処理
                                                    • アプリケーションの目的の読み取り専用ルーティング
                                                      • 可用性の向上 ndash データベース
                                                        • クライアント接続の推奨事項
                                                          • 結論
Page 25: 高可用性と災害復旧の概念download.microsoft.com/download/6/B/E/6BE0C3F3-2991-4766... · Web view高可用性と災害復旧のソリューションのために最適なデータベース

WSFC の強制クォーラムによる災害復旧通常クォーラム障害は災害発生時または WSFC クラスター内の複数のノード間で永続的な通信障害が生じた場合に発生しますクォーラム障害が発生するとクラスターがノード レベルのフォールト トレランスを確保できなくなるためその WSFC クラスター内の SQL Server インスタンス可用性グループおよびクラスター化されているサービスがすべてオフラインになりますクォーラム障害はWSFC クラスター内の正常な投票ノード数がクォーラム モデルを満たさなくなったことを意味しますノードによってまったく機能しなくなるものもあればWSFC サービスがシャットダウンしただけでクォーラムと通信できなくなったことを除けば正常なものもあります

WSFC クラスターをオンラインに戻すには既存の構成の少なくとも 1 つのノードでクォーラム障害の根本的な原因を解決する必要があります災害発生時には使用できる代替ハードウェアの再構成や識別が必要となる場合もあります現状のクラスター トポロジを反映するためにWSFC クラスターの残りのノードを再構成する場合もあります

WSFC クラスター ノードで強制クォーラムの手順を使用するとクラスターがオフラインになる原因となった安全管理機能を無効にすることができますこれによりクラスターでのクォーラム投票のチェックが実質的に中断されクラスター内の任意のノードで WSFC クラスター リソースと SQL Server をオンラインに戻すことができます

このような災害復旧プロセスの手順を次に示します

1) 障害の範囲を特定します応答しない可用性グループや SQL Server インスタンス災害後に使用できるオンラインのクラスター ノードをそれぞれ特定しWindows イベント ログと SQL Server システム ログを確認します必要に応じて後で分析できるように解析データやシステム ログを保存しておきます

2) 1 つのノードで強制クォーラムを使用して WSFC クラスターを起動します他の点では正常なノードで強制クォーラムの手順に従ってクラスターを手動で強制的にオンラインにしますこの場合データ損失の可能性を最小限に抑えるには可用性グループのプライマリ レプリカを最後にホストしていたノードを選択します

詳細については「クォーラムを使用せずに WSFC クラスターを強制的に起動する 」(httpmsdnmicrosoftcomja-jplibraryhh270275(v=SQL110)aspx) を参照してください

注 強制クォーラムの設定を使用するとWSFC クラスターの投票が過半数に達することで通常のクォーラム モードの動作に自動的に切り替わるまでクラスター全体のクォーラムのチェックがブロックされます

3) 他の点では正常な各ノードでWSFC サービスを 1 つずつ通常の方法で起動します他のノードでクラスター サービスを起動するときは強制クォーラム オプションを指定する必要はありません

各ノードの WSFC サービスがオンラインに戻ると他の正常なノードとの間でネゴシエーションが行われ新しいクラスター構成の状態が同期されますクラスターの最新の状態

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 20

を判断するときに競合状態の発生を避けるためこの手順は必ず一度に 1 つのノードで行うようにしてください

注 起動した各ノードが新たにオンラインにした他のノードと通信できることを確認しますそうしないと複数のクォーラム ノード セットが作成されて スプリット ブレイン の状況に陥るおそれがあります手順 1 の結果に問題がなければこの現象は発生しません

4) 新しいクォーラム モードとノードの投票の構成を適用します強制クォーラムの手順によってクラスターのすべてのノードを正常に再起動させクォーラムのエラーの根本原因を修正した場合クォーラム モードとノードの投票を元の構成から変更する必要はありません

それ以外の場合は新たに復元されたクラスター ノードと可用性レプリカのトポロジを評価し必要に応じてクォーラム モードと各ノードの投票割り当てを変更します未復旧のノード上ではWSFC クラスター サービスをオフラインにするかノードの投票をゼロに設定します

注 この時点でクラスター内のノードと SQL Server インスタンスが通常の動作に戻っているように見えることがありますがまだ正常なクォーラムには達していない可能性がありますフェールオーバー クラスター マネージャーやSQL Server Management Studio の AlwaysOn ダッシュボードまたは適切な DMV を使用して正常なクォーラムが復元されたことを確認してください

5) 必要に応じて可用性グループのデータベース レプリカを復旧します一部のデータベースはSQL Server の通常の起動処理の一環として自動的に復旧されオンラインに戻ることがありますそれ以外のデータベースの復旧には追加で手動の手順を実行する必要があります

可用性グループ レプリカのデータ損失の可能性や復旧にかかる時間を最小限に抑えるにはできればプライマリ レプリカ同期セカンダリ レプリカ非同期セカンダリ レプリカの順にオンラインに戻します

6) 障害が発生したコンポーネントを修復するか交換しクラスターを再検証しますこれで最初の災害およびクォーラム障害から復旧できたので障害が発生したノードを修復するか交換しWSFC と AlwaysOn の関連する構成を適切に調整する必要がありますこれには可用性グループ レプリカの削除クラスターからのノードの削除ノードへのソフトウェアの再インストールなどが含まれます

注 停止したすべての可用性レプリカを修復または削除する必要がありますSQL Server 2012 では最も古い可用性レプリカを最後に認識した時点以降トランザクション ログが切り捨てられません停止したレプリカを修復するか可用性グループから削除しないとトランザクション ログが大きくなり他のレプリカのトランザクション ログの領域が不足する可能性があります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 21

7) 必要に応じて手順 4 を繰り返しますこの目的は正常な動作を行うために適切なレベルのフォールト トレランスと高可用性を再確立することです

8) RPORTO 分析を実行しますSQL Server のシステム ログデータベースのタイムスタンプおよび Windows のイベント ログを分析して障害の根本的な原因を特定し実際の復旧ポイントと復旧時間を文書に記録します

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 22

SQL Server インスタンス レベルでの保護次に説明する AlwaysOn ソリューションの保護レイヤーはデータ プラットフォームそれ自体ですMicrosoft SQL Server 2012 とその Windows Server インフラストラクチャ コンポーネントとの統合によって次のような機能が提供されます

可用性の向上 ndash SQL Server インスタンスこれは SQL Server 2012 の新しいインスタンス レベルの機能でAlwaysOn フェールオーバー クラスター インスタンスとAlwaysOn 可用性グループをホストするスタンドアロン インスタンスの両方の可用性を強化します

以下の強化点によってフェールオーバーの管理およびトラブルシューティングが向上します

柔軟なフェールオーバー ポリシー信頼性の高いエラー検出に使用される新しいシステム ストアド プロシージャ sp_server_diagnostics の出力でSQL Server インスタンスに影響するエラーの重大度が FailureConditionLevel プロパティによって示されますWSFC のフェールオーバー ポリシーによってこの値が SQL Server インスタンスにどのように影響するかを制御できますある程度エラーを許容する設定からSQL Server の内部コンポーネント エラーを重点的に検出する設定までさまざまに構成できます

特定のレベルのエラーによってフェールオーバーを開始するように構成できますエラーのレベルにはサーバーの停止サーバーの応答停止重大なエラー中程度のエラーなんらかの条件付きエラーなどがありますFailureConditionLevel プロパティはFCI または可用性グループのフェールオーバー ポリシーのために使用できます

SQL Server 2012 よりも前のバージョンではフェールオーバーを制御できるようなエラー状態の区分がなくすべてのサービス レベルのエラーによってフェールオーバーが発生しました

詳細については「フェールオーバー クラスター インスタンスのフェールオーバー ポリシー」(httpmsdnmicrosoftcomja-jplibraryff878664(SQL110)aspx) を参照してください

強化されたインストルメンテーションとログAlwaysOn 専用のシステム構成ビューDMVパフォーマンス カウンターに加えて拡張されたイベント正常性セッションによってAlwaysOn 配置のトラブルシューティングチューニングおよび監視に必要な情報を取得して表示できますこれらの多くはSQL Server ポリシー管理の新しいファセットおよびポリシーを通じて公開されます

詳細については「AlwaysOn 可用性グループの動的管理ビューおよび関 数」(httpmsdnmicrosoftcomja-jplibraryff877943(SQL110)aspx) と「sysdm_os_cluster_nodes」(httpmsdnmicrosoftcomja-jplibraryms187341(SQL110)aspx) を参照してください

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 23

SMB ファイル共有のサポートWindows Server 2008 以降のスタンドアロン用またはフェールオーバー クラスター インスタンス用のリモート ファイル共有にデータベース ファイルを格納することができますこの場合FCI ごとに異なるドライブ文字を使用する必要がありませんこれはストレージを統合する場合やデータベース ファイルのストレージを仮想マシンのゲスト オペレーティング システム用物理サーバーでホストする場合などに便利なオプションです適切に構成すれば直接接続されたストレージとほぼ同等の IO パフォーマンスが得られます

詳細については「ファイル共有上の SQL データベース - シナリオを再検討すべきとき 」(httpblogsmsdncombsqlserverstorageenginearchive20111018sql-databases-on-file-shares-it-s-time-to-reconsider-the-scenarioaspx) を参照してください

注 WSFC クラスターではSMB ファイル共有リソースの依存関係を SQL Server リソース グループに追加することはできませんファイル共有の可用性を確保するには別の方法を用いる必要がありますファイル共有が使用できなくなった場合SQL Server は IO 例外をスローしオフラインになります

WSFC と DNS の相互運用性FCI または可用性グループ リスナーの仮想ネットワーク名 (VNN) はVNN の作成時または構成の変更時にのみDNS に登録されますすべての仮想 IP アドレスはオンライン状態かオフライン状態かに関係なく同じ仮想ネットワーク名で DNS に登録されますDNS の仮想ネットワーク名を解決するためのクライアント呼び出しは各種のラウンド ロビン シーケンスによってすべての登録済み IP アドレスを返します

AlwaysOn フェールオーバー クラスター インスタンスSQL Server の AlwaysOn フェールオーバー クラスター インスタンス (FCI) の主な目的は1 つのデータ センター内のローカル サーバーとストレージ ハードウェアでホストされている SQL Server インスタンスの可用性を高めることです

FCI はWindows Server フェールオーバー クラスタリング (WSFC) のクラスターに含まれる複数のノードにまたがってインストールされる1 つの論理的な SQL Server インスタンスですただし一度に 1 つのノードだけでアクティブになることができますクライアント アプリケーションはアクティブなクラスター ノードが所有している仮想ネットワーク名および仮想 IP アドレスに接続します

FCI をインストールした各ノードは同一の構成を持ち同一の SQL Server バイナリを含んでいますWSFC クラスター サービスはアクティブなインスタンス上にある Windows レジストリのエントリからFCI をインストールした各ノードに関連のある変更をレプリケートしますFCI がインストールされている各ノードはインスタンスとそのリソースの所有者の候補として指定されフェールオーバーの優先順位に従って所有者となります

共有対称ストレージ ボリュームに格納されているデータベース ファイルはリソースとして WSFC クラスターに登録され現在 FCI をホストしているノードによって所有されます

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 24

詳細については「AlwaysOn フェールオーバー クラスター インスタン ス」(httpmsdnmicrosoftcomja-jplibraryms189134(SQL110)aspx) を参照してください

FCI のフェールオーバー プロセス依存しているクラスター リソースで障害が発生した場合AlwaysOn フェールオーバー クラスター インスタンスはWSFC クラスター サービスと連携してフェールオーバーを行いますそのプロセスの概要を以下に示します

1) 再起動が指示されますWSFC の定期的なチェックまたは SQL Server のフェールオーバー ポリシー構成によってエラー状態が示されます既定では他のノードへのフェールオーバーを開始する前にサービスの再起動が試みられます再起動の試みがタイムアウトするようであればリソースの障害が発生しています

2) フェールオーバーが指示されますフェールオーバー ポリシー チェックによってノードのフェールオーバーが必要であることが示されます

3) SQL Server サービスが停止されますSQL Server サービスが現在実行されている場合はその正常なシャットダウンが試みられます

4) WSFC クラスター リソースが転送されますSQL Server クラスター リソース グループの所有権とそれが依存するネットワークおよび共有ストレージ リソースがFCI で次に優先されるノード所有者に転送されます

5) 新しいノードで SQL Server が起動されますSQL Server インスタンスは通常のスタートアップ プロシージャで起動されます所定のタイムアウト時間内にオンラインに戻らない場合クラスター サービスはこの新しいノード上のリソースをエラー状態と見なします

6) 新しいノードでユーザー データベースが復旧されます各ユーザー データベースは復旧モードに設定されます復旧モードではトランザクション ログの再実行操作が適用されコミットされていなかったトランザクションがロールバックされます

FCI の強化以前のバージョンの SQL Server でも FCI のインストール オプションは用意されていましたがSQL Server 2012 では次のような機能強化によって可用性の堅牢性と利便性が向上しました

マルチサブネット クラスタリングSQL Server 2012 では複数のサブネットに存在する WSFC クラスター ノードがサポートされていますWSFC クラスター ノードに存在する SQL Server インスタンスはいずれかのネットワーク インターフェイスが使用可能であれば起動できますこれはクラスター リソースの OR 依存関係と呼ばれます

以前のバージョンの SQL Server の場合SQL Server サービスを起動またはフェールオーバーするにはすべてのネットワーク インターフェイスが機能しそれらがすべて同じサブネットまたは VLAN に存在している必要がありました

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 25

注 マルチサブネット クラスタリングではクラスター ノード間のストレージ レベルのレプリケーションが自動的には有効になりませんマルチサブネットの FCI ソリューションでクラスター ノード間でデータのレプリケーションを行いストレージ フェールオーバーを調整するためにはサード パーティから提供される SAN ベースのソリューションを利用する必要があります

詳細については「SQL Server 2012 AlwaysOn マルチサイト フェールオーバー クラスター インスタンス」(httpsqlcatcomsqlcatbwhitepapersarchive20111222sql-server-2012-alwayson_3a00_-multisite-failover-cluster-instanceaspx) を参照してください

信頼性の高いエラー検出WSFC クラスター サービスではノードの各 SQL Server 2012 FCI に対してそれぞれ専用の管理者接続が維持されますこの接続では特殊なシステム ストアド プロシージャ sp_server_diagnostics を定期的に呼び出すことでシステムの正常性診断に役立つ豊富な情報を含む配列が返されます

SQL Server 2012 よりも前のバージョンではFCI の主な正常性検出メカニズムは単純な一方向のポーリング プロセスとして実装されていましたこのプロセスではWSFC クラスター サービスがインスタンスへの新しい SQL クライアント接続を定期的に作成しサーバー名を照会した後で接続を切断していました何かの理由で接続が失敗するかクエリがタイムアウトした場合フェールオーバーが開始されますが診断情報はほとんど提供されません

詳細については「sql_server_diagnostics」(httpmsdnmicrosoftcomja-jplibraryff878233(SQL110)aspx) を参照してください

現在ではFCI ストレージが次のように幅広い状況でサポートされています

向上したマウント ポイント サポートSQL Server のセットアップ時にクラスター ディスクのマウント ポイント設定が認識されるようになりました指定されたクラスター ディスクとそれにマウントされているすべてのディスクがセットアップ時に SQL Server リソースの依存関係に自動的に追加されます

ローカル ストレージの tempdbFCI ではローカルの非共有ストレージ (ローカル ソリッド ステート ドライブなど) に tempdb を配置できるようになったため共有 SAN での IO 動作の負荷を大幅に軽減できる可能性があります

SQL Server 2012 よりも前のバージョンの FCI ではtempdb が他のシステム データベースと共にフェールオーバーされる対称共有ストレージ ボリュームに配置される必要がありました

注 tempdb の場所はmaster データベースに格納されますこのデータベースはフェールオーバー時にノード間で移動されますtempdb は所有者候補となっているすべてのノード上で有効で対称的なファイル パス (ドライブフォルダーおよび権限) に配置されている必要がありますそうなっていない場合SQL Server サービスが一部のノードでは起動されません

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 26

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 27

データベースの可用性インフラストラクチャ レベルおよび SQL Server インスタンス レベルのコンポーネントで提供されている高可用性機能は互いに連係してホストされているデータベースを暗黙的に保護しますAlwaysOn ソリューションではデータベースのデータおよびデータ層アプリケーションを明示的に保護するために一連のオプションが追加で用意されています

AlwaysOn 可用性グループ可用性グループは1 つの SQL Server インスタンスから同じ WSFC クラスター内の別のインスタンスへと同時にフェールオーバーされるユーザー データベースのセットですクライアント アプリケーションは可用性グループ リスナーと呼ばれる WSFC 仮想ネットワーク名を通じて可用性グループのデータベースに接続できますこうすることで基になる SQL Server インスタンスが抽象化されます

AlwaysOn 可用性グループは正常性監視フェールオーバーの調整およびサーバー接続を Windows Server フェールオーバー クラスタリングに依存していますWSFC クラスター ノード上の SQL Server インスタンスでAlwaysOn サポートを有効にする必要がありますただしそのインスタンスが FCI である必要はなく対称共有ストレージを使用する必要もありません

詳細については「AlwaysOn 可用性グループの概要 」(httpmsdnmicrosoftcomja-jplibraryff877884(SQL110)aspx) を参照してください

可用性レプリカとロール可用性グループの各 SQL Server インスタンスは可用性グループのユーザー データベースのコピーを保持している可用性レプリカをホストしますSQL Server インスタンスは特定の可用性グループの可用性レプリカを 1 つだけホストすることができますが複数の可用性グループを同じインスタンスに置くことは可能ですSQL Server インスタンスは専用の (非共有) ストレージ ボリュームを持つ必要があります

可用性レプリカの 1 つがプライマリ レプリカの役割を果たしますこれは可用性グループ データベースのマスター コピーとして指定されていて読み取り書き込み操作を行うことができます

可用性グループには読み取り専用の可用性レプリカを最大 4 つまで追加で含めることができますこれらは個別にセカンダリ レプリカの役割を果たします

可用性レプリカの同期可用性グループの各データベースの内容はSQL Server によるログ ベースのデータ移動メカニズムを通じてプライマリ レプリカから各セカンダリ レプリカに同期されますそのため可用性グループのすべてのデータベースは完全復旧モデルに設定する必要があります

セカンダリ レプリカはプライマリ レプリカのデータベースとトランザクション ログの完全なバックアップと復元によって初期化されますプライマリ レプリカで新しいトランザクションがコミットされるとトランザクション ログの対応する部分がキャッシュされ

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 28

キューに入れられてネットワーク経由でセカンダリ レプリカ ノード上のデータベース ミラーリング エンドポイントに送信されます

この方法によりプライマリ レプリカのトランザクション ログの新しいエントリが各セカンダリ レプリカのトランザクション ログに追加されます各セカンダリ レプリカはログ シーケンス番号 (LSN) をプライマリ レプリカに定期的に送り返しトランザクション ログのどのくらいの量がリモート ディスクに書き込まれフラッシュされたかを示します

注 各可用性レプリカはそれぞれ独自に独立したトランザクション ログ再実行スレッドのセットを保持していますこれは可用性レプリカの同期プロセスには含まれませんセカンダリ レプリカ上ではログ再実行プロセスによって遅延時間が生じるためユーザーはそれをデータの待機時間として感じる場合があります

プライマリまたはセカンダリの役割を果たす他に各可用性レプリカには可用性モードもありますこのモードは次のようにCOMMIT TRAN ステートメントの実行時にトランザクション ログの書き込みの連係を制御します

同期コミット モードすべての同期コミット セカンダリ レプリカからそれぞれ独自のトランザクション ログの書き込み完了 (LSN 以降) が通知されるまでプライマリ レプリカはそのトランザクションをコミットしません可用性グループでは最大で 2 つの同期コミット セカンダリ レプリカを使用できます

同期コミット モードではプライマリ レプリカ データベースでトランザクションの遅延が生じますがコミットされたトランザクションに対するセカンダリ レプリカでのデータ損失を確実に防ぐことができます

非同期コミット モードプライマリ レプリカはローカル トランザクション ログの書き込み後にトランザクションをコミットしますが非同期コミット セカンダリ レプリカからトランザクション ログの書き込み完了通知を待つことはしません可用性グループでは最大で 4 つの非同期コミット セカンダリ レプリカを使用できますただし両方の種類を合わせて使用できるセカンダリ レプリカの合計は最大 4 つです

非同期コミット モードではプライマリ レプリカ データベースで生じるトランザクションの遅延が最小になりますがセカンダリ レプリカでのトランザクション ログが遅れる場合があるため一部のデータが失われる可能性があります

詳細については「可用性モード」(httpmsdnmicrosoftcomja-jplibraryff877931(SQL110)aspx) を参照してください

可用性レプリカ間のデータ フローの全体的な正常性は各レプリカの同期状態によって示されますセカンダリ レプリカにフェールオーバーしたときに同期状態が 同期済み または 同期中 になっていなければほとんどの場合はデータ損失が発生することになります

各セカンダリ レプリカの同期ストリームにはセッション タイムアウト プロパティがあります同期コミット モードに構成されているセカンダリ レプリカがセッション タイムアウトでエラーになると内部的には一時的に非同期としてマークされますこれはセカンダ

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 29

リ レプリカのエラーがプライマリ レプリカでのトランザクション ログの書き込みに影響しないようにするためですそのセカンダリ レプリカが正常に戻ってプライマリ レプリカの状態に追いつくと自動的に通常の同期コミット モード動作に戻されます

可用性グループのフェールオーバー可用性グループとそれに対応する仮想ネットワーク名はWSFC クラスターのリソースとして登録されます可用性グループはプライマリ レプリカの正常性とフェールオーバー ポリシーに基づいて可用性レプリカのレベルでフェールオーバーを行います

可用性グループのフェールオーバー ポリシーではsp_server_diagnostics システム ストアド プロシージャと FailureConditionLevel プロパティを使用して可用性グループに対して許容されるエラーの重大度のレベルを示しますこの同じメカニズムがFCI のフェールオーバー ポリシーにも使用されます

フェールオーバーが発生した場合は共有物理リソースの所有権を他のノードに移す代わりにWSFC を利用して他の SQL Server インスタンス上でセカンダリ レプリカを再構成しプライマリ レプリカの役割を引き継がせますその後可用性グループの仮想ネットワーク名リソースがそのインスタンスに転送されます関連する可用性レプリカへのすべてのクライアント接続がリセットされます

レプリカの現在の正常性同期状態および可用性モードに基づいて各レプリカには複合的な フェールオーバーの準備 状態が定義されますこの状態の値はデータ損失の可能性を示していますレプリカの正常性情報はAlwaysOn ダッシュボードまたは sysdm_hadr_availability_replica_states システム ビューで確認できます

各可用性レプリカにはフェールオーバー モードも構成されていますこのモードはフェールオーバーが指示された場合にレプリカの動作を制御します

自動フェールオーバー (データ損失なし)セカンダリ レプリカのトランザクション ログが既に書き込まれ同期されているのですべての AlwaysOn 構成の中でフェールオーバー時間が最短になりますプライマリ レプリカ上の開かれているトランザクションはロールバックされプライマリ レプリカの役割はユーザーによる操作なしでセカンダリ レプリカに転送されます

この場合プライマリ レプリカとセカンダリ レプリカの両方を自動フェールオーバー モードに設定し両方の可用性モードを同期コミットに設定する必要がありますレプリカ間の同期状態は同期済み である必要がありますまたWSFC クラスターは正常なクォーラム状態になっている必要があります

自動フェールオーバーはプライマリ レプリカまたはセカンダリ レプリカが FCI 上にある場合はサポートされませんこれは可用性グループと FCI のフェールオーバー間で競合状態が発生することを防ぐためです

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 30

手動フェールオーバーこの場合管理者はプライマリ レプリカの状態を評価してセカンダリ レプリカにフェールオーバーするかどうかを慎重に判断できます

可用性モードと同期状態に応じて次のような選択が可能です

o 計画的な手動フェールオーバー (データ損失なし)この種類のフェールオーバーを実行できるのはプライマリ レプリカとセカンダリ レプリカの両方が正常で同期済み 状態である場合だけですこれは機能的には自動フェールオーバーと同じです

o 強制手動フェールオーバー (データ損失の可能性を許容)これは対象のセカンダリ レプリカの可用性モードが非同期コミットである場合またはプライマリ レプリカに同期されない場合に使用できる唯一のフェールオーバー形式です

警告 このフェールオーバー オプションは災害復旧の状況に限って使用する必要がありますプライマリ レプリカが正常で使用可能である場合は関連する各レプリカの可用性モードを同期コミットに変更し計画的な手動フェールオーバーを実行してください

詳細については「可用性グループの強制手動フェールオーバーの実行」(httpmsdnmicrosoftcomja-jplibraryff877957(SQL110)aspx) を参照してください

フェールオーバー対象のプライマリ レプリカまたはセカンダリ レプリカが次の条件のいずれかに該当する場合は手動フェールオーバーを実行する必要があります

フェールオーバー モードが手動に設定されている 可用性モードが非同期コミットに設定されている レプリカが FCI 上にある

詳細については「フェールオーバーとフェールオーバー モード (AlwaysOn 可用性グルー プ ) 」(httpmsdnmicrosoftcomja-jplibraryhh213151(SQL110)aspx) を参照してください

注 フェールオーバー後新しいプライマリ レプリカが同期コミット モードに設定されていない場合セカンダリ レプリカの同期状態は 中断状態 になりますプライマリ レプリカが同期コミット モードに設定されるまでデータはセカンダリ レプリカに移動されません

可用性グループ リスナー可用性グループ リスナーはクライアントが可用性グループ内のデータベースにアクセスするために使用できる WSFC 仮想ネットワーク名 (VNN) ですVNN クラスター リソースはプライマリ レプリカをホストしている SQL Server インスタンスによって所有されます

仮想ネットワーク名は可用性グループ リスナーの作成時または構成の変更時にのみDNS に登録されます可用性グループ リスナーで定義されているすべての仮想 IP アドレスは同じ仮想ネットワーク名で DNS に登録されます

可用性グループ リスナーを使用する場合クライアント接続要求ではサーバーとして仮想ネットワーク名を指定してから可用性グループ内のデータベース名を指定する必要があり

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 31

ます既定ではこれによってプライマリ レプリカをホストしている SQL Server インスタンスに接続されます

実行時にはクライアントはローカルの DNS リゾルバーを使用して仮想ネットワーク名にマップされている IP アドレスと TCP ポートの一覧を取得しますクライアントは各 IP アドレスへの接続を成功するか接続タイムアウトに達するまで試し続けますMultiSubnetFailover パラメーターが true に設定されているとクライアントは複数の接続を同時に試行するのでクライアント フェールオーバーが大幅に速くなります

フェールオーバーが行われるとサーバー上でクライアント接続がリセットされ可用性グループ リスナーの所有権はプライマリ レプリカの役割と共に新しい SQL Server インスタンスに移動しVNN エンドポイントは新しいインスタンスの仮想 IP アドレスと TCP ポートにバインドされます

詳細については「可用性グループ リスナークライアント接続およびアプリケーションのフェールオーバー」(httpmsdnmicrosoftcomja-jplibraryhh213417(SQL110)aspx) を参照してください

アプリケーションの目的によるフィルター処理可用性グループ リスナーを使用して接続している場合アプリケーションは接続の目的がデータの読み取りと書き込みの両方なのか読み取り専用操作を実行するだけなのかを指定できます指定しない場合クライアントのアプリケーションの目的は既定で読み取りと書き込みになります

各可用性レプリカのプライマリ ロールとセカンダリ ロールについてはクライアントのアプリケーションの目的に対する接続レベルのフィルターとして接続アクセス プロパティも指定できます既定ではアプリケーションの目的と接続アクセスとの組み合わせが無効であると接続が拒否されますSQL Server は次のルールを使用してクライアントの接続要求を振り分ける必要があります

可用性レプリカがプライマリ ロールであり接続アクセスが次のいずれかである場合

すべてのアプリケーションの目的を許可するアプリケーションの目的でクライアント接続をフィルター処理しません

明示的な読み取り書き込みの目的だけを許可するクライアントが読み取り専用を指定している場合接続を拒否します

可用性レプリカがセカンダリ ロールであり接続アクセスが次のいずれかである場合

接続を許可しないすべての接続を拒否しますレプリカは災害復旧だけに使用されます

すべてのアプリケーションの目的を許可するアプリケーションの目的でクライアント接続をフィルター処理しません

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 32

読み取り専用の目的を許可するクライアントが読み取り専用を指定していない場合接続を拒否します

詳細については「可用性レプリカでの読み取り専用アクセスの構成」(httpmsdnmicrosoftcomja-jplibraryhh213002(SQL110)aspx) を参照してください

アプリケーションの目的の読み取り専用ルーティングAlwaysOn 可用性グループの特に優れた点はスタンバイ ハードウェア インフラストラクチャを災害復旧以外の目的に利用できることです1 つ以上のセカンダリ レプリカを読み取り専用でアクセスできるように構成するとプライマリ レプリカからかなりの量のワークロードを軽減できます

読み取り専用セカンダリ レプリカに回すように簡単に調整できるワークロードはレポートデータベース バックアップデータベース整合性チェックインデックスの断片化の分析データ パイプライン抽出運用サポート操作サポートアドホック クエリなどです

各可用性レプリカではSQL Server インスタンスのエンドポイントについて順次的な読み取り専用ルーティング リストを構成することもできますこのリストはレプリカがプライマリ ロールであるときに適用されますこのリストが存在する場合アプリケーションの目的が読み取り専用と指定されているクライアント接続要求はそのリスト内に記載されていて前述のアプリケーションの目的フィルターに適合する最初のセカンダリ レプリカにリダイレクトされます

注 読み取り専用ルーティングによるリダイレクトはプライマリ レプリカにバインドされている可用性グループ リスナーによって実行されますプライマリ レプリカがオフラインの場合クライアントのリダイレクトは機能しません

詳細については「可用性グループの読み取り専用ルーティングの構成 (SQL Server) 」(httpmsdnmicrosoftcomja-jplibraryhh710054(SQL110)aspx) を参照してください

可用性の向上 ndash データベースSQL Server 2012 ではデータベースの構成と機能に関してさまざまな点が強化されています

以下の機能は復旧時間の短縮に役立ちます

予測可能な復旧時間データベースごとにターゲット復旧時間の長さを設定することでバックグラウンドで実行される CHECKPOINT コマンドのスケジュールを制御できますこのコマンドは間接的なチェックポイントとして再起動時またはフェールオーバー時にトランザクション ログの復旧に必要となる時間の推定値に基づいて定期的に実行されますそれによってチェックポイントごとに IO 操作がほぼ均等に配分され復旧時間 (RTO) の予測可能性が高まります

SQL Server 2012 よりも前のバージョンではバックグラウンドの CHECKPOINT コマンドがトランザクションの量や負荷とは無関係に一定間隔で実行されていたので復旧時間を予測することはできませんでした

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 33

詳細については「データベース チェックポイント」(httpmsdnmicrosoftcomja-jplibraryms189573(SQL110)aspx) を参照してください

以下の向上点は計画的なダウンタイムが必要になる一般的な状況を減らすのに役立ちます

LOB 列のオンライン インデックス操作varbinary(max)varchar(max)nvarchar(max)または XML データ型の列が含まれているインデックスをオンラインで再構築または再構成できるようになりました

新しい NOT NULL 列のオンライン スキーマ修正既定値を使用して新しい NOT NULL 列を SQL Server 2012 データベース テーブルに追加する場合システム メタデータの更新にはスキーマ ロックだけが必要ですALTER TABLE ステートメントですべての行にデータを設定する必要はありません

いずれかの行で実際に変更またはインデックスの再作成が行われない限り列の既定値は物理的に格納されませんクエリでは列に実際の値が存在しない場合メタデータから既定値を返します

ストレージのサポート強化の例として次のようなものがあります

ページの自動修復ある種のストレージ サブシステム エラーが発生するとデータ ページが破損し読み取り不可能になる場合がありますAlwaysOn 可用性グループではそのような種類のエラーを検出し自動的に復旧できます復旧のために影響を受けたデータ ページの最新のコピーが別の可用性レプリカから非同期で取得され適用されます

以前のバージョンでもデータベース ミラーリングに同様の機能がありましたが新しい機能では複数のレプリカをサポートできるようになっています

詳細については「ページの自動修復」(httpmsdnmicrosoftcomja-jplibrarybb677167(SQL110)aspx) を参照してください

クライアント接続の推奨事項クライアント アプリケーションが Microsoft SQL Server 2012 AlwaysOn テクノロジの利点を十分に活用できるようにするには次のガイドラインに従います

AlwaysOn 対応のクライアント ライブラリ表形式のデータ ストリーム (TDS) プロトコル Version 74 以降をサポートしているクライアント ライブラリを使用しますこれによってAlwaysOn の機能に対応した適切な機能がクライアント側でも提供されますクライアント ライブラリの例としてはData Provider for SQL Server in NET Framework 402SQL Native Client 110 などがあります

接続プロバイダー プロパティ MultiSubnetFailover = True接続文字列にこのキーワードを使用することでクライアント ライブラリでは(複数のサブネットに IP アドレスを持つ) 可用性グループ リスナーまたは FCI に登録されているすべての IP アドレスに同時に接

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 34

続できるようになります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 35

接続プロバイダー プロパティ ApplicationIntent = ReadOnly必要に応じてプライマリ レプリカの読み取り専用ワークロードをセカンダリ レプリカに移管することができます

レガシ クライアントの接続タイムアウトレガシ クライアントのデータベース ライブラリには並列で接続を試行する機能が実装されていないため複数の IP アドレスがある場合にはTCP タイムアウトに達するか正常に接続できるまで1 つずつ順番に接続を試行します

複数の IP アドレスが存在する場合はタイムアウトと再試行が逐次的に繰り返される可能性に備えてレガシ クライアントの接続タイムアウトを調整する必要があります値は少なくとも 15 秒 + 21 秒 times セカンダリ レプリカ数にします

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 36

結論このホワイト ペーパーではSQL Server 2012 の AlwaysOn による高可用性災害復旧ソリューションを使用し予定されたダウンタイムや予定外のダウンタイムを短縮したりアプリケーションの可用性を最大限に高めたりデータを保護したりする方法について基本的なコンテキストを確立しました

高可用性データベース環境の計画管理測定に関連したビジネス上の目的と課題は多くの場合目標復旧時点 (RPO) と目標復旧時間 (RTO) という形で数量化して表すことができます

SQL Server 2012 AlwaysOn は組織が高可用性や災害復旧に関する一般的な状況に対処するための機能をRPO と RTO を適切に達成できることを念頭にインフラストラクチャ レベルデータ プラットフォーム レベルデータベース レベルのそれぞれで提供します

詳細情報

httpwwwmicrosoftcomja-jpsqlserver2012defaultaspx SQL Server Web サイト

httptechnetmicrosoftcomja-jpsqlserver SQL Server TechCenter

httpmsdnmicrosoftcomja-jpsqlserver SQL Server 開発者向け技術情報

このホワイト ペーパーはお役に立ちましたか フィードバックをお寄せください1 (役に立たなかった) ~ 5 (非常に役に立った) の 5 段階で評価してくださいまたその評価の理由もお知らせください以下に例を示します

評価が高い 例が適切図がわかりやすい説明が明快といったことが理由である 評価が低い 例が少ない図がわかりにくい説明があいまいといったことが理由で

ある

このようなフィードバックをお寄せいただくと今後のホワイト ペーパーの品質向上につながります

フィードバックの送信

loz Version 112012 年 2 月 21 日

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 37

  • 高可用性と災害復旧の概念
    • 高可用性について
      • 予定されたダウンタイムと予定外のダウンタイム
      • 段階的な可用性
        • ダウンタイムの定量化
          • 復旧目標
          • ROI または機会費用の正当化
          • 可用性の健全度の監視
          • 災害復旧の計画
            • 概要 Microsoft SQL Server 2012 での高可用性
              • SQL Server AlwaysOn
              • 計画的なダウンタイムの大幅な削減
              • アイドル状態のハードウェアをなくしてコスト効率とパフォーマンスを向上
              • 簡単な配置と管理
              • RPO と RTO の機能比較
                  • SQL Server AlwaysOn の保護レイヤー
                    • インフラストラクチャの可用性
                      • Windows オペレーティング システム
                        • Windows Server Core インストール オプション
                        • プライベート クラウド用の SQL Server の最適化
                          • Windows Server フェールオーバー クラスタリング
                            • WSFC ストレージ構成
                            • WSFC リソースの正常性の検出とフェールオーバー
                              • WSFC のクラスター検証ウィザード
                              • WSFC クォーラム モードと投票の構成
                                • クォーラムによるクラスター状態検出
                                • クォーラム モード
                                • 投票ノードと非投票ノード
                                • クォーラム投票に推奨される調整
                                  • WSFC の強制クォーラムによる災害復旧
                                    • SQL Server インスタンス レベルでの保護
                                      • 可用性の向上 ndash SQL Server インスタンス
                                      • AlwaysOn フェールオーバー クラスター インスタンス
                                        • FCI のフェールオーバー プロセス
                                        • FCI の強化
                                            • データベースの可用性
                                              • AlwaysOn 可用性グループ
                                                • 可用性レプリカとロール
                                                • 可用性レプリカの同期
                                                  • 可用性グループのフェールオーバー
                                                  • 可用性グループ リスナー
                                                    • アプリケーションの目的によるフィルター処理
                                                    • アプリケーションの目的の読み取り専用ルーティング
                                                      • 可用性の向上 ndash データベース
                                                        • クライアント接続の推奨事項
                                                          • 結論
Page 26: 高可用性と災害復旧の概念download.microsoft.com/download/6/B/E/6BE0C3F3-2991-4766... · Web view高可用性と災害復旧のソリューションのために最適なデータベース

を判断するときに競合状態の発生を避けるためこの手順は必ず一度に 1 つのノードで行うようにしてください

注 起動した各ノードが新たにオンラインにした他のノードと通信できることを確認しますそうしないと複数のクォーラム ノード セットが作成されて スプリット ブレイン の状況に陥るおそれがあります手順 1 の結果に問題がなければこの現象は発生しません

4) 新しいクォーラム モードとノードの投票の構成を適用します強制クォーラムの手順によってクラスターのすべてのノードを正常に再起動させクォーラムのエラーの根本原因を修正した場合クォーラム モードとノードの投票を元の構成から変更する必要はありません

それ以外の場合は新たに復元されたクラスター ノードと可用性レプリカのトポロジを評価し必要に応じてクォーラム モードと各ノードの投票割り当てを変更します未復旧のノード上ではWSFC クラスター サービスをオフラインにするかノードの投票をゼロに設定します

注 この時点でクラスター内のノードと SQL Server インスタンスが通常の動作に戻っているように見えることがありますがまだ正常なクォーラムには達していない可能性がありますフェールオーバー クラスター マネージャーやSQL Server Management Studio の AlwaysOn ダッシュボードまたは適切な DMV を使用して正常なクォーラムが復元されたことを確認してください

5) 必要に応じて可用性グループのデータベース レプリカを復旧します一部のデータベースはSQL Server の通常の起動処理の一環として自動的に復旧されオンラインに戻ることがありますそれ以外のデータベースの復旧には追加で手動の手順を実行する必要があります

可用性グループ レプリカのデータ損失の可能性や復旧にかかる時間を最小限に抑えるにはできればプライマリ レプリカ同期セカンダリ レプリカ非同期セカンダリ レプリカの順にオンラインに戻します

6) 障害が発生したコンポーネントを修復するか交換しクラスターを再検証しますこれで最初の災害およびクォーラム障害から復旧できたので障害が発生したノードを修復するか交換しWSFC と AlwaysOn の関連する構成を適切に調整する必要がありますこれには可用性グループ レプリカの削除クラスターからのノードの削除ノードへのソフトウェアの再インストールなどが含まれます

注 停止したすべての可用性レプリカを修復または削除する必要がありますSQL Server 2012 では最も古い可用性レプリカを最後に認識した時点以降トランザクション ログが切り捨てられません停止したレプリカを修復するか可用性グループから削除しないとトランザクション ログが大きくなり他のレプリカのトランザクション ログの領域が不足する可能性があります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 21

7) 必要に応じて手順 4 を繰り返しますこの目的は正常な動作を行うために適切なレベルのフォールト トレランスと高可用性を再確立することです

8) RPORTO 分析を実行しますSQL Server のシステム ログデータベースのタイムスタンプおよび Windows のイベント ログを分析して障害の根本的な原因を特定し実際の復旧ポイントと復旧時間を文書に記録します

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 22

SQL Server インスタンス レベルでの保護次に説明する AlwaysOn ソリューションの保護レイヤーはデータ プラットフォームそれ自体ですMicrosoft SQL Server 2012 とその Windows Server インフラストラクチャ コンポーネントとの統合によって次のような機能が提供されます

可用性の向上 ndash SQL Server インスタンスこれは SQL Server 2012 の新しいインスタンス レベルの機能でAlwaysOn フェールオーバー クラスター インスタンスとAlwaysOn 可用性グループをホストするスタンドアロン インスタンスの両方の可用性を強化します

以下の強化点によってフェールオーバーの管理およびトラブルシューティングが向上します

柔軟なフェールオーバー ポリシー信頼性の高いエラー検出に使用される新しいシステム ストアド プロシージャ sp_server_diagnostics の出力でSQL Server インスタンスに影響するエラーの重大度が FailureConditionLevel プロパティによって示されますWSFC のフェールオーバー ポリシーによってこの値が SQL Server インスタンスにどのように影響するかを制御できますある程度エラーを許容する設定からSQL Server の内部コンポーネント エラーを重点的に検出する設定までさまざまに構成できます

特定のレベルのエラーによってフェールオーバーを開始するように構成できますエラーのレベルにはサーバーの停止サーバーの応答停止重大なエラー中程度のエラーなんらかの条件付きエラーなどがありますFailureConditionLevel プロパティはFCI または可用性グループのフェールオーバー ポリシーのために使用できます

SQL Server 2012 よりも前のバージョンではフェールオーバーを制御できるようなエラー状態の区分がなくすべてのサービス レベルのエラーによってフェールオーバーが発生しました

詳細については「フェールオーバー クラスター インスタンスのフェールオーバー ポリシー」(httpmsdnmicrosoftcomja-jplibraryff878664(SQL110)aspx) を参照してください

強化されたインストルメンテーションとログAlwaysOn 専用のシステム構成ビューDMVパフォーマンス カウンターに加えて拡張されたイベント正常性セッションによってAlwaysOn 配置のトラブルシューティングチューニングおよび監視に必要な情報を取得して表示できますこれらの多くはSQL Server ポリシー管理の新しいファセットおよびポリシーを通じて公開されます

詳細については「AlwaysOn 可用性グループの動的管理ビューおよび関 数」(httpmsdnmicrosoftcomja-jplibraryff877943(SQL110)aspx) と「sysdm_os_cluster_nodes」(httpmsdnmicrosoftcomja-jplibraryms187341(SQL110)aspx) を参照してください

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 23

SMB ファイル共有のサポートWindows Server 2008 以降のスタンドアロン用またはフェールオーバー クラスター インスタンス用のリモート ファイル共有にデータベース ファイルを格納することができますこの場合FCI ごとに異なるドライブ文字を使用する必要がありませんこれはストレージを統合する場合やデータベース ファイルのストレージを仮想マシンのゲスト オペレーティング システム用物理サーバーでホストする場合などに便利なオプションです適切に構成すれば直接接続されたストレージとほぼ同等の IO パフォーマンスが得られます

詳細については「ファイル共有上の SQL データベース - シナリオを再検討すべきとき 」(httpblogsmsdncombsqlserverstorageenginearchive20111018sql-databases-on-file-shares-it-s-time-to-reconsider-the-scenarioaspx) を参照してください

注 WSFC クラスターではSMB ファイル共有リソースの依存関係を SQL Server リソース グループに追加することはできませんファイル共有の可用性を確保するには別の方法を用いる必要がありますファイル共有が使用できなくなった場合SQL Server は IO 例外をスローしオフラインになります

WSFC と DNS の相互運用性FCI または可用性グループ リスナーの仮想ネットワーク名 (VNN) はVNN の作成時または構成の変更時にのみDNS に登録されますすべての仮想 IP アドレスはオンライン状態かオフライン状態かに関係なく同じ仮想ネットワーク名で DNS に登録されますDNS の仮想ネットワーク名を解決するためのクライアント呼び出しは各種のラウンド ロビン シーケンスによってすべての登録済み IP アドレスを返します

AlwaysOn フェールオーバー クラスター インスタンスSQL Server の AlwaysOn フェールオーバー クラスター インスタンス (FCI) の主な目的は1 つのデータ センター内のローカル サーバーとストレージ ハードウェアでホストされている SQL Server インスタンスの可用性を高めることです

FCI はWindows Server フェールオーバー クラスタリング (WSFC) のクラスターに含まれる複数のノードにまたがってインストールされる1 つの論理的な SQL Server インスタンスですただし一度に 1 つのノードだけでアクティブになることができますクライアント アプリケーションはアクティブなクラスター ノードが所有している仮想ネットワーク名および仮想 IP アドレスに接続します

FCI をインストールした各ノードは同一の構成を持ち同一の SQL Server バイナリを含んでいますWSFC クラスター サービスはアクティブなインスタンス上にある Windows レジストリのエントリからFCI をインストールした各ノードに関連のある変更をレプリケートしますFCI がインストールされている各ノードはインスタンスとそのリソースの所有者の候補として指定されフェールオーバーの優先順位に従って所有者となります

共有対称ストレージ ボリュームに格納されているデータベース ファイルはリソースとして WSFC クラスターに登録され現在 FCI をホストしているノードによって所有されます

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 24

詳細については「AlwaysOn フェールオーバー クラスター インスタン ス」(httpmsdnmicrosoftcomja-jplibraryms189134(SQL110)aspx) を参照してください

FCI のフェールオーバー プロセス依存しているクラスター リソースで障害が発生した場合AlwaysOn フェールオーバー クラスター インスタンスはWSFC クラスター サービスと連携してフェールオーバーを行いますそのプロセスの概要を以下に示します

1) 再起動が指示されますWSFC の定期的なチェックまたは SQL Server のフェールオーバー ポリシー構成によってエラー状態が示されます既定では他のノードへのフェールオーバーを開始する前にサービスの再起動が試みられます再起動の試みがタイムアウトするようであればリソースの障害が発生しています

2) フェールオーバーが指示されますフェールオーバー ポリシー チェックによってノードのフェールオーバーが必要であることが示されます

3) SQL Server サービスが停止されますSQL Server サービスが現在実行されている場合はその正常なシャットダウンが試みられます

4) WSFC クラスター リソースが転送されますSQL Server クラスター リソース グループの所有権とそれが依存するネットワークおよび共有ストレージ リソースがFCI で次に優先されるノード所有者に転送されます

5) 新しいノードで SQL Server が起動されますSQL Server インスタンスは通常のスタートアップ プロシージャで起動されます所定のタイムアウト時間内にオンラインに戻らない場合クラスター サービスはこの新しいノード上のリソースをエラー状態と見なします

6) 新しいノードでユーザー データベースが復旧されます各ユーザー データベースは復旧モードに設定されます復旧モードではトランザクション ログの再実行操作が適用されコミットされていなかったトランザクションがロールバックされます

FCI の強化以前のバージョンの SQL Server でも FCI のインストール オプションは用意されていましたがSQL Server 2012 では次のような機能強化によって可用性の堅牢性と利便性が向上しました

マルチサブネット クラスタリングSQL Server 2012 では複数のサブネットに存在する WSFC クラスター ノードがサポートされていますWSFC クラスター ノードに存在する SQL Server インスタンスはいずれかのネットワーク インターフェイスが使用可能であれば起動できますこれはクラスター リソースの OR 依存関係と呼ばれます

以前のバージョンの SQL Server の場合SQL Server サービスを起動またはフェールオーバーするにはすべてのネットワーク インターフェイスが機能しそれらがすべて同じサブネットまたは VLAN に存在している必要がありました

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 25

注 マルチサブネット クラスタリングではクラスター ノード間のストレージ レベルのレプリケーションが自動的には有効になりませんマルチサブネットの FCI ソリューションでクラスター ノード間でデータのレプリケーションを行いストレージ フェールオーバーを調整するためにはサード パーティから提供される SAN ベースのソリューションを利用する必要があります

詳細については「SQL Server 2012 AlwaysOn マルチサイト フェールオーバー クラスター インスタンス」(httpsqlcatcomsqlcatbwhitepapersarchive20111222sql-server-2012-alwayson_3a00_-multisite-failover-cluster-instanceaspx) を参照してください

信頼性の高いエラー検出WSFC クラスター サービスではノードの各 SQL Server 2012 FCI に対してそれぞれ専用の管理者接続が維持されますこの接続では特殊なシステム ストアド プロシージャ sp_server_diagnostics を定期的に呼び出すことでシステムの正常性診断に役立つ豊富な情報を含む配列が返されます

SQL Server 2012 よりも前のバージョンではFCI の主な正常性検出メカニズムは単純な一方向のポーリング プロセスとして実装されていましたこのプロセスではWSFC クラスター サービスがインスタンスへの新しい SQL クライアント接続を定期的に作成しサーバー名を照会した後で接続を切断していました何かの理由で接続が失敗するかクエリがタイムアウトした場合フェールオーバーが開始されますが診断情報はほとんど提供されません

詳細については「sql_server_diagnostics」(httpmsdnmicrosoftcomja-jplibraryff878233(SQL110)aspx) を参照してください

現在ではFCI ストレージが次のように幅広い状況でサポートされています

向上したマウント ポイント サポートSQL Server のセットアップ時にクラスター ディスクのマウント ポイント設定が認識されるようになりました指定されたクラスター ディスクとそれにマウントされているすべてのディスクがセットアップ時に SQL Server リソースの依存関係に自動的に追加されます

ローカル ストレージの tempdbFCI ではローカルの非共有ストレージ (ローカル ソリッド ステート ドライブなど) に tempdb を配置できるようになったため共有 SAN での IO 動作の負荷を大幅に軽減できる可能性があります

SQL Server 2012 よりも前のバージョンの FCI ではtempdb が他のシステム データベースと共にフェールオーバーされる対称共有ストレージ ボリュームに配置される必要がありました

注 tempdb の場所はmaster データベースに格納されますこのデータベースはフェールオーバー時にノード間で移動されますtempdb は所有者候補となっているすべてのノード上で有効で対称的なファイル パス (ドライブフォルダーおよび権限) に配置されている必要がありますそうなっていない場合SQL Server サービスが一部のノードでは起動されません

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 26

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 27

データベースの可用性インフラストラクチャ レベルおよび SQL Server インスタンス レベルのコンポーネントで提供されている高可用性機能は互いに連係してホストされているデータベースを暗黙的に保護しますAlwaysOn ソリューションではデータベースのデータおよびデータ層アプリケーションを明示的に保護するために一連のオプションが追加で用意されています

AlwaysOn 可用性グループ可用性グループは1 つの SQL Server インスタンスから同じ WSFC クラスター内の別のインスタンスへと同時にフェールオーバーされるユーザー データベースのセットですクライアント アプリケーションは可用性グループ リスナーと呼ばれる WSFC 仮想ネットワーク名を通じて可用性グループのデータベースに接続できますこうすることで基になる SQL Server インスタンスが抽象化されます

AlwaysOn 可用性グループは正常性監視フェールオーバーの調整およびサーバー接続を Windows Server フェールオーバー クラスタリングに依存していますWSFC クラスター ノード上の SQL Server インスタンスでAlwaysOn サポートを有効にする必要がありますただしそのインスタンスが FCI である必要はなく対称共有ストレージを使用する必要もありません

詳細については「AlwaysOn 可用性グループの概要 」(httpmsdnmicrosoftcomja-jplibraryff877884(SQL110)aspx) を参照してください

可用性レプリカとロール可用性グループの各 SQL Server インスタンスは可用性グループのユーザー データベースのコピーを保持している可用性レプリカをホストしますSQL Server インスタンスは特定の可用性グループの可用性レプリカを 1 つだけホストすることができますが複数の可用性グループを同じインスタンスに置くことは可能ですSQL Server インスタンスは専用の (非共有) ストレージ ボリュームを持つ必要があります

可用性レプリカの 1 つがプライマリ レプリカの役割を果たしますこれは可用性グループ データベースのマスター コピーとして指定されていて読み取り書き込み操作を行うことができます

可用性グループには読み取り専用の可用性レプリカを最大 4 つまで追加で含めることができますこれらは個別にセカンダリ レプリカの役割を果たします

可用性レプリカの同期可用性グループの各データベースの内容はSQL Server によるログ ベースのデータ移動メカニズムを通じてプライマリ レプリカから各セカンダリ レプリカに同期されますそのため可用性グループのすべてのデータベースは完全復旧モデルに設定する必要があります

セカンダリ レプリカはプライマリ レプリカのデータベースとトランザクション ログの完全なバックアップと復元によって初期化されますプライマリ レプリカで新しいトランザクションがコミットされるとトランザクション ログの対応する部分がキャッシュされ

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 28

キューに入れられてネットワーク経由でセカンダリ レプリカ ノード上のデータベース ミラーリング エンドポイントに送信されます

この方法によりプライマリ レプリカのトランザクション ログの新しいエントリが各セカンダリ レプリカのトランザクション ログに追加されます各セカンダリ レプリカはログ シーケンス番号 (LSN) をプライマリ レプリカに定期的に送り返しトランザクション ログのどのくらいの量がリモート ディスクに書き込まれフラッシュされたかを示します

注 各可用性レプリカはそれぞれ独自に独立したトランザクション ログ再実行スレッドのセットを保持していますこれは可用性レプリカの同期プロセスには含まれませんセカンダリ レプリカ上ではログ再実行プロセスによって遅延時間が生じるためユーザーはそれをデータの待機時間として感じる場合があります

プライマリまたはセカンダリの役割を果たす他に各可用性レプリカには可用性モードもありますこのモードは次のようにCOMMIT TRAN ステートメントの実行時にトランザクション ログの書き込みの連係を制御します

同期コミット モードすべての同期コミット セカンダリ レプリカからそれぞれ独自のトランザクション ログの書き込み完了 (LSN 以降) が通知されるまでプライマリ レプリカはそのトランザクションをコミットしません可用性グループでは最大で 2 つの同期コミット セカンダリ レプリカを使用できます

同期コミット モードではプライマリ レプリカ データベースでトランザクションの遅延が生じますがコミットされたトランザクションに対するセカンダリ レプリカでのデータ損失を確実に防ぐことができます

非同期コミット モードプライマリ レプリカはローカル トランザクション ログの書き込み後にトランザクションをコミットしますが非同期コミット セカンダリ レプリカからトランザクション ログの書き込み完了通知を待つことはしません可用性グループでは最大で 4 つの非同期コミット セカンダリ レプリカを使用できますただし両方の種類を合わせて使用できるセカンダリ レプリカの合計は最大 4 つです

非同期コミット モードではプライマリ レプリカ データベースで生じるトランザクションの遅延が最小になりますがセカンダリ レプリカでのトランザクション ログが遅れる場合があるため一部のデータが失われる可能性があります

詳細については「可用性モード」(httpmsdnmicrosoftcomja-jplibraryff877931(SQL110)aspx) を参照してください

可用性レプリカ間のデータ フローの全体的な正常性は各レプリカの同期状態によって示されますセカンダリ レプリカにフェールオーバーしたときに同期状態が 同期済み または 同期中 になっていなければほとんどの場合はデータ損失が発生することになります

各セカンダリ レプリカの同期ストリームにはセッション タイムアウト プロパティがあります同期コミット モードに構成されているセカンダリ レプリカがセッション タイムアウトでエラーになると内部的には一時的に非同期としてマークされますこれはセカンダ

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 29

リ レプリカのエラーがプライマリ レプリカでのトランザクション ログの書き込みに影響しないようにするためですそのセカンダリ レプリカが正常に戻ってプライマリ レプリカの状態に追いつくと自動的に通常の同期コミット モード動作に戻されます

可用性グループのフェールオーバー可用性グループとそれに対応する仮想ネットワーク名はWSFC クラスターのリソースとして登録されます可用性グループはプライマリ レプリカの正常性とフェールオーバー ポリシーに基づいて可用性レプリカのレベルでフェールオーバーを行います

可用性グループのフェールオーバー ポリシーではsp_server_diagnostics システム ストアド プロシージャと FailureConditionLevel プロパティを使用して可用性グループに対して許容されるエラーの重大度のレベルを示しますこの同じメカニズムがFCI のフェールオーバー ポリシーにも使用されます

フェールオーバーが発生した場合は共有物理リソースの所有権を他のノードに移す代わりにWSFC を利用して他の SQL Server インスタンス上でセカンダリ レプリカを再構成しプライマリ レプリカの役割を引き継がせますその後可用性グループの仮想ネットワーク名リソースがそのインスタンスに転送されます関連する可用性レプリカへのすべてのクライアント接続がリセットされます

レプリカの現在の正常性同期状態および可用性モードに基づいて各レプリカには複合的な フェールオーバーの準備 状態が定義されますこの状態の値はデータ損失の可能性を示していますレプリカの正常性情報はAlwaysOn ダッシュボードまたは sysdm_hadr_availability_replica_states システム ビューで確認できます

各可用性レプリカにはフェールオーバー モードも構成されていますこのモードはフェールオーバーが指示された場合にレプリカの動作を制御します

自動フェールオーバー (データ損失なし)セカンダリ レプリカのトランザクション ログが既に書き込まれ同期されているのですべての AlwaysOn 構成の中でフェールオーバー時間が最短になりますプライマリ レプリカ上の開かれているトランザクションはロールバックされプライマリ レプリカの役割はユーザーによる操作なしでセカンダリ レプリカに転送されます

この場合プライマリ レプリカとセカンダリ レプリカの両方を自動フェールオーバー モードに設定し両方の可用性モードを同期コミットに設定する必要がありますレプリカ間の同期状態は同期済み である必要がありますまたWSFC クラスターは正常なクォーラム状態になっている必要があります

自動フェールオーバーはプライマリ レプリカまたはセカンダリ レプリカが FCI 上にある場合はサポートされませんこれは可用性グループと FCI のフェールオーバー間で競合状態が発生することを防ぐためです

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 30

手動フェールオーバーこの場合管理者はプライマリ レプリカの状態を評価してセカンダリ レプリカにフェールオーバーするかどうかを慎重に判断できます

可用性モードと同期状態に応じて次のような選択が可能です

o 計画的な手動フェールオーバー (データ損失なし)この種類のフェールオーバーを実行できるのはプライマリ レプリカとセカンダリ レプリカの両方が正常で同期済み 状態である場合だけですこれは機能的には自動フェールオーバーと同じです

o 強制手動フェールオーバー (データ損失の可能性を許容)これは対象のセカンダリ レプリカの可用性モードが非同期コミットである場合またはプライマリ レプリカに同期されない場合に使用できる唯一のフェールオーバー形式です

警告 このフェールオーバー オプションは災害復旧の状況に限って使用する必要がありますプライマリ レプリカが正常で使用可能である場合は関連する各レプリカの可用性モードを同期コミットに変更し計画的な手動フェールオーバーを実行してください

詳細については「可用性グループの強制手動フェールオーバーの実行」(httpmsdnmicrosoftcomja-jplibraryff877957(SQL110)aspx) を参照してください

フェールオーバー対象のプライマリ レプリカまたはセカンダリ レプリカが次の条件のいずれかに該当する場合は手動フェールオーバーを実行する必要があります

フェールオーバー モードが手動に設定されている 可用性モードが非同期コミットに設定されている レプリカが FCI 上にある

詳細については「フェールオーバーとフェールオーバー モード (AlwaysOn 可用性グルー プ ) 」(httpmsdnmicrosoftcomja-jplibraryhh213151(SQL110)aspx) を参照してください

注 フェールオーバー後新しいプライマリ レプリカが同期コミット モードに設定されていない場合セカンダリ レプリカの同期状態は 中断状態 になりますプライマリ レプリカが同期コミット モードに設定されるまでデータはセカンダリ レプリカに移動されません

可用性グループ リスナー可用性グループ リスナーはクライアントが可用性グループ内のデータベースにアクセスするために使用できる WSFC 仮想ネットワーク名 (VNN) ですVNN クラスター リソースはプライマリ レプリカをホストしている SQL Server インスタンスによって所有されます

仮想ネットワーク名は可用性グループ リスナーの作成時または構成の変更時にのみDNS に登録されます可用性グループ リスナーで定義されているすべての仮想 IP アドレスは同じ仮想ネットワーク名で DNS に登録されます

可用性グループ リスナーを使用する場合クライアント接続要求ではサーバーとして仮想ネットワーク名を指定してから可用性グループ内のデータベース名を指定する必要があり

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 31

ます既定ではこれによってプライマリ レプリカをホストしている SQL Server インスタンスに接続されます

実行時にはクライアントはローカルの DNS リゾルバーを使用して仮想ネットワーク名にマップされている IP アドレスと TCP ポートの一覧を取得しますクライアントは各 IP アドレスへの接続を成功するか接続タイムアウトに達するまで試し続けますMultiSubnetFailover パラメーターが true に設定されているとクライアントは複数の接続を同時に試行するのでクライアント フェールオーバーが大幅に速くなります

フェールオーバーが行われるとサーバー上でクライアント接続がリセットされ可用性グループ リスナーの所有権はプライマリ レプリカの役割と共に新しい SQL Server インスタンスに移動しVNN エンドポイントは新しいインスタンスの仮想 IP アドレスと TCP ポートにバインドされます

詳細については「可用性グループ リスナークライアント接続およびアプリケーションのフェールオーバー」(httpmsdnmicrosoftcomja-jplibraryhh213417(SQL110)aspx) を参照してください

アプリケーションの目的によるフィルター処理可用性グループ リスナーを使用して接続している場合アプリケーションは接続の目的がデータの読み取りと書き込みの両方なのか読み取り専用操作を実行するだけなのかを指定できます指定しない場合クライアントのアプリケーションの目的は既定で読み取りと書き込みになります

各可用性レプリカのプライマリ ロールとセカンダリ ロールについてはクライアントのアプリケーションの目的に対する接続レベルのフィルターとして接続アクセス プロパティも指定できます既定ではアプリケーションの目的と接続アクセスとの組み合わせが無効であると接続が拒否されますSQL Server は次のルールを使用してクライアントの接続要求を振り分ける必要があります

可用性レプリカがプライマリ ロールであり接続アクセスが次のいずれかである場合

すべてのアプリケーションの目的を許可するアプリケーションの目的でクライアント接続をフィルター処理しません

明示的な読み取り書き込みの目的だけを許可するクライアントが読み取り専用を指定している場合接続を拒否します

可用性レプリカがセカンダリ ロールであり接続アクセスが次のいずれかである場合

接続を許可しないすべての接続を拒否しますレプリカは災害復旧だけに使用されます

すべてのアプリケーションの目的を許可するアプリケーションの目的でクライアント接続をフィルター処理しません

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 32

読み取り専用の目的を許可するクライアントが読み取り専用を指定していない場合接続を拒否します

詳細については「可用性レプリカでの読み取り専用アクセスの構成」(httpmsdnmicrosoftcomja-jplibraryhh213002(SQL110)aspx) を参照してください

アプリケーションの目的の読み取り専用ルーティングAlwaysOn 可用性グループの特に優れた点はスタンバイ ハードウェア インフラストラクチャを災害復旧以外の目的に利用できることです1 つ以上のセカンダリ レプリカを読み取り専用でアクセスできるように構成するとプライマリ レプリカからかなりの量のワークロードを軽減できます

読み取り専用セカンダリ レプリカに回すように簡単に調整できるワークロードはレポートデータベース バックアップデータベース整合性チェックインデックスの断片化の分析データ パイプライン抽出運用サポート操作サポートアドホック クエリなどです

各可用性レプリカではSQL Server インスタンスのエンドポイントについて順次的な読み取り専用ルーティング リストを構成することもできますこのリストはレプリカがプライマリ ロールであるときに適用されますこのリストが存在する場合アプリケーションの目的が読み取り専用と指定されているクライアント接続要求はそのリスト内に記載されていて前述のアプリケーションの目的フィルターに適合する最初のセカンダリ レプリカにリダイレクトされます

注 読み取り専用ルーティングによるリダイレクトはプライマリ レプリカにバインドされている可用性グループ リスナーによって実行されますプライマリ レプリカがオフラインの場合クライアントのリダイレクトは機能しません

詳細については「可用性グループの読み取り専用ルーティングの構成 (SQL Server) 」(httpmsdnmicrosoftcomja-jplibraryhh710054(SQL110)aspx) を参照してください

可用性の向上 ndash データベースSQL Server 2012 ではデータベースの構成と機能に関してさまざまな点が強化されています

以下の機能は復旧時間の短縮に役立ちます

予測可能な復旧時間データベースごとにターゲット復旧時間の長さを設定することでバックグラウンドで実行される CHECKPOINT コマンドのスケジュールを制御できますこのコマンドは間接的なチェックポイントとして再起動時またはフェールオーバー時にトランザクション ログの復旧に必要となる時間の推定値に基づいて定期的に実行されますそれによってチェックポイントごとに IO 操作がほぼ均等に配分され復旧時間 (RTO) の予測可能性が高まります

SQL Server 2012 よりも前のバージョンではバックグラウンドの CHECKPOINT コマンドがトランザクションの量や負荷とは無関係に一定間隔で実行されていたので復旧時間を予測することはできませんでした

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 33

詳細については「データベース チェックポイント」(httpmsdnmicrosoftcomja-jplibraryms189573(SQL110)aspx) を参照してください

以下の向上点は計画的なダウンタイムが必要になる一般的な状況を減らすのに役立ちます

LOB 列のオンライン インデックス操作varbinary(max)varchar(max)nvarchar(max)または XML データ型の列が含まれているインデックスをオンラインで再構築または再構成できるようになりました

新しい NOT NULL 列のオンライン スキーマ修正既定値を使用して新しい NOT NULL 列を SQL Server 2012 データベース テーブルに追加する場合システム メタデータの更新にはスキーマ ロックだけが必要ですALTER TABLE ステートメントですべての行にデータを設定する必要はありません

いずれかの行で実際に変更またはインデックスの再作成が行われない限り列の既定値は物理的に格納されませんクエリでは列に実際の値が存在しない場合メタデータから既定値を返します

ストレージのサポート強化の例として次のようなものがあります

ページの自動修復ある種のストレージ サブシステム エラーが発生するとデータ ページが破損し読み取り不可能になる場合がありますAlwaysOn 可用性グループではそのような種類のエラーを検出し自動的に復旧できます復旧のために影響を受けたデータ ページの最新のコピーが別の可用性レプリカから非同期で取得され適用されます

以前のバージョンでもデータベース ミラーリングに同様の機能がありましたが新しい機能では複数のレプリカをサポートできるようになっています

詳細については「ページの自動修復」(httpmsdnmicrosoftcomja-jplibrarybb677167(SQL110)aspx) を参照してください

クライアント接続の推奨事項クライアント アプリケーションが Microsoft SQL Server 2012 AlwaysOn テクノロジの利点を十分に活用できるようにするには次のガイドラインに従います

AlwaysOn 対応のクライアント ライブラリ表形式のデータ ストリーム (TDS) プロトコル Version 74 以降をサポートしているクライアント ライブラリを使用しますこれによってAlwaysOn の機能に対応した適切な機能がクライアント側でも提供されますクライアント ライブラリの例としてはData Provider for SQL Server in NET Framework 402SQL Native Client 110 などがあります

接続プロバイダー プロパティ MultiSubnetFailover = True接続文字列にこのキーワードを使用することでクライアント ライブラリでは(複数のサブネットに IP アドレスを持つ) 可用性グループ リスナーまたは FCI に登録されているすべての IP アドレスに同時に接

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 34

続できるようになります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 35

接続プロバイダー プロパティ ApplicationIntent = ReadOnly必要に応じてプライマリ レプリカの読み取り専用ワークロードをセカンダリ レプリカに移管することができます

レガシ クライアントの接続タイムアウトレガシ クライアントのデータベース ライブラリには並列で接続を試行する機能が実装されていないため複数の IP アドレスがある場合にはTCP タイムアウトに達するか正常に接続できるまで1 つずつ順番に接続を試行します

複数の IP アドレスが存在する場合はタイムアウトと再試行が逐次的に繰り返される可能性に備えてレガシ クライアントの接続タイムアウトを調整する必要があります値は少なくとも 15 秒 + 21 秒 times セカンダリ レプリカ数にします

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 36

結論このホワイト ペーパーではSQL Server 2012 の AlwaysOn による高可用性災害復旧ソリューションを使用し予定されたダウンタイムや予定外のダウンタイムを短縮したりアプリケーションの可用性を最大限に高めたりデータを保護したりする方法について基本的なコンテキストを確立しました

高可用性データベース環境の計画管理測定に関連したビジネス上の目的と課題は多くの場合目標復旧時点 (RPO) と目標復旧時間 (RTO) という形で数量化して表すことができます

SQL Server 2012 AlwaysOn は組織が高可用性や災害復旧に関する一般的な状況に対処するための機能をRPO と RTO を適切に達成できることを念頭にインフラストラクチャ レベルデータ プラットフォーム レベルデータベース レベルのそれぞれで提供します

詳細情報

httpwwwmicrosoftcomja-jpsqlserver2012defaultaspx SQL Server Web サイト

httptechnetmicrosoftcomja-jpsqlserver SQL Server TechCenter

httpmsdnmicrosoftcomja-jpsqlserver SQL Server 開発者向け技術情報

このホワイト ペーパーはお役に立ちましたか フィードバックをお寄せください1 (役に立たなかった) ~ 5 (非常に役に立った) の 5 段階で評価してくださいまたその評価の理由もお知らせください以下に例を示します

評価が高い 例が適切図がわかりやすい説明が明快といったことが理由である 評価が低い 例が少ない図がわかりにくい説明があいまいといったことが理由で

ある

このようなフィードバックをお寄せいただくと今後のホワイト ペーパーの品質向上につながります

フィードバックの送信

loz Version 112012 年 2 月 21 日

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 37

  • 高可用性と災害復旧の概念
    • 高可用性について
      • 予定されたダウンタイムと予定外のダウンタイム
      • 段階的な可用性
        • ダウンタイムの定量化
          • 復旧目標
          • ROI または機会費用の正当化
          • 可用性の健全度の監視
          • 災害復旧の計画
            • 概要 Microsoft SQL Server 2012 での高可用性
              • SQL Server AlwaysOn
              • 計画的なダウンタイムの大幅な削減
              • アイドル状態のハードウェアをなくしてコスト効率とパフォーマンスを向上
              • 簡単な配置と管理
              • RPO と RTO の機能比較
                  • SQL Server AlwaysOn の保護レイヤー
                    • インフラストラクチャの可用性
                      • Windows オペレーティング システム
                        • Windows Server Core インストール オプション
                        • プライベート クラウド用の SQL Server の最適化
                          • Windows Server フェールオーバー クラスタリング
                            • WSFC ストレージ構成
                            • WSFC リソースの正常性の検出とフェールオーバー
                              • WSFC のクラスター検証ウィザード
                              • WSFC クォーラム モードと投票の構成
                                • クォーラムによるクラスター状態検出
                                • クォーラム モード
                                • 投票ノードと非投票ノード
                                • クォーラム投票に推奨される調整
                                  • WSFC の強制クォーラムによる災害復旧
                                    • SQL Server インスタンス レベルでの保護
                                      • 可用性の向上 ndash SQL Server インスタンス
                                      • AlwaysOn フェールオーバー クラスター インスタンス
                                        • FCI のフェールオーバー プロセス
                                        • FCI の強化
                                            • データベースの可用性
                                              • AlwaysOn 可用性グループ
                                                • 可用性レプリカとロール
                                                • 可用性レプリカの同期
                                                  • 可用性グループのフェールオーバー
                                                  • 可用性グループ リスナー
                                                    • アプリケーションの目的によるフィルター処理
                                                    • アプリケーションの目的の読み取り専用ルーティング
                                                      • 可用性の向上 ndash データベース
                                                        • クライアント接続の推奨事項
                                                          • 結論
Page 27: 高可用性と災害復旧の概念download.microsoft.com/download/6/B/E/6BE0C3F3-2991-4766... · Web view高可用性と災害復旧のソリューションのために最適なデータベース

7) 必要に応じて手順 4 を繰り返しますこの目的は正常な動作を行うために適切なレベルのフォールト トレランスと高可用性を再確立することです

8) RPORTO 分析を実行しますSQL Server のシステム ログデータベースのタイムスタンプおよび Windows のイベント ログを分析して障害の根本的な原因を特定し実際の復旧ポイントと復旧時間を文書に記録します

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 22

SQL Server インスタンス レベルでの保護次に説明する AlwaysOn ソリューションの保護レイヤーはデータ プラットフォームそれ自体ですMicrosoft SQL Server 2012 とその Windows Server インフラストラクチャ コンポーネントとの統合によって次のような機能が提供されます

可用性の向上 ndash SQL Server インスタンスこれは SQL Server 2012 の新しいインスタンス レベルの機能でAlwaysOn フェールオーバー クラスター インスタンスとAlwaysOn 可用性グループをホストするスタンドアロン インスタンスの両方の可用性を強化します

以下の強化点によってフェールオーバーの管理およびトラブルシューティングが向上します

柔軟なフェールオーバー ポリシー信頼性の高いエラー検出に使用される新しいシステム ストアド プロシージャ sp_server_diagnostics の出力でSQL Server インスタンスに影響するエラーの重大度が FailureConditionLevel プロパティによって示されますWSFC のフェールオーバー ポリシーによってこの値が SQL Server インスタンスにどのように影響するかを制御できますある程度エラーを許容する設定からSQL Server の内部コンポーネント エラーを重点的に検出する設定までさまざまに構成できます

特定のレベルのエラーによってフェールオーバーを開始するように構成できますエラーのレベルにはサーバーの停止サーバーの応答停止重大なエラー中程度のエラーなんらかの条件付きエラーなどがありますFailureConditionLevel プロパティはFCI または可用性グループのフェールオーバー ポリシーのために使用できます

SQL Server 2012 よりも前のバージョンではフェールオーバーを制御できるようなエラー状態の区分がなくすべてのサービス レベルのエラーによってフェールオーバーが発生しました

詳細については「フェールオーバー クラスター インスタンスのフェールオーバー ポリシー」(httpmsdnmicrosoftcomja-jplibraryff878664(SQL110)aspx) を参照してください

強化されたインストルメンテーションとログAlwaysOn 専用のシステム構成ビューDMVパフォーマンス カウンターに加えて拡張されたイベント正常性セッションによってAlwaysOn 配置のトラブルシューティングチューニングおよび監視に必要な情報を取得して表示できますこれらの多くはSQL Server ポリシー管理の新しいファセットおよびポリシーを通じて公開されます

詳細については「AlwaysOn 可用性グループの動的管理ビューおよび関 数」(httpmsdnmicrosoftcomja-jplibraryff877943(SQL110)aspx) と「sysdm_os_cluster_nodes」(httpmsdnmicrosoftcomja-jplibraryms187341(SQL110)aspx) を参照してください

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 23

SMB ファイル共有のサポートWindows Server 2008 以降のスタンドアロン用またはフェールオーバー クラスター インスタンス用のリモート ファイル共有にデータベース ファイルを格納することができますこの場合FCI ごとに異なるドライブ文字を使用する必要がありませんこれはストレージを統合する場合やデータベース ファイルのストレージを仮想マシンのゲスト オペレーティング システム用物理サーバーでホストする場合などに便利なオプションです適切に構成すれば直接接続されたストレージとほぼ同等の IO パフォーマンスが得られます

詳細については「ファイル共有上の SQL データベース - シナリオを再検討すべきとき 」(httpblogsmsdncombsqlserverstorageenginearchive20111018sql-databases-on-file-shares-it-s-time-to-reconsider-the-scenarioaspx) を参照してください

注 WSFC クラスターではSMB ファイル共有リソースの依存関係を SQL Server リソース グループに追加することはできませんファイル共有の可用性を確保するには別の方法を用いる必要がありますファイル共有が使用できなくなった場合SQL Server は IO 例外をスローしオフラインになります

WSFC と DNS の相互運用性FCI または可用性グループ リスナーの仮想ネットワーク名 (VNN) はVNN の作成時または構成の変更時にのみDNS に登録されますすべての仮想 IP アドレスはオンライン状態かオフライン状態かに関係なく同じ仮想ネットワーク名で DNS に登録されますDNS の仮想ネットワーク名を解決するためのクライアント呼び出しは各種のラウンド ロビン シーケンスによってすべての登録済み IP アドレスを返します

AlwaysOn フェールオーバー クラスター インスタンスSQL Server の AlwaysOn フェールオーバー クラスター インスタンス (FCI) の主な目的は1 つのデータ センター内のローカル サーバーとストレージ ハードウェアでホストされている SQL Server インスタンスの可用性を高めることです

FCI はWindows Server フェールオーバー クラスタリング (WSFC) のクラスターに含まれる複数のノードにまたがってインストールされる1 つの論理的な SQL Server インスタンスですただし一度に 1 つのノードだけでアクティブになることができますクライアント アプリケーションはアクティブなクラスター ノードが所有している仮想ネットワーク名および仮想 IP アドレスに接続します

FCI をインストールした各ノードは同一の構成を持ち同一の SQL Server バイナリを含んでいますWSFC クラスター サービスはアクティブなインスタンス上にある Windows レジストリのエントリからFCI をインストールした各ノードに関連のある変更をレプリケートしますFCI がインストールされている各ノードはインスタンスとそのリソースの所有者の候補として指定されフェールオーバーの優先順位に従って所有者となります

共有対称ストレージ ボリュームに格納されているデータベース ファイルはリソースとして WSFC クラスターに登録され現在 FCI をホストしているノードによって所有されます

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 24

詳細については「AlwaysOn フェールオーバー クラスター インスタン ス」(httpmsdnmicrosoftcomja-jplibraryms189134(SQL110)aspx) を参照してください

FCI のフェールオーバー プロセス依存しているクラスター リソースで障害が発生した場合AlwaysOn フェールオーバー クラスター インスタンスはWSFC クラスター サービスと連携してフェールオーバーを行いますそのプロセスの概要を以下に示します

1) 再起動が指示されますWSFC の定期的なチェックまたは SQL Server のフェールオーバー ポリシー構成によってエラー状態が示されます既定では他のノードへのフェールオーバーを開始する前にサービスの再起動が試みられます再起動の試みがタイムアウトするようであればリソースの障害が発生しています

2) フェールオーバーが指示されますフェールオーバー ポリシー チェックによってノードのフェールオーバーが必要であることが示されます

3) SQL Server サービスが停止されますSQL Server サービスが現在実行されている場合はその正常なシャットダウンが試みられます

4) WSFC クラスター リソースが転送されますSQL Server クラスター リソース グループの所有権とそれが依存するネットワークおよび共有ストレージ リソースがFCI で次に優先されるノード所有者に転送されます

5) 新しいノードで SQL Server が起動されますSQL Server インスタンスは通常のスタートアップ プロシージャで起動されます所定のタイムアウト時間内にオンラインに戻らない場合クラスター サービスはこの新しいノード上のリソースをエラー状態と見なします

6) 新しいノードでユーザー データベースが復旧されます各ユーザー データベースは復旧モードに設定されます復旧モードではトランザクション ログの再実行操作が適用されコミットされていなかったトランザクションがロールバックされます

FCI の強化以前のバージョンの SQL Server でも FCI のインストール オプションは用意されていましたがSQL Server 2012 では次のような機能強化によって可用性の堅牢性と利便性が向上しました

マルチサブネット クラスタリングSQL Server 2012 では複数のサブネットに存在する WSFC クラスター ノードがサポートされていますWSFC クラスター ノードに存在する SQL Server インスタンスはいずれかのネットワーク インターフェイスが使用可能であれば起動できますこれはクラスター リソースの OR 依存関係と呼ばれます

以前のバージョンの SQL Server の場合SQL Server サービスを起動またはフェールオーバーするにはすべてのネットワーク インターフェイスが機能しそれらがすべて同じサブネットまたは VLAN に存在している必要がありました

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 25

注 マルチサブネット クラスタリングではクラスター ノード間のストレージ レベルのレプリケーションが自動的には有効になりませんマルチサブネットの FCI ソリューションでクラスター ノード間でデータのレプリケーションを行いストレージ フェールオーバーを調整するためにはサード パーティから提供される SAN ベースのソリューションを利用する必要があります

詳細については「SQL Server 2012 AlwaysOn マルチサイト フェールオーバー クラスター インスタンス」(httpsqlcatcomsqlcatbwhitepapersarchive20111222sql-server-2012-alwayson_3a00_-multisite-failover-cluster-instanceaspx) を参照してください

信頼性の高いエラー検出WSFC クラスター サービスではノードの各 SQL Server 2012 FCI に対してそれぞれ専用の管理者接続が維持されますこの接続では特殊なシステム ストアド プロシージャ sp_server_diagnostics を定期的に呼び出すことでシステムの正常性診断に役立つ豊富な情報を含む配列が返されます

SQL Server 2012 よりも前のバージョンではFCI の主な正常性検出メカニズムは単純な一方向のポーリング プロセスとして実装されていましたこのプロセスではWSFC クラスター サービスがインスタンスへの新しい SQL クライアント接続を定期的に作成しサーバー名を照会した後で接続を切断していました何かの理由で接続が失敗するかクエリがタイムアウトした場合フェールオーバーが開始されますが診断情報はほとんど提供されません

詳細については「sql_server_diagnostics」(httpmsdnmicrosoftcomja-jplibraryff878233(SQL110)aspx) を参照してください

現在ではFCI ストレージが次のように幅広い状況でサポートされています

向上したマウント ポイント サポートSQL Server のセットアップ時にクラスター ディスクのマウント ポイント設定が認識されるようになりました指定されたクラスター ディスクとそれにマウントされているすべてのディスクがセットアップ時に SQL Server リソースの依存関係に自動的に追加されます

ローカル ストレージの tempdbFCI ではローカルの非共有ストレージ (ローカル ソリッド ステート ドライブなど) に tempdb を配置できるようになったため共有 SAN での IO 動作の負荷を大幅に軽減できる可能性があります

SQL Server 2012 よりも前のバージョンの FCI ではtempdb が他のシステム データベースと共にフェールオーバーされる対称共有ストレージ ボリュームに配置される必要がありました

注 tempdb の場所はmaster データベースに格納されますこのデータベースはフェールオーバー時にノード間で移動されますtempdb は所有者候補となっているすべてのノード上で有効で対称的なファイル パス (ドライブフォルダーおよび権限) に配置されている必要がありますそうなっていない場合SQL Server サービスが一部のノードでは起動されません

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 26

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 27

データベースの可用性インフラストラクチャ レベルおよび SQL Server インスタンス レベルのコンポーネントで提供されている高可用性機能は互いに連係してホストされているデータベースを暗黙的に保護しますAlwaysOn ソリューションではデータベースのデータおよびデータ層アプリケーションを明示的に保護するために一連のオプションが追加で用意されています

AlwaysOn 可用性グループ可用性グループは1 つの SQL Server インスタンスから同じ WSFC クラスター内の別のインスタンスへと同時にフェールオーバーされるユーザー データベースのセットですクライアント アプリケーションは可用性グループ リスナーと呼ばれる WSFC 仮想ネットワーク名を通じて可用性グループのデータベースに接続できますこうすることで基になる SQL Server インスタンスが抽象化されます

AlwaysOn 可用性グループは正常性監視フェールオーバーの調整およびサーバー接続を Windows Server フェールオーバー クラスタリングに依存していますWSFC クラスター ノード上の SQL Server インスタンスでAlwaysOn サポートを有効にする必要がありますただしそのインスタンスが FCI である必要はなく対称共有ストレージを使用する必要もありません

詳細については「AlwaysOn 可用性グループの概要 」(httpmsdnmicrosoftcomja-jplibraryff877884(SQL110)aspx) を参照してください

可用性レプリカとロール可用性グループの各 SQL Server インスタンスは可用性グループのユーザー データベースのコピーを保持している可用性レプリカをホストしますSQL Server インスタンスは特定の可用性グループの可用性レプリカを 1 つだけホストすることができますが複数の可用性グループを同じインスタンスに置くことは可能ですSQL Server インスタンスは専用の (非共有) ストレージ ボリュームを持つ必要があります

可用性レプリカの 1 つがプライマリ レプリカの役割を果たしますこれは可用性グループ データベースのマスター コピーとして指定されていて読み取り書き込み操作を行うことができます

可用性グループには読み取り専用の可用性レプリカを最大 4 つまで追加で含めることができますこれらは個別にセカンダリ レプリカの役割を果たします

可用性レプリカの同期可用性グループの各データベースの内容はSQL Server によるログ ベースのデータ移動メカニズムを通じてプライマリ レプリカから各セカンダリ レプリカに同期されますそのため可用性グループのすべてのデータベースは完全復旧モデルに設定する必要があります

セカンダリ レプリカはプライマリ レプリカのデータベースとトランザクション ログの完全なバックアップと復元によって初期化されますプライマリ レプリカで新しいトランザクションがコミットされるとトランザクション ログの対応する部分がキャッシュされ

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 28

キューに入れられてネットワーク経由でセカンダリ レプリカ ノード上のデータベース ミラーリング エンドポイントに送信されます

この方法によりプライマリ レプリカのトランザクション ログの新しいエントリが各セカンダリ レプリカのトランザクション ログに追加されます各セカンダリ レプリカはログ シーケンス番号 (LSN) をプライマリ レプリカに定期的に送り返しトランザクション ログのどのくらいの量がリモート ディスクに書き込まれフラッシュされたかを示します

注 各可用性レプリカはそれぞれ独自に独立したトランザクション ログ再実行スレッドのセットを保持していますこれは可用性レプリカの同期プロセスには含まれませんセカンダリ レプリカ上ではログ再実行プロセスによって遅延時間が生じるためユーザーはそれをデータの待機時間として感じる場合があります

プライマリまたはセカンダリの役割を果たす他に各可用性レプリカには可用性モードもありますこのモードは次のようにCOMMIT TRAN ステートメントの実行時にトランザクション ログの書き込みの連係を制御します

同期コミット モードすべての同期コミット セカンダリ レプリカからそれぞれ独自のトランザクション ログの書き込み完了 (LSN 以降) が通知されるまでプライマリ レプリカはそのトランザクションをコミットしません可用性グループでは最大で 2 つの同期コミット セカンダリ レプリカを使用できます

同期コミット モードではプライマリ レプリカ データベースでトランザクションの遅延が生じますがコミットされたトランザクションに対するセカンダリ レプリカでのデータ損失を確実に防ぐことができます

非同期コミット モードプライマリ レプリカはローカル トランザクション ログの書き込み後にトランザクションをコミットしますが非同期コミット セカンダリ レプリカからトランザクション ログの書き込み完了通知を待つことはしません可用性グループでは最大で 4 つの非同期コミット セカンダリ レプリカを使用できますただし両方の種類を合わせて使用できるセカンダリ レプリカの合計は最大 4 つです

非同期コミット モードではプライマリ レプリカ データベースで生じるトランザクションの遅延が最小になりますがセカンダリ レプリカでのトランザクション ログが遅れる場合があるため一部のデータが失われる可能性があります

詳細については「可用性モード」(httpmsdnmicrosoftcomja-jplibraryff877931(SQL110)aspx) を参照してください

可用性レプリカ間のデータ フローの全体的な正常性は各レプリカの同期状態によって示されますセカンダリ レプリカにフェールオーバーしたときに同期状態が 同期済み または 同期中 になっていなければほとんどの場合はデータ損失が発生することになります

各セカンダリ レプリカの同期ストリームにはセッション タイムアウト プロパティがあります同期コミット モードに構成されているセカンダリ レプリカがセッション タイムアウトでエラーになると内部的には一時的に非同期としてマークされますこれはセカンダ

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 29

リ レプリカのエラーがプライマリ レプリカでのトランザクション ログの書き込みに影響しないようにするためですそのセカンダリ レプリカが正常に戻ってプライマリ レプリカの状態に追いつくと自動的に通常の同期コミット モード動作に戻されます

可用性グループのフェールオーバー可用性グループとそれに対応する仮想ネットワーク名はWSFC クラスターのリソースとして登録されます可用性グループはプライマリ レプリカの正常性とフェールオーバー ポリシーに基づいて可用性レプリカのレベルでフェールオーバーを行います

可用性グループのフェールオーバー ポリシーではsp_server_diagnostics システム ストアド プロシージャと FailureConditionLevel プロパティを使用して可用性グループに対して許容されるエラーの重大度のレベルを示しますこの同じメカニズムがFCI のフェールオーバー ポリシーにも使用されます

フェールオーバーが発生した場合は共有物理リソースの所有権を他のノードに移す代わりにWSFC を利用して他の SQL Server インスタンス上でセカンダリ レプリカを再構成しプライマリ レプリカの役割を引き継がせますその後可用性グループの仮想ネットワーク名リソースがそのインスタンスに転送されます関連する可用性レプリカへのすべてのクライアント接続がリセットされます

レプリカの現在の正常性同期状態および可用性モードに基づいて各レプリカには複合的な フェールオーバーの準備 状態が定義されますこの状態の値はデータ損失の可能性を示していますレプリカの正常性情報はAlwaysOn ダッシュボードまたは sysdm_hadr_availability_replica_states システム ビューで確認できます

各可用性レプリカにはフェールオーバー モードも構成されていますこのモードはフェールオーバーが指示された場合にレプリカの動作を制御します

自動フェールオーバー (データ損失なし)セカンダリ レプリカのトランザクション ログが既に書き込まれ同期されているのですべての AlwaysOn 構成の中でフェールオーバー時間が最短になりますプライマリ レプリカ上の開かれているトランザクションはロールバックされプライマリ レプリカの役割はユーザーによる操作なしでセカンダリ レプリカに転送されます

この場合プライマリ レプリカとセカンダリ レプリカの両方を自動フェールオーバー モードに設定し両方の可用性モードを同期コミットに設定する必要がありますレプリカ間の同期状態は同期済み である必要がありますまたWSFC クラスターは正常なクォーラム状態になっている必要があります

自動フェールオーバーはプライマリ レプリカまたはセカンダリ レプリカが FCI 上にある場合はサポートされませんこれは可用性グループと FCI のフェールオーバー間で競合状態が発生することを防ぐためです

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 30

手動フェールオーバーこの場合管理者はプライマリ レプリカの状態を評価してセカンダリ レプリカにフェールオーバーするかどうかを慎重に判断できます

可用性モードと同期状態に応じて次のような選択が可能です

o 計画的な手動フェールオーバー (データ損失なし)この種類のフェールオーバーを実行できるのはプライマリ レプリカとセカンダリ レプリカの両方が正常で同期済み 状態である場合だけですこれは機能的には自動フェールオーバーと同じです

o 強制手動フェールオーバー (データ損失の可能性を許容)これは対象のセカンダリ レプリカの可用性モードが非同期コミットである場合またはプライマリ レプリカに同期されない場合に使用できる唯一のフェールオーバー形式です

警告 このフェールオーバー オプションは災害復旧の状況に限って使用する必要がありますプライマリ レプリカが正常で使用可能である場合は関連する各レプリカの可用性モードを同期コミットに変更し計画的な手動フェールオーバーを実行してください

詳細については「可用性グループの強制手動フェールオーバーの実行」(httpmsdnmicrosoftcomja-jplibraryff877957(SQL110)aspx) を参照してください

フェールオーバー対象のプライマリ レプリカまたはセカンダリ レプリカが次の条件のいずれかに該当する場合は手動フェールオーバーを実行する必要があります

フェールオーバー モードが手動に設定されている 可用性モードが非同期コミットに設定されている レプリカが FCI 上にある

詳細については「フェールオーバーとフェールオーバー モード (AlwaysOn 可用性グルー プ ) 」(httpmsdnmicrosoftcomja-jplibraryhh213151(SQL110)aspx) を参照してください

注 フェールオーバー後新しいプライマリ レプリカが同期コミット モードに設定されていない場合セカンダリ レプリカの同期状態は 中断状態 になりますプライマリ レプリカが同期コミット モードに設定されるまでデータはセカンダリ レプリカに移動されません

可用性グループ リスナー可用性グループ リスナーはクライアントが可用性グループ内のデータベースにアクセスするために使用できる WSFC 仮想ネットワーク名 (VNN) ですVNN クラスター リソースはプライマリ レプリカをホストしている SQL Server インスタンスによって所有されます

仮想ネットワーク名は可用性グループ リスナーの作成時または構成の変更時にのみDNS に登録されます可用性グループ リスナーで定義されているすべての仮想 IP アドレスは同じ仮想ネットワーク名で DNS に登録されます

可用性グループ リスナーを使用する場合クライアント接続要求ではサーバーとして仮想ネットワーク名を指定してから可用性グループ内のデータベース名を指定する必要があり

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 31

ます既定ではこれによってプライマリ レプリカをホストしている SQL Server インスタンスに接続されます

実行時にはクライアントはローカルの DNS リゾルバーを使用して仮想ネットワーク名にマップされている IP アドレスと TCP ポートの一覧を取得しますクライアントは各 IP アドレスへの接続を成功するか接続タイムアウトに達するまで試し続けますMultiSubnetFailover パラメーターが true に設定されているとクライアントは複数の接続を同時に試行するのでクライアント フェールオーバーが大幅に速くなります

フェールオーバーが行われるとサーバー上でクライアント接続がリセットされ可用性グループ リスナーの所有権はプライマリ レプリカの役割と共に新しい SQL Server インスタンスに移動しVNN エンドポイントは新しいインスタンスの仮想 IP アドレスと TCP ポートにバインドされます

詳細については「可用性グループ リスナークライアント接続およびアプリケーションのフェールオーバー」(httpmsdnmicrosoftcomja-jplibraryhh213417(SQL110)aspx) を参照してください

アプリケーションの目的によるフィルター処理可用性グループ リスナーを使用して接続している場合アプリケーションは接続の目的がデータの読み取りと書き込みの両方なのか読み取り専用操作を実行するだけなのかを指定できます指定しない場合クライアントのアプリケーションの目的は既定で読み取りと書き込みになります

各可用性レプリカのプライマリ ロールとセカンダリ ロールについてはクライアントのアプリケーションの目的に対する接続レベルのフィルターとして接続アクセス プロパティも指定できます既定ではアプリケーションの目的と接続アクセスとの組み合わせが無効であると接続が拒否されますSQL Server は次のルールを使用してクライアントの接続要求を振り分ける必要があります

可用性レプリカがプライマリ ロールであり接続アクセスが次のいずれかである場合

すべてのアプリケーションの目的を許可するアプリケーションの目的でクライアント接続をフィルター処理しません

明示的な読み取り書き込みの目的だけを許可するクライアントが読み取り専用を指定している場合接続を拒否します

可用性レプリカがセカンダリ ロールであり接続アクセスが次のいずれかである場合

接続を許可しないすべての接続を拒否しますレプリカは災害復旧だけに使用されます

すべてのアプリケーションの目的を許可するアプリケーションの目的でクライアント接続をフィルター処理しません

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 32

読み取り専用の目的を許可するクライアントが読み取り専用を指定していない場合接続を拒否します

詳細については「可用性レプリカでの読み取り専用アクセスの構成」(httpmsdnmicrosoftcomja-jplibraryhh213002(SQL110)aspx) を参照してください

アプリケーションの目的の読み取り専用ルーティングAlwaysOn 可用性グループの特に優れた点はスタンバイ ハードウェア インフラストラクチャを災害復旧以外の目的に利用できることです1 つ以上のセカンダリ レプリカを読み取り専用でアクセスできるように構成するとプライマリ レプリカからかなりの量のワークロードを軽減できます

読み取り専用セカンダリ レプリカに回すように簡単に調整できるワークロードはレポートデータベース バックアップデータベース整合性チェックインデックスの断片化の分析データ パイプライン抽出運用サポート操作サポートアドホック クエリなどです

各可用性レプリカではSQL Server インスタンスのエンドポイントについて順次的な読み取り専用ルーティング リストを構成することもできますこのリストはレプリカがプライマリ ロールであるときに適用されますこのリストが存在する場合アプリケーションの目的が読み取り専用と指定されているクライアント接続要求はそのリスト内に記載されていて前述のアプリケーションの目的フィルターに適合する最初のセカンダリ レプリカにリダイレクトされます

注 読み取り専用ルーティングによるリダイレクトはプライマリ レプリカにバインドされている可用性グループ リスナーによって実行されますプライマリ レプリカがオフラインの場合クライアントのリダイレクトは機能しません

詳細については「可用性グループの読み取り専用ルーティングの構成 (SQL Server) 」(httpmsdnmicrosoftcomja-jplibraryhh710054(SQL110)aspx) を参照してください

可用性の向上 ndash データベースSQL Server 2012 ではデータベースの構成と機能に関してさまざまな点が強化されています

以下の機能は復旧時間の短縮に役立ちます

予測可能な復旧時間データベースごとにターゲット復旧時間の長さを設定することでバックグラウンドで実行される CHECKPOINT コマンドのスケジュールを制御できますこのコマンドは間接的なチェックポイントとして再起動時またはフェールオーバー時にトランザクション ログの復旧に必要となる時間の推定値に基づいて定期的に実行されますそれによってチェックポイントごとに IO 操作がほぼ均等に配分され復旧時間 (RTO) の予測可能性が高まります

SQL Server 2012 よりも前のバージョンではバックグラウンドの CHECKPOINT コマンドがトランザクションの量や負荷とは無関係に一定間隔で実行されていたので復旧時間を予測することはできませんでした

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 33

詳細については「データベース チェックポイント」(httpmsdnmicrosoftcomja-jplibraryms189573(SQL110)aspx) を参照してください

以下の向上点は計画的なダウンタイムが必要になる一般的な状況を減らすのに役立ちます

LOB 列のオンライン インデックス操作varbinary(max)varchar(max)nvarchar(max)または XML データ型の列が含まれているインデックスをオンラインで再構築または再構成できるようになりました

新しい NOT NULL 列のオンライン スキーマ修正既定値を使用して新しい NOT NULL 列を SQL Server 2012 データベース テーブルに追加する場合システム メタデータの更新にはスキーマ ロックだけが必要ですALTER TABLE ステートメントですべての行にデータを設定する必要はありません

いずれかの行で実際に変更またはインデックスの再作成が行われない限り列の既定値は物理的に格納されませんクエリでは列に実際の値が存在しない場合メタデータから既定値を返します

ストレージのサポート強化の例として次のようなものがあります

ページの自動修復ある種のストレージ サブシステム エラーが発生するとデータ ページが破損し読み取り不可能になる場合がありますAlwaysOn 可用性グループではそのような種類のエラーを検出し自動的に復旧できます復旧のために影響を受けたデータ ページの最新のコピーが別の可用性レプリカから非同期で取得され適用されます

以前のバージョンでもデータベース ミラーリングに同様の機能がありましたが新しい機能では複数のレプリカをサポートできるようになっています

詳細については「ページの自動修復」(httpmsdnmicrosoftcomja-jplibrarybb677167(SQL110)aspx) を参照してください

クライアント接続の推奨事項クライアント アプリケーションが Microsoft SQL Server 2012 AlwaysOn テクノロジの利点を十分に活用できるようにするには次のガイドラインに従います

AlwaysOn 対応のクライアント ライブラリ表形式のデータ ストリーム (TDS) プロトコル Version 74 以降をサポートしているクライアント ライブラリを使用しますこれによってAlwaysOn の機能に対応した適切な機能がクライアント側でも提供されますクライアント ライブラリの例としてはData Provider for SQL Server in NET Framework 402SQL Native Client 110 などがあります

接続プロバイダー プロパティ MultiSubnetFailover = True接続文字列にこのキーワードを使用することでクライアント ライブラリでは(複数のサブネットに IP アドレスを持つ) 可用性グループ リスナーまたは FCI に登録されているすべての IP アドレスに同時に接

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 34

続できるようになります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 35

接続プロバイダー プロパティ ApplicationIntent = ReadOnly必要に応じてプライマリ レプリカの読み取り専用ワークロードをセカンダリ レプリカに移管することができます

レガシ クライアントの接続タイムアウトレガシ クライアントのデータベース ライブラリには並列で接続を試行する機能が実装されていないため複数の IP アドレスがある場合にはTCP タイムアウトに達するか正常に接続できるまで1 つずつ順番に接続を試行します

複数の IP アドレスが存在する場合はタイムアウトと再試行が逐次的に繰り返される可能性に備えてレガシ クライアントの接続タイムアウトを調整する必要があります値は少なくとも 15 秒 + 21 秒 times セカンダリ レプリカ数にします

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 36

結論このホワイト ペーパーではSQL Server 2012 の AlwaysOn による高可用性災害復旧ソリューションを使用し予定されたダウンタイムや予定外のダウンタイムを短縮したりアプリケーションの可用性を最大限に高めたりデータを保護したりする方法について基本的なコンテキストを確立しました

高可用性データベース環境の計画管理測定に関連したビジネス上の目的と課題は多くの場合目標復旧時点 (RPO) と目標復旧時間 (RTO) という形で数量化して表すことができます

SQL Server 2012 AlwaysOn は組織が高可用性や災害復旧に関する一般的な状況に対処するための機能をRPO と RTO を適切に達成できることを念頭にインフラストラクチャ レベルデータ プラットフォーム レベルデータベース レベルのそれぞれで提供します

詳細情報

httpwwwmicrosoftcomja-jpsqlserver2012defaultaspx SQL Server Web サイト

httptechnetmicrosoftcomja-jpsqlserver SQL Server TechCenter

httpmsdnmicrosoftcomja-jpsqlserver SQL Server 開発者向け技術情報

このホワイト ペーパーはお役に立ちましたか フィードバックをお寄せください1 (役に立たなかった) ~ 5 (非常に役に立った) の 5 段階で評価してくださいまたその評価の理由もお知らせください以下に例を示します

評価が高い 例が適切図がわかりやすい説明が明快といったことが理由である 評価が低い 例が少ない図がわかりにくい説明があいまいといったことが理由で

ある

このようなフィードバックをお寄せいただくと今後のホワイト ペーパーの品質向上につながります

フィードバックの送信

loz Version 112012 年 2 月 21 日

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 37

  • 高可用性と災害復旧の概念
    • 高可用性について
      • 予定されたダウンタイムと予定外のダウンタイム
      • 段階的な可用性
        • ダウンタイムの定量化
          • 復旧目標
          • ROI または機会費用の正当化
          • 可用性の健全度の監視
          • 災害復旧の計画
            • 概要 Microsoft SQL Server 2012 での高可用性
              • SQL Server AlwaysOn
              • 計画的なダウンタイムの大幅な削減
              • アイドル状態のハードウェアをなくしてコスト効率とパフォーマンスを向上
              • 簡単な配置と管理
              • RPO と RTO の機能比較
                  • SQL Server AlwaysOn の保護レイヤー
                    • インフラストラクチャの可用性
                      • Windows オペレーティング システム
                        • Windows Server Core インストール オプション
                        • プライベート クラウド用の SQL Server の最適化
                          • Windows Server フェールオーバー クラスタリング
                            • WSFC ストレージ構成
                            • WSFC リソースの正常性の検出とフェールオーバー
                              • WSFC のクラスター検証ウィザード
                              • WSFC クォーラム モードと投票の構成
                                • クォーラムによるクラスター状態検出
                                • クォーラム モード
                                • 投票ノードと非投票ノード
                                • クォーラム投票に推奨される調整
                                  • WSFC の強制クォーラムによる災害復旧
                                    • SQL Server インスタンス レベルでの保護
                                      • 可用性の向上 ndash SQL Server インスタンス
                                      • AlwaysOn フェールオーバー クラスター インスタンス
                                        • FCI のフェールオーバー プロセス
                                        • FCI の強化
                                            • データベースの可用性
                                              • AlwaysOn 可用性グループ
                                                • 可用性レプリカとロール
                                                • 可用性レプリカの同期
                                                  • 可用性グループのフェールオーバー
                                                  • 可用性グループ リスナー
                                                    • アプリケーションの目的によるフィルター処理
                                                    • アプリケーションの目的の読み取り専用ルーティング
                                                      • 可用性の向上 ndash データベース
                                                        • クライアント接続の推奨事項
                                                          • 結論
Page 28: 高可用性と災害復旧の概念download.microsoft.com/download/6/B/E/6BE0C3F3-2991-4766... · Web view高可用性と災害復旧のソリューションのために最適なデータベース

SQL Server インスタンス レベルでの保護次に説明する AlwaysOn ソリューションの保護レイヤーはデータ プラットフォームそれ自体ですMicrosoft SQL Server 2012 とその Windows Server インフラストラクチャ コンポーネントとの統合によって次のような機能が提供されます

可用性の向上 ndash SQL Server インスタンスこれは SQL Server 2012 の新しいインスタンス レベルの機能でAlwaysOn フェールオーバー クラスター インスタンスとAlwaysOn 可用性グループをホストするスタンドアロン インスタンスの両方の可用性を強化します

以下の強化点によってフェールオーバーの管理およびトラブルシューティングが向上します

柔軟なフェールオーバー ポリシー信頼性の高いエラー検出に使用される新しいシステム ストアド プロシージャ sp_server_diagnostics の出力でSQL Server インスタンスに影響するエラーの重大度が FailureConditionLevel プロパティによって示されますWSFC のフェールオーバー ポリシーによってこの値が SQL Server インスタンスにどのように影響するかを制御できますある程度エラーを許容する設定からSQL Server の内部コンポーネント エラーを重点的に検出する設定までさまざまに構成できます

特定のレベルのエラーによってフェールオーバーを開始するように構成できますエラーのレベルにはサーバーの停止サーバーの応答停止重大なエラー中程度のエラーなんらかの条件付きエラーなどがありますFailureConditionLevel プロパティはFCI または可用性グループのフェールオーバー ポリシーのために使用できます

SQL Server 2012 よりも前のバージョンではフェールオーバーを制御できるようなエラー状態の区分がなくすべてのサービス レベルのエラーによってフェールオーバーが発生しました

詳細については「フェールオーバー クラスター インスタンスのフェールオーバー ポリシー」(httpmsdnmicrosoftcomja-jplibraryff878664(SQL110)aspx) を参照してください

強化されたインストルメンテーションとログAlwaysOn 専用のシステム構成ビューDMVパフォーマンス カウンターに加えて拡張されたイベント正常性セッションによってAlwaysOn 配置のトラブルシューティングチューニングおよび監視に必要な情報を取得して表示できますこれらの多くはSQL Server ポリシー管理の新しいファセットおよびポリシーを通じて公開されます

詳細については「AlwaysOn 可用性グループの動的管理ビューおよび関 数」(httpmsdnmicrosoftcomja-jplibraryff877943(SQL110)aspx) と「sysdm_os_cluster_nodes」(httpmsdnmicrosoftcomja-jplibraryms187341(SQL110)aspx) を参照してください

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 23

SMB ファイル共有のサポートWindows Server 2008 以降のスタンドアロン用またはフェールオーバー クラスター インスタンス用のリモート ファイル共有にデータベース ファイルを格納することができますこの場合FCI ごとに異なるドライブ文字を使用する必要がありませんこれはストレージを統合する場合やデータベース ファイルのストレージを仮想マシンのゲスト オペレーティング システム用物理サーバーでホストする場合などに便利なオプションです適切に構成すれば直接接続されたストレージとほぼ同等の IO パフォーマンスが得られます

詳細については「ファイル共有上の SQL データベース - シナリオを再検討すべきとき 」(httpblogsmsdncombsqlserverstorageenginearchive20111018sql-databases-on-file-shares-it-s-time-to-reconsider-the-scenarioaspx) を参照してください

注 WSFC クラスターではSMB ファイル共有リソースの依存関係を SQL Server リソース グループに追加することはできませんファイル共有の可用性を確保するには別の方法を用いる必要がありますファイル共有が使用できなくなった場合SQL Server は IO 例外をスローしオフラインになります

WSFC と DNS の相互運用性FCI または可用性グループ リスナーの仮想ネットワーク名 (VNN) はVNN の作成時または構成の変更時にのみDNS に登録されますすべての仮想 IP アドレスはオンライン状態かオフライン状態かに関係なく同じ仮想ネットワーク名で DNS に登録されますDNS の仮想ネットワーク名を解決するためのクライアント呼び出しは各種のラウンド ロビン シーケンスによってすべての登録済み IP アドレスを返します

AlwaysOn フェールオーバー クラスター インスタンスSQL Server の AlwaysOn フェールオーバー クラスター インスタンス (FCI) の主な目的は1 つのデータ センター内のローカル サーバーとストレージ ハードウェアでホストされている SQL Server インスタンスの可用性を高めることです

FCI はWindows Server フェールオーバー クラスタリング (WSFC) のクラスターに含まれる複数のノードにまたがってインストールされる1 つの論理的な SQL Server インスタンスですただし一度に 1 つのノードだけでアクティブになることができますクライアント アプリケーションはアクティブなクラスター ノードが所有している仮想ネットワーク名および仮想 IP アドレスに接続します

FCI をインストールした各ノードは同一の構成を持ち同一の SQL Server バイナリを含んでいますWSFC クラスター サービスはアクティブなインスタンス上にある Windows レジストリのエントリからFCI をインストールした各ノードに関連のある変更をレプリケートしますFCI がインストールされている各ノードはインスタンスとそのリソースの所有者の候補として指定されフェールオーバーの優先順位に従って所有者となります

共有対称ストレージ ボリュームに格納されているデータベース ファイルはリソースとして WSFC クラスターに登録され現在 FCI をホストしているノードによって所有されます

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 24

詳細については「AlwaysOn フェールオーバー クラスター インスタン ス」(httpmsdnmicrosoftcomja-jplibraryms189134(SQL110)aspx) を参照してください

FCI のフェールオーバー プロセス依存しているクラスター リソースで障害が発生した場合AlwaysOn フェールオーバー クラスター インスタンスはWSFC クラスター サービスと連携してフェールオーバーを行いますそのプロセスの概要を以下に示します

1) 再起動が指示されますWSFC の定期的なチェックまたは SQL Server のフェールオーバー ポリシー構成によってエラー状態が示されます既定では他のノードへのフェールオーバーを開始する前にサービスの再起動が試みられます再起動の試みがタイムアウトするようであればリソースの障害が発生しています

2) フェールオーバーが指示されますフェールオーバー ポリシー チェックによってノードのフェールオーバーが必要であることが示されます

3) SQL Server サービスが停止されますSQL Server サービスが現在実行されている場合はその正常なシャットダウンが試みられます

4) WSFC クラスター リソースが転送されますSQL Server クラスター リソース グループの所有権とそれが依存するネットワークおよび共有ストレージ リソースがFCI で次に優先されるノード所有者に転送されます

5) 新しいノードで SQL Server が起動されますSQL Server インスタンスは通常のスタートアップ プロシージャで起動されます所定のタイムアウト時間内にオンラインに戻らない場合クラスター サービスはこの新しいノード上のリソースをエラー状態と見なします

6) 新しいノードでユーザー データベースが復旧されます各ユーザー データベースは復旧モードに設定されます復旧モードではトランザクション ログの再実行操作が適用されコミットされていなかったトランザクションがロールバックされます

FCI の強化以前のバージョンの SQL Server でも FCI のインストール オプションは用意されていましたがSQL Server 2012 では次のような機能強化によって可用性の堅牢性と利便性が向上しました

マルチサブネット クラスタリングSQL Server 2012 では複数のサブネットに存在する WSFC クラスター ノードがサポートされていますWSFC クラスター ノードに存在する SQL Server インスタンスはいずれかのネットワーク インターフェイスが使用可能であれば起動できますこれはクラスター リソースの OR 依存関係と呼ばれます

以前のバージョンの SQL Server の場合SQL Server サービスを起動またはフェールオーバーするにはすべてのネットワーク インターフェイスが機能しそれらがすべて同じサブネットまたは VLAN に存在している必要がありました

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 25

注 マルチサブネット クラスタリングではクラスター ノード間のストレージ レベルのレプリケーションが自動的には有効になりませんマルチサブネットの FCI ソリューションでクラスター ノード間でデータのレプリケーションを行いストレージ フェールオーバーを調整するためにはサード パーティから提供される SAN ベースのソリューションを利用する必要があります

詳細については「SQL Server 2012 AlwaysOn マルチサイト フェールオーバー クラスター インスタンス」(httpsqlcatcomsqlcatbwhitepapersarchive20111222sql-server-2012-alwayson_3a00_-multisite-failover-cluster-instanceaspx) を参照してください

信頼性の高いエラー検出WSFC クラスター サービスではノードの各 SQL Server 2012 FCI に対してそれぞれ専用の管理者接続が維持されますこの接続では特殊なシステム ストアド プロシージャ sp_server_diagnostics を定期的に呼び出すことでシステムの正常性診断に役立つ豊富な情報を含む配列が返されます

SQL Server 2012 よりも前のバージョンではFCI の主な正常性検出メカニズムは単純な一方向のポーリング プロセスとして実装されていましたこのプロセスではWSFC クラスター サービスがインスタンスへの新しい SQL クライアント接続を定期的に作成しサーバー名を照会した後で接続を切断していました何かの理由で接続が失敗するかクエリがタイムアウトした場合フェールオーバーが開始されますが診断情報はほとんど提供されません

詳細については「sql_server_diagnostics」(httpmsdnmicrosoftcomja-jplibraryff878233(SQL110)aspx) を参照してください

現在ではFCI ストレージが次のように幅広い状況でサポートされています

向上したマウント ポイント サポートSQL Server のセットアップ時にクラスター ディスクのマウント ポイント設定が認識されるようになりました指定されたクラスター ディスクとそれにマウントされているすべてのディスクがセットアップ時に SQL Server リソースの依存関係に自動的に追加されます

ローカル ストレージの tempdbFCI ではローカルの非共有ストレージ (ローカル ソリッド ステート ドライブなど) に tempdb を配置できるようになったため共有 SAN での IO 動作の負荷を大幅に軽減できる可能性があります

SQL Server 2012 よりも前のバージョンの FCI ではtempdb が他のシステム データベースと共にフェールオーバーされる対称共有ストレージ ボリュームに配置される必要がありました

注 tempdb の場所はmaster データベースに格納されますこのデータベースはフェールオーバー時にノード間で移動されますtempdb は所有者候補となっているすべてのノード上で有効で対称的なファイル パス (ドライブフォルダーおよび権限) に配置されている必要がありますそうなっていない場合SQL Server サービスが一部のノードでは起動されません

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 26

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 27

データベースの可用性インフラストラクチャ レベルおよび SQL Server インスタンス レベルのコンポーネントで提供されている高可用性機能は互いに連係してホストされているデータベースを暗黙的に保護しますAlwaysOn ソリューションではデータベースのデータおよびデータ層アプリケーションを明示的に保護するために一連のオプションが追加で用意されています

AlwaysOn 可用性グループ可用性グループは1 つの SQL Server インスタンスから同じ WSFC クラスター内の別のインスタンスへと同時にフェールオーバーされるユーザー データベースのセットですクライアント アプリケーションは可用性グループ リスナーと呼ばれる WSFC 仮想ネットワーク名を通じて可用性グループのデータベースに接続できますこうすることで基になる SQL Server インスタンスが抽象化されます

AlwaysOn 可用性グループは正常性監視フェールオーバーの調整およびサーバー接続を Windows Server フェールオーバー クラスタリングに依存していますWSFC クラスター ノード上の SQL Server インスタンスでAlwaysOn サポートを有効にする必要がありますただしそのインスタンスが FCI である必要はなく対称共有ストレージを使用する必要もありません

詳細については「AlwaysOn 可用性グループの概要 」(httpmsdnmicrosoftcomja-jplibraryff877884(SQL110)aspx) を参照してください

可用性レプリカとロール可用性グループの各 SQL Server インスタンスは可用性グループのユーザー データベースのコピーを保持している可用性レプリカをホストしますSQL Server インスタンスは特定の可用性グループの可用性レプリカを 1 つだけホストすることができますが複数の可用性グループを同じインスタンスに置くことは可能ですSQL Server インスタンスは専用の (非共有) ストレージ ボリュームを持つ必要があります

可用性レプリカの 1 つがプライマリ レプリカの役割を果たしますこれは可用性グループ データベースのマスター コピーとして指定されていて読み取り書き込み操作を行うことができます

可用性グループには読み取り専用の可用性レプリカを最大 4 つまで追加で含めることができますこれらは個別にセカンダリ レプリカの役割を果たします

可用性レプリカの同期可用性グループの各データベースの内容はSQL Server によるログ ベースのデータ移動メカニズムを通じてプライマリ レプリカから各セカンダリ レプリカに同期されますそのため可用性グループのすべてのデータベースは完全復旧モデルに設定する必要があります

セカンダリ レプリカはプライマリ レプリカのデータベースとトランザクション ログの完全なバックアップと復元によって初期化されますプライマリ レプリカで新しいトランザクションがコミットされるとトランザクション ログの対応する部分がキャッシュされ

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 28

キューに入れられてネットワーク経由でセカンダリ レプリカ ノード上のデータベース ミラーリング エンドポイントに送信されます

この方法によりプライマリ レプリカのトランザクション ログの新しいエントリが各セカンダリ レプリカのトランザクション ログに追加されます各セカンダリ レプリカはログ シーケンス番号 (LSN) をプライマリ レプリカに定期的に送り返しトランザクション ログのどのくらいの量がリモート ディスクに書き込まれフラッシュされたかを示します

注 各可用性レプリカはそれぞれ独自に独立したトランザクション ログ再実行スレッドのセットを保持していますこれは可用性レプリカの同期プロセスには含まれませんセカンダリ レプリカ上ではログ再実行プロセスによって遅延時間が生じるためユーザーはそれをデータの待機時間として感じる場合があります

プライマリまたはセカンダリの役割を果たす他に各可用性レプリカには可用性モードもありますこのモードは次のようにCOMMIT TRAN ステートメントの実行時にトランザクション ログの書き込みの連係を制御します

同期コミット モードすべての同期コミット セカンダリ レプリカからそれぞれ独自のトランザクション ログの書き込み完了 (LSN 以降) が通知されるまでプライマリ レプリカはそのトランザクションをコミットしません可用性グループでは最大で 2 つの同期コミット セカンダリ レプリカを使用できます

同期コミット モードではプライマリ レプリカ データベースでトランザクションの遅延が生じますがコミットされたトランザクションに対するセカンダリ レプリカでのデータ損失を確実に防ぐことができます

非同期コミット モードプライマリ レプリカはローカル トランザクション ログの書き込み後にトランザクションをコミットしますが非同期コミット セカンダリ レプリカからトランザクション ログの書き込み完了通知を待つことはしません可用性グループでは最大で 4 つの非同期コミット セカンダリ レプリカを使用できますただし両方の種類を合わせて使用できるセカンダリ レプリカの合計は最大 4 つです

非同期コミット モードではプライマリ レプリカ データベースで生じるトランザクションの遅延が最小になりますがセカンダリ レプリカでのトランザクション ログが遅れる場合があるため一部のデータが失われる可能性があります

詳細については「可用性モード」(httpmsdnmicrosoftcomja-jplibraryff877931(SQL110)aspx) を参照してください

可用性レプリカ間のデータ フローの全体的な正常性は各レプリカの同期状態によって示されますセカンダリ レプリカにフェールオーバーしたときに同期状態が 同期済み または 同期中 になっていなければほとんどの場合はデータ損失が発生することになります

各セカンダリ レプリカの同期ストリームにはセッション タイムアウト プロパティがあります同期コミット モードに構成されているセカンダリ レプリカがセッション タイムアウトでエラーになると内部的には一時的に非同期としてマークされますこれはセカンダ

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 29

リ レプリカのエラーがプライマリ レプリカでのトランザクション ログの書き込みに影響しないようにするためですそのセカンダリ レプリカが正常に戻ってプライマリ レプリカの状態に追いつくと自動的に通常の同期コミット モード動作に戻されます

可用性グループのフェールオーバー可用性グループとそれに対応する仮想ネットワーク名はWSFC クラスターのリソースとして登録されます可用性グループはプライマリ レプリカの正常性とフェールオーバー ポリシーに基づいて可用性レプリカのレベルでフェールオーバーを行います

可用性グループのフェールオーバー ポリシーではsp_server_diagnostics システム ストアド プロシージャと FailureConditionLevel プロパティを使用して可用性グループに対して許容されるエラーの重大度のレベルを示しますこの同じメカニズムがFCI のフェールオーバー ポリシーにも使用されます

フェールオーバーが発生した場合は共有物理リソースの所有権を他のノードに移す代わりにWSFC を利用して他の SQL Server インスタンス上でセカンダリ レプリカを再構成しプライマリ レプリカの役割を引き継がせますその後可用性グループの仮想ネットワーク名リソースがそのインスタンスに転送されます関連する可用性レプリカへのすべてのクライアント接続がリセットされます

レプリカの現在の正常性同期状態および可用性モードに基づいて各レプリカには複合的な フェールオーバーの準備 状態が定義されますこの状態の値はデータ損失の可能性を示していますレプリカの正常性情報はAlwaysOn ダッシュボードまたは sysdm_hadr_availability_replica_states システム ビューで確認できます

各可用性レプリカにはフェールオーバー モードも構成されていますこのモードはフェールオーバーが指示された場合にレプリカの動作を制御します

自動フェールオーバー (データ損失なし)セカンダリ レプリカのトランザクション ログが既に書き込まれ同期されているのですべての AlwaysOn 構成の中でフェールオーバー時間が最短になりますプライマリ レプリカ上の開かれているトランザクションはロールバックされプライマリ レプリカの役割はユーザーによる操作なしでセカンダリ レプリカに転送されます

この場合プライマリ レプリカとセカンダリ レプリカの両方を自動フェールオーバー モードに設定し両方の可用性モードを同期コミットに設定する必要がありますレプリカ間の同期状態は同期済み である必要がありますまたWSFC クラスターは正常なクォーラム状態になっている必要があります

自動フェールオーバーはプライマリ レプリカまたはセカンダリ レプリカが FCI 上にある場合はサポートされませんこれは可用性グループと FCI のフェールオーバー間で競合状態が発生することを防ぐためです

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 30

手動フェールオーバーこの場合管理者はプライマリ レプリカの状態を評価してセカンダリ レプリカにフェールオーバーするかどうかを慎重に判断できます

可用性モードと同期状態に応じて次のような選択が可能です

o 計画的な手動フェールオーバー (データ損失なし)この種類のフェールオーバーを実行できるのはプライマリ レプリカとセカンダリ レプリカの両方が正常で同期済み 状態である場合だけですこれは機能的には自動フェールオーバーと同じです

o 強制手動フェールオーバー (データ損失の可能性を許容)これは対象のセカンダリ レプリカの可用性モードが非同期コミットである場合またはプライマリ レプリカに同期されない場合に使用できる唯一のフェールオーバー形式です

警告 このフェールオーバー オプションは災害復旧の状況に限って使用する必要がありますプライマリ レプリカが正常で使用可能である場合は関連する各レプリカの可用性モードを同期コミットに変更し計画的な手動フェールオーバーを実行してください

詳細については「可用性グループの強制手動フェールオーバーの実行」(httpmsdnmicrosoftcomja-jplibraryff877957(SQL110)aspx) を参照してください

フェールオーバー対象のプライマリ レプリカまたはセカンダリ レプリカが次の条件のいずれかに該当する場合は手動フェールオーバーを実行する必要があります

フェールオーバー モードが手動に設定されている 可用性モードが非同期コミットに設定されている レプリカが FCI 上にある

詳細については「フェールオーバーとフェールオーバー モード (AlwaysOn 可用性グルー プ ) 」(httpmsdnmicrosoftcomja-jplibraryhh213151(SQL110)aspx) を参照してください

注 フェールオーバー後新しいプライマリ レプリカが同期コミット モードに設定されていない場合セカンダリ レプリカの同期状態は 中断状態 になりますプライマリ レプリカが同期コミット モードに設定されるまでデータはセカンダリ レプリカに移動されません

可用性グループ リスナー可用性グループ リスナーはクライアントが可用性グループ内のデータベースにアクセスするために使用できる WSFC 仮想ネットワーク名 (VNN) ですVNN クラスター リソースはプライマリ レプリカをホストしている SQL Server インスタンスによって所有されます

仮想ネットワーク名は可用性グループ リスナーの作成時または構成の変更時にのみDNS に登録されます可用性グループ リスナーで定義されているすべての仮想 IP アドレスは同じ仮想ネットワーク名で DNS に登録されます

可用性グループ リスナーを使用する場合クライアント接続要求ではサーバーとして仮想ネットワーク名を指定してから可用性グループ内のデータベース名を指定する必要があり

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 31

ます既定ではこれによってプライマリ レプリカをホストしている SQL Server インスタンスに接続されます

実行時にはクライアントはローカルの DNS リゾルバーを使用して仮想ネットワーク名にマップされている IP アドレスと TCP ポートの一覧を取得しますクライアントは各 IP アドレスへの接続を成功するか接続タイムアウトに達するまで試し続けますMultiSubnetFailover パラメーターが true に設定されているとクライアントは複数の接続を同時に試行するのでクライアント フェールオーバーが大幅に速くなります

フェールオーバーが行われるとサーバー上でクライアント接続がリセットされ可用性グループ リスナーの所有権はプライマリ レプリカの役割と共に新しい SQL Server インスタンスに移動しVNN エンドポイントは新しいインスタンスの仮想 IP アドレスと TCP ポートにバインドされます

詳細については「可用性グループ リスナークライアント接続およびアプリケーションのフェールオーバー」(httpmsdnmicrosoftcomja-jplibraryhh213417(SQL110)aspx) を参照してください

アプリケーションの目的によるフィルター処理可用性グループ リスナーを使用して接続している場合アプリケーションは接続の目的がデータの読み取りと書き込みの両方なのか読み取り専用操作を実行するだけなのかを指定できます指定しない場合クライアントのアプリケーションの目的は既定で読み取りと書き込みになります

各可用性レプリカのプライマリ ロールとセカンダリ ロールについてはクライアントのアプリケーションの目的に対する接続レベルのフィルターとして接続アクセス プロパティも指定できます既定ではアプリケーションの目的と接続アクセスとの組み合わせが無効であると接続が拒否されますSQL Server は次のルールを使用してクライアントの接続要求を振り分ける必要があります

可用性レプリカがプライマリ ロールであり接続アクセスが次のいずれかである場合

すべてのアプリケーションの目的を許可するアプリケーションの目的でクライアント接続をフィルター処理しません

明示的な読み取り書き込みの目的だけを許可するクライアントが読み取り専用を指定している場合接続を拒否します

可用性レプリカがセカンダリ ロールであり接続アクセスが次のいずれかである場合

接続を許可しないすべての接続を拒否しますレプリカは災害復旧だけに使用されます

すべてのアプリケーションの目的を許可するアプリケーションの目的でクライアント接続をフィルター処理しません

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 32

読み取り専用の目的を許可するクライアントが読み取り専用を指定していない場合接続を拒否します

詳細については「可用性レプリカでの読み取り専用アクセスの構成」(httpmsdnmicrosoftcomja-jplibraryhh213002(SQL110)aspx) を参照してください

アプリケーションの目的の読み取り専用ルーティングAlwaysOn 可用性グループの特に優れた点はスタンバイ ハードウェア インフラストラクチャを災害復旧以外の目的に利用できることです1 つ以上のセカンダリ レプリカを読み取り専用でアクセスできるように構成するとプライマリ レプリカからかなりの量のワークロードを軽減できます

読み取り専用セカンダリ レプリカに回すように簡単に調整できるワークロードはレポートデータベース バックアップデータベース整合性チェックインデックスの断片化の分析データ パイプライン抽出運用サポート操作サポートアドホック クエリなどです

各可用性レプリカではSQL Server インスタンスのエンドポイントについて順次的な読み取り専用ルーティング リストを構成することもできますこのリストはレプリカがプライマリ ロールであるときに適用されますこのリストが存在する場合アプリケーションの目的が読み取り専用と指定されているクライアント接続要求はそのリスト内に記載されていて前述のアプリケーションの目的フィルターに適合する最初のセカンダリ レプリカにリダイレクトされます

注 読み取り専用ルーティングによるリダイレクトはプライマリ レプリカにバインドされている可用性グループ リスナーによって実行されますプライマリ レプリカがオフラインの場合クライアントのリダイレクトは機能しません

詳細については「可用性グループの読み取り専用ルーティングの構成 (SQL Server) 」(httpmsdnmicrosoftcomja-jplibraryhh710054(SQL110)aspx) を参照してください

可用性の向上 ndash データベースSQL Server 2012 ではデータベースの構成と機能に関してさまざまな点が強化されています

以下の機能は復旧時間の短縮に役立ちます

予測可能な復旧時間データベースごとにターゲット復旧時間の長さを設定することでバックグラウンドで実行される CHECKPOINT コマンドのスケジュールを制御できますこのコマンドは間接的なチェックポイントとして再起動時またはフェールオーバー時にトランザクション ログの復旧に必要となる時間の推定値に基づいて定期的に実行されますそれによってチェックポイントごとに IO 操作がほぼ均等に配分され復旧時間 (RTO) の予測可能性が高まります

SQL Server 2012 よりも前のバージョンではバックグラウンドの CHECKPOINT コマンドがトランザクションの量や負荷とは無関係に一定間隔で実行されていたので復旧時間を予測することはできませんでした

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 33

詳細については「データベース チェックポイント」(httpmsdnmicrosoftcomja-jplibraryms189573(SQL110)aspx) を参照してください

以下の向上点は計画的なダウンタイムが必要になる一般的な状況を減らすのに役立ちます

LOB 列のオンライン インデックス操作varbinary(max)varchar(max)nvarchar(max)または XML データ型の列が含まれているインデックスをオンラインで再構築または再構成できるようになりました

新しい NOT NULL 列のオンライン スキーマ修正既定値を使用して新しい NOT NULL 列を SQL Server 2012 データベース テーブルに追加する場合システム メタデータの更新にはスキーマ ロックだけが必要ですALTER TABLE ステートメントですべての行にデータを設定する必要はありません

いずれかの行で実際に変更またはインデックスの再作成が行われない限り列の既定値は物理的に格納されませんクエリでは列に実際の値が存在しない場合メタデータから既定値を返します

ストレージのサポート強化の例として次のようなものがあります

ページの自動修復ある種のストレージ サブシステム エラーが発生するとデータ ページが破損し読み取り不可能になる場合がありますAlwaysOn 可用性グループではそのような種類のエラーを検出し自動的に復旧できます復旧のために影響を受けたデータ ページの最新のコピーが別の可用性レプリカから非同期で取得され適用されます

以前のバージョンでもデータベース ミラーリングに同様の機能がありましたが新しい機能では複数のレプリカをサポートできるようになっています

詳細については「ページの自動修復」(httpmsdnmicrosoftcomja-jplibrarybb677167(SQL110)aspx) を参照してください

クライアント接続の推奨事項クライアント アプリケーションが Microsoft SQL Server 2012 AlwaysOn テクノロジの利点を十分に活用できるようにするには次のガイドラインに従います

AlwaysOn 対応のクライアント ライブラリ表形式のデータ ストリーム (TDS) プロトコル Version 74 以降をサポートしているクライアント ライブラリを使用しますこれによってAlwaysOn の機能に対応した適切な機能がクライアント側でも提供されますクライアント ライブラリの例としてはData Provider for SQL Server in NET Framework 402SQL Native Client 110 などがあります

接続プロバイダー プロパティ MultiSubnetFailover = True接続文字列にこのキーワードを使用することでクライアント ライブラリでは(複数のサブネットに IP アドレスを持つ) 可用性グループ リスナーまたは FCI に登録されているすべての IP アドレスに同時に接

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 34

続できるようになります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 35

接続プロバイダー プロパティ ApplicationIntent = ReadOnly必要に応じてプライマリ レプリカの読み取り専用ワークロードをセカンダリ レプリカに移管することができます

レガシ クライアントの接続タイムアウトレガシ クライアントのデータベース ライブラリには並列で接続を試行する機能が実装されていないため複数の IP アドレスがある場合にはTCP タイムアウトに達するか正常に接続できるまで1 つずつ順番に接続を試行します

複数の IP アドレスが存在する場合はタイムアウトと再試行が逐次的に繰り返される可能性に備えてレガシ クライアントの接続タイムアウトを調整する必要があります値は少なくとも 15 秒 + 21 秒 times セカンダリ レプリカ数にします

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 36

結論このホワイト ペーパーではSQL Server 2012 の AlwaysOn による高可用性災害復旧ソリューションを使用し予定されたダウンタイムや予定外のダウンタイムを短縮したりアプリケーションの可用性を最大限に高めたりデータを保護したりする方法について基本的なコンテキストを確立しました

高可用性データベース環境の計画管理測定に関連したビジネス上の目的と課題は多くの場合目標復旧時点 (RPO) と目標復旧時間 (RTO) という形で数量化して表すことができます

SQL Server 2012 AlwaysOn は組織が高可用性や災害復旧に関する一般的な状況に対処するための機能をRPO と RTO を適切に達成できることを念頭にインフラストラクチャ レベルデータ プラットフォーム レベルデータベース レベルのそれぞれで提供します

詳細情報

httpwwwmicrosoftcomja-jpsqlserver2012defaultaspx SQL Server Web サイト

httptechnetmicrosoftcomja-jpsqlserver SQL Server TechCenter

httpmsdnmicrosoftcomja-jpsqlserver SQL Server 開発者向け技術情報

このホワイト ペーパーはお役に立ちましたか フィードバックをお寄せください1 (役に立たなかった) ~ 5 (非常に役に立った) の 5 段階で評価してくださいまたその評価の理由もお知らせください以下に例を示します

評価が高い 例が適切図がわかりやすい説明が明快といったことが理由である 評価が低い 例が少ない図がわかりにくい説明があいまいといったことが理由で

ある

このようなフィードバックをお寄せいただくと今後のホワイト ペーパーの品質向上につながります

フィードバックの送信

loz Version 112012 年 2 月 21 日

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 37

  • 高可用性と災害復旧の概念
    • 高可用性について
      • 予定されたダウンタイムと予定外のダウンタイム
      • 段階的な可用性
        • ダウンタイムの定量化
          • 復旧目標
          • ROI または機会費用の正当化
          • 可用性の健全度の監視
          • 災害復旧の計画
            • 概要 Microsoft SQL Server 2012 での高可用性
              • SQL Server AlwaysOn
              • 計画的なダウンタイムの大幅な削減
              • アイドル状態のハードウェアをなくしてコスト効率とパフォーマンスを向上
              • 簡単な配置と管理
              • RPO と RTO の機能比較
                  • SQL Server AlwaysOn の保護レイヤー
                    • インフラストラクチャの可用性
                      • Windows オペレーティング システム
                        • Windows Server Core インストール オプション
                        • プライベート クラウド用の SQL Server の最適化
                          • Windows Server フェールオーバー クラスタリング
                            • WSFC ストレージ構成
                            • WSFC リソースの正常性の検出とフェールオーバー
                              • WSFC のクラスター検証ウィザード
                              • WSFC クォーラム モードと投票の構成
                                • クォーラムによるクラスター状態検出
                                • クォーラム モード
                                • 投票ノードと非投票ノード
                                • クォーラム投票に推奨される調整
                                  • WSFC の強制クォーラムによる災害復旧
                                    • SQL Server インスタンス レベルでの保護
                                      • 可用性の向上 ndash SQL Server インスタンス
                                      • AlwaysOn フェールオーバー クラスター インスタンス
                                        • FCI のフェールオーバー プロセス
                                        • FCI の強化
                                            • データベースの可用性
                                              • AlwaysOn 可用性グループ
                                                • 可用性レプリカとロール
                                                • 可用性レプリカの同期
                                                  • 可用性グループのフェールオーバー
                                                  • 可用性グループ リスナー
                                                    • アプリケーションの目的によるフィルター処理
                                                    • アプリケーションの目的の読み取り専用ルーティング
                                                      • 可用性の向上 ndash データベース
                                                        • クライアント接続の推奨事項
                                                          • 結論
Page 29: 高可用性と災害復旧の概念download.microsoft.com/download/6/B/E/6BE0C3F3-2991-4766... · Web view高可用性と災害復旧のソリューションのために最適なデータベース

SMB ファイル共有のサポートWindows Server 2008 以降のスタンドアロン用またはフェールオーバー クラスター インスタンス用のリモート ファイル共有にデータベース ファイルを格納することができますこの場合FCI ごとに異なるドライブ文字を使用する必要がありませんこれはストレージを統合する場合やデータベース ファイルのストレージを仮想マシンのゲスト オペレーティング システム用物理サーバーでホストする場合などに便利なオプションです適切に構成すれば直接接続されたストレージとほぼ同等の IO パフォーマンスが得られます

詳細については「ファイル共有上の SQL データベース - シナリオを再検討すべきとき 」(httpblogsmsdncombsqlserverstorageenginearchive20111018sql-databases-on-file-shares-it-s-time-to-reconsider-the-scenarioaspx) を参照してください

注 WSFC クラスターではSMB ファイル共有リソースの依存関係を SQL Server リソース グループに追加することはできませんファイル共有の可用性を確保するには別の方法を用いる必要がありますファイル共有が使用できなくなった場合SQL Server は IO 例外をスローしオフラインになります

WSFC と DNS の相互運用性FCI または可用性グループ リスナーの仮想ネットワーク名 (VNN) はVNN の作成時または構成の変更時にのみDNS に登録されますすべての仮想 IP アドレスはオンライン状態かオフライン状態かに関係なく同じ仮想ネットワーク名で DNS に登録されますDNS の仮想ネットワーク名を解決するためのクライアント呼び出しは各種のラウンド ロビン シーケンスによってすべての登録済み IP アドレスを返します

AlwaysOn フェールオーバー クラスター インスタンスSQL Server の AlwaysOn フェールオーバー クラスター インスタンス (FCI) の主な目的は1 つのデータ センター内のローカル サーバーとストレージ ハードウェアでホストされている SQL Server インスタンスの可用性を高めることです

FCI はWindows Server フェールオーバー クラスタリング (WSFC) のクラスターに含まれる複数のノードにまたがってインストールされる1 つの論理的な SQL Server インスタンスですただし一度に 1 つのノードだけでアクティブになることができますクライアント アプリケーションはアクティブなクラスター ノードが所有している仮想ネットワーク名および仮想 IP アドレスに接続します

FCI をインストールした各ノードは同一の構成を持ち同一の SQL Server バイナリを含んでいますWSFC クラスター サービスはアクティブなインスタンス上にある Windows レジストリのエントリからFCI をインストールした各ノードに関連のある変更をレプリケートしますFCI がインストールされている各ノードはインスタンスとそのリソースの所有者の候補として指定されフェールオーバーの優先順位に従って所有者となります

共有対称ストレージ ボリュームに格納されているデータベース ファイルはリソースとして WSFC クラスターに登録され現在 FCI をホストしているノードによって所有されます

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 24

詳細については「AlwaysOn フェールオーバー クラスター インスタン ス」(httpmsdnmicrosoftcomja-jplibraryms189134(SQL110)aspx) を参照してください

FCI のフェールオーバー プロセス依存しているクラスター リソースで障害が発生した場合AlwaysOn フェールオーバー クラスター インスタンスはWSFC クラスター サービスと連携してフェールオーバーを行いますそのプロセスの概要を以下に示します

1) 再起動が指示されますWSFC の定期的なチェックまたは SQL Server のフェールオーバー ポリシー構成によってエラー状態が示されます既定では他のノードへのフェールオーバーを開始する前にサービスの再起動が試みられます再起動の試みがタイムアウトするようであればリソースの障害が発生しています

2) フェールオーバーが指示されますフェールオーバー ポリシー チェックによってノードのフェールオーバーが必要であることが示されます

3) SQL Server サービスが停止されますSQL Server サービスが現在実行されている場合はその正常なシャットダウンが試みられます

4) WSFC クラスター リソースが転送されますSQL Server クラスター リソース グループの所有権とそれが依存するネットワークおよび共有ストレージ リソースがFCI で次に優先されるノード所有者に転送されます

5) 新しいノードで SQL Server が起動されますSQL Server インスタンスは通常のスタートアップ プロシージャで起動されます所定のタイムアウト時間内にオンラインに戻らない場合クラスター サービスはこの新しいノード上のリソースをエラー状態と見なします

6) 新しいノードでユーザー データベースが復旧されます各ユーザー データベースは復旧モードに設定されます復旧モードではトランザクション ログの再実行操作が適用されコミットされていなかったトランザクションがロールバックされます

FCI の強化以前のバージョンの SQL Server でも FCI のインストール オプションは用意されていましたがSQL Server 2012 では次のような機能強化によって可用性の堅牢性と利便性が向上しました

マルチサブネット クラスタリングSQL Server 2012 では複数のサブネットに存在する WSFC クラスター ノードがサポートされていますWSFC クラスター ノードに存在する SQL Server インスタンスはいずれかのネットワーク インターフェイスが使用可能であれば起動できますこれはクラスター リソースの OR 依存関係と呼ばれます

以前のバージョンの SQL Server の場合SQL Server サービスを起動またはフェールオーバーするにはすべてのネットワーク インターフェイスが機能しそれらがすべて同じサブネットまたは VLAN に存在している必要がありました

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 25

注 マルチサブネット クラスタリングではクラスター ノード間のストレージ レベルのレプリケーションが自動的には有効になりませんマルチサブネットの FCI ソリューションでクラスター ノード間でデータのレプリケーションを行いストレージ フェールオーバーを調整するためにはサード パーティから提供される SAN ベースのソリューションを利用する必要があります

詳細については「SQL Server 2012 AlwaysOn マルチサイト フェールオーバー クラスター インスタンス」(httpsqlcatcomsqlcatbwhitepapersarchive20111222sql-server-2012-alwayson_3a00_-multisite-failover-cluster-instanceaspx) を参照してください

信頼性の高いエラー検出WSFC クラスター サービスではノードの各 SQL Server 2012 FCI に対してそれぞれ専用の管理者接続が維持されますこの接続では特殊なシステム ストアド プロシージャ sp_server_diagnostics を定期的に呼び出すことでシステムの正常性診断に役立つ豊富な情報を含む配列が返されます

SQL Server 2012 よりも前のバージョンではFCI の主な正常性検出メカニズムは単純な一方向のポーリング プロセスとして実装されていましたこのプロセスではWSFC クラスター サービスがインスタンスへの新しい SQL クライアント接続を定期的に作成しサーバー名を照会した後で接続を切断していました何かの理由で接続が失敗するかクエリがタイムアウトした場合フェールオーバーが開始されますが診断情報はほとんど提供されません

詳細については「sql_server_diagnostics」(httpmsdnmicrosoftcomja-jplibraryff878233(SQL110)aspx) を参照してください

現在ではFCI ストレージが次のように幅広い状況でサポートされています

向上したマウント ポイント サポートSQL Server のセットアップ時にクラスター ディスクのマウント ポイント設定が認識されるようになりました指定されたクラスター ディスクとそれにマウントされているすべてのディスクがセットアップ時に SQL Server リソースの依存関係に自動的に追加されます

ローカル ストレージの tempdbFCI ではローカルの非共有ストレージ (ローカル ソリッド ステート ドライブなど) に tempdb を配置できるようになったため共有 SAN での IO 動作の負荷を大幅に軽減できる可能性があります

SQL Server 2012 よりも前のバージョンの FCI ではtempdb が他のシステム データベースと共にフェールオーバーされる対称共有ストレージ ボリュームに配置される必要がありました

注 tempdb の場所はmaster データベースに格納されますこのデータベースはフェールオーバー時にノード間で移動されますtempdb は所有者候補となっているすべてのノード上で有効で対称的なファイル パス (ドライブフォルダーおよび権限) に配置されている必要がありますそうなっていない場合SQL Server サービスが一部のノードでは起動されません

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 26

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 27

データベースの可用性インフラストラクチャ レベルおよび SQL Server インスタンス レベルのコンポーネントで提供されている高可用性機能は互いに連係してホストされているデータベースを暗黙的に保護しますAlwaysOn ソリューションではデータベースのデータおよびデータ層アプリケーションを明示的に保護するために一連のオプションが追加で用意されています

AlwaysOn 可用性グループ可用性グループは1 つの SQL Server インスタンスから同じ WSFC クラスター内の別のインスタンスへと同時にフェールオーバーされるユーザー データベースのセットですクライアント アプリケーションは可用性グループ リスナーと呼ばれる WSFC 仮想ネットワーク名を通じて可用性グループのデータベースに接続できますこうすることで基になる SQL Server インスタンスが抽象化されます

AlwaysOn 可用性グループは正常性監視フェールオーバーの調整およびサーバー接続を Windows Server フェールオーバー クラスタリングに依存していますWSFC クラスター ノード上の SQL Server インスタンスでAlwaysOn サポートを有効にする必要がありますただしそのインスタンスが FCI である必要はなく対称共有ストレージを使用する必要もありません

詳細については「AlwaysOn 可用性グループの概要 」(httpmsdnmicrosoftcomja-jplibraryff877884(SQL110)aspx) を参照してください

可用性レプリカとロール可用性グループの各 SQL Server インスタンスは可用性グループのユーザー データベースのコピーを保持している可用性レプリカをホストしますSQL Server インスタンスは特定の可用性グループの可用性レプリカを 1 つだけホストすることができますが複数の可用性グループを同じインスタンスに置くことは可能ですSQL Server インスタンスは専用の (非共有) ストレージ ボリュームを持つ必要があります

可用性レプリカの 1 つがプライマリ レプリカの役割を果たしますこれは可用性グループ データベースのマスター コピーとして指定されていて読み取り書き込み操作を行うことができます

可用性グループには読み取り専用の可用性レプリカを最大 4 つまで追加で含めることができますこれらは個別にセカンダリ レプリカの役割を果たします

可用性レプリカの同期可用性グループの各データベースの内容はSQL Server によるログ ベースのデータ移動メカニズムを通じてプライマリ レプリカから各セカンダリ レプリカに同期されますそのため可用性グループのすべてのデータベースは完全復旧モデルに設定する必要があります

セカンダリ レプリカはプライマリ レプリカのデータベースとトランザクション ログの完全なバックアップと復元によって初期化されますプライマリ レプリカで新しいトランザクションがコミットされるとトランザクション ログの対応する部分がキャッシュされ

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 28

キューに入れられてネットワーク経由でセカンダリ レプリカ ノード上のデータベース ミラーリング エンドポイントに送信されます

この方法によりプライマリ レプリカのトランザクション ログの新しいエントリが各セカンダリ レプリカのトランザクション ログに追加されます各セカンダリ レプリカはログ シーケンス番号 (LSN) をプライマリ レプリカに定期的に送り返しトランザクション ログのどのくらいの量がリモート ディスクに書き込まれフラッシュされたかを示します

注 各可用性レプリカはそれぞれ独自に独立したトランザクション ログ再実行スレッドのセットを保持していますこれは可用性レプリカの同期プロセスには含まれませんセカンダリ レプリカ上ではログ再実行プロセスによって遅延時間が生じるためユーザーはそれをデータの待機時間として感じる場合があります

プライマリまたはセカンダリの役割を果たす他に各可用性レプリカには可用性モードもありますこのモードは次のようにCOMMIT TRAN ステートメントの実行時にトランザクション ログの書き込みの連係を制御します

同期コミット モードすべての同期コミット セカンダリ レプリカからそれぞれ独自のトランザクション ログの書き込み完了 (LSN 以降) が通知されるまでプライマリ レプリカはそのトランザクションをコミットしません可用性グループでは最大で 2 つの同期コミット セカンダリ レプリカを使用できます

同期コミット モードではプライマリ レプリカ データベースでトランザクションの遅延が生じますがコミットされたトランザクションに対するセカンダリ レプリカでのデータ損失を確実に防ぐことができます

非同期コミット モードプライマリ レプリカはローカル トランザクション ログの書き込み後にトランザクションをコミットしますが非同期コミット セカンダリ レプリカからトランザクション ログの書き込み完了通知を待つことはしません可用性グループでは最大で 4 つの非同期コミット セカンダリ レプリカを使用できますただし両方の種類を合わせて使用できるセカンダリ レプリカの合計は最大 4 つです

非同期コミット モードではプライマリ レプリカ データベースで生じるトランザクションの遅延が最小になりますがセカンダリ レプリカでのトランザクション ログが遅れる場合があるため一部のデータが失われる可能性があります

詳細については「可用性モード」(httpmsdnmicrosoftcomja-jplibraryff877931(SQL110)aspx) を参照してください

可用性レプリカ間のデータ フローの全体的な正常性は各レプリカの同期状態によって示されますセカンダリ レプリカにフェールオーバーしたときに同期状態が 同期済み または 同期中 になっていなければほとんどの場合はデータ損失が発生することになります

各セカンダリ レプリカの同期ストリームにはセッション タイムアウト プロパティがあります同期コミット モードに構成されているセカンダリ レプリカがセッション タイムアウトでエラーになると内部的には一時的に非同期としてマークされますこれはセカンダ

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 29

リ レプリカのエラーがプライマリ レプリカでのトランザクション ログの書き込みに影響しないようにするためですそのセカンダリ レプリカが正常に戻ってプライマリ レプリカの状態に追いつくと自動的に通常の同期コミット モード動作に戻されます

可用性グループのフェールオーバー可用性グループとそれに対応する仮想ネットワーク名はWSFC クラスターのリソースとして登録されます可用性グループはプライマリ レプリカの正常性とフェールオーバー ポリシーに基づいて可用性レプリカのレベルでフェールオーバーを行います

可用性グループのフェールオーバー ポリシーではsp_server_diagnostics システム ストアド プロシージャと FailureConditionLevel プロパティを使用して可用性グループに対して許容されるエラーの重大度のレベルを示しますこの同じメカニズムがFCI のフェールオーバー ポリシーにも使用されます

フェールオーバーが発生した場合は共有物理リソースの所有権を他のノードに移す代わりにWSFC を利用して他の SQL Server インスタンス上でセカンダリ レプリカを再構成しプライマリ レプリカの役割を引き継がせますその後可用性グループの仮想ネットワーク名リソースがそのインスタンスに転送されます関連する可用性レプリカへのすべてのクライアント接続がリセットされます

レプリカの現在の正常性同期状態および可用性モードに基づいて各レプリカには複合的な フェールオーバーの準備 状態が定義されますこの状態の値はデータ損失の可能性を示していますレプリカの正常性情報はAlwaysOn ダッシュボードまたは sysdm_hadr_availability_replica_states システム ビューで確認できます

各可用性レプリカにはフェールオーバー モードも構成されていますこのモードはフェールオーバーが指示された場合にレプリカの動作を制御します

自動フェールオーバー (データ損失なし)セカンダリ レプリカのトランザクション ログが既に書き込まれ同期されているのですべての AlwaysOn 構成の中でフェールオーバー時間が最短になりますプライマリ レプリカ上の開かれているトランザクションはロールバックされプライマリ レプリカの役割はユーザーによる操作なしでセカンダリ レプリカに転送されます

この場合プライマリ レプリカとセカンダリ レプリカの両方を自動フェールオーバー モードに設定し両方の可用性モードを同期コミットに設定する必要がありますレプリカ間の同期状態は同期済み である必要がありますまたWSFC クラスターは正常なクォーラム状態になっている必要があります

自動フェールオーバーはプライマリ レプリカまたはセカンダリ レプリカが FCI 上にある場合はサポートされませんこれは可用性グループと FCI のフェールオーバー間で競合状態が発生することを防ぐためです

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 30

手動フェールオーバーこの場合管理者はプライマリ レプリカの状態を評価してセカンダリ レプリカにフェールオーバーするかどうかを慎重に判断できます

可用性モードと同期状態に応じて次のような選択が可能です

o 計画的な手動フェールオーバー (データ損失なし)この種類のフェールオーバーを実行できるのはプライマリ レプリカとセカンダリ レプリカの両方が正常で同期済み 状態である場合だけですこれは機能的には自動フェールオーバーと同じです

o 強制手動フェールオーバー (データ損失の可能性を許容)これは対象のセカンダリ レプリカの可用性モードが非同期コミットである場合またはプライマリ レプリカに同期されない場合に使用できる唯一のフェールオーバー形式です

警告 このフェールオーバー オプションは災害復旧の状況に限って使用する必要がありますプライマリ レプリカが正常で使用可能である場合は関連する各レプリカの可用性モードを同期コミットに変更し計画的な手動フェールオーバーを実行してください

詳細については「可用性グループの強制手動フェールオーバーの実行」(httpmsdnmicrosoftcomja-jplibraryff877957(SQL110)aspx) を参照してください

フェールオーバー対象のプライマリ レプリカまたはセカンダリ レプリカが次の条件のいずれかに該当する場合は手動フェールオーバーを実行する必要があります

フェールオーバー モードが手動に設定されている 可用性モードが非同期コミットに設定されている レプリカが FCI 上にある

詳細については「フェールオーバーとフェールオーバー モード (AlwaysOn 可用性グルー プ ) 」(httpmsdnmicrosoftcomja-jplibraryhh213151(SQL110)aspx) を参照してください

注 フェールオーバー後新しいプライマリ レプリカが同期コミット モードに設定されていない場合セカンダリ レプリカの同期状態は 中断状態 になりますプライマリ レプリカが同期コミット モードに設定されるまでデータはセカンダリ レプリカに移動されません

可用性グループ リスナー可用性グループ リスナーはクライアントが可用性グループ内のデータベースにアクセスするために使用できる WSFC 仮想ネットワーク名 (VNN) ですVNN クラスター リソースはプライマリ レプリカをホストしている SQL Server インスタンスによって所有されます

仮想ネットワーク名は可用性グループ リスナーの作成時または構成の変更時にのみDNS に登録されます可用性グループ リスナーで定義されているすべての仮想 IP アドレスは同じ仮想ネットワーク名で DNS に登録されます

可用性グループ リスナーを使用する場合クライアント接続要求ではサーバーとして仮想ネットワーク名を指定してから可用性グループ内のデータベース名を指定する必要があり

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 31

ます既定ではこれによってプライマリ レプリカをホストしている SQL Server インスタンスに接続されます

実行時にはクライアントはローカルの DNS リゾルバーを使用して仮想ネットワーク名にマップされている IP アドレスと TCP ポートの一覧を取得しますクライアントは各 IP アドレスへの接続を成功するか接続タイムアウトに達するまで試し続けますMultiSubnetFailover パラメーターが true に設定されているとクライアントは複数の接続を同時に試行するのでクライアント フェールオーバーが大幅に速くなります

フェールオーバーが行われるとサーバー上でクライアント接続がリセットされ可用性グループ リスナーの所有権はプライマリ レプリカの役割と共に新しい SQL Server インスタンスに移動しVNN エンドポイントは新しいインスタンスの仮想 IP アドレスと TCP ポートにバインドされます

詳細については「可用性グループ リスナークライアント接続およびアプリケーションのフェールオーバー」(httpmsdnmicrosoftcomja-jplibraryhh213417(SQL110)aspx) を参照してください

アプリケーションの目的によるフィルター処理可用性グループ リスナーを使用して接続している場合アプリケーションは接続の目的がデータの読み取りと書き込みの両方なのか読み取り専用操作を実行するだけなのかを指定できます指定しない場合クライアントのアプリケーションの目的は既定で読み取りと書き込みになります

各可用性レプリカのプライマリ ロールとセカンダリ ロールについてはクライアントのアプリケーションの目的に対する接続レベルのフィルターとして接続アクセス プロパティも指定できます既定ではアプリケーションの目的と接続アクセスとの組み合わせが無効であると接続が拒否されますSQL Server は次のルールを使用してクライアントの接続要求を振り分ける必要があります

可用性レプリカがプライマリ ロールであり接続アクセスが次のいずれかである場合

すべてのアプリケーションの目的を許可するアプリケーションの目的でクライアント接続をフィルター処理しません

明示的な読み取り書き込みの目的だけを許可するクライアントが読み取り専用を指定している場合接続を拒否します

可用性レプリカがセカンダリ ロールであり接続アクセスが次のいずれかである場合

接続を許可しないすべての接続を拒否しますレプリカは災害復旧だけに使用されます

すべてのアプリケーションの目的を許可するアプリケーションの目的でクライアント接続をフィルター処理しません

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 32

読み取り専用の目的を許可するクライアントが読み取り専用を指定していない場合接続を拒否します

詳細については「可用性レプリカでの読み取り専用アクセスの構成」(httpmsdnmicrosoftcomja-jplibraryhh213002(SQL110)aspx) を参照してください

アプリケーションの目的の読み取り専用ルーティングAlwaysOn 可用性グループの特に優れた点はスタンバイ ハードウェア インフラストラクチャを災害復旧以外の目的に利用できることです1 つ以上のセカンダリ レプリカを読み取り専用でアクセスできるように構成するとプライマリ レプリカからかなりの量のワークロードを軽減できます

読み取り専用セカンダリ レプリカに回すように簡単に調整できるワークロードはレポートデータベース バックアップデータベース整合性チェックインデックスの断片化の分析データ パイプライン抽出運用サポート操作サポートアドホック クエリなどです

各可用性レプリカではSQL Server インスタンスのエンドポイントについて順次的な読み取り専用ルーティング リストを構成することもできますこのリストはレプリカがプライマリ ロールであるときに適用されますこのリストが存在する場合アプリケーションの目的が読み取り専用と指定されているクライアント接続要求はそのリスト内に記載されていて前述のアプリケーションの目的フィルターに適合する最初のセカンダリ レプリカにリダイレクトされます

注 読み取り専用ルーティングによるリダイレクトはプライマリ レプリカにバインドされている可用性グループ リスナーによって実行されますプライマリ レプリカがオフラインの場合クライアントのリダイレクトは機能しません

詳細については「可用性グループの読み取り専用ルーティングの構成 (SQL Server) 」(httpmsdnmicrosoftcomja-jplibraryhh710054(SQL110)aspx) を参照してください

可用性の向上 ndash データベースSQL Server 2012 ではデータベースの構成と機能に関してさまざまな点が強化されています

以下の機能は復旧時間の短縮に役立ちます

予測可能な復旧時間データベースごとにターゲット復旧時間の長さを設定することでバックグラウンドで実行される CHECKPOINT コマンドのスケジュールを制御できますこのコマンドは間接的なチェックポイントとして再起動時またはフェールオーバー時にトランザクション ログの復旧に必要となる時間の推定値に基づいて定期的に実行されますそれによってチェックポイントごとに IO 操作がほぼ均等に配分され復旧時間 (RTO) の予測可能性が高まります

SQL Server 2012 よりも前のバージョンではバックグラウンドの CHECKPOINT コマンドがトランザクションの量や負荷とは無関係に一定間隔で実行されていたので復旧時間を予測することはできませんでした

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 33

詳細については「データベース チェックポイント」(httpmsdnmicrosoftcomja-jplibraryms189573(SQL110)aspx) を参照してください

以下の向上点は計画的なダウンタイムが必要になる一般的な状況を減らすのに役立ちます

LOB 列のオンライン インデックス操作varbinary(max)varchar(max)nvarchar(max)または XML データ型の列が含まれているインデックスをオンラインで再構築または再構成できるようになりました

新しい NOT NULL 列のオンライン スキーマ修正既定値を使用して新しい NOT NULL 列を SQL Server 2012 データベース テーブルに追加する場合システム メタデータの更新にはスキーマ ロックだけが必要ですALTER TABLE ステートメントですべての行にデータを設定する必要はありません

いずれかの行で実際に変更またはインデックスの再作成が行われない限り列の既定値は物理的に格納されませんクエリでは列に実際の値が存在しない場合メタデータから既定値を返します

ストレージのサポート強化の例として次のようなものがあります

ページの自動修復ある種のストレージ サブシステム エラーが発生するとデータ ページが破損し読み取り不可能になる場合がありますAlwaysOn 可用性グループではそのような種類のエラーを検出し自動的に復旧できます復旧のために影響を受けたデータ ページの最新のコピーが別の可用性レプリカから非同期で取得され適用されます

以前のバージョンでもデータベース ミラーリングに同様の機能がありましたが新しい機能では複数のレプリカをサポートできるようになっています

詳細については「ページの自動修復」(httpmsdnmicrosoftcomja-jplibrarybb677167(SQL110)aspx) を参照してください

クライアント接続の推奨事項クライアント アプリケーションが Microsoft SQL Server 2012 AlwaysOn テクノロジの利点を十分に活用できるようにするには次のガイドラインに従います

AlwaysOn 対応のクライアント ライブラリ表形式のデータ ストリーム (TDS) プロトコル Version 74 以降をサポートしているクライアント ライブラリを使用しますこれによってAlwaysOn の機能に対応した適切な機能がクライアント側でも提供されますクライアント ライブラリの例としてはData Provider for SQL Server in NET Framework 402SQL Native Client 110 などがあります

接続プロバイダー プロパティ MultiSubnetFailover = True接続文字列にこのキーワードを使用することでクライアント ライブラリでは(複数のサブネットに IP アドレスを持つ) 可用性グループ リスナーまたは FCI に登録されているすべての IP アドレスに同時に接

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 34

続できるようになります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 35

接続プロバイダー プロパティ ApplicationIntent = ReadOnly必要に応じてプライマリ レプリカの読み取り専用ワークロードをセカンダリ レプリカに移管することができます

レガシ クライアントの接続タイムアウトレガシ クライアントのデータベース ライブラリには並列で接続を試行する機能が実装されていないため複数の IP アドレスがある場合にはTCP タイムアウトに達するか正常に接続できるまで1 つずつ順番に接続を試行します

複数の IP アドレスが存在する場合はタイムアウトと再試行が逐次的に繰り返される可能性に備えてレガシ クライアントの接続タイムアウトを調整する必要があります値は少なくとも 15 秒 + 21 秒 times セカンダリ レプリカ数にします

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 36

結論このホワイト ペーパーではSQL Server 2012 の AlwaysOn による高可用性災害復旧ソリューションを使用し予定されたダウンタイムや予定外のダウンタイムを短縮したりアプリケーションの可用性を最大限に高めたりデータを保護したりする方法について基本的なコンテキストを確立しました

高可用性データベース環境の計画管理測定に関連したビジネス上の目的と課題は多くの場合目標復旧時点 (RPO) と目標復旧時間 (RTO) という形で数量化して表すことができます

SQL Server 2012 AlwaysOn は組織が高可用性や災害復旧に関する一般的な状況に対処するための機能をRPO と RTO を適切に達成できることを念頭にインフラストラクチャ レベルデータ プラットフォーム レベルデータベース レベルのそれぞれで提供します

詳細情報

httpwwwmicrosoftcomja-jpsqlserver2012defaultaspx SQL Server Web サイト

httptechnetmicrosoftcomja-jpsqlserver SQL Server TechCenter

httpmsdnmicrosoftcomja-jpsqlserver SQL Server 開発者向け技術情報

このホワイト ペーパーはお役に立ちましたか フィードバックをお寄せください1 (役に立たなかった) ~ 5 (非常に役に立った) の 5 段階で評価してくださいまたその評価の理由もお知らせください以下に例を示します

評価が高い 例が適切図がわかりやすい説明が明快といったことが理由である 評価が低い 例が少ない図がわかりにくい説明があいまいといったことが理由で

ある

このようなフィードバックをお寄せいただくと今後のホワイト ペーパーの品質向上につながります

フィードバックの送信

loz Version 112012 年 2 月 21 日

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 37

  • 高可用性と災害復旧の概念
    • 高可用性について
      • 予定されたダウンタイムと予定外のダウンタイム
      • 段階的な可用性
        • ダウンタイムの定量化
          • 復旧目標
          • ROI または機会費用の正当化
          • 可用性の健全度の監視
          • 災害復旧の計画
            • 概要 Microsoft SQL Server 2012 での高可用性
              • SQL Server AlwaysOn
              • 計画的なダウンタイムの大幅な削減
              • アイドル状態のハードウェアをなくしてコスト効率とパフォーマンスを向上
              • 簡単な配置と管理
              • RPO と RTO の機能比較
                  • SQL Server AlwaysOn の保護レイヤー
                    • インフラストラクチャの可用性
                      • Windows オペレーティング システム
                        • Windows Server Core インストール オプション
                        • プライベート クラウド用の SQL Server の最適化
                          • Windows Server フェールオーバー クラスタリング
                            • WSFC ストレージ構成
                            • WSFC リソースの正常性の検出とフェールオーバー
                              • WSFC のクラスター検証ウィザード
                              • WSFC クォーラム モードと投票の構成
                                • クォーラムによるクラスター状態検出
                                • クォーラム モード
                                • 投票ノードと非投票ノード
                                • クォーラム投票に推奨される調整
                                  • WSFC の強制クォーラムによる災害復旧
                                    • SQL Server インスタンス レベルでの保護
                                      • 可用性の向上 ndash SQL Server インスタンス
                                      • AlwaysOn フェールオーバー クラスター インスタンス
                                        • FCI のフェールオーバー プロセス
                                        • FCI の強化
                                            • データベースの可用性
                                              • AlwaysOn 可用性グループ
                                                • 可用性レプリカとロール
                                                • 可用性レプリカの同期
                                                  • 可用性グループのフェールオーバー
                                                  • 可用性グループ リスナー
                                                    • アプリケーションの目的によるフィルター処理
                                                    • アプリケーションの目的の読み取り専用ルーティング
                                                      • 可用性の向上 ndash データベース
                                                        • クライアント接続の推奨事項
                                                          • 結論
Page 30: 高可用性と災害復旧の概念download.microsoft.com/download/6/B/E/6BE0C3F3-2991-4766... · Web view高可用性と災害復旧のソリューションのために最適なデータベース

詳細については「AlwaysOn フェールオーバー クラスター インスタン ス」(httpmsdnmicrosoftcomja-jplibraryms189134(SQL110)aspx) を参照してください

FCI のフェールオーバー プロセス依存しているクラスター リソースで障害が発生した場合AlwaysOn フェールオーバー クラスター インスタンスはWSFC クラスター サービスと連携してフェールオーバーを行いますそのプロセスの概要を以下に示します

1) 再起動が指示されますWSFC の定期的なチェックまたは SQL Server のフェールオーバー ポリシー構成によってエラー状態が示されます既定では他のノードへのフェールオーバーを開始する前にサービスの再起動が試みられます再起動の試みがタイムアウトするようであればリソースの障害が発生しています

2) フェールオーバーが指示されますフェールオーバー ポリシー チェックによってノードのフェールオーバーが必要であることが示されます

3) SQL Server サービスが停止されますSQL Server サービスが現在実行されている場合はその正常なシャットダウンが試みられます

4) WSFC クラスター リソースが転送されますSQL Server クラスター リソース グループの所有権とそれが依存するネットワークおよび共有ストレージ リソースがFCI で次に優先されるノード所有者に転送されます

5) 新しいノードで SQL Server が起動されますSQL Server インスタンスは通常のスタートアップ プロシージャで起動されます所定のタイムアウト時間内にオンラインに戻らない場合クラスター サービスはこの新しいノード上のリソースをエラー状態と見なします

6) 新しいノードでユーザー データベースが復旧されます各ユーザー データベースは復旧モードに設定されます復旧モードではトランザクション ログの再実行操作が適用されコミットされていなかったトランザクションがロールバックされます

FCI の強化以前のバージョンの SQL Server でも FCI のインストール オプションは用意されていましたがSQL Server 2012 では次のような機能強化によって可用性の堅牢性と利便性が向上しました

マルチサブネット クラスタリングSQL Server 2012 では複数のサブネットに存在する WSFC クラスター ノードがサポートされていますWSFC クラスター ノードに存在する SQL Server インスタンスはいずれかのネットワーク インターフェイスが使用可能であれば起動できますこれはクラスター リソースの OR 依存関係と呼ばれます

以前のバージョンの SQL Server の場合SQL Server サービスを起動またはフェールオーバーするにはすべてのネットワーク インターフェイスが機能しそれらがすべて同じサブネットまたは VLAN に存在している必要がありました

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 25

注 マルチサブネット クラスタリングではクラスター ノード間のストレージ レベルのレプリケーションが自動的には有効になりませんマルチサブネットの FCI ソリューションでクラスター ノード間でデータのレプリケーションを行いストレージ フェールオーバーを調整するためにはサード パーティから提供される SAN ベースのソリューションを利用する必要があります

詳細については「SQL Server 2012 AlwaysOn マルチサイト フェールオーバー クラスター インスタンス」(httpsqlcatcomsqlcatbwhitepapersarchive20111222sql-server-2012-alwayson_3a00_-multisite-failover-cluster-instanceaspx) を参照してください

信頼性の高いエラー検出WSFC クラスター サービスではノードの各 SQL Server 2012 FCI に対してそれぞれ専用の管理者接続が維持されますこの接続では特殊なシステム ストアド プロシージャ sp_server_diagnostics を定期的に呼び出すことでシステムの正常性診断に役立つ豊富な情報を含む配列が返されます

SQL Server 2012 よりも前のバージョンではFCI の主な正常性検出メカニズムは単純な一方向のポーリング プロセスとして実装されていましたこのプロセスではWSFC クラスター サービスがインスタンスへの新しい SQL クライアント接続を定期的に作成しサーバー名を照会した後で接続を切断していました何かの理由で接続が失敗するかクエリがタイムアウトした場合フェールオーバーが開始されますが診断情報はほとんど提供されません

詳細については「sql_server_diagnostics」(httpmsdnmicrosoftcomja-jplibraryff878233(SQL110)aspx) を参照してください

現在ではFCI ストレージが次のように幅広い状況でサポートされています

向上したマウント ポイント サポートSQL Server のセットアップ時にクラスター ディスクのマウント ポイント設定が認識されるようになりました指定されたクラスター ディスクとそれにマウントされているすべてのディスクがセットアップ時に SQL Server リソースの依存関係に自動的に追加されます

ローカル ストレージの tempdbFCI ではローカルの非共有ストレージ (ローカル ソリッド ステート ドライブなど) に tempdb を配置できるようになったため共有 SAN での IO 動作の負荷を大幅に軽減できる可能性があります

SQL Server 2012 よりも前のバージョンの FCI ではtempdb が他のシステム データベースと共にフェールオーバーされる対称共有ストレージ ボリュームに配置される必要がありました

注 tempdb の場所はmaster データベースに格納されますこのデータベースはフェールオーバー時にノード間で移動されますtempdb は所有者候補となっているすべてのノード上で有効で対称的なファイル パス (ドライブフォルダーおよび権限) に配置されている必要がありますそうなっていない場合SQL Server サービスが一部のノードでは起動されません

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 26

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 27

データベースの可用性インフラストラクチャ レベルおよび SQL Server インスタンス レベルのコンポーネントで提供されている高可用性機能は互いに連係してホストされているデータベースを暗黙的に保護しますAlwaysOn ソリューションではデータベースのデータおよびデータ層アプリケーションを明示的に保護するために一連のオプションが追加で用意されています

AlwaysOn 可用性グループ可用性グループは1 つの SQL Server インスタンスから同じ WSFC クラスター内の別のインスタンスへと同時にフェールオーバーされるユーザー データベースのセットですクライアント アプリケーションは可用性グループ リスナーと呼ばれる WSFC 仮想ネットワーク名を通じて可用性グループのデータベースに接続できますこうすることで基になる SQL Server インスタンスが抽象化されます

AlwaysOn 可用性グループは正常性監視フェールオーバーの調整およびサーバー接続を Windows Server フェールオーバー クラスタリングに依存していますWSFC クラスター ノード上の SQL Server インスタンスでAlwaysOn サポートを有効にする必要がありますただしそのインスタンスが FCI である必要はなく対称共有ストレージを使用する必要もありません

詳細については「AlwaysOn 可用性グループの概要 」(httpmsdnmicrosoftcomja-jplibraryff877884(SQL110)aspx) を参照してください

可用性レプリカとロール可用性グループの各 SQL Server インスタンスは可用性グループのユーザー データベースのコピーを保持している可用性レプリカをホストしますSQL Server インスタンスは特定の可用性グループの可用性レプリカを 1 つだけホストすることができますが複数の可用性グループを同じインスタンスに置くことは可能ですSQL Server インスタンスは専用の (非共有) ストレージ ボリュームを持つ必要があります

可用性レプリカの 1 つがプライマリ レプリカの役割を果たしますこれは可用性グループ データベースのマスター コピーとして指定されていて読み取り書き込み操作を行うことができます

可用性グループには読み取り専用の可用性レプリカを最大 4 つまで追加で含めることができますこれらは個別にセカンダリ レプリカの役割を果たします

可用性レプリカの同期可用性グループの各データベースの内容はSQL Server によるログ ベースのデータ移動メカニズムを通じてプライマリ レプリカから各セカンダリ レプリカに同期されますそのため可用性グループのすべてのデータベースは完全復旧モデルに設定する必要があります

セカンダリ レプリカはプライマリ レプリカのデータベースとトランザクション ログの完全なバックアップと復元によって初期化されますプライマリ レプリカで新しいトランザクションがコミットされるとトランザクション ログの対応する部分がキャッシュされ

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 28

キューに入れられてネットワーク経由でセカンダリ レプリカ ノード上のデータベース ミラーリング エンドポイントに送信されます

この方法によりプライマリ レプリカのトランザクション ログの新しいエントリが各セカンダリ レプリカのトランザクション ログに追加されます各セカンダリ レプリカはログ シーケンス番号 (LSN) をプライマリ レプリカに定期的に送り返しトランザクション ログのどのくらいの量がリモート ディスクに書き込まれフラッシュされたかを示します

注 各可用性レプリカはそれぞれ独自に独立したトランザクション ログ再実行スレッドのセットを保持していますこれは可用性レプリカの同期プロセスには含まれませんセカンダリ レプリカ上ではログ再実行プロセスによって遅延時間が生じるためユーザーはそれをデータの待機時間として感じる場合があります

プライマリまたはセカンダリの役割を果たす他に各可用性レプリカには可用性モードもありますこのモードは次のようにCOMMIT TRAN ステートメントの実行時にトランザクション ログの書き込みの連係を制御します

同期コミット モードすべての同期コミット セカンダリ レプリカからそれぞれ独自のトランザクション ログの書き込み完了 (LSN 以降) が通知されるまでプライマリ レプリカはそのトランザクションをコミットしません可用性グループでは最大で 2 つの同期コミット セカンダリ レプリカを使用できます

同期コミット モードではプライマリ レプリカ データベースでトランザクションの遅延が生じますがコミットされたトランザクションに対するセカンダリ レプリカでのデータ損失を確実に防ぐことができます

非同期コミット モードプライマリ レプリカはローカル トランザクション ログの書き込み後にトランザクションをコミットしますが非同期コミット セカンダリ レプリカからトランザクション ログの書き込み完了通知を待つことはしません可用性グループでは最大で 4 つの非同期コミット セカンダリ レプリカを使用できますただし両方の種類を合わせて使用できるセカンダリ レプリカの合計は最大 4 つです

非同期コミット モードではプライマリ レプリカ データベースで生じるトランザクションの遅延が最小になりますがセカンダリ レプリカでのトランザクション ログが遅れる場合があるため一部のデータが失われる可能性があります

詳細については「可用性モード」(httpmsdnmicrosoftcomja-jplibraryff877931(SQL110)aspx) を参照してください

可用性レプリカ間のデータ フローの全体的な正常性は各レプリカの同期状態によって示されますセカンダリ レプリカにフェールオーバーしたときに同期状態が 同期済み または 同期中 になっていなければほとんどの場合はデータ損失が発生することになります

各セカンダリ レプリカの同期ストリームにはセッション タイムアウト プロパティがあります同期コミット モードに構成されているセカンダリ レプリカがセッション タイムアウトでエラーになると内部的には一時的に非同期としてマークされますこれはセカンダ

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 29

リ レプリカのエラーがプライマリ レプリカでのトランザクション ログの書き込みに影響しないようにするためですそのセカンダリ レプリカが正常に戻ってプライマリ レプリカの状態に追いつくと自動的に通常の同期コミット モード動作に戻されます

可用性グループのフェールオーバー可用性グループとそれに対応する仮想ネットワーク名はWSFC クラスターのリソースとして登録されます可用性グループはプライマリ レプリカの正常性とフェールオーバー ポリシーに基づいて可用性レプリカのレベルでフェールオーバーを行います

可用性グループのフェールオーバー ポリシーではsp_server_diagnostics システム ストアド プロシージャと FailureConditionLevel プロパティを使用して可用性グループに対して許容されるエラーの重大度のレベルを示しますこの同じメカニズムがFCI のフェールオーバー ポリシーにも使用されます

フェールオーバーが発生した場合は共有物理リソースの所有権を他のノードに移す代わりにWSFC を利用して他の SQL Server インスタンス上でセカンダリ レプリカを再構成しプライマリ レプリカの役割を引き継がせますその後可用性グループの仮想ネットワーク名リソースがそのインスタンスに転送されます関連する可用性レプリカへのすべてのクライアント接続がリセットされます

レプリカの現在の正常性同期状態および可用性モードに基づいて各レプリカには複合的な フェールオーバーの準備 状態が定義されますこの状態の値はデータ損失の可能性を示していますレプリカの正常性情報はAlwaysOn ダッシュボードまたは sysdm_hadr_availability_replica_states システム ビューで確認できます

各可用性レプリカにはフェールオーバー モードも構成されていますこのモードはフェールオーバーが指示された場合にレプリカの動作を制御します

自動フェールオーバー (データ損失なし)セカンダリ レプリカのトランザクション ログが既に書き込まれ同期されているのですべての AlwaysOn 構成の中でフェールオーバー時間が最短になりますプライマリ レプリカ上の開かれているトランザクションはロールバックされプライマリ レプリカの役割はユーザーによる操作なしでセカンダリ レプリカに転送されます

この場合プライマリ レプリカとセカンダリ レプリカの両方を自動フェールオーバー モードに設定し両方の可用性モードを同期コミットに設定する必要がありますレプリカ間の同期状態は同期済み である必要がありますまたWSFC クラスターは正常なクォーラム状態になっている必要があります

自動フェールオーバーはプライマリ レプリカまたはセカンダリ レプリカが FCI 上にある場合はサポートされませんこれは可用性グループと FCI のフェールオーバー間で競合状態が発生することを防ぐためです

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 30

手動フェールオーバーこの場合管理者はプライマリ レプリカの状態を評価してセカンダリ レプリカにフェールオーバーするかどうかを慎重に判断できます

可用性モードと同期状態に応じて次のような選択が可能です

o 計画的な手動フェールオーバー (データ損失なし)この種類のフェールオーバーを実行できるのはプライマリ レプリカとセカンダリ レプリカの両方が正常で同期済み 状態である場合だけですこれは機能的には自動フェールオーバーと同じです

o 強制手動フェールオーバー (データ損失の可能性を許容)これは対象のセカンダリ レプリカの可用性モードが非同期コミットである場合またはプライマリ レプリカに同期されない場合に使用できる唯一のフェールオーバー形式です

警告 このフェールオーバー オプションは災害復旧の状況に限って使用する必要がありますプライマリ レプリカが正常で使用可能である場合は関連する各レプリカの可用性モードを同期コミットに変更し計画的な手動フェールオーバーを実行してください

詳細については「可用性グループの強制手動フェールオーバーの実行」(httpmsdnmicrosoftcomja-jplibraryff877957(SQL110)aspx) を参照してください

フェールオーバー対象のプライマリ レプリカまたはセカンダリ レプリカが次の条件のいずれかに該当する場合は手動フェールオーバーを実行する必要があります

フェールオーバー モードが手動に設定されている 可用性モードが非同期コミットに設定されている レプリカが FCI 上にある

詳細については「フェールオーバーとフェールオーバー モード (AlwaysOn 可用性グルー プ ) 」(httpmsdnmicrosoftcomja-jplibraryhh213151(SQL110)aspx) を参照してください

注 フェールオーバー後新しいプライマリ レプリカが同期コミット モードに設定されていない場合セカンダリ レプリカの同期状態は 中断状態 になりますプライマリ レプリカが同期コミット モードに設定されるまでデータはセカンダリ レプリカに移動されません

可用性グループ リスナー可用性グループ リスナーはクライアントが可用性グループ内のデータベースにアクセスするために使用できる WSFC 仮想ネットワーク名 (VNN) ですVNN クラスター リソースはプライマリ レプリカをホストしている SQL Server インスタンスによって所有されます

仮想ネットワーク名は可用性グループ リスナーの作成時または構成の変更時にのみDNS に登録されます可用性グループ リスナーで定義されているすべての仮想 IP アドレスは同じ仮想ネットワーク名で DNS に登録されます

可用性グループ リスナーを使用する場合クライアント接続要求ではサーバーとして仮想ネットワーク名を指定してから可用性グループ内のデータベース名を指定する必要があり

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 31

ます既定ではこれによってプライマリ レプリカをホストしている SQL Server インスタンスに接続されます

実行時にはクライアントはローカルの DNS リゾルバーを使用して仮想ネットワーク名にマップされている IP アドレスと TCP ポートの一覧を取得しますクライアントは各 IP アドレスへの接続を成功するか接続タイムアウトに達するまで試し続けますMultiSubnetFailover パラメーターが true に設定されているとクライアントは複数の接続を同時に試行するのでクライアント フェールオーバーが大幅に速くなります

フェールオーバーが行われるとサーバー上でクライアント接続がリセットされ可用性グループ リスナーの所有権はプライマリ レプリカの役割と共に新しい SQL Server インスタンスに移動しVNN エンドポイントは新しいインスタンスの仮想 IP アドレスと TCP ポートにバインドされます

詳細については「可用性グループ リスナークライアント接続およびアプリケーションのフェールオーバー」(httpmsdnmicrosoftcomja-jplibraryhh213417(SQL110)aspx) を参照してください

アプリケーションの目的によるフィルター処理可用性グループ リスナーを使用して接続している場合アプリケーションは接続の目的がデータの読み取りと書き込みの両方なのか読み取り専用操作を実行するだけなのかを指定できます指定しない場合クライアントのアプリケーションの目的は既定で読み取りと書き込みになります

各可用性レプリカのプライマリ ロールとセカンダリ ロールについてはクライアントのアプリケーションの目的に対する接続レベルのフィルターとして接続アクセス プロパティも指定できます既定ではアプリケーションの目的と接続アクセスとの組み合わせが無効であると接続が拒否されますSQL Server は次のルールを使用してクライアントの接続要求を振り分ける必要があります

可用性レプリカがプライマリ ロールであり接続アクセスが次のいずれかである場合

すべてのアプリケーションの目的を許可するアプリケーションの目的でクライアント接続をフィルター処理しません

明示的な読み取り書き込みの目的だけを許可するクライアントが読み取り専用を指定している場合接続を拒否します

可用性レプリカがセカンダリ ロールであり接続アクセスが次のいずれかである場合

接続を許可しないすべての接続を拒否しますレプリカは災害復旧だけに使用されます

すべてのアプリケーションの目的を許可するアプリケーションの目的でクライアント接続をフィルター処理しません

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 32

読み取り専用の目的を許可するクライアントが読み取り専用を指定していない場合接続を拒否します

詳細については「可用性レプリカでの読み取り専用アクセスの構成」(httpmsdnmicrosoftcomja-jplibraryhh213002(SQL110)aspx) を参照してください

アプリケーションの目的の読み取り専用ルーティングAlwaysOn 可用性グループの特に優れた点はスタンバイ ハードウェア インフラストラクチャを災害復旧以外の目的に利用できることです1 つ以上のセカンダリ レプリカを読み取り専用でアクセスできるように構成するとプライマリ レプリカからかなりの量のワークロードを軽減できます

読み取り専用セカンダリ レプリカに回すように簡単に調整できるワークロードはレポートデータベース バックアップデータベース整合性チェックインデックスの断片化の分析データ パイプライン抽出運用サポート操作サポートアドホック クエリなどです

各可用性レプリカではSQL Server インスタンスのエンドポイントについて順次的な読み取り専用ルーティング リストを構成することもできますこのリストはレプリカがプライマリ ロールであるときに適用されますこのリストが存在する場合アプリケーションの目的が読み取り専用と指定されているクライアント接続要求はそのリスト内に記載されていて前述のアプリケーションの目的フィルターに適合する最初のセカンダリ レプリカにリダイレクトされます

注 読み取り専用ルーティングによるリダイレクトはプライマリ レプリカにバインドされている可用性グループ リスナーによって実行されますプライマリ レプリカがオフラインの場合クライアントのリダイレクトは機能しません

詳細については「可用性グループの読み取り専用ルーティングの構成 (SQL Server) 」(httpmsdnmicrosoftcomja-jplibraryhh710054(SQL110)aspx) を参照してください

可用性の向上 ndash データベースSQL Server 2012 ではデータベースの構成と機能に関してさまざまな点が強化されています

以下の機能は復旧時間の短縮に役立ちます

予測可能な復旧時間データベースごとにターゲット復旧時間の長さを設定することでバックグラウンドで実行される CHECKPOINT コマンドのスケジュールを制御できますこのコマンドは間接的なチェックポイントとして再起動時またはフェールオーバー時にトランザクション ログの復旧に必要となる時間の推定値に基づいて定期的に実行されますそれによってチェックポイントごとに IO 操作がほぼ均等に配分され復旧時間 (RTO) の予測可能性が高まります

SQL Server 2012 よりも前のバージョンではバックグラウンドの CHECKPOINT コマンドがトランザクションの量や負荷とは無関係に一定間隔で実行されていたので復旧時間を予測することはできませんでした

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 33

詳細については「データベース チェックポイント」(httpmsdnmicrosoftcomja-jplibraryms189573(SQL110)aspx) を参照してください

以下の向上点は計画的なダウンタイムが必要になる一般的な状況を減らすのに役立ちます

LOB 列のオンライン インデックス操作varbinary(max)varchar(max)nvarchar(max)または XML データ型の列が含まれているインデックスをオンラインで再構築または再構成できるようになりました

新しい NOT NULL 列のオンライン スキーマ修正既定値を使用して新しい NOT NULL 列を SQL Server 2012 データベース テーブルに追加する場合システム メタデータの更新にはスキーマ ロックだけが必要ですALTER TABLE ステートメントですべての行にデータを設定する必要はありません

いずれかの行で実際に変更またはインデックスの再作成が行われない限り列の既定値は物理的に格納されませんクエリでは列に実際の値が存在しない場合メタデータから既定値を返します

ストレージのサポート強化の例として次のようなものがあります

ページの自動修復ある種のストレージ サブシステム エラーが発生するとデータ ページが破損し読み取り不可能になる場合がありますAlwaysOn 可用性グループではそのような種類のエラーを検出し自動的に復旧できます復旧のために影響を受けたデータ ページの最新のコピーが別の可用性レプリカから非同期で取得され適用されます

以前のバージョンでもデータベース ミラーリングに同様の機能がありましたが新しい機能では複数のレプリカをサポートできるようになっています

詳細については「ページの自動修復」(httpmsdnmicrosoftcomja-jplibrarybb677167(SQL110)aspx) を参照してください

クライアント接続の推奨事項クライアント アプリケーションが Microsoft SQL Server 2012 AlwaysOn テクノロジの利点を十分に活用できるようにするには次のガイドラインに従います

AlwaysOn 対応のクライアント ライブラリ表形式のデータ ストリーム (TDS) プロトコル Version 74 以降をサポートしているクライアント ライブラリを使用しますこれによってAlwaysOn の機能に対応した適切な機能がクライアント側でも提供されますクライアント ライブラリの例としてはData Provider for SQL Server in NET Framework 402SQL Native Client 110 などがあります

接続プロバイダー プロパティ MultiSubnetFailover = True接続文字列にこのキーワードを使用することでクライアント ライブラリでは(複数のサブネットに IP アドレスを持つ) 可用性グループ リスナーまたは FCI に登録されているすべての IP アドレスに同時に接

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 34

続できるようになります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 35

接続プロバイダー プロパティ ApplicationIntent = ReadOnly必要に応じてプライマリ レプリカの読み取り専用ワークロードをセカンダリ レプリカに移管することができます

レガシ クライアントの接続タイムアウトレガシ クライアントのデータベース ライブラリには並列で接続を試行する機能が実装されていないため複数の IP アドレスがある場合にはTCP タイムアウトに達するか正常に接続できるまで1 つずつ順番に接続を試行します

複数の IP アドレスが存在する場合はタイムアウトと再試行が逐次的に繰り返される可能性に備えてレガシ クライアントの接続タイムアウトを調整する必要があります値は少なくとも 15 秒 + 21 秒 times セカンダリ レプリカ数にします

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 36

結論このホワイト ペーパーではSQL Server 2012 の AlwaysOn による高可用性災害復旧ソリューションを使用し予定されたダウンタイムや予定外のダウンタイムを短縮したりアプリケーションの可用性を最大限に高めたりデータを保護したりする方法について基本的なコンテキストを確立しました

高可用性データベース環境の計画管理測定に関連したビジネス上の目的と課題は多くの場合目標復旧時点 (RPO) と目標復旧時間 (RTO) という形で数量化して表すことができます

SQL Server 2012 AlwaysOn は組織が高可用性や災害復旧に関する一般的な状況に対処するための機能をRPO と RTO を適切に達成できることを念頭にインフラストラクチャ レベルデータ プラットフォーム レベルデータベース レベルのそれぞれで提供します

詳細情報

httpwwwmicrosoftcomja-jpsqlserver2012defaultaspx SQL Server Web サイト

httptechnetmicrosoftcomja-jpsqlserver SQL Server TechCenter

httpmsdnmicrosoftcomja-jpsqlserver SQL Server 開発者向け技術情報

このホワイト ペーパーはお役に立ちましたか フィードバックをお寄せください1 (役に立たなかった) ~ 5 (非常に役に立った) の 5 段階で評価してくださいまたその評価の理由もお知らせください以下に例を示します

評価が高い 例が適切図がわかりやすい説明が明快といったことが理由である 評価が低い 例が少ない図がわかりにくい説明があいまいといったことが理由で

ある

このようなフィードバックをお寄せいただくと今後のホワイト ペーパーの品質向上につながります

フィードバックの送信

loz Version 112012 年 2 月 21 日

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 37

  • 高可用性と災害復旧の概念
    • 高可用性について
      • 予定されたダウンタイムと予定外のダウンタイム
      • 段階的な可用性
        • ダウンタイムの定量化
          • 復旧目標
          • ROI または機会費用の正当化
          • 可用性の健全度の監視
          • 災害復旧の計画
            • 概要 Microsoft SQL Server 2012 での高可用性
              • SQL Server AlwaysOn
              • 計画的なダウンタイムの大幅な削減
              • アイドル状態のハードウェアをなくしてコスト効率とパフォーマンスを向上
              • 簡単な配置と管理
              • RPO と RTO の機能比較
                  • SQL Server AlwaysOn の保護レイヤー
                    • インフラストラクチャの可用性
                      • Windows オペレーティング システム
                        • Windows Server Core インストール オプション
                        • プライベート クラウド用の SQL Server の最適化
                          • Windows Server フェールオーバー クラスタリング
                            • WSFC ストレージ構成
                            • WSFC リソースの正常性の検出とフェールオーバー
                              • WSFC のクラスター検証ウィザード
                              • WSFC クォーラム モードと投票の構成
                                • クォーラムによるクラスター状態検出
                                • クォーラム モード
                                • 投票ノードと非投票ノード
                                • クォーラム投票に推奨される調整
                                  • WSFC の強制クォーラムによる災害復旧
                                    • SQL Server インスタンス レベルでの保護
                                      • 可用性の向上 ndash SQL Server インスタンス
                                      • AlwaysOn フェールオーバー クラスター インスタンス
                                        • FCI のフェールオーバー プロセス
                                        • FCI の強化
                                            • データベースの可用性
                                              • AlwaysOn 可用性グループ
                                                • 可用性レプリカとロール
                                                • 可用性レプリカの同期
                                                  • 可用性グループのフェールオーバー
                                                  • 可用性グループ リスナー
                                                    • アプリケーションの目的によるフィルター処理
                                                    • アプリケーションの目的の読み取り専用ルーティング
                                                      • 可用性の向上 ndash データベース
                                                        • クライアント接続の推奨事項
                                                          • 結論
Page 31: 高可用性と災害復旧の概念download.microsoft.com/download/6/B/E/6BE0C3F3-2991-4766... · Web view高可用性と災害復旧のソリューションのために最適なデータベース

注 マルチサブネット クラスタリングではクラスター ノード間のストレージ レベルのレプリケーションが自動的には有効になりませんマルチサブネットの FCI ソリューションでクラスター ノード間でデータのレプリケーションを行いストレージ フェールオーバーを調整するためにはサード パーティから提供される SAN ベースのソリューションを利用する必要があります

詳細については「SQL Server 2012 AlwaysOn マルチサイト フェールオーバー クラスター インスタンス」(httpsqlcatcomsqlcatbwhitepapersarchive20111222sql-server-2012-alwayson_3a00_-multisite-failover-cluster-instanceaspx) を参照してください

信頼性の高いエラー検出WSFC クラスター サービスではノードの各 SQL Server 2012 FCI に対してそれぞれ専用の管理者接続が維持されますこの接続では特殊なシステム ストアド プロシージャ sp_server_diagnostics を定期的に呼び出すことでシステムの正常性診断に役立つ豊富な情報を含む配列が返されます

SQL Server 2012 よりも前のバージョンではFCI の主な正常性検出メカニズムは単純な一方向のポーリング プロセスとして実装されていましたこのプロセスではWSFC クラスター サービスがインスタンスへの新しい SQL クライアント接続を定期的に作成しサーバー名を照会した後で接続を切断していました何かの理由で接続が失敗するかクエリがタイムアウトした場合フェールオーバーが開始されますが診断情報はほとんど提供されません

詳細については「sql_server_diagnostics」(httpmsdnmicrosoftcomja-jplibraryff878233(SQL110)aspx) を参照してください

現在ではFCI ストレージが次のように幅広い状況でサポートされています

向上したマウント ポイント サポートSQL Server のセットアップ時にクラスター ディスクのマウント ポイント設定が認識されるようになりました指定されたクラスター ディスクとそれにマウントされているすべてのディスクがセットアップ時に SQL Server リソースの依存関係に自動的に追加されます

ローカル ストレージの tempdbFCI ではローカルの非共有ストレージ (ローカル ソリッド ステート ドライブなど) に tempdb を配置できるようになったため共有 SAN での IO 動作の負荷を大幅に軽減できる可能性があります

SQL Server 2012 よりも前のバージョンの FCI ではtempdb が他のシステム データベースと共にフェールオーバーされる対称共有ストレージ ボリュームに配置される必要がありました

注 tempdb の場所はmaster データベースに格納されますこのデータベースはフェールオーバー時にノード間で移動されますtempdb は所有者候補となっているすべてのノード上で有効で対称的なファイル パス (ドライブフォルダーおよび権限) に配置されている必要がありますそうなっていない場合SQL Server サービスが一部のノードでは起動されません

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 26

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 27

データベースの可用性インフラストラクチャ レベルおよび SQL Server インスタンス レベルのコンポーネントで提供されている高可用性機能は互いに連係してホストされているデータベースを暗黙的に保護しますAlwaysOn ソリューションではデータベースのデータおよびデータ層アプリケーションを明示的に保護するために一連のオプションが追加で用意されています

AlwaysOn 可用性グループ可用性グループは1 つの SQL Server インスタンスから同じ WSFC クラスター内の別のインスタンスへと同時にフェールオーバーされるユーザー データベースのセットですクライアント アプリケーションは可用性グループ リスナーと呼ばれる WSFC 仮想ネットワーク名を通じて可用性グループのデータベースに接続できますこうすることで基になる SQL Server インスタンスが抽象化されます

AlwaysOn 可用性グループは正常性監視フェールオーバーの調整およびサーバー接続を Windows Server フェールオーバー クラスタリングに依存していますWSFC クラスター ノード上の SQL Server インスタンスでAlwaysOn サポートを有効にする必要がありますただしそのインスタンスが FCI である必要はなく対称共有ストレージを使用する必要もありません

詳細については「AlwaysOn 可用性グループの概要 」(httpmsdnmicrosoftcomja-jplibraryff877884(SQL110)aspx) を参照してください

可用性レプリカとロール可用性グループの各 SQL Server インスタンスは可用性グループのユーザー データベースのコピーを保持している可用性レプリカをホストしますSQL Server インスタンスは特定の可用性グループの可用性レプリカを 1 つだけホストすることができますが複数の可用性グループを同じインスタンスに置くことは可能ですSQL Server インスタンスは専用の (非共有) ストレージ ボリュームを持つ必要があります

可用性レプリカの 1 つがプライマリ レプリカの役割を果たしますこれは可用性グループ データベースのマスター コピーとして指定されていて読み取り書き込み操作を行うことができます

可用性グループには読み取り専用の可用性レプリカを最大 4 つまで追加で含めることができますこれらは個別にセカンダリ レプリカの役割を果たします

可用性レプリカの同期可用性グループの各データベースの内容はSQL Server によるログ ベースのデータ移動メカニズムを通じてプライマリ レプリカから各セカンダリ レプリカに同期されますそのため可用性グループのすべてのデータベースは完全復旧モデルに設定する必要があります

セカンダリ レプリカはプライマリ レプリカのデータベースとトランザクション ログの完全なバックアップと復元によって初期化されますプライマリ レプリカで新しいトランザクションがコミットされるとトランザクション ログの対応する部分がキャッシュされ

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 28

キューに入れられてネットワーク経由でセカンダリ レプリカ ノード上のデータベース ミラーリング エンドポイントに送信されます

この方法によりプライマリ レプリカのトランザクション ログの新しいエントリが各セカンダリ レプリカのトランザクション ログに追加されます各セカンダリ レプリカはログ シーケンス番号 (LSN) をプライマリ レプリカに定期的に送り返しトランザクション ログのどのくらいの量がリモート ディスクに書き込まれフラッシュされたかを示します

注 各可用性レプリカはそれぞれ独自に独立したトランザクション ログ再実行スレッドのセットを保持していますこれは可用性レプリカの同期プロセスには含まれませんセカンダリ レプリカ上ではログ再実行プロセスによって遅延時間が生じるためユーザーはそれをデータの待機時間として感じる場合があります

プライマリまたはセカンダリの役割を果たす他に各可用性レプリカには可用性モードもありますこのモードは次のようにCOMMIT TRAN ステートメントの実行時にトランザクション ログの書き込みの連係を制御します

同期コミット モードすべての同期コミット セカンダリ レプリカからそれぞれ独自のトランザクション ログの書き込み完了 (LSN 以降) が通知されるまでプライマリ レプリカはそのトランザクションをコミットしません可用性グループでは最大で 2 つの同期コミット セカンダリ レプリカを使用できます

同期コミット モードではプライマリ レプリカ データベースでトランザクションの遅延が生じますがコミットされたトランザクションに対するセカンダリ レプリカでのデータ損失を確実に防ぐことができます

非同期コミット モードプライマリ レプリカはローカル トランザクション ログの書き込み後にトランザクションをコミットしますが非同期コミット セカンダリ レプリカからトランザクション ログの書き込み完了通知を待つことはしません可用性グループでは最大で 4 つの非同期コミット セカンダリ レプリカを使用できますただし両方の種類を合わせて使用できるセカンダリ レプリカの合計は最大 4 つです

非同期コミット モードではプライマリ レプリカ データベースで生じるトランザクションの遅延が最小になりますがセカンダリ レプリカでのトランザクション ログが遅れる場合があるため一部のデータが失われる可能性があります

詳細については「可用性モード」(httpmsdnmicrosoftcomja-jplibraryff877931(SQL110)aspx) を参照してください

可用性レプリカ間のデータ フローの全体的な正常性は各レプリカの同期状態によって示されますセカンダリ レプリカにフェールオーバーしたときに同期状態が 同期済み または 同期中 になっていなければほとんどの場合はデータ損失が発生することになります

各セカンダリ レプリカの同期ストリームにはセッション タイムアウト プロパティがあります同期コミット モードに構成されているセカンダリ レプリカがセッション タイムアウトでエラーになると内部的には一時的に非同期としてマークされますこれはセカンダ

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 29

リ レプリカのエラーがプライマリ レプリカでのトランザクション ログの書き込みに影響しないようにするためですそのセカンダリ レプリカが正常に戻ってプライマリ レプリカの状態に追いつくと自動的に通常の同期コミット モード動作に戻されます

可用性グループのフェールオーバー可用性グループとそれに対応する仮想ネットワーク名はWSFC クラスターのリソースとして登録されます可用性グループはプライマリ レプリカの正常性とフェールオーバー ポリシーに基づいて可用性レプリカのレベルでフェールオーバーを行います

可用性グループのフェールオーバー ポリシーではsp_server_diagnostics システム ストアド プロシージャと FailureConditionLevel プロパティを使用して可用性グループに対して許容されるエラーの重大度のレベルを示しますこの同じメカニズムがFCI のフェールオーバー ポリシーにも使用されます

フェールオーバーが発生した場合は共有物理リソースの所有権を他のノードに移す代わりにWSFC を利用して他の SQL Server インスタンス上でセカンダリ レプリカを再構成しプライマリ レプリカの役割を引き継がせますその後可用性グループの仮想ネットワーク名リソースがそのインスタンスに転送されます関連する可用性レプリカへのすべてのクライアント接続がリセットされます

レプリカの現在の正常性同期状態および可用性モードに基づいて各レプリカには複合的な フェールオーバーの準備 状態が定義されますこの状態の値はデータ損失の可能性を示していますレプリカの正常性情報はAlwaysOn ダッシュボードまたは sysdm_hadr_availability_replica_states システム ビューで確認できます

各可用性レプリカにはフェールオーバー モードも構成されていますこのモードはフェールオーバーが指示された場合にレプリカの動作を制御します

自動フェールオーバー (データ損失なし)セカンダリ レプリカのトランザクション ログが既に書き込まれ同期されているのですべての AlwaysOn 構成の中でフェールオーバー時間が最短になりますプライマリ レプリカ上の開かれているトランザクションはロールバックされプライマリ レプリカの役割はユーザーによる操作なしでセカンダリ レプリカに転送されます

この場合プライマリ レプリカとセカンダリ レプリカの両方を自動フェールオーバー モードに設定し両方の可用性モードを同期コミットに設定する必要がありますレプリカ間の同期状態は同期済み である必要がありますまたWSFC クラスターは正常なクォーラム状態になっている必要があります

自動フェールオーバーはプライマリ レプリカまたはセカンダリ レプリカが FCI 上にある場合はサポートされませんこれは可用性グループと FCI のフェールオーバー間で競合状態が発生することを防ぐためです

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 30

手動フェールオーバーこの場合管理者はプライマリ レプリカの状態を評価してセカンダリ レプリカにフェールオーバーするかどうかを慎重に判断できます

可用性モードと同期状態に応じて次のような選択が可能です

o 計画的な手動フェールオーバー (データ損失なし)この種類のフェールオーバーを実行できるのはプライマリ レプリカとセカンダリ レプリカの両方が正常で同期済み 状態である場合だけですこれは機能的には自動フェールオーバーと同じです

o 強制手動フェールオーバー (データ損失の可能性を許容)これは対象のセカンダリ レプリカの可用性モードが非同期コミットである場合またはプライマリ レプリカに同期されない場合に使用できる唯一のフェールオーバー形式です

警告 このフェールオーバー オプションは災害復旧の状況に限って使用する必要がありますプライマリ レプリカが正常で使用可能である場合は関連する各レプリカの可用性モードを同期コミットに変更し計画的な手動フェールオーバーを実行してください

詳細については「可用性グループの強制手動フェールオーバーの実行」(httpmsdnmicrosoftcomja-jplibraryff877957(SQL110)aspx) を参照してください

フェールオーバー対象のプライマリ レプリカまたはセカンダリ レプリカが次の条件のいずれかに該当する場合は手動フェールオーバーを実行する必要があります

フェールオーバー モードが手動に設定されている 可用性モードが非同期コミットに設定されている レプリカが FCI 上にある

詳細については「フェールオーバーとフェールオーバー モード (AlwaysOn 可用性グルー プ ) 」(httpmsdnmicrosoftcomja-jplibraryhh213151(SQL110)aspx) を参照してください

注 フェールオーバー後新しいプライマリ レプリカが同期コミット モードに設定されていない場合セカンダリ レプリカの同期状態は 中断状態 になりますプライマリ レプリカが同期コミット モードに設定されるまでデータはセカンダリ レプリカに移動されません

可用性グループ リスナー可用性グループ リスナーはクライアントが可用性グループ内のデータベースにアクセスするために使用できる WSFC 仮想ネットワーク名 (VNN) ですVNN クラスター リソースはプライマリ レプリカをホストしている SQL Server インスタンスによって所有されます

仮想ネットワーク名は可用性グループ リスナーの作成時または構成の変更時にのみDNS に登録されます可用性グループ リスナーで定義されているすべての仮想 IP アドレスは同じ仮想ネットワーク名で DNS に登録されます

可用性グループ リスナーを使用する場合クライアント接続要求ではサーバーとして仮想ネットワーク名を指定してから可用性グループ内のデータベース名を指定する必要があり

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 31

ます既定ではこれによってプライマリ レプリカをホストしている SQL Server インスタンスに接続されます

実行時にはクライアントはローカルの DNS リゾルバーを使用して仮想ネットワーク名にマップされている IP アドレスと TCP ポートの一覧を取得しますクライアントは各 IP アドレスへの接続を成功するか接続タイムアウトに達するまで試し続けますMultiSubnetFailover パラメーターが true に設定されているとクライアントは複数の接続を同時に試行するのでクライアント フェールオーバーが大幅に速くなります

フェールオーバーが行われるとサーバー上でクライアント接続がリセットされ可用性グループ リスナーの所有権はプライマリ レプリカの役割と共に新しい SQL Server インスタンスに移動しVNN エンドポイントは新しいインスタンスの仮想 IP アドレスと TCP ポートにバインドされます

詳細については「可用性グループ リスナークライアント接続およびアプリケーションのフェールオーバー」(httpmsdnmicrosoftcomja-jplibraryhh213417(SQL110)aspx) を参照してください

アプリケーションの目的によるフィルター処理可用性グループ リスナーを使用して接続している場合アプリケーションは接続の目的がデータの読み取りと書き込みの両方なのか読み取り専用操作を実行するだけなのかを指定できます指定しない場合クライアントのアプリケーションの目的は既定で読み取りと書き込みになります

各可用性レプリカのプライマリ ロールとセカンダリ ロールについてはクライアントのアプリケーションの目的に対する接続レベルのフィルターとして接続アクセス プロパティも指定できます既定ではアプリケーションの目的と接続アクセスとの組み合わせが無効であると接続が拒否されますSQL Server は次のルールを使用してクライアントの接続要求を振り分ける必要があります

可用性レプリカがプライマリ ロールであり接続アクセスが次のいずれかである場合

すべてのアプリケーションの目的を許可するアプリケーションの目的でクライアント接続をフィルター処理しません

明示的な読み取り書き込みの目的だけを許可するクライアントが読み取り専用を指定している場合接続を拒否します

可用性レプリカがセカンダリ ロールであり接続アクセスが次のいずれかである場合

接続を許可しないすべての接続を拒否しますレプリカは災害復旧だけに使用されます

すべてのアプリケーションの目的を許可するアプリケーションの目的でクライアント接続をフィルター処理しません

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 32

読み取り専用の目的を許可するクライアントが読み取り専用を指定していない場合接続を拒否します

詳細については「可用性レプリカでの読み取り専用アクセスの構成」(httpmsdnmicrosoftcomja-jplibraryhh213002(SQL110)aspx) を参照してください

アプリケーションの目的の読み取り専用ルーティングAlwaysOn 可用性グループの特に優れた点はスタンバイ ハードウェア インフラストラクチャを災害復旧以外の目的に利用できることです1 つ以上のセカンダリ レプリカを読み取り専用でアクセスできるように構成するとプライマリ レプリカからかなりの量のワークロードを軽減できます

読み取り専用セカンダリ レプリカに回すように簡単に調整できるワークロードはレポートデータベース バックアップデータベース整合性チェックインデックスの断片化の分析データ パイプライン抽出運用サポート操作サポートアドホック クエリなどです

各可用性レプリカではSQL Server インスタンスのエンドポイントについて順次的な読み取り専用ルーティング リストを構成することもできますこのリストはレプリカがプライマリ ロールであるときに適用されますこのリストが存在する場合アプリケーションの目的が読み取り専用と指定されているクライアント接続要求はそのリスト内に記載されていて前述のアプリケーションの目的フィルターに適合する最初のセカンダリ レプリカにリダイレクトされます

注 読み取り専用ルーティングによるリダイレクトはプライマリ レプリカにバインドされている可用性グループ リスナーによって実行されますプライマリ レプリカがオフラインの場合クライアントのリダイレクトは機能しません

詳細については「可用性グループの読み取り専用ルーティングの構成 (SQL Server) 」(httpmsdnmicrosoftcomja-jplibraryhh710054(SQL110)aspx) を参照してください

可用性の向上 ndash データベースSQL Server 2012 ではデータベースの構成と機能に関してさまざまな点が強化されています

以下の機能は復旧時間の短縮に役立ちます

予測可能な復旧時間データベースごとにターゲット復旧時間の長さを設定することでバックグラウンドで実行される CHECKPOINT コマンドのスケジュールを制御できますこのコマンドは間接的なチェックポイントとして再起動時またはフェールオーバー時にトランザクション ログの復旧に必要となる時間の推定値に基づいて定期的に実行されますそれによってチェックポイントごとに IO 操作がほぼ均等に配分され復旧時間 (RTO) の予測可能性が高まります

SQL Server 2012 よりも前のバージョンではバックグラウンドの CHECKPOINT コマンドがトランザクションの量や負荷とは無関係に一定間隔で実行されていたので復旧時間を予測することはできませんでした

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 33

詳細については「データベース チェックポイント」(httpmsdnmicrosoftcomja-jplibraryms189573(SQL110)aspx) を参照してください

以下の向上点は計画的なダウンタイムが必要になる一般的な状況を減らすのに役立ちます

LOB 列のオンライン インデックス操作varbinary(max)varchar(max)nvarchar(max)または XML データ型の列が含まれているインデックスをオンラインで再構築または再構成できるようになりました

新しい NOT NULL 列のオンライン スキーマ修正既定値を使用して新しい NOT NULL 列を SQL Server 2012 データベース テーブルに追加する場合システム メタデータの更新にはスキーマ ロックだけが必要ですALTER TABLE ステートメントですべての行にデータを設定する必要はありません

いずれかの行で実際に変更またはインデックスの再作成が行われない限り列の既定値は物理的に格納されませんクエリでは列に実際の値が存在しない場合メタデータから既定値を返します

ストレージのサポート強化の例として次のようなものがあります

ページの自動修復ある種のストレージ サブシステム エラーが発生するとデータ ページが破損し読み取り不可能になる場合がありますAlwaysOn 可用性グループではそのような種類のエラーを検出し自動的に復旧できます復旧のために影響を受けたデータ ページの最新のコピーが別の可用性レプリカから非同期で取得され適用されます

以前のバージョンでもデータベース ミラーリングに同様の機能がありましたが新しい機能では複数のレプリカをサポートできるようになっています

詳細については「ページの自動修復」(httpmsdnmicrosoftcomja-jplibrarybb677167(SQL110)aspx) を参照してください

クライアント接続の推奨事項クライアント アプリケーションが Microsoft SQL Server 2012 AlwaysOn テクノロジの利点を十分に活用できるようにするには次のガイドラインに従います

AlwaysOn 対応のクライアント ライブラリ表形式のデータ ストリーム (TDS) プロトコル Version 74 以降をサポートしているクライアント ライブラリを使用しますこれによってAlwaysOn の機能に対応した適切な機能がクライアント側でも提供されますクライアント ライブラリの例としてはData Provider for SQL Server in NET Framework 402SQL Native Client 110 などがあります

接続プロバイダー プロパティ MultiSubnetFailover = True接続文字列にこのキーワードを使用することでクライアント ライブラリでは(複数のサブネットに IP アドレスを持つ) 可用性グループ リスナーまたは FCI に登録されているすべての IP アドレスに同時に接

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 34

続できるようになります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 35

接続プロバイダー プロパティ ApplicationIntent = ReadOnly必要に応じてプライマリ レプリカの読み取り専用ワークロードをセカンダリ レプリカに移管することができます

レガシ クライアントの接続タイムアウトレガシ クライアントのデータベース ライブラリには並列で接続を試行する機能が実装されていないため複数の IP アドレスがある場合にはTCP タイムアウトに達するか正常に接続できるまで1 つずつ順番に接続を試行します

複数の IP アドレスが存在する場合はタイムアウトと再試行が逐次的に繰り返される可能性に備えてレガシ クライアントの接続タイムアウトを調整する必要があります値は少なくとも 15 秒 + 21 秒 times セカンダリ レプリカ数にします

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 36

結論このホワイト ペーパーではSQL Server 2012 の AlwaysOn による高可用性災害復旧ソリューションを使用し予定されたダウンタイムや予定外のダウンタイムを短縮したりアプリケーションの可用性を最大限に高めたりデータを保護したりする方法について基本的なコンテキストを確立しました

高可用性データベース環境の計画管理測定に関連したビジネス上の目的と課題は多くの場合目標復旧時点 (RPO) と目標復旧時間 (RTO) という形で数量化して表すことができます

SQL Server 2012 AlwaysOn は組織が高可用性や災害復旧に関する一般的な状況に対処するための機能をRPO と RTO を適切に達成できることを念頭にインフラストラクチャ レベルデータ プラットフォーム レベルデータベース レベルのそれぞれで提供します

詳細情報

httpwwwmicrosoftcomja-jpsqlserver2012defaultaspx SQL Server Web サイト

httptechnetmicrosoftcomja-jpsqlserver SQL Server TechCenter

httpmsdnmicrosoftcomja-jpsqlserver SQL Server 開発者向け技術情報

このホワイト ペーパーはお役に立ちましたか フィードバックをお寄せください1 (役に立たなかった) ~ 5 (非常に役に立った) の 5 段階で評価してくださいまたその評価の理由もお知らせください以下に例を示します

評価が高い 例が適切図がわかりやすい説明が明快といったことが理由である 評価が低い 例が少ない図がわかりにくい説明があいまいといったことが理由で

ある

このようなフィードバックをお寄せいただくと今後のホワイト ペーパーの品質向上につながります

フィードバックの送信

loz Version 112012 年 2 月 21 日

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 37

  • 高可用性と災害復旧の概念
    • 高可用性について
      • 予定されたダウンタイムと予定外のダウンタイム
      • 段階的な可用性
        • ダウンタイムの定量化
          • 復旧目標
          • ROI または機会費用の正当化
          • 可用性の健全度の監視
          • 災害復旧の計画
            • 概要 Microsoft SQL Server 2012 での高可用性
              • SQL Server AlwaysOn
              • 計画的なダウンタイムの大幅な削減
              • アイドル状態のハードウェアをなくしてコスト効率とパフォーマンスを向上
              • 簡単な配置と管理
              • RPO と RTO の機能比較
                  • SQL Server AlwaysOn の保護レイヤー
                    • インフラストラクチャの可用性
                      • Windows オペレーティング システム
                        • Windows Server Core インストール オプション
                        • プライベート クラウド用の SQL Server の最適化
                          • Windows Server フェールオーバー クラスタリング
                            • WSFC ストレージ構成
                            • WSFC リソースの正常性の検出とフェールオーバー
                              • WSFC のクラスター検証ウィザード
                              • WSFC クォーラム モードと投票の構成
                                • クォーラムによるクラスター状態検出
                                • クォーラム モード
                                • 投票ノードと非投票ノード
                                • クォーラム投票に推奨される調整
                                  • WSFC の強制クォーラムによる災害復旧
                                    • SQL Server インスタンス レベルでの保護
                                      • 可用性の向上 ndash SQL Server インスタンス
                                      • AlwaysOn フェールオーバー クラスター インスタンス
                                        • FCI のフェールオーバー プロセス
                                        • FCI の強化
                                            • データベースの可用性
                                              • AlwaysOn 可用性グループ
                                                • 可用性レプリカとロール
                                                • 可用性レプリカの同期
                                                  • 可用性グループのフェールオーバー
                                                  • 可用性グループ リスナー
                                                    • アプリケーションの目的によるフィルター処理
                                                    • アプリケーションの目的の読み取り専用ルーティング
                                                      • 可用性の向上 ndash データベース
                                                        • クライアント接続の推奨事項
                                                          • 結論
Page 32: 高可用性と災害復旧の概念download.microsoft.com/download/6/B/E/6BE0C3F3-2991-4766... · Web view高可用性と災害復旧のソリューションのために最適なデータベース

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 27

データベースの可用性インフラストラクチャ レベルおよび SQL Server インスタンス レベルのコンポーネントで提供されている高可用性機能は互いに連係してホストされているデータベースを暗黙的に保護しますAlwaysOn ソリューションではデータベースのデータおよびデータ層アプリケーションを明示的に保護するために一連のオプションが追加で用意されています

AlwaysOn 可用性グループ可用性グループは1 つの SQL Server インスタンスから同じ WSFC クラスター内の別のインスタンスへと同時にフェールオーバーされるユーザー データベースのセットですクライアント アプリケーションは可用性グループ リスナーと呼ばれる WSFC 仮想ネットワーク名を通じて可用性グループのデータベースに接続できますこうすることで基になる SQL Server インスタンスが抽象化されます

AlwaysOn 可用性グループは正常性監視フェールオーバーの調整およびサーバー接続を Windows Server フェールオーバー クラスタリングに依存していますWSFC クラスター ノード上の SQL Server インスタンスでAlwaysOn サポートを有効にする必要がありますただしそのインスタンスが FCI である必要はなく対称共有ストレージを使用する必要もありません

詳細については「AlwaysOn 可用性グループの概要 」(httpmsdnmicrosoftcomja-jplibraryff877884(SQL110)aspx) を参照してください

可用性レプリカとロール可用性グループの各 SQL Server インスタンスは可用性グループのユーザー データベースのコピーを保持している可用性レプリカをホストしますSQL Server インスタンスは特定の可用性グループの可用性レプリカを 1 つだけホストすることができますが複数の可用性グループを同じインスタンスに置くことは可能ですSQL Server インスタンスは専用の (非共有) ストレージ ボリュームを持つ必要があります

可用性レプリカの 1 つがプライマリ レプリカの役割を果たしますこれは可用性グループ データベースのマスター コピーとして指定されていて読み取り書き込み操作を行うことができます

可用性グループには読み取り専用の可用性レプリカを最大 4 つまで追加で含めることができますこれらは個別にセカンダリ レプリカの役割を果たします

可用性レプリカの同期可用性グループの各データベースの内容はSQL Server によるログ ベースのデータ移動メカニズムを通じてプライマリ レプリカから各セカンダリ レプリカに同期されますそのため可用性グループのすべてのデータベースは完全復旧モデルに設定する必要があります

セカンダリ レプリカはプライマリ レプリカのデータベースとトランザクション ログの完全なバックアップと復元によって初期化されますプライマリ レプリカで新しいトランザクションがコミットされるとトランザクション ログの対応する部分がキャッシュされ

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 28

キューに入れられてネットワーク経由でセカンダリ レプリカ ノード上のデータベース ミラーリング エンドポイントに送信されます

この方法によりプライマリ レプリカのトランザクション ログの新しいエントリが各セカンダリ レプリカのトランザクション ログに追加されます各セカンダリ レプリカはログ シーケンス番号 (LSN) をプライマリ レプリカに定期的に送り返しトランザクション ログのどのくらいの量がリモート ディスクに書き込まれフラッシュされたかを示します

注 各可用性レプリカはそれぞれ独自に独立したトランザクション ログ再実行スレッドのセットを保持していますこれは可用性レプリカの同期プロセスには含まれませんセカンダリ レプリカ上ではログ再実行プロセスによって遅延時間が生じるためユーザーはそれをデータの待機時間として感じる場合があります

プライマリまたはセカンダリの役割を果たす他に各可用性レプリカには可用性モードもありますこのモードは次のようにCOMMIT TRAN ステートメントの実行時にトランザクション ログの書き込みの連係を制御します

同期コミット モードすべての同期コミット セカンダリ レプリカからそれぞれ独自のトランザクション ログの書き込み完了 (LSN 以降) が通知されるまでプライマリ レプリカはそのトランザクションをコミットしません可用性グループでは最大で 2 つの同期コミット セカンダリ レプリカを使用できます

同期コミット モードではプライマリ レプリカ データベースでトランザクションの遅延が生じますがコミットされたトランザクションに対するセカンダリ レプリカでのデータ損失を確実に防ぐことができます

非同期コミット モードプライマリ レプリカはローカル トランザクション ログの書き込み後にトランザクションをコミットしますが非同期コミット セカンダリ レプリカからトランザクション ログの書き込み完了通知を待つことはしません可用性グループでは最大で 4 つの非同期コミット セカンダリ レプリカを使用できますただし両方の種類を合わせて使用できるセカンダリ レプリカの合計は最大 4 つです

非同期コミット モードではプライマリ レプリカ データベースで生じるトランザクションの遅延が最小になりますがセカンダリ レプリカでのトランザクション ログが遅れる場合があるため一部のデータが失われる可能性があります

詳細については「可用性モード」(httpmsdnmicrosoftcomja-jplibraryff877931(SQL110)aspx) を参照してください

可用性レプリカ間のデータ フローの全体的な正常性は各レプリカの同期状態によって示されますセカンダリ レプリカにフェールオーバーしたときに同期状態が 同期済み または 同期中 になっていなければほとんどの場合はデータ損失が発生することになります

各セカンダリ レプリカの同期ストリームにはセッション タイムアウト プロパティがあります同期コミット モードに構成されているセカンダリ レプリカがセッション タイムアウトでエラーになると内部的には一時的に非同期としてマークされますこれはセカンダ

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 29

リ レプリカのエラーがプライマリ レプリカでのトランザクション ログの書き込みに影響しないようにするためですそのセカンダリ レプリカが正常に戻ってプライマリ レプリカの状態に追いつくと自動的に通常の同期コミット モード動作に戻されます

可用性グループのフェールオーバー可用性グループとそれに対応する仮想ネットワーク名はWSFC クラスターのリソースとして登録されます可用性グループはプライマリ レプリカの正常性とフェールオーバー ポリシーに基づいて可用性レプリカのレベルでフェールオーバーを行います

可用性グループのフェールオーバー ポリシーではsp_server_diagnostics システム ストアド プロシージャと FailureConditionLevel プロパティを使用して可用性グループに対して許容されるエラーの重大度のレベルを示しますこの同じメカニズムがFCI のフェールオーバー ポリシーにも使用されます

フェールオーバーが発生した場合は共有物理リソースの所有権を他のノードに移す代わりにWSFC を利用して他の SQL Server インスタンス上でセカンダリ レプリカを再構成しプライマリ レプリカの役割を引き継がせますその後可用性グループの仮想ネットワーク名リソースがそのインスタンスに転送されます関連する可用性レプリカへのすべてのクライアント接続がリセットされます

レプリカの現在の正常性同期状態および可用性モードに基づいて各レプリカには複合的な フェールオーバーの準備 状態が定義されますこの状態の値はデータ損失の可能性を示していますレプリカの正常性情報はAlwaysOn ダッシュボードまたは sysdm_hadr_availability_replica_states システム ビューで確認できます

各可用性レプリカにはフェールオーバー モードも構成されていますこのモードはフェールオーバーが指示された場合にレプリカの動作を制御します

自動フェールオーバー (データ損失なし)セカンダリ レプリカのトランザクション ログが既に書き込まれ同期されているのですべての AlwaysOn 構成の中でフェールオーバー時間が最短になりますプライマリ レプリカ上の開かれているトランザクションはロールバックされプライマリ レプリカの役割はユーザーによる操作なしでセカンダリ レプリカに転送されます

この場合プライマリ レプリカとセカンダリ レプリカの両方を自動フェールオーバー モードに設定し両方の可用性モードを同期コミットに設定する必要がありますレプリカ間の同期状態は同期済み である必要がありますまたWSFC クラスターは正常なクォーラム状態になっている必要があります

自動フェールオーバーはプライマリ レプリカまたはセカンダリ レプリカが FCI 上にある場合はサポートされませんこれは可用性グループと FCI のフェールオーバー間で競合状態が発生することを防ぐためです

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 30

手動フェールオーバーこの場合管理者はプライマリ レプリカの状態を評価してセカンダリ レプリカにフェールオーバーするかどうかを慎重に判断できます

可用性モードと同期状態に応じて次のような選択が可能です

o 計画的な手動フェールオーバー (データ損失なし)この種類のフェールオーバーを実行できるのはプライマリ レプリカとセカンダリ レプリカの両方が正常で同期済み 状態である場合だけですこれは機能的には自動フェールオーバーと同じです

o 強制手動フェールオーバー (データ損失の可能性を許容)これは対象のセカンダリ レプリカの可用性モードが非同期コミットである場合またはプライマリ レプリカに同期されない場合に使用できる唯一のフェールオーバー形式です

警告 このフェールオーバー オプションは災害復旧の状況に限って使用する必要がありますプライマリ レプリカが正常で使用可能である場合は関連する各レプリカの可用性モードを同期コミットに変更し計画的な手動フェールオーバーを実行してください

詳細については「可用性グループの強制手動フェールオーバーの実行」(httpmsdnmicrosoftcomja-jplibraryff877957(SQL110)aspx) を参照してください

フェールオーバー対象のプライマリ レプリカまたはセカンダリ レプリカが次の条件のいずれかに該当する場合は手動フェールオーバーを実行する必要があります

フェールオーバー モードが手動に設定されている 可用性モードが非同期コミットに設定されている レプリカが FCI 上にある

詳細については「フェールオーバーとフェールオーバー モード (AlwaysOn 可用性グルー プ ) 」(httpmsdnmicrosoftcomja-jplibraryhh213151(SQL110)aspx) を参照してください

注 フェールオーバー後新しいプライマリ レプリカが同期コミット モードに設定されていない場合セカンダリ レプリカの同期状態は 中断状態 になりますプライマリ レプリカが同期コミット モードに設定されるまでデータはセカンダリ レプリカに移動されません

可用性グループ リスナー可用性グループ リスナーはクライアントが可用性グループ内のデータベースにアクセスするために使用できる WSFC 仮想ネットワーク名 (VNN) ですVNN クラスター リソースはプライマリ レプリカをホストしている SQL Server インスタンスによって所有されます

仮想ネットワーク名は可用性グループ リスナーの作成時または構成の変更時にのみDNS に登録されます可用性グループ リスナーで定義されているすべての仮想 IP アドレスは同じ仮想ネットワーク名で DNS に登録されます

可用性グループ リスナーを使用する場合クライアント接続要求ではサーバーとして仮想ネットワーク名を指定してから可用性グループ内のデータベース名を指定する必要があり

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 31

ます既定ではこれによってプライマリ レプリカをホストしている SQL Server インスタンスに接続されます

実行時にはクライアントはローカルの DNS リゾルバーを使用して仮想ネットワーク名にマップされている IP アドレスと TCP ポートの一覧を取得しますクライアントは各 IP アドレスへの接続を成功するか接続タイムアウトに達するまで試し続けますMultiSubnetFailover パラメーターが true に設定されているとクライアントは複数の接続を同時に試行するのでクライアント フェールオーバーが大幅に速くなります

フェールオーバーが行われるとサーバー上でクライアント接続がリセットされ可用性グループ リスナーの所有権はプライマリ レプリカの役割と共に新しい SQL Server インスタンスに移動しVNN エンドポイントは新しいインスタンスの仮想 IP アドレスと TCP ポートにバインドされます

詳細については「可用性グループ リスナークライアント接続およびアプリケーションのフェールオーバー」(httpmsdnmicrosoftcomja-jplibraryhh213417(SQL110)aspx) を参照してください

アプリケーションの目的によるフィルター処理可用性グループ リスナーを使用して接続している場合アプリケーションは接続の目的がデータの読み取りと書き込みの両方なのか読み取り専用操作を実行するだけなのかを指定できます指定しない場合クライアントのアプリケーションの目的は既定で読み取りと書き込みになります

各可用性レプリカのプライマリ ロールとセカンダリ ロールについてはクライアントのアプリケーションの目的に対する接続レベルのフィルターとして接続アクセス プロパティも指定できます既定ではアプリケーションの目的と接続アクセスとの組み合わせが無効であると接続が拒否されますSQL Server は次のルールを使用してクライアントの接続要求を振り分ける必要があります

可用性レプリカがプライマリ ロールであり接続アクセスが次のいずれかである場合

すべてのアプリケーションの目的を許可するアプリケーションの目的でクライアント接続をフィルター処理しません

明示的な読み取り書き込みの目的だけを許可するクライアントが読み取り専用を指定している場合接続を拒否します

可用性レプリカがセカンダリ ロールであり接続アクセスが次のいずれかである場合

接続を許可しないすべての接続を拒否しますレプリカは災害復旧だけに使用されます

すべてのアプリケーションの目的を許可するアプリケーションの目的でクライアント接続をフィルター処理しません

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 32

読み取り専用の目的を許可するクライアントが読み取り専用を指定していない場合接続を拒否します

詳細については「可用性レプリカでの読み取り専用アクセスの構成」(httpmsdnmicrosoftcomja-jplibraryhh213002(SQL110)aspx) を参照してください

アプリケーションの目的の読み取り専用ルーティングAlwaysOn 可用性グループの特に優れた点はスタンバイ ハードウェア インフラストラクチャを災害復旧以外の目的に利用できることです1 つ以上のセカンダリ レプリカを読み取り専用でアクセスできるように構成するとプライマリ レプリカからかなりの量のワークロードを軽減できます

読み取り専用セカンダリ レプリカに回すように簡単に調整できるワークロードはレポートデータベース バックアップデータベース整合性チェックインデックスの断片化の分析データ パイプライン抽出運用サポート操作サポートアドホック クエリなどです

各可用性レプリカではSQL Server インスタンスのエンドポイントについて順次的な読み取り専用ルーティング リストを構成することもできますこのリストはレプリカがプライマリ ロールであるときに適用されますこのリストが存在する場合アプリケーションの目的が読み取り専用と指定されているクライアント接続要求はそのリスト内に記載されていて前述のアプリケーションの目的フィルターに適合する最初のセカンダリ レプリカにリダイレクトされます

注 読み取り専用ルーティングによるリダイレクトはプライマリ レプリカにバインドされている可用性グループ リスナーによって実行されますプライマリ レプリカがオフラインの場合クライアントのリダイレクトは機能しません

詳細については「可用性グループの読み取り専用ルーティングの構成 (SQL Server) 」(httpmsdnmicrosoftcomja-jplibraryhh710054(SQL110)aspx) を参照してください

可用性の向上 ndash データベースSQL Server 2012 ではデータベースの構成と機能に関してさまざまな点が強化されています

以下の機能は復旧時間の短縮に役立ちます

予測可能な復旧時間データベースごとにターゲット復旧時間の長さを設定することでバックグラウンドで実行される CHECKPOINT コマンドのスケジュールを制御できますこのコマンドは間接的なチェックポイントとして再起動時またはフェールオーバー時にトランザクション ログの復旧に必要となる時間の推定値に基づいて定期的に実行されますそれによってチェックポイントごとに IO 操作がほぼ均等に配分され復旧時間 (RTO) の予測可能性が高まります

SQL Server 2012 よりも前のバージョンではバックグラウンドの CHECKPOINT コマンドがトランザクションの量や負荷とは無関係に一定間隔で実行されていたので復旧時間を予測することはできませんでした

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 33

詳細については「データベース チェックポイント」(httpmsdnmicrosoftcomja-jplibraryms189573(SQL110)aspx) を参照してください

以下の向上点は計画的なダウンタイムが必要になる一般的な状況を減らすのに役立ちます

LOB 列のオンライン インデックス操作varbinary(max)varchar(max)nvarchar(max)または XML データ型の列が含まれているインデックスをオンラインで再構築または再構成できるようになりました

新しい NOT NULL 列のオンライン スキーマ修正既定値を使用して新しい NOT NULL 列を SQL Server 2012 データベース テーブルに追加する場合システム メタデータの更新にはスキーマ ロックだけが必要ですALTER TABLE ステートメントですべての行にデータを設定する必要はありません

いずれかの行で実際に変更またはインデックスの再作成が行われない限り列の既定値は物理的に格納されませんクエリでは列に実際の値が存在しない場合メタデータから既定値を返します

ストレージのサポート強化の例として次のようなものがあります

ページの自動修復ある種のストレージ サブシステム エラーが発生するとデータ ページが破損し読み取り不可能になる場合がありますAlwaysOn 可用性グループではそのような種類のエラーを検出し自動的に復旧できます復旧のために影響を受けたデータ ページの最新のコピーが別の可用性レプリカから非同期で取得され適用されます

以前のバージョンでもデータベース ミラーリングに同様の機能がありましたが新しい機能では複数のレプリカをサポートできるようになっています

詳細については「ページの自動修復」(httpmsdnmicrosoftcomja-jplibrarybb677167(SQL110)aspx) を参照してください

クライアント接続の推奨事項クライアント アプリケーションが Microsoft SQL Server 2012 AlwaysOn テクノロジの利点を十分に活用できるようにするには次のガイドラインに従います

AlwaysOn 対応のクライアント ライブラリ表形式のデータ ストリーム (TDS) プロトコル Version 74 以降をサポートしているクライアント ライブラリを使用しますこれによってAlwaysOn の機能に対応した適切な機能がクライアント側でも提供されますクライアント ライブラリの例としてはData Provider for SQL Server in NET Framework 402SQL Native Client 110 などがあります

接続プロバイダー プロパティ MultiSubnetFailover = True接続文字列にこのキーワードを使用することでクライアント ライブラリでは(複数のサブネットに IP アドレスを持つ) 可用性グループ リスナーまたは FCI に登録されているすべての IP アドレスに同時に接

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 34

続できるようになります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 35

接続プロバイダー プロパティ ApplicationIntent = ReadOnly必要に応じてプライマリ レプリカの読み取り専用ワークロードをセカンダリ レプリカに移管することができます

レガシ クライアントの接続タイムアウトレガシ クライアントのデータベース ライブラリには並列で接続を試行する機能が実装されていないため複数の IP アドレスがある場合にはTCP タイムアウトに達するか正常に接続できるまで1 つずつ順番に接続を試行します

複数の IP アドレスが存在する場合はタイムアウトと再試行が逐次的に繰り返される可能性に備えてレガシ クライアントの接続タイムアウトを調整する必要があります値は少なくとも 15 秒 + 21 秒 times セカンダリ レプリカ数にします

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 36

結論このホワイト ペーパーではSQL Server 2012 の AlwaysOn による高可用性災害復旧ソリューションを使用し予定されたダウンタイムや予定外のダウンタイムを短縮したりアプリケーションの可用性を最大限に高めたりデータを保護したりする方法について基本的なコンテキストを確立しました

高可用性データベース環境の計画管理測定に関連したビジネス上の目的と課題は多くの場合目標復旧時点 (RPO) と目標復旧時間 (RTO) という形で数量化して表すことができます

SQL Server 2012 AlwaysOn は組織が高可用性や災害復旧に関する一般的な状況に対処するための機能をRPO と RTO を適切に達成できることを念頭にインフラストラクチャ レベルデータ プラットフォーム レベルデータベース レベルのそれぞれで提供します

詳細情報

httpwwwmicrosoftcomja-jpsqlserver2012defaultaspx SQL Server Web サイト

httptechnetmicrosoftcomja-jpsqlserver SQL Server TechCenter

httpmsdnmicrosoftcomja-jpsqlserver SQL Server 開発者向け技術情報

このホワイト ペーパーはお役に立ちましたか フィードバックをお寄せください1 (役に立たなかった) ~ 5 (非常に役に立った) の 5 段階で評価してくださいまたその評価の理由もお知らせください以下に例を示します

評価が高い 例が適切図がわかりやすい説明が明快といったことが理由である 評価が低い 例が少ない図がわかりにくい説明があいまいといったことが理由で

ある

このようなフィードバックをお寄せいただくと今後のホワイト ペーパーの品質向上につながります

フィードバックの送信

loz Version 112012 年 2 月 21 日

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 37

  • 高可用性と災害復旧の概念
    • 高可用性について
      • 予定されたダウンタイムと予定外のダウンタイム
      • 段階的な可用性
        • ダウンタイムの定量化
          • 復旧目標
          • ROI または機会費用の正当化
          • 可用性の健全度の監視
          • 災害復旧の計画
            • 概要 Microsoft SQL Server 2012 での高可用性
              • SQL Server AlwaysOn
              • 計画的なダウンタイムの大幅な削減
              • アイドル状態のハードウェアをなくしてコスト効率とパフォーマンスを向上
              • 簡単な配置と管理
              • RPO と RTO の機能比較
                  • SQL Server AlwaysOn の保護レイヤー
                    • インフラストラクチャの可用性
                      • Windows オペレーティング システム
                        • Windows Server Core インストール オプション
                        • プライベート クラウド用の SQL Server の最適化
                          • Windows Server フェールオーバー クラスタリング
                            • WSFC ストレージ構成
                            • WSFC リソースの正常性の検出とフェールオーバー
                              • WSFC のクラスター検証ウィザード
                              • WSFC クォーラム モードと投票の構成
                                • クォーラムによるクラスター状態検出
                                • クォーラム モード
                                • 投票ノードと非投票ノード
                                • クォーラム投票に推奨される調整
                                  • WSFC の強制クォーラムによる災害復旧
                                    • SQL Server インスタンス レベルでの保護
                                      • 可用性の向上 ndash SQL Server インスタンス
                                      • AlwaysOn フェールオーバー クラスター インスタンス
                                        • FCI のフェールオーバー プロセス
                                        • FCI の強化
                                            • データベースの可用性
                                              • AlwaysOn 可用性グループ
                                                • 可用性レプリカとロール
                                                • 可用性レプリカの同期
                                                  • 可用性グループのフェールオーバー
                                                  • 可用性グループ リスナー
                                                    • アプリケーションの目的によるフィルター処理
                                                    • アプリケーションの目的の読み取り専用ルーティング
                                                      • 可用性の向上 ndash データベース
                                                        • クライアント接続の推奨事項
                                                          • 結論
Page 33: 高可用性と災害復旧の概念download.microsoft.com/download/6/B/E/6BE0C3F3-2991-4766... · Web view高可用性と災害復旧のソリューションのために最適なデータベース

データベースの可用性インフラストラクチャ レベルおよび SQL Server インスタンス レベルのコンポーネントで提供されている高可用性機能は互いに連係してホストされているデータベースを暗黙的に保護しますAlwaysOn ソリューションではデータベースのデータおよびデータ層アプリケーションを明示的に保護するために一連のオプションが追加で用意されています

AlwaysOn 可用性グループ可用性グループは1 つの SQL Server インスタンスから同じ WSFC クラスター内の別のインスタンスへと同時にフェールオーバーされるユーザー データベースのセットですクライアント アプリケーションは可用性グループ リスナーと呼ばれる WSFC 仮想ネットワーク名を通じて可用性グループのデータベースに接続できますこうすることで基になる SQL Server インスタンスが抽象化されます

AlwaysOn 可用性グループは正常性監視フェールオーバーの調整およびサーバー接続を Windows Server フェールオーバー クラスタリングに依存していますWSFC クラスター ノード上の SQL Server インスタンスでAlwaysOn サポートを有効にする必要がありますただしそのインスタンスが FCI である必要はなく対称共有ストレージを使用する必要もありません

詳細については「AlwaysOn 可用性グループの概要 」(httpmsdnmicrosoftcomja-jplibraryff877884(SQL110)aspx) を参照してください

可用性レプリカとロール可用性グループの各 SQL Server インスタンスは可用性グループのユーザー データベースのコピーを保持している可用性レプリカをホストしますSQL Server インスタンスは特定の可用性グループの可用性レプリカを 1 つだけホストすることができますが複数の可用性グループを同じインスタンスに置くことは可能ですSQL Server インスタンスは専用の (非共有) ストレージ ボリュームを持つ必要があります

可用性レプリカの 1 つがプライマリ レプリカの役割を果たしますこれは可用性グループ データベースのマスター コピーとして指定されていて読み取り書き込み操作を行うことができます

可用性グループには読み取り専用の可用性レプリカを最大 4 つまで追加で含めることができますこれらは個別にセカンダリ レプリカの役割を果たします

可用性レプリカの同期可用性グループの各データベースの内容はSQL Server によるログ ベースのデータ移動メカニズムを通じてプライマリ レプリカから各セカンダリ レプリカに同期されますそのため可用性グループのすべてのデータベースは完全復旧モデルに設定する必要があります

セカンダリ レプリカはプライマリ レプリカのデータベースとトランザクション ログの完全なバックアップと復元によって初期化されますプライマリ レプリカで新しいトランザクションがコミットされるとトランザクション ログの対応する部分がキャッシュされ

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 28

キューに入れられてネットワーク経由でセカンダリ レプリカ ノード上のデータベース ミラーリング エンドポイントに送信されます

この方法によりプライマリ レプリカのトランザクション ログの新しいエントリが各セカンダリ レプリカのトランザクション ログに追加されます各セカンダリ レプリカはログ シーケンス番号 (LSN) をプライマリ レプリカに定期的に送り返しトランザクション ログのどのくらいの量がリモート ディスクに書き込まれフラッシュされたかを示します

注 各可用性レプリカはそれぞれ独自に独立したトランザクション ログ再実行スレッドのセットを保持していますこれは可用性レプリカの同期プロセスには含まれませんセカンダリ レプリカ上ではログ再実行プロセスによって遅延時間が生じるためユーザーはそれをデータの待機時間として感じる場合があります

プライマリまたはセカンダリの役割を果たす他に各可用性レプリカには可用性モードもありますこのモードは次のようにCOMMIT TRAN ステートメントの実行時にトランザクション ログの書き込みの連係を制御します

同期コミット モードすべての同期コミット セカンダリ レプリカからそれぞれ独自のトランザクション ログの書き込み完了 (LSN 以降) が通知されるまでプライマリ レプリカはそのトランザクションをコミットしません可用性グループでは最大で 2 つの同期コミット セカンダリ レプリカを使用できます

同期コミット モードではプライマリ レプリカ データベースでトランザクションの遅延が生じますがコミットされたトランザクションに対するセカンダリ レプリカでのデータ損失を確実に防ぐことができます

非同期コミット モードプライマリ レプリカはローカル トランザクション ログの書き込み後にトランザクションをコミットしますが非同期コミット セカンダリ レプリカからトランザクション ログの書き込み完了通知を待つことはしません可用性グループでは最大で 4 つの非同期コミット セカンダリ レプリカを使用できますただし両方の種類を合わせて使用できるセカンダリ レプリカの合計は最大 4 つです

非同期コミット モードではプライマリ レプリカ データベースで生じるトランザクションの遅延が最小になりますがセカンダリ レプリカでのトランザクション ログが遅れる場合があるため一部のデータが失われる可能性があります

詳細については「可用性モード」(httpmsdnmicrosoftcomja-jplibraryff877931(SQL110)aspx) を参照してください

可用性レプリカ間のデータ フローの全体的な正常性は各レプリカの同期状態によって示されますセカンダリ レプリカにフェールオーバーしたときに同期状態が 同期済み または 同期中 になっていなければほとんどの場合はデータ損失が発生することになります

各セカンダリ レプリカの同期ストリームにはセッション タイムアウト プロパティがあります同期コミット モードに構成されているセカンダリ レプリカがセッション タイムアウトでエラーになると内部的には一時的に非同期としてマークされますこれはセカンダ

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 29

リ レプリカのエラーがプライマリ レプリカでのトランザクション ログの書き込みに影響しないようにするためですそのセカンダリ レプリカが正常に戻ってプライマリ レプリカの状態に追いつくと自動的に通常の同期コミット モード動作に戻されます

可用性グループのフェールオーバー可用性グループとそれに対応する仮想ネットワーク名はWSFC クラスターのリソースとして登録されます可用性グループはプライマリ レプリカの正常性とフェールオーバー ポリシーに基づいて可用性レプリカのレベルでフェールオーバーを行います

可用性グループのフェールオーバー ポリシーではsp_server_diagnostics システム ストアド プロシージャと FailureConditionLevel プロパティを使用して可用性グループに対して許容されるエラーの重大度のレベルを示しますこの同じメカニズムがFCI のフェールオーバー ポリシーにも使用されます

フェールオーバーが発生した場合は共有物理リソースの所有権を他のノードに移す代わりにWSFC を利用して他の SQL Server インスタンス上でセカンダリ レプリカを再構成しプライマリ レプリカの役割を引き継がせますその後可用性グループの仮想ネットワーク名リソースがそのインスタンスに転送されます関連する可用性レプリカへのすべてのクライアント接続がリセットされます

レプリカの現在の正常性同期状態および可用性モードに基づいて各レプリカには複合的な フェールオーバーの準備 状態が定義されますこの状態の値はデータ損失の可能性を示していますレプリカの正常性情報はAlwaysOn ダッシュボードまたは sysdm_hadr_availability_replica_states システム ビューで確認できます

各可用性レプリカにはフェールオーバー モードも構成されていますこのモードはフェールオーバーが指示された場合にレプリカの動作を制御します

自動フェールオーバー (データ損失なし)セカンダリ レプリカのトランザクション ログが既に書き込まれ同期されているのですべての AlwaysOn 構成の中でフェールオーバー時間が最短になりますプライマリ レプリカ上の開かれているトランザクションはロールバックされプライマリ レプリカの役割はユーザーによる操作なしでセカンダリ レプリカに転送されます

この場合プライマリ レプリカとセカンダリ レプリカの両方を自動フェールオーバー モードに設定し両方の可用性モードを同期コミットに設定する必要がありますレプリカ間の同期状態は同期済み である必要がありますまたWSFC クラスターは正常なクォーラム状態になっている必要があります

自動フェールオーバーはプライマリ レプリカまたはセカンダリ レプリカが FCI 上にある場合はサポートされませんこれは可用性グループと FCI のフェールオーバー間で競合状態が発生することを防ぐためです

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 30

手動フェールオーバーこの場合管理者はプライマリ レプリカの状態を評価してセカンダリ レプリカにフェールオーバーするかどうかを慎重に判断できます

可用性モードと同期状態に応じて次のような選択が可能です

o 計画的な手動フェールオーバー (データ損失なし)この種類のフェールオーバーを実行できるのはプライマリ レプリカとセカンダリ レプリカの両方が正常で同期済み 状態である場合だけですこれは機能的には自動フェールオーバーと同じです

o 強制手動フェールオーバー (データ損失の可能性を許容)これは対象のセカンダリ レプリカの可用性モードが非同期コミットである場合またはプライマリ レプリカに同期されない場合に使用できる唯一のフェールオーバー形式です

警告 このフェールオーバー オプションは災害復旧の状況に限って使用する必要がありますプライマリ レプリカが正常で使用可能である場合は関連する各レプリカの可用性モードを同期コミットに変更し計画的な手動フェールオーバーを実行してください

詳細については「可用性グループの強制手動フェールオーバーの実行」(httpmsdnmicrosoftcomja-jplibraryff877957(SQL110)aspx) を参照してください

フェールオーバー対象のプライマリ レプリカまたはセカンダリ レプリカが次の条件のいずれかに該当する場合は手動フェールオーバーを実行する必要があります

フェールオーバー モードが手動に設定されている 可用性モードが非同期コミットに設定されている レプリカが FCI 上にある

詳細については「フェールオーバーとフェールオーバー モード (AlwaysOn 可用性グルー プ ) 」(httpmsdnmicrosoftcomja-jplibraryhh213151(SQL110)aspx) を参照してください

注 フェールオーバー後新しいプライマリ レプリカが同期コミット モードに設定されていない場合セカンダリ レプリカの同期状態は 中断状態 になりますプライマリ レプリカが同期コミット モードに設定されるまでデータはセカンダリ レプリカに移動されません

可用性グループ リスナー可用性グループ リスナーはクライアントが可用性グループ内のデータベースにアクセスするために使用できる WSFC 仮想ネットワーク名 (VNN) ですVNN クラスター リソースはプライマリ レプリカをホストしている SQL Server インスタンスによって所有されます

仮想ネットワーク名は可用性グループ リスナーの作成時または構成の変更時にのみDNS に登録されます可用性グループ リスナーで定義されているすべての仮想 IP アドレスは同じ仮想ネットワーク名で DNS に登録されます

可用性グループ リスナーを使用する場合クライアント接続要求ではサーバーとして仮想ネットワーク名を指定してから可用性グループ内のデータベース名を指定する必要があり

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 31

ます既定ではこれによってプライマリ レプリカをホストしている SQL Server インスタンスに接続されます

実行時にはクライアントはローカルの DNS リゾルバーを使用して仮想ネットワーク名にマップされている IP アドレスと TCP ポートの一覧を取得しますクライアントは各 IP アドレスへの接続を成功するか接続タイムアウトに達するまで試し続けますMultiSubnetFailover パラメーターが true に設定されているとクライアントは複数の接続を同時に試行するのでクライアント フェールオーバーが大幅に速くなります

フェールオーバーが行われるとサーバー上でクライアント接続がリセットされ可用性グループ リスナーの所有権はプライマリ レプリカの役割と共に新しい SQL Server インスタンスに移動しVNN エンドポイントは新しいインスタンスの仮想 IP アドレスと TCP ポートにバインドされます

詳細については「可用性グループ リスナークライアント接続およびアプリケーションのフェールオーバー」(httpmsdnmicrosoftcomja-jplibraryhh213417(SQL110)aspx) を参照してください

アプリケーションの目的によるフィルター処理可用性グループ リスナーを使用して接続している場合アプリケーションは接続の目的がデータの読み取りと書き込みの両方なのか読み取り専用操作を実行するだけなのかを指定できます指定しない場合クライアントのアプリケーションの目的は既定で読み取りと書き込みになります

各可用性レプリカのプライマリ ロールとセカンダリ ロールについてはクライアントのアプリケーションの目的に対する接続レベルのフィルターとして接続アクセス プロパティも指定できます既定ではアプリケーションの目的と接続アクセスとの組み合わせが無効であると接続が拒否されますSQL Server は次のルールを使用してクライアントの接続要求を振り分ける必要があります

可用性レプリカがプライマリ ロールであり接続アクセスが次のいずれかである場合

すべてのアプリケーションの目的を許可するアプリケーションの目的でクライアント接続をフィルター処理しません

明示的な読み取り書き込みの目的だけを許可するクライアントが読み取り専用を指定している場合接続を拒否します

可用性レプリカがセカンダリ ロールであり接続アクセスが次のいずれかである場合

接続を許可しないすべての接続を拒否しますレプリカは災害復旧だけに使用されます

すべてのアプリケーションの目的を許可するアプリケーションの目的でクライアント接続をフィルター処理しません

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 32

読み取り専用の目的を許可するクライアントが読み取り専用を指定していない場合接続を拒否します

詳細については「可用性レプリカでの読み取り専用アクセスの構成」(httpmsdnmicrosoftcomja-jplibraryhh213002(SQL110)aspx) を参照してください

アプリケーションの目的の読み取り専用ルーティングAlwaysOn 可用性グループの特に優れた点はスタンバイ ハードウェア インフラストラクチャを災害復旧以外の目的に利用できることです1 つ以上のセカンダリ レプリカを読み取り専用でアクセスできるように構成するとプライマリ レプリカからかなりの量のワークロードを軽減できます

読み取り専用セカンダリ レプリカに回すように簡単に調整できるワークロードはレポートデータベース バックアップデータベース整合性チェックインデックスの断片化の分析データ パイプライン抽出運用サポート操作サポートアドホック クエリなどです

各可用性レプリカではSQL Server インスタンスのエンドポイントについて順次的な読み取り専用ルーティング リストを構成することもできますこのリストはレプリカがプライマリ ロールであるときに適用されますこのリストが存在する場合アプリケーションの目的が読み取り専用と指定されているクライアント接続要求はそのリスト内に記載されていて前述のアプリケーションの目的フィルターに適合する最初のセカンダリ レプリカにリダイレクトされます

注 読み取り専用ルーティングによるリダイレクトはプライマリ レプリカにバインドされている可用性グループ リスナーによって実行されますプライマリ レプリカがオフラインの場合クライアントのリダイレクトは機能しません

詳細については「可用性グループの読み取り専用ルーティングの構成 (SQL Server) 」(httpmsdnmicrosoftcomja-jplibraryhh710054(SQL110)aspx) を参照してください

可用性の向上 ndash データベースSQL Server 2012 ではデータベースの構成と機能に関してさまざまな点が強化されています

以下の機能は復旧時間の短縮に役立ちます

予測可能な復旧時間データベースごとにターゲット復旧時間の長さを設定することでバックグラウンドで実行される CHECKPOINT コマンドのスケジュールを制御できますこのコマンドは間接的なチェックポイントとして再起動時またはフェールオーバー時にトランザクション ログの復旧に必要となる時間の推定値に基づいて定期的に実行されますそれによってチェックポイントごとに IO 操作がほぼ均等に配分され復旧時間 (RTO) の予測可能性が高まります

SQL Server 2012 よりも前のバージョンではバックグラウンドの CHECKPOINT コマンドがトランザクションの量や負荷とは無関係に一定間隔で実行されていたので復旧時間を予測することはできませんでした

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 33

詳細については「データベース チェックポイント」(httpmsdnmicrosoftcomja-jplibraryms189573(SQL110)aspx) を参照してください

以下の向上点は計画的なダウンタイムが必要になる一般的な状況を減らすのに役立ちます

LOB 列のオンライン インデックス操作varbinary(max)varchar(max)nvarchar(max)または XML データ型の列が含まれているインデックスをオンラインで再構築または再構成できるようになりました

新しい NOT NULL 列のオンライン スキーマ修正既定値を使用して新しい NOT NULL 列を SQL Server 2012 データベース テーブルに追加する場合システム メタデータの更新にはスキーマ ロックだけが必要ですALTER TABLE ステートメントですべての行にデータを設定する必要はありません

いずれかの行で実際に変更またはインデックスの再作成が行われない限り列の既定値は物理的に格納されませんクエリでは列に実際の値が存在しない場合メタデータから既定値を返します

ストレージのサポート強化の例として次のようなものがあります

ページの自動修復ある種のストレージ サブシステム エラーが発生するとデータ ページが破損し読み取り不可能になる場合がありますAlwaysOn 可用性グループではそのような種類のエラーを検出し自動的に復旧できます復旧のために影響を受けたデータ ページの最新のコピーが別の可用性レプリカから非同期で取得され適用されます

以前のバージョンでもデータベース ミラーリングに同様の機能がありましたが新しい機能では複数のレプリカをサポートできるようになっています

詳細については「ページの自動修復」(httpmsdnmicrosoftcomja-jplibrarybb677167(SQL110)aspx) を参照してください

クライアント接続の推奨事項クライアント アプリケーションが Microsoft SQL Server 2012 AlwaysOn テクノロジの利点を十分に活用できるようにするには次のガイドラインに従います

AlwaysOn 対応のクライアント ライブラリ表形式のデータ ストリーム (TDS) プロトコル Version 74 以降をサポートしているクライアント ライブラリを使用しますこれによってAlwaysOn の機能に対応した適切な機能がクライアント側でも提供されますクライアント ライブラリの例としてはData Provider for SQL Server in NET Framework 402SQL Native Client 110 などがあります

接続プロバイダー プロパティ MultiSubnetFailover = True接続文字列にこのキーワードを使用することでクライアント ライブラリでは(複数のサブネットに IP アドレスを持つ) 可用性グループ リスナーまたは FCI に登録されているすべての IP アドレスに同時に接

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 34

続できるようになります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 35

接続プロバイダー プロパティ ApplicationIntent = ReadOnly必要に応じてプライマリ レプリカの読み取り専用ワークロードをセカンダリ レプリカに移管することができます

レガシ クライアントの接続タイムアウトレガシ クライアントのデータベース ライブラリには並列で接続を試行する機能が実装されていないため複数の IP アドレスがある場合にはTCP タイムアウトに達するか正常に接続できるまで1 つずつ順番に接続を試行します

複数の IP アドレスが存在する場合はタイムアウトと再試行が逐次的に繰り返される可能性に備えてレガシ クライアントの接続タイムアウトを調整する必要があります値は少なくとも 15 秒 + 21 秒 times セカンダリ レプリカ数にします

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 36

結論このホワイト ペーパーではSQL Server 2012 の AlwaysOn による高可用性災害復旧ソリューションを使用し予定されたダウンタイムや予定外のダウンタイムを短縮したりアプリケーションの可用性を最大限に高めたりデータを保護したりする方法について基本的なコンテキストを確立しました

高可用性データベース環境の計画管理測定に関連したビジネス上の目的と課題は多くの場合目標復旧時点 (RPO) と目標復旧時間 (RTO) という形で数量化して表すことができます

SQL Server 2012 AlwaysOn は組織が高可用性や災害復旧に関する一般的な状況に対処するための機能をRPO と RTO を適切に達成できることを念頭にインフラストラクチャ レベルデータ プラットフォーム レベルデータベース レベルのそれぞれで提供します

詳細情報

httpwwwmicrosoftcomja-jpsqlserver2012defaultaspx SQL Server Web サイト

httptechnetmicrosoftcomja-jpsqlserver SQL Server TechCenter

httpmsdnmicrosoftcomja-jpsqlserver SQL Server 開発者向け技術情報

このホワイト ペーパーはお役に立ちましたか フィードバックをお寄せください1 (役に立たなかった) ~ 5 (非常に役に立った) の 5 段階で評価してくださいまたその評価の理由もお知らせください以下に例を示します

評価が高い 例が適切図がわかりやすい説明が明快といったことが理由である 評価が低い 例が少ない図がわかりにくい説明があいまいといったことが理由で

ある

このようなフィードバックをお寄せいただくと今後のホワイト ペーパーの品質向上につながります

フィードバックの送信

loz Version 112012 年 2 月 21 日

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 37

  • 高可用性と災害復旧の概念
    • 高可用性について
      • 予定されたダウンタイムと予定外のダウンタイム
      • 段階的な可用性
        • ダウンタイムの定量化
          • 復旧目標
          • ROI または機会費用の正当化
          • 可用性の健全度の監視
          • 災害復旧の計画
            • 概要 Microsoft SQL Server 2012 での高可用性
              • SQL Server AlwaysOn
              • 計画的なダウンタイムの大幅な削減
              • アイドル状態のハードウェアをなくしてコスト効率とパフォーマンスを向上
              • 簡単な配置と管理
              • RPO と RTO の機能比較
                  • SQL Server AlwaysOn の保護レイヤー
                    • インフラストラクチャの可用性
                      • Windows オペレーティング システム
                        • Windows Server Core インストール オプション
                        • プライベート クラウド用の SQL Server の最適化
                          • Windows Server フェールオーバー クラスタリング
                            • WSFC ストレージ構成
                            • WSFC リソースの正常性の検出とフェールオーバー
                              • WSFC のクラスター検証ウィザード
                              • WSFC クォーラム モードと投票の構成
                                • クォーラムによるクラスター状態検出
                                • クォーラム モード
                                • 投票ノードと非投票ノード
                                • クォーラム投票に推奨される調整
                                  • WSFC の強制クォーラムによる災害復旧
                                    • SQL Server インスタンス レベルでの保護
                                      • 可用性の向上 ndash SQL Server インスタンス
                                      • AlwaysOn フェールオーバー クラスター インスタンス
                                        • FCI のフェールオーバー プロセス
                                        • FCI の強化
                                            • データベースの可用性
                                              • AlwaysOn 可用性グループ
                                                • 可用性レプリカとロール
                                                • 可用性レプリカの同期
                                                  • 可用性グループのフェールオーバー
                                                  • 可用性グループ リスナー
                                                    • アプリケーションの目的によるフィルター処理
                                                    • アプリケーションの目的の読み取り専用ルーティング
                                                      • 可用性の向上 ndash データベース
                                                        • クライアント接続の推奨事項
                                                          • 結論
Page 34: 高可用性と災害復旧の概念download.microsoft.com/download/6/B/E/6BE0C3F3-2991-4766... · Web view高可用性と災害復旧のソリューションのために最適なデータベース

キューに入れられてネットワーク経由でセカンダリ レプリカ ノード上のデータベース ミラーリング エンドポイントに送信されます

この方法によりプライマリ レプリカのトランザクション ログの新しいエントリが各セカンダリ レプリカのトランザクション ログに追加されます各セカンダリ レプリカはログ シーケンス番号 (LSN) をプライマリ レプリカに定期的に送り返しトランザクション ログのどのくらいの量がリモート ディスクに書き込まれフラッシュされたかを示します

注 各可用性レプリカはそれぞれ独自に独立したトランザクション ログ再実行スレッドのセットを保持していますこれは可用性レプリカの同期プロセスには含まれませんセカンダリ レプリカ上ではログ再実行プロセスによって遅延時間が生じるためユーザーはそれをデータの待機時間として感じる場合があります

プライマリまたはセカンダリの役割を果たす他に各可用性レプリカには可用性モードもありますこのモードは次のようにCOMMIT TRAN ステートメントの実行時にトランザクション ログの書き込みの連係を制御します

同期コミット モードすべての同期コミット セカンダリ レプリカからそれぞれ独自のトランザクション ログの書き込み完了 (LSN 以降) が通知されるまでプライマリ レプリカはそのトランザクションをコミットしません可用性グループでは最大で 2 つの同期コミット セカンダリ レプリカを使用できます

同期コミット モードではプライマリ レプリカ データベースでトランザクションの遅延が生じますがコミットされたトランザクションに対するセカンダリ レプリカでのデータ損失を確実に防ぐことができます

非同期コミット モードプライマリ レプリカはローカル トランザクション ログの書き込み後にトランザクションをコミットしますが非同期コミット セカンダリ レプリカからトランザクション ログの書き込み完了通知を待つことはしません可用性グループでは最大で 4 つの非同期コミット セカンダリ レプリカを使用できますただし両方の種類を合わせて使用できるセカンダリ レプリカの合計は最大 4 つです

非同期コミット モードではプライマリ レプリカ データベースで生じるトランザクションの遅延が最小になりますがセカンダリ レプリカでのトランザクション ログが遅れる場合があるため一部のデータが失われる可能性があります

詳細については「可用性モード」(httpmsdnmicrosoftcomja-jplibraryff877931(SQL110)aspx) を参照してください

可用性レプリカ間のデータ フローの全体的な正常性は各レプリカの同期状態によって示されますセカンダリ レプリカにフェールオーバーしたときに同期状態が 同期済み または 同期中 になっていなければほとんどの場合はデータ損失が発生することになります

各セカンダリ レプリカの同期ストリームにはセッション タイムアウト プロパティがあります同期コミット モードに構成されているセカンダリ レプリカがセッション タイムアウトでエラーになると内部的には一時的に非同期としてマークされますこれはセカンダ

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 29

リ レプリカのエラーがプライマリ レプリカでのトランザクション ログの書き込みに影響しないようにするためですそのセカンダリ レプリカが正常に戻ってプライマリ レプリカの状態に追いつくと自動的に通常の同期コミット モード動作に戻されます

可用性グループのフェールオーバー可用性グループとそれに対応する仮想ネットワーク名はWSFC クラスターのリソースとして登録されます可用性グループはプライマリ レプリカの正常性とフェールオーバー ポリシーに基づいて可用性レプリカのレベルでフェールオーバーを行います

可用性グループのフェールオーバー ポリシーではsp_server_diagnostics システム ストアド プロシージャと FailureConditionLevel プロパティを使用して可用性グループに対して許容されるエラーの重大度のレベルを示しますこの同じメカニズムがFCI のフェールオーバー ポリシーにも使用されます

フェールオーバーが発生した場合は共有物理リソースの所有権を他のノードに移す代わりにWSFC を利用して他の SQL Server インスタンス上でセカンダリ レプリカを再構成しプライマリ レプリカの役割を引き継がせますその後可用性グループの仮想ネットワーク名リソースがそのインスタンスに転送されます関連する可用性レプリカへのすべてのクライアント接続がリセットされます

レプリカの現在の正常性同期状態および可用性モードに基づいて各レプリカには複合的な フェールオーバーの準備 状態が定義されますこの状態の値はデータ損失の可能性を示していますレプリカの正常性情報はAlwaysOn ダッシュボードまたは sysdm_hadr_availability_replica_states システム ビューで確認できます

各可用性レプリカにはフェールオーバー モードも構成されていますこのモードはフェールオーバーが指示された場合にレプリカの動作を制御します

自動フェールオーバー (データ損失なし)セカンダリ レプリカのトランザクション ログが既に書き込まれ同期されているのですべての AlwaysOn 構成の中でフェールオーバー時間が最短になりますプライマリ レプリカ上の開かれているトランザクションはロールバックされプライマリ レプリカの役割はユーザーによる操作なしでセカンダリ レプリカに転送されます

この場合プライマリ レプリカとセカンダリ レプリカの両方を自動フェールオーバー モードに設定し両方の可用性モードを同期コミットに設定する必要がありますレプリカ間の同期状態は同期済み である必要がありますまたWSFC クラスターは正常なクォーラム状態になっている必要があります

自動フェールオーバーはプライマリ レプリカまたはセカンダリ レプリカが FCI 上にある場合はサポートされませんこれは可用性グループと FCI のフェールオーバー間で競合状態が発生することを防ぐためです

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 30

手動フェールオーバーこの場合管理者はプライマリ レプリカの状態を評価してセカンダリ レプリカにフェールオーバーするかどうかを慎重に判断できます

可用性モードと同期状態に応じて次のような選択が可能です

o 計画的な手動フェールオーバー (データ損失なし)この種類のフェールオーバーを実行できるのはプライマリ レプリカとセカンダリ レプリカの両方が正常で同期済み 状態である場合だけですこれは機能的には自動フェールオーバーと同じです

o 強制手動フェールオーバー (データ損失の可能性を許容)これは対象のセカンダリ レプリカの可用性モードが非同期コミットである場合またはプライマリ レプリカに同期されない場合に使用できる唯一のフェールオーバー形式です

警告 このフェールオーバー オプションは災害復旧の状況に限って使用する必要がありますプライマリ レプリカが正常で使用可能である場合は関連する各レプリカの可用性モードを同期コミットに変更し計画的な手動フェールオーバーを実行してください

詳細については「可用性グループの強制手動フェールオーバーの実行」(httpmsdnmicrosoftcomja-jplibraryff877957(SQL110)aspx) を参照してください

フェールオーバー対象のプライマリ レプリカまたはセカンダリ レプリカが次の条件のいずれかに該当する場合は手動フェールオーバーを実行する必要があります

フェールオーバー モードが手動に設定されている 可用性モードが非同期コミットに設定されている レプリカが FCI 上にある

詳細については「フェールオーバーとフェールオーバー モード (AlwaysOn 可用性グルー プ ) 」(httpmsdnmicrosoftcomja-jplibraryhh213151(SQL110)aspx) を参照してください

注 フェールオーバー後新しいプライマリ レプリカが同期コミット モードに設定されていない場合セカンダリ レプリカの同期状態は 中断状態 になりますプライマリ レプリカが同期コミット モードに設定されるまでデータはセカンダリ レプリカに移動されません

可用性グループ リスナー可用性グループ リスナーはクライアントが可用性グループ内のデータベースにアクセスするために使用できる WSFC 仮想ネットワーク名 (VNN) ですVNN クラスター リソースはプライマリ レプリカをホストしている SQL Server インスタンスによって所有されます

仮想ネットワーク名は可用性グループ リスナーの作成時または構成の変更時にのみDNS に登録されます可用性グループ リスナーで定義されているすべての仮想 IP アドレスは同じ仮想ネットワーク名で DNS に登録されます

可用性グループ リスナーを使用する場合クライアント接続要求ではサーバーとして仮想ネットワーク名を指定してから可用性グループ内のデータベース名を指定する必要があり

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 31

ます既定ではこれによってプライマリ レプリカをホストしている SQL Server インスタンスに接続されます

実行時にはクライアントはローカルの DNS リゾルバーを使用して仮想ネットワーク名にマップされている IP アドレスと TCP ポートの一覧を取得しますクライアントは各 IP アドレスへの接続を成功するか接続タイムアウトに達するまで試し続けますMultiSubnetFailover パラメーターが true に設定されているとクライアントは複数の接続を同時に試行するのでクライアント フェールオーバーが大幅に速くなります

フェールオーバーが行われるとサーバー上でクライアント接続がリセットされ可用性グループ リスナーの所有権はプライマリ レプリカの役割と共に新しい SQL Server インスタンスに移動しVNN エンドポイントは新しいインスタンスの仮想 IP アドレスと TCP ポートにバインドされます

詳細については「可用性グループ リスナークライアント接続およびアプリケーションのフェールオーバー」(httpmsdnmicrosoftcomja-jplibraryhh213417(SQL110)aspx) を参照してください

アプリケーションの目的によるフィルター処理可用性グループ リスナーを使用して接続している場合アプリケーションは接続の目的がデータの読み取りと書き込みの両方なのか読み取り専用操作を実行するだけなのかを指定できます指定しない場合クライアントのアプリケーションの目的は既定で読み取りと書き込みになります

各可用性レプリカのプライマリ ロールとセカンダリ ロールについてはクライアントのアプリケーションの目的に対する接続レベルのフィルターとして接続アクセス プロパティも指定できます既定ではアプリケーションの目的と接続アクセスとの組み合わせが無効であると接続が拒否されますSQL Server は次のルールを使用してクライアントの接続要求を振り分ける必要があります

可用性レプリカがプライマリ ロールであり接続アクセスが次のいずれかである場合

すべてのアプリケーションの目的を許可するアプリケーションの目的でクライアント接続をフィルター処理しません

明示的な読み取り書き込みの目的だけを許可するクライアントが読み取り専用を指定している場合接続を拒否します

可用性レプリカがセカンダリ ロールであり接続アクセスが次のいずれかである場合

接続を許可しないすべての接続を拒否しますレプリカは災害復旧だけに使用されます

すべてのアプリケーションの目的を許可するアプリケーションの目的でクライアント接続をフィルター処理しません

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 32

読み取り専用の目的を許可するクライアントが読み取り専用を指定していない場合接続を拒否します

詳細については「可用性レプリカでの読み取り専用アクセスの構成」(httpmsdnmicrosoftcomja-jplibraryhh213002(SQL110)aspx) を参照してください

アプリケーションの目的の読み取り専用ルーティングAlwaysOn 可用性グループの特に優れた点はスタンバイ ハードウェア インフラストラクチャを災害復旧以外の目的に利用できることです1 つ以上のセカンダリ レプリカを読み取り専用でアクセスできるように構成するとプライマリ レプリカからかなりの量のワークロードを軽減できます

読み取り専用セカンダリ レプリカに回すように簡単に調整できるワークロードはレポートデータベース バックアップデータベース整合性チェックインデックスの断片化の分析データ パイプライン抽出運用サポート操作サポートアドホック クエリなどです

各可用性レプリカではSQL Server インスタンスのエンドポイントについて順次的な読み取り専用ルーティング リストを構成することもできますこのリストはレプリカがプライマリ ロールであるときに適用されますこのリストが存在する場合アプリケーションの目的が読み取り専用と指定されているクライアント接続要求はそのリスト内に記載されていて前述のアプリケーションの目的フィルターに適合する最初のセカンダリ レプリカにリダイレクトされます

注 読み取り専用ルーティングによるリダイレクトはプライマリ レプリカにバインドされている可用性グループ リスナーによって実行されますプライマリ レプリカがオフラインの場合クライアントのリダイレクトは機能しません

詳細については「可用性グループの読み取り専用ルーティングの構成 (SQL Server) 」(httpmsdnmicrosoftcomja-jplibraryhh710054(SQL110)aspx) を参照してください

可用性の向上 ndash データベースSQL Server 2012 ではデータベースの構成と機能に関してさまざまな点が強化されています

以下の機能は復旧時間の短縮に役立ちます

予測可能な復旧時間データベースごとにターゲット復旧時間の長さを設定することでバックグラウンドで実行される CHECKPOINT コマンドのスケジュールを制御できますこのコマンドは間接的なチェックポイントとして再起動時またはフェールオーバー時にトランザクション ログの復旧に必要となる時間の推定値に基づいて定期的に実行されますそれによってチェックポイントごとに IO 操作がほぼ均等に配分され復旧時間 (RTO) の予測可能性が高まります

SQL Server 2012 よりも前のバージョンではバックグラウンドの CHECKPOINT コマンドがトランザクションの量や負荷とは無関係に一定間隔で実行されていたので復旧時間を予測することはできませんでした

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 33

詳細については「データベース チェックポイント」(httpmsdnmicrosoftcomja-jplibraryms189573(SQL110)aspx) を参照してください

以下の向上点は計画的なダウンタイムが必要になる一般的な状況を減らすのに役立ちます

LOB 列のオンライン インデックス操作varbinary(max)varchar(max)nvarchar(max)または XML データ型の列が含まれているインデックスをオンラインで再構築または再構成できるようになりました

新しい NOT NULL 列のオンライン スキーマ修正既定値を使用して新しい NOT NULL 列を SQL Server 2012 データベース テーブルに追加する場合システム メタデータの更新にはスキーマ ロックだけが必要ですALTER TABLE ステートメントですべての行にデータを設定する必要はありません

いずれかの行で実際に変更またはインデックスの再作成が行われない限り列の既定値は物理的に格納されませんクエリでは列に実際の値が存在しない場合メタデータから既定値を返します

ストレージのサポート強化の例として次のようなものがあります

ページの自動修復ある種のストレージ サブシステム エラーが発生するとデータ ページが破損し読み取り不可能になる場合がありますAlwaysOn 可用性グループではそのような種類のエラーを検出し自動的に復旧できます復旧のために影響を受けたデータ ページの最新のコピーが別の可用性レプリカから非同期で取得され適用されます

以前のバージョンでもデータベース ミラーリングに同様の機能がありましたが新しい機能では複数のレプリカをサポートできるようになっています

詳細については「ページの自動修復」(httpmsdnmicrosoftcomja-jplibrarybb677167(SQL110)aspx) を参照してください

クライアント接続の推奨事項クライアント アプリケーションが Microsoft SQL Server 2012 AlwaysOn テクノロジの利点を十分に活用できるようにするには次のガイドラインに従います

AlwaysOn 対応のクライアント ライブラリ表形式のデータ ストリーム (TDS) プロトコル Version 74 以降をサポートしているクライアント ライブラリを使用しますこれによってAlwaysOn の機能に対応した適切な機能がクライアント側でも提供されますクライアント ライブラリの例としてはData Provider for SQL Server in NET Framework 402SQL Native Client 110 などがあります

接続プロバイダー プロパティ MultiSubnetFailover = True接続文字列にこのキーワードを使用することでクライアント ライブラリでは(複数のサブネットに IP アドレスを持つ) 可用性グループ リスナーまたは FCI に登録されているすべての IP アドレスに同時に接

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 34

続できるようになります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 35

接続プロバイダー プロパティ ApplicationIntent = ReadOnly必要に応じてプライマリ レプリカの読み取り専用ワークロードをセカンダリ レプリカに移管することができます

レガシ クライアントの接続タイムアウトレガシ クライアントのデータベース ライブラリには並列で接続を試行する機能が実装されていないため複数の IP アドレスがある場合にはTCP タイムアウトに達するか正常に接続できるまで1 つずつ順番に接続を試行します

複数の IP アドレスが存在する場合はタイムアウトと再試行が逐次的に繰り返される可能性に備えてレガシ クライアントの接続タイムアウトを調整する必要があります値は少なくとも 15 秒 + 21 秒 times セカンダリ レプリカ数にします

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 36

結論このホワイト ペーパーではSQL Server 2012 の AlwaysOn による高可用性災害復旧ソリューションを使用し予定されたダウンタイムや予定外のダウンタイムを短縮したりアプリケーションの可用性を最大限に高めたりデータを保護したりする方法について基本的なコンテキストを確立しました

高可用性データベース環境の計画管理測定に関連したビジネス上の目的と課題は多くの場合目標復旧時点 (RPO) と目標復旧時間 (RTO) という形で数量化して表すことができます

SQL Server 2012 AlwaysOn は組織が高可用性や災害復旧に関する一般的な状況に対処するための機能をRPO と RTO を適切に達成できることを念頭にインフラストラクチャ レベルデータ プラットフォーム レベルデータベース レベルのそれぞれで提供します

詳細情報

httpwwwmicrosoftcomja-jpsqlserver2012defaultaspx SQL Server Web サイト

httptechnetmicrosoftcomja-jpsqlserver SQL Server TechCenter

httpmsdnmicrosoftcomja-jpsqlserver SQL Server 開発者向け技術情報

このホワイト ペーパーはお役に立ちましたか フィードバックをお寄せください1 (役に立たなかった) ~ 5 (非常に役に立った) の 5 段階で評価してくださいまたその評価の理由もお知らせください以下に例を示します

評価が高い 例が適切図がわかりやすい説明が明快といったことが理由である 評価が低い 例が少ない図がわかりにくい説明があいまいといったことが理由で

ある

このようなフィードバックをお寄せいただくと今後のホワイト ペーパーの品質向上につながります

フィードバックの送信

loz Version 112012 年 2 月 21 日

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 37

  • 高可用性と災害復旧の概念
    • 高可用性について
      • 予定されたダウンタイムと予定外のダウンタイム
      • 段階的な可用性
        • ダウンタイムの定量化
          • 復旧目標
          • ROI または機会費用の正当化
          • 可用性の健全度の監視
          • 災害復旧の計画
            • 概要 Microsoft SQL Server 2012 での高可用性
              • SQL Server AlwaysOn
              • 計画的なダウンタイムの大幅な削減
              • アイドル状態のハードウェアをなくしてコスト効率とパフォーマンスを向上
              • 簡単な配置と管理
              • RPO と RTO の機能比較
                  • SQL Server AlwaysOn の保護レイヤー
                    • インフラストラクチャの可用性
                      • Windows オペレーティング システム
                        • Windows Server Core インストール オプション
                        • プライベート クラウド用の SQL Server の最適化
                          • Windows Server フェールオーバー クラスタリング
                            • WSFC ストレージ構成
                            • WSFC リソースの正常性の検出とフェールオーバー
                              • WSFC のクラスター検証ウィザード
                              • WSFC クォーラム モードと投票の構成
                                • クォーラムによるクラスター状態検出
                                • クォーラム モード
                                • 投票ノードと非投票ノード
                                • クォーラム投票に推奨される調整
                                  • WSFC の強制クォーラムによる災害復旧
                                    • SQL Server インスタンス レベルでの保護
                                      • 可用性の向上 ndash SQL Server インスタンス
                                      • AlwaysOn フェールオーバー クラスター インスタンス
                                        • FCI のフェールオーバー プロセス
                                        • FCI の強化
                                            • データベースの可用性
                                              • AlwaysOn 可用性グループ
                                                • 可用性レプリカとロール
                                                • 可用性レプリカの同期
                                                  • 可用性グループのフェールオーバー
                                                  • 可用性グループ リスナー
                                                    • アプリケーションの目的によるフィルター処理
                                                    • アプリケーションの目的の読み取り専用ルーティング
                                                      • 可用性の向上 ndash データベース
                                                        • クライアント接続の推奨事項
                                                          • 結論
Page 35: 高可用性と災害復旧の概念download.microsoft.com/download/6/B/E/6BE0C3F3-2991-4766... · Web view高可用性と災害復旧のソリューションのために最適なデータベース

リ レプリカのエラーがプライマリ レプリカでのトランザクション ログの書き込みに影響しないようにするためですそのセカンダリ レプリカが正常に戻ってプライマリ レプリカの状態に追いつくと自動的に通常の同期コミット モード動作に戻されます

可用性グループのフェールオーバー可用性グループとそれに対応する仮想ネットワーク名はWSFC クラスターのリソースとして登録されます可用性グループはプライマリ レプリカの正常性とフェールオーバー ポリシーに基づいて可用性レプリカのレベルでフェールオーバーを行います

可用性グループのフェールオーバー ポリシーではsp_server_diagnostics システム ストアド プロシージャと FailureConditionLevel プロパティを使用して可用性グループに対して許容されるエラーの重大度のレベルを示しますこの同じメカニズムがFCI のフェールオーバー ポリシーにも使用されます

フェールオーバーが発生した場合は共有物理リソースの所有権を他のノードに移す代わりにWSFC を利用して他の SQL Server インスタンス上でセカンダリ レプリカを再構成しプライマリ レプリカの役割を引き継がせますその後可用性グループの仮想ネットワーク名リソースがそのインスタンスに転送されます関連する可用性レプリカへのすべてのクライアント接続がリセットされます

レプリカの現在の正常性同期状態および可用性モードに基づいて各レプリカには複合的な フェールオーバーの準備 状態が定義されますこの状態の値はデータ損失の可能性を示していますレプリカの正常性情報はAlwaysOn ダッシュボードまたは sysdm_hadr_availability_replica_states システム ビューで確認できます

各可用性レプリカにはフェールオーバー モードも構成されていますこのモードはフェールオーバーが指示された場合にレプリカの動作を制御します

自動フェールオーバー (データ損失なし)セカンダリ レプリカのトランザクション ログが既に書き込まれ同期されているのですべての AlwaysOn 構成の中でフェールオーバー時間が最短になりますプライマリ レプリカ上の開かれているトランザクションはロールバックされプライマリ レプリカの役割はユーザーによる操作なしでセカンダリ レプリカに転送されます

この場合プライマリ レプリカとセカンダリ レプリカの両方を自動フェールオーバー モードに設定し両方の可用性モードを同期コミットに設定する必要がありますレプリカ間の同期状態は同期済み である必要がありますまたWSFC クラスターは正常なクォーラム状態になっている必要があります

自動フェールオーバーはプライマリ レプリカまたはセカンダリ レプリカが FCI 上にある場合はサポートされませんこれは可用性グループと FCI のフェールオーバー間で競合状態が発生することを防ぐためです

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 30

手動フェールオーバーこの場合管理者はプライマリ レプリカの状態を評価してセカンダリ レプリカにフェールオーバーするかどうかを慎重に判断できます

可用性モードと同期状態に応じて次のような選択が可能です

o 計画的な手動フェールオーバー (データ損失なし)この種類のフェールオーバーを実行できるのはプライマリ レプリカとセカンダリ レプリカの両方が正常で同期済み 状態である場合だけですこれは機能的には自動フェールオーバーと同じです

o 強制手動フェールオーバー (データ損失の可能性を許容)これは対象のセカンダリ レプリカの可用性モードが非同期コミットである場合またはプライマリ レプリカに同期されない場合に使用できる唯一のフェールオーバー形式です

警告 このフェールオーバー オプションは災害復旧の状況に限って使用する必要がありますプライマリ レプリカが正常で使用可能である場合は関連する各レプリカの可用性モードを同期コミットに変更し計画的な手動フェールオーバーを実行してください

詳細については「可用性グループの強制手動フェールオーバーの実行」(httpmsdnmicrosoftcomja-jplibraryff877957(SQL110)aspx) を参照してください

フェールオーバー対象のプライマリ レプリカまたはセカンダリ レプリカが次の条件のいずれかに該当する場合は手動フェールオーバーを実行する必要があります

フェールオーバー モードが手動に設定されている 可用性モードが非同期コミットに設定されている レプリカが FCI 上にある

詳細については「フェールオーバーとフェールオーバー モード (AlwaysOn 可用性グルー プ ) 」(httpmsdnmicrosoftcomja-jplibraryhh213151(SQL110)aspx) を参照してください

注 フェールオーバー後新しいプライマリ レプリカが同期コミット モードに設定されていない場合セカンダリ レプリカの同期状態は 中断状態 になりますプライマリ レプリカが同期コミット モードに設定されるまでデータはセカンダリ レプリカに移動されません

可用性グループ リスナー可用性グループ リスナーはクライアントが可用性グループ内のデータベースにアクセスするために使用できる WSFC 仮想ネットワーク名 (VNN) ですVNN クラスター リソースはプライマリ レプリカをホストしている SQL Server インスタンスによって所有されます

仮想ネットワーク名は可用性グループ リスナーの作成時または構成の変更時にのみDNS に登録されます可用性グループ リスナーで定義されているすべての仮想 IP アドレスは同じ仮想ネットワーク名で DNS に登録されます

可用性グループ リスナーを使用する場合クライアント接続要求ではサーバーとして仮想ネットワーク名を指定してから可用性グループ内のデータベース名を指定する必要があり

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 31

ます既定ではこれによってプライマリ レプリカをホストしている SQL Server インスタンスに接続されます

実行時にはクライアントはローカルの DNS リゾルバーを使用して仮想ネットワーク名にマップされている IP アドレスと TCP ポートの一覧を取得しますクライアントは各 IP アドレスへの接続を成功するか接続タイムアウトに達するまで試し続けますMultiSubnetFailover パラメーターが true に設定されているとクライアントは複数の接続を同時に試行するのでクライアント フェールオーバーが大幅に速くなります

フェールオーバーが行われるとサーバー上でクライアント接続がリセットされ可用性グループ リスナーの所有権はプライマリ レプリカの役割と共に新しい SQL Server インスタンスに移動しVNN エンドポイントは新しいインスタンスの仮想 IP アドレスと TCP ポートにバインドされます

詳細については「可用性グループ リスナークライアント接続およびアプリケーションのフェールオーバー」(httpmsdnmicrosoftcomja-jplibraryhh213417(SQL110)aspx) を参照してください

アプリケーションの目的によるフィルター処理可用性グループ リスナーを使用して接続している場合アプリケーションは接続の目的がデータの読み取りと書き込みの両方なのか読み取り専用操作を実行するだけなのかを指定できます指定しない場合クライアントのアプリケーションの目的は既定で読み取りと書き込みになります

各可用性レプリカのプライマリ ロールとセカンダリ ロールについてはクライアントのアプリケーションの目的に対する接続レベルのフィルターとして接続アクセス プロパティも指定できます既定ではアプリケーションの目的と接続アクセスとの組み合わせが無効であると接続が拒否されますSQL Server は次のルールを使用してクライアントの接続要求を振り分ける必要があります

可用性レプリカがプライマリ ロールであり接続アクセスが次のいずれかである場合

すべてのアプリケーションの目的を許可するアプリケーションの目的でクライアント接続をフィルター処理しません

明示的な読み取り書き込みの目的だけを許可するクライアントが読み取り専用を指定している場合接続を拒否します

可用性レプリカがセカンダリ ロールであり接続アクセスが次のいずれかである場合

接続を許可しないすべての接続を拒否しますレプリカは災害復旧だけに使用されます

すべてのアプリケーションの目的を許可するアプリケーションの目的でクライアント接続をフィルター処理しません

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 32

読み取り専用の目的を許可するクライアントが読み取り専用を指定していない場合接続を拒否します

詳細については「可用性レプリカでの読み取り専用アクセスの構成」(httpmsdnmicrosoftcomja-jplibraryhh213002(SQL110)aspx) を参照してください

アプリケーションの目的の読み取り専用ルーティングAlwaysOn 可用性グループの特に優れた点はスタンバイ ハードウェア インフラストラクチャを災害復旧以外の目的に利用できることです1 つ以上のセカンダリ レプリカを読み取り専用でアクセスできるように構成するとプライマリ レプリカからかなりの量のワークロードを軽減できます

読み取り専用セカンダリ レプリカに回すように簡単に調整できるワークロードはレポートデータベース バックアップデータベース整合性チェックインデックスの断片化の分析データ パイプライン抽出運用サポート操作サポートアドホック クエリなどです

各可用性レプリカではSQL Server インスタンスのエンドポイントについて順次的な読み取り専用ルーティング リストを構成することもできますこのリストはレプリカがプライマリ ロールであるときに適用されますこのリストが存在する場合アプリケーションの目的が読み取り専用と指定されているクライアント接続要求はそのリスト内に記載されていて前述のアプリケーションの目的フィルターに適合する最初のセカンダリ レプリカにリダイレクトされます

注 読み取り専用ルーティングによるリダイレクトはプライマリ レプリカにバインドされている可用性グループ リスナーによって実行されますプライマリ レプリカがオフラインの場合クライアントのリダイレクトは機能しません

詳細については「可用性グループの読み取り専用ルーティングの構成 (SQL Server) 」(httpmsdnmicrosoftcomja-jplibraryhh710054(SQL110)aspx) を参照してください

可用性の向上 ndash データベースSQL Server 2012 ではデータベースの構成と機能に関してさまざまな点が強化されています

以下の機能は復旧時間の短縮に役立ちます

予測可能な復旧時間データベースごとにターゲット復旧時間の長さを設定することでバックグラウンドで実行される CHECKPOINT コマンドのスケジュールを制御できますこのコマンドは間接的なチェックポイントとして再起動時またはフェールオーバー時にトランザクション ログの復旧に必要となる時間の推定値に基づいて定期的に実行されますそれによってチェックポイントごとに IO 操作がほぼ均等に配分され復旧時間 (RTO) の予測可能性が高まります

SQL Server 2012 よりも前のバージョンではバックグラウンドの CHECKPOINT コマンドがトランザクションの量や負荷とは無関係に一定間隔で実行されていたので復旧時間を予測することはできませんでした

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 33

詳細については「データベース チェックポイント」(httpmsdnmicrosoftcomja-jplibraryms189573(SQL110)aspx) を参照してください

以下の向上点は計画的なダウンタイムが必要になる一般的な状況を減らすのに役立ちます

LOB 列のオンライン インデックス操作varbinary(max)varchar(max)nvarchar(max)または XML データ型の列が含まれているインデックスをオンラインで再構築または再構成できるようになりました

新しい NOT NULL 列のオンライン スキーマ修正既定値を使用して新しい NOT NULL 列を SQL Server 2012 データベース テーブルに追加する場合システム メタデータの更新にはスキーマ ロックだけが必要ですALTER TABLE ステートメントですべての行にデータを設定する必要はありません

いずれかの行で実際に変更またはインデックスの再作成が行われない限り列の既定値は物理的に格納されませんクエリでは列に実際の値が存在しない場合メタデータから既定値を返します

ストレージのサポート強化の例として次のようなものがあります

ページの自動修復ある種のストレージ サブシステム エラーが発生するとデータ ページが破損し読み取り不可能になる場合がありますAlwaysOn 可用性グループではそのような種類のエラーを検出し自動的に復旧できます復旧のために影響を受けたデータ ページの最新のコピーが別の可用性レプリカから非同期で取得され適用されます

以前のバージョンでもデータベース ミラーリングに同様の機能がありましたが新しい機能では複数のレプリカをサポートできるようになっています

詳細については「ページの自動修復」(httpmsdnmicrosoftcomja-jplibrarybb677167(SQL110)aspx) を参照してください

クライアント接続の推奨事項クライアント アプリケーションが Microsoft SQL Server 2012 AlwaysOn テクノロジの利点を十分に活用できるようにするには次のガイドラインに従います

AlwaysOn 対応のクライアント ライブラリ表形式のデータ ストリーム (TDS) プロトコル Version 74 以降をサポートしているクライアント ライブラリを使用しますこれによってAlwaysOn の機能に対応した適切な機能がクライアント側でも提供されますクライアント ライブラリの例としてはData Provider for SQL Server in NET Framework 402SQL Native Client 110 などがあります

接続プロバイダー プロパティ MultiSubnetFailover = True接続文字列にこのキーワードを使用することでクライアント ライブラリでは(複数のサブネットに IP アドレスを持つ) 可用性グループ リスナーまたは FCI に登録されているすべての IP アドレスに同時に接

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 34

続できるようになります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 35

接続プロバイダー プロパティ ApplicationIntent = ReadOnly必要に応じてプライマリ レプリカの読み取り専用ワークロードをセカンダリ レプリカに移管することができます

レガシ クライアントの接続タイムアウトレガシ クライアントのデータベース ライブラリには並列で接続を試行する機能が実装されていないため複数の IP アドレスがある場合にはTCP タイムアウトに達するか正常に接続できるまで1 つずつ順番に接続を試行します

複数の IP アドレスが存在する場合はタイムアウトと再試行が逐次的に繰り返される可能性に備えてレガシ クライアントの接続タイムアウトを調整する必要があります値は少なくとも 15 秒 + 21 秒 times セカンダリ レプリカ数にします

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 36

結論このホワイト ペーパーではSQL Server 2012 の AlwaysOn による高可用性災害復旧ソリューションを使用し予定されたダウンタイムや予定外のダウンタイムを短縮したりアプリケーションの可用性を最大限に高めたりデータを保護したりする方法について基本的なコンテキストを確立しました

高可用性データベース環境の計画管理測定に関連したビジネス上の目的と課題は多くの場合目標復旧時点 (RPO) と目標復旧時間 (RTO) という形で数量化して表すことができます

SQL Server 2012 AlwaysOn は組織が高可用性や災害復旧に関する一般的な状況に対処するための機能をRPO と RTO を適切に達成できることを念頭にインフラストラクチャ レベルデータ プラットフォーム レベルデータベース レベルのそれぞれで提供します

詳細情報

httpwwwmicrosoftcomja-jpsqlserver2012defaultaspx SQL Server Web サイト

httptechnetmicrosoftcomja-jpsqlserver SQL Server TechCenter

httpmsdnmicrosoftcomja-jpsqlserver SQL Server 開発者向け技術情報

このホワイト ペーパーはお役に立ちましたか フィードバックをお寄せください1 (役に立たなかった) ~ 5 (非常に役に立った) の 5 段階で評価してくださいまたその評価の理由もお知らせください以下に例を示します

評価が高い 例が適切図がわかりやすい説明が明快といったことが理由である 評価が低い 例が少ない図がわかりにくい説明があいまいといったことが理由で

ある

このようなフィードバックをお寄せいただくと今後のホワイト ペーパーの品質向上につながります

フィードバックの送信

loz Version 112012 年 2 月 21 日

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 37

  • 高可用性と災害復旧の概念
    • 高可用性について
      • 予定されたダウンタイムと予定外のダウンタイム
      • 段階的な可用性
        • ダウンタイムの定量化
          • 復旧目標
          • ROI または機会費用の正当化
          • 可用性の健全度の監視
          • 災害復旧の計画
            • 概要 Microsoft SQL Server 2012 での高可用性
              • SQL Server AlwaysOn
              • 計画的なダウンタイムの大幅な削減
              • アイドル状態のハードウェアをなくしてコスト効率とパフォーマンスを向上
              • 簡単な配置と管理
              • RPO と RTO の機能比較
                  • SQL Server AlwaysOn の保護レイヤー
                    • インフラストラクチャの可用性
                      • Windows オペレーティング システム
                        • Windows Server Core インストール オプション
                        • プライベート クラウド用の SQL Server の最適化
                          • Windows Server フェールオーバー クラスタリング
                            • WSFC ストレージ構成
                            • WSFC リソースの正常性の検出とフェールオーバー
                              • WSFC のクラスター検証ウィザード
                              • WSFC クォーラム モードと投票の構成
                                • クォーラムによるクラスター状態検出
                                • クォーラム モード
                                • 投票ノードと非投票ノード
                                • クォーラム投票に推奨される調整
                                  • WSFC の強制クォーラムによる災害復旧
                                    • SQL Server インスタンス レベルでの保護
                                      • 可用性の向上 ndash SQL Server インスタンス
                                      • AlwaysOn フェールオーバー クラスター インスタンス
                                        • FCI のフェールオーバー プロセス
                                        • FCI の強化
                                            • データベースの可用性
                                              • AlwaysOn 可用性グループ
                                                • 可用性レプリカとロール
                                                • 可用性レプリカの同期
                                                  • 可用性グループのフェールオーバー
                                                  • 可用性グループ リスナー
                                                    • アプリケーションの目的によるフィルター処理
                                                    • アプリケーションの目的の読み取り専用ルーティング
                                                      • 可用性の向上 ndash データベース
                                                        • クライアント接続の推奨事項
                                                          • 結論
Page 36: 高可用性と災害復旧の概念download.microsoft.com/download/6/B/E/6BE0C3F3-2991-4766... · Web view高可用性と災害復旧のソリューションのために最適なデータベース

手動フェールオーバーこの場合管理者はプライマリ レプリカの状態を評価してセカンダリ レプリカにフェールオーバーするかどうかを慎重に判断できます

可用性モードと同期状態に応じて次のような選択が可能です

o 計画的な手動フェールオーバー (データ損失なし)この種類のフェールオーバーを実行できるのはプライマリ レプリカとセカンダリ レプリカの両方が正常で同期済み 状態である場合だけですこれは機能的には自動フェールオーバーと同じです

o 強制手動フェールオーバー (データ損失の可能性を許容)これは対象のセカンダリ レプリカの可用性モードが非同期コミットである場合またはプライマリ レプリカに同期されない場合に使用できる唯一のフェールオーバー形式です

警告 このフェールオーバー オプションは災害復旧の状況に限って使用する必要がありますプライマリ レプリカが正常で使用可能である場合は関連する各レプリカの可用性モードを同期コミットに変更し計画的な手動フェールオーバーを実行してください

詳細については「可用性グループの強制手動フェールオーバーの実行」(httpmsdnmicrosoftcomja-jplibraryff877957(SQL110)aspx) を参照してください

フェールオーバー対象のプライマリ レプリカまたはセカンダリ レプリカが次の条件のいずれかに該当する場合は手動フェールオーバーを実行する必要があります

フェールオーバー モードが手動に設定されている 可用性モードが非同期コミットに設定されている レプリカが FCI 上にある

詳細については「フェールオーバーとフェールオーバー モード (AlwaysOn 可用性グルー プ ) 」(httpmsdnmicrosoftcomja-jplibraryhh213151(SQL110)aspx) を参照してください

注 フェールオーバー後新しいプライマリ レプリカが同期コミット モードに設定されていない場合セカンダリ レプリカの同期状態は 中断状態 になりますプライマリ レプリカが同期コミット モードに設定されるまでデータはセカンダリ レプリカに移動されません

可用性グループ リスナー可用性グループ リスナーはクライアントが可用性グループ内のデータベースにアクセスするために使用できる WSFC 仮想ネットワーク名 (VNN) ですVNN クラスター リソースはプライマリ レプリカをホストしている SQL Server インスタンスによって所有されます

仮想ネットワーク名は可用性グループ リスナーの作成時または構成の変更時にのみDNS に登録されます可用性グループ リスナーで定義されているすべての仮想 IP アドレスは同じ仮想ネットワーク名で DNS に登録されます

可用性グループ リスナーを使用する場合クライアント接続要求ではサーバーとして仮想ネットワーク名を指定してから可用性グループ内のデータベース名を指定する必要があり

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 31

ます既定ではこれによってプライマリ レプリカをホストしている SQL Server インスタンスに接続されます

実行時にはクライアントはローカルの DNS リゾルバーを使用して仮想ネットワーク名にマップされている IP アドレスと TCP ポートの一覧を取得しますクライアントは各 IP アドレスへの接続を成功するか接続タイムアウトに達するまで試し続けますMultiSubnetFailover パラメーターが true に設定されているとクライアントは複数の接続を同時に試行するのでクライアント フェールオーバーが大幅に速くなります

フェールオーバーが行われるとサーバー上でクライアント接続がリセットされ可用性グループ リスナーの所有権はプライマリ レプリカの役割と共に新しい SQL Server インスタンスに移動しVNN エンドポイントは新しいインスタンスの仮想 IP アドレスと TCP ポートにバインドされます

詳細については「可用性グループ リスナークライアント接続およびアプリケーションのフェールオーバー」(httpmsdnmicrosoftcomja-jplibraryhh213417(SQL110)aspx) を参照してください

アプリケーションの目的によるフィルター処理可用性グループ リスナーを使用して接続している場合アプリケーションは接続の目的がデータの読み取りと書き込みの両方なのか読み取り専用操作を実行するだけなのかを指定できます指定しない場合クライアントのアプリケーションの目的は既定で読み取りと書き込みになります

各可用性レプリカのプライマリ ロールとセカンダリ ロールについてはクライアントのアプリケーションの目的に対する接続レベルのフィルターとして接続アクセス プロパティも指定できます既定ではアプリケーションの目的と接続アクセスとの組み合わせが無効であると接続が拒否されますSQL Server は次のルールを使用してクライアントの接続要求を振り分ける必要があります

可用性レプリカがプライマリ ロールであり接続アクセスが次のいずれかである場合

すべてのアプリケーションの目的を許可するアプリケーションの目的でクライアント接続をフィルター処理しません

明示的な読み取り書き込みの目的だけを許可するクライアントが読み取り専用を指定している場合接続を拒否します

可用性レプリカがセカンダリ ロールであり接続アクセスが次のいずれかである場合

接続を許可しないすべての接続を拒否しますレプリカは災害復旧だけに使用されます

すべてのアプリケーションの目的を許可するアプリケーションの目的でクライアント接続をフィルター処理しません

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 32

読み取り専用の目的を許可するクライアントが読み取り専用を指定していない場合接続を拒否します

詳細については「可用性レプリカでの読み取り専用アクセスの構成」(httpmsdnmicrosoftcomja-jplibraryhh213002(SQL110)aspx) を参照してください

アプリケーションの目的の読み取り専用ルーティングAlwaysOn 可用性グループの特に優れた点はスタンバイ ハードウェア インフラストラクチャを災害復旧以外の目的に利用できることです1 つ以上のセカンダリ レプリカを読み取り専用でアクセスできるように構成するとプライマリ レプリカからかなりの量のワークロードを軽減できます

読み取り専用セカンダリ レプリカに回すように簡単に調整できるワークロードはレポートデータベース バックアップデータベース整合性チェックインデックスの断片化の分析データ パイプライン抽出運用サポート操作サポートアドホック クエリなどです

各可用性レプリカではSQL Server インスタンスのエンドポイントについて順次的な読み取り専用ルーティング リストを構成することもできますこのリストはレプリカがプライマリ ロールであるときに適用されますこのリストが存在する場合アプリケーションの目的が読み取り専用と指定されているクライアント接続要求はそのリスト内に記載されていて前述のアプリケーションの目的フィルターに適合する最初のセカンダリ レプリカにリダイレクトされます

注 読み取り専用ルーティングによるリダイレクトはプライマリ レプリカにバインドされている可用性グループ リスナーによって実行されますプライマリ レプリカがオフラインの場合クライアントのリダイレクトは機能しません

詳細については「可用性グループの読み取り専用ルーティングの構成 (SQL Server) 」(httpmsdnmicrosoftcomja-jplibraryhh710054(SQL110)aspx) を参照してください

可用性の向上 ndash データベースSQL Server 2012 ではデータベースの構成と機能に関してさまざまな点が強化されています

以下の機能は復旧時間の短縮に役立ちます

予測可能な復旧時間データベースごとにターゲット復旧時間の長さを設定することでバックグラウンドで実行される CHECKPOINT コマンドのスケジュールを制御できますこのコマンドは間接的なチェックポイントとして再起動時またはフェールオーバー時にトランザクション ログの復旧に必要となる時間の推定値に基づいて定期的に実行されますそれによってチェックポイントごとに IO 操作がほぼ均等に配分され復旧時間 (RTO) の予測可能性が高まります

SQL Server 2012 よりも前のバージョンではバックグラウンドの CHECKPOINT コマンドがトランザクションの量や負荷とは無関係に一定間隔で実行されていたので復旧時間を予測することはできませんでした

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 33

詳細については「データベース チェックポイント」(httpmsdnmicrosoftcomja-jplibraryms189573(SQL110)aspx) を参照してください

以下の向上点は計画的なダウンタイムが必要になる一般的な状況を減らすのに役立ちます

LOB 列のオンライン インデックス操作varbinary(max)varchar(max)nvarchar(max)または XML データ型の列が含まれているインデックスをオンラインで再構築または再構成できるようになりました

新しい NOT NULL 列のオンライン スキーマ修正既定値を使用して新しい NOT NULL 列を SQL Server 2012 データベース テーブルに追加する場合システム メタデータの更新にはスキーマ ロックだけが必要ですALTER TABLE ステートメントですべての行にデータを設定する必要はありません

いずれかの行で実際に変更またはインデックスの再作成が行われない限り列の既定値は物理的に格納されませんクエリでは列に実際の値が存在しない場合メタデータから既定値を返します

ストレージのサポート強化の例として次のようなものがあります

ページの自動修復ある種のストレージ サブシステム エラーが発生するとデータ ページが破損し読み取り不可能になる場合がありますAlwaysOn 可用性グループではそのような種類のエラーを検出し自動的に復旧できます復旧のために影響を受けたデータ ページの最新のコピーが別の可用性レプリカから非同期で取得され適用されます

以前のバージョンでもデータベース ミラーリングに同様の機能がありましたが新しい機能では複数のレプリカをサポートできるようになっています

詳細については「ページの自動修復」(httpmsdnmicrosoftcomja-jplibrarybb677167(SQL110)aspx) を参照してください

クライアント接続の推奨事項クライアント アプリケーションが Microsoft SQL Server 2012 AlwaysOn テクノロジの利点を十分に活用できるようにするには次のガイドラインに従います

AlwaysOn 対応のクライアント ライブラリ表形式のデータ ストリーム (TDS) プロトコル Version 74 以降をサポートしているクライアント ライブラリを使用しますこれによってAlwaysOn の機能に対応した適切な機能がクライアント側でも提供されますクライアント ライブラリの例としてはData Provider for SQL Server in NET Framework 402SQL Native Client 110 などがあります

接続プロバイダー プロパティ MultiSubnetFailover = True接続文字列にこのキーワードを使用することでクライアント ライブラリでは(複数のサブネットに IP アドレスを持つ) 可用性グループ リスナーまたは FCI に登録されているすべての IP アドレスに同時に接

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 34

続できるようになります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 35

接続プロバイダー プロパティ ApplicationIntent = ReadOnly必要に応じてプライマリ レプリカの読み取り専用ワークロードをセカンダリ レプリカに移管することができます

レガシ クライアントの接続タイムアウトレガシ クライアントのデータベース ライブラリには並列で接続を試行する機能が実装されていないため複数の IP アドレスがある場合にはTCP タイムアウトに達するか正常に接続できるまで1 つずつ順番に接続を試行します

複数の IP アドレスが存在する場合はタイムアウトと再試行が逐次的に繰り返される可能性に備えてレガシ クライアントの接続タイムアウトを調整する必要があります値は少なくとも 15 秒 + 21 秒 times セカンダリ レプリカ数にします

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 36

結論このホワイト ペーパーではSQL Server 2012 の AlwaysOn による高可用性災害復旧ソリューションを使用し予定されたダウンタイムや予定外のダウンタイムを短縮したりアプリケーションの可用性を最大限に高めたりデータを保護したりする方法について基本的なコンテキストを確立しました

高可用性データベース環境の計画管理測定に関連したビジネス上の目的と課題は多くの場合目標復旧時点 (RPO) と目標復旧時間 (RTO) という形で数量化して表すことができます

SQL Server 2012 AlwaysOn は組織が高可用性や災害復旧に関する一般的な状況に対処するための機能をRPO と RTO を適切に達成できることを念頭にインフラストラクチャ レベルデータ プラットフォーム レベルデータベース レベルのそれぞれで提供します

詳細情報

httpwwwmicrosoftcomja-jpsqlserver2012defaultaspx SQL Server Web サイト

httptechnetmicrosoftcomja-jpsqlserver SQL Server TechCenter

httpmsdnmicrosoftcomja-jpsqlserver SQL Server 開発者向け技術情報

このホワイト ペーパーはお役に立ちましたか フィードバックをお寄せください1 (役に立たなかった) ~ 5 (非常に役に立った) の 5 段階で評価してくださいまたその評価の理由もお知らせください以下に例を示します

評価が高い 例が適切図がわかりやすい説明が明快といったことが理由である 評価が低い 例が少ない図がわかりにくい説明があいまいといったことが理由で

ある

このようなフィードバックをお寄せいただくと今後のホワイト ペーパーの品質向上につながります

フィードバックの送信

loz Version 112012 年 2 月 21 日

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 37

  • 高可用性と災害復旧の概念
    • 高可用性について
      • 予定されたダウンタイムと予定外のダウンタイム
      • 段階的な可用性
        • ダウンタイムの定量化
          • 復旧目標
          • ROI または機会費用の正当化
          • 可用性の健全度の監視
          • 災害復旧の計画
            • 概要 Microsoft SQL Server 2012 での高可用性
              • SQL Server AlwaysOn
              • 計画的なダウンタイムの大幅な削減
              • アイドル状態のハードウェアをなくしてコスト効率とパフォーマンスを向上
              • 簡単な配置と管理
              • RPO と RTO の機能比較
                  • SQL Server AlwaysOn の保護レイヤー
                    • インフラストラクチャの可用性
                      • Windows オペレーティング システム
                        • Windows Server Core インストール オプション
                        • プライベート クラウド用の SQL Server の最適化
                          • Windows Server フェールオーバー クラスタリング
                            • WSFC ストレージ構成
                            • WSFC リソースの正常性の検出とフェールオーバー
                              • WSFC のクラスター検証ウィザード
                              • WSFC クォーラム モードと投票の構成
                                • クォーラムによるクラスター状態検出
                                • クォーラム モード
                                • 投票ノードと非投票ノード
                                • クォーラム投票に推奨される調整
                                  • WSFC の強制クォーラムによる災害復旧
                                    • SQL Server インスタンス レベルでの保護
                                      • 可用性の向上 ndash SQL Server インスタンス
                                      • AlwaysOn フェールオーバー クラスター インスタンス
                                        • FCI のフェールオーバー プロセス
                                        • FCI の強化
                                            • データベースの可用性
                                              • AlwaysOn 可用性グループ
                                                • 可用性レプリカとロール
                                                • 可用性レプリカの同期
                                                  • 可用性グループのフェールオーバー
                                                  • 可用性グループ リスナー
                                                    • アプリケーションの目的によるフィルター処理
                                                    • アプリケーションの目的の読み取り専用ルーティング
                                                      • 可用性の向上 ndash データベース
                                                        • クライアント接続の推奨事項
                                                          • 結論
Page 37: 高可用性と災害復旧の概念download.microsoft.com/download/6/B/E/6BE0C3F3-2991-4766... · Web view高可用性と災害復旧のソリューションのために最適なデータベース

ます既定ではこれによってプライマリ レプリカをホストしている SQL Server インスタンスに接続されます

実行時にはクライアントはローカルの DNS リゾルバーを使用して仮想ネットワーク名にマップされている IP アドレスと TCP ポートの一覧を取得しますクライアントは各 IP アドレスへの接続を成功するか接続タイムアウトに達するまで試し続けますMultiSubnetFailover パラメーターが true に設定されているとクライアントは複数の接続を同時に試行するのでクライアント フェールオーバーが大幅に速くなります

フェールオーバーが行われるとサーバー上でクライアント接続がリセットされ可用性グループ リスナーの所有権はプライマリ レプリカの役割と共に新しい SQL Server インスタンスに移動しVNN エンドポイントは新しいインスタンスの仮想 IP アドレスと TCP ポートにバインドされます

詳細については「可用性グループ リスナークライアント接続およびアプリケーションのフェールオーバー」(httpmsdnmicrosoftcomja-jplibraryhh213417(SQL110)aspx) を参照してください

アプリケーションの目的によるフィルター処理可用性グループ リスナーを使用して接続している場合アプリケーションは接続の目的がデータの読み取りと書き込みの両方なのか読み取り専用操作を実行するだけなのかを指定できます指定しない場合クライアントのアプリケーションの目的は既定で読み取りと書き込みになります

各可用性レプリカのプライマリ ロールとセカンダリ ロールについてはクライアントのアプリケーションの目的に対する接続レベルのフィルターとして接続アクセス プロパティも指定できます既定ではアプリケーションの目的と接続アクセスとの組み合わせが無効であると接続が拒否されますSQL Server は次のルールを使用してクライアントの接続要求を振り分ける必要があります

可用性レプリカがプライマリ ロールであり接続アクセスが次のいずれかである場合

すべてのアプリケーションの目的を許可するアプリケーションの目的でクライアント接続をフィルター処理しません

明示的な読み取り書き込みの目的だけを許可するクライアントが読み取り専用を指定している場合接続を拒否します

可用性レプリカがセカンダリ ロールであり接続アクセスが次のいずれかである場合

接続を許可しないすべての接続を拒否しますレプリカは災害復旧だけに使用されます

すべてのアプリケーションの目的を許可するアプリケーションの目的でクライアント接続をフィルター処理しません

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 32

読み取り専用の目的を許可するクライアントが読み取り専用を指定していない場合接続を拒否します

詳細については「可用性レプリカでの読み取り専用アクセスの構成」(httpmsdnmicrosoftcomja-jplibraryhh213002(SQL110)aspx) を参照してください

アプリケーションの目的の読み取り専用ルーティングAlwaysOn 可用性グループの特に優れた点はスタンバイ ハードウェア インフラストラクチャを災害復旧以外の目的に利用できることです1 つ以上のセカンダリ レプリカを読み取り専用でアクセスできるように構成するとプライマリ レプリカからかなりの量のワークロードを軽減できます

読み取り専用セカンダリ レプリカに回すように簡単に調整できるワークロードはレポートデータベース バックアップデータベース整合性チェックインデックスの断片化の分析データ パイプライン抽出運用サポート操作サポートアドホック クエリなどです

各可用性レプリカではSQL Server インスタンスのエンドポイントについて順次的な読み取り専用ルーティング リストを構成することもできますこのリストはレプリカがプライマリ ロールであるときに適用されますこのリストが存在する場合アプリケーションの目的が読み取り専用と指定されているクライアント接続要求はそのリスト内に記載されていて前述のアプリケーションの目的フィルターに適合する最初のセカンダリ レプリカにリダイレクトされます

注 読み取り専用ルーティングによるリダイレクトはプライマリ レプリカにバインドされている可用性グループ リスナーによって実行されますプライマリ レプリカがオフラインの場合クライアントのリダイレクトは機能しません

詳細については「可用性グループの読み取り専用ルーティングの構成 (SQL Server) 」(httpmsdnmicrosoftcomja-jplibraryhh710054(SQL110)aspx) を参照してください

可用性の向上 ndash データベースSQL Server 2012 ではデータベースの構成と機能に関してさまざまな点が強化されています

以下の機能は復旧時間の短縮に役立ちます

予測可能な復旧時間データベースごとにターゲット復旧時間の長さを設定することでバックグラウンドで実行される CHECKPOINT コマンドのスケジュールを制御できますこのコマンドは間接的なチェックポイントとして再起動時またはフェールオーバー時にトランザクション ログの復旧に必要となる時間の推定値に基づいて定期的に実行されますそれによってチェックポイントごとに IO 操作がほぼ均等に配分され復旧時間 (RTO) の予測可能性が高まります

SQL Server 2012 よりも前のバージョンではバックグラウンドの CHECKPOINT コマンドがトランザクションの量や負荷とは無関係に一定間隔で実行されていたので復旧時間を予測することはできませんでした

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 33

詳細については「データベース チェックポイント」(httpmsdnmicrosoftcomja-jplibraryms189573(SQL110)aspx) を参照してください

以下の向上点は計画的なダウンタイムが必要になる一般的な状況を減らすのに役立ちます

LOB 列のオンライン インデックス操作varbinary(max)varchar(max)nvarchar(max)または XML データ型の列が含まれているインデックスをオンラインで再構築または再構成できるようになりました

新しい NOT NULL 列のオンライン スキーマ修正既定値を使用して新しい NOT NULL 列を SQL Server 2012 データベース テーブルに追加する場合システム メタデータの更新にはスキーマ ロックだけが必要ですALTER TABLE ステートメントですべての行にデータを設定する必要はありません

いずれかの行で実際に変更またはインデックスの再作成が行われない限り列の既定値は物理的に格納されませんクエリでは列に実際の値が存在しない場合メタデータから既定値を返します

ストレージのサポート強化の例として次のようなものがあります

ページの自動修復ある種のストレージ サブシステム エラーが発生するとデータ ページが破損し読み取り不可能になる場合がありますAlwaysOn 可用性グループではそのような種類のエラーを検出し自動的に復旧できます復旧のために影響を受けたデータ ページの最新のコピーが別の可用性レプリカから非同期で取得され適用されます

以前のバージョンでもデータベース ミラーリングに同様の機能がありましたが新しい機能では複数のレプリカをサポートできるようになっています

詳細については「ページの自動修復」(httpmsdnmicrosoftcomja-jplibrarybb677167(SQL110)aspx) を参照してください

クライアント接続の推奨事項クライアント アプリケーションが Microsoft SQL Server 2012 AlwaysOn テクノロジの利点を十分に活用できるようにするには次のガイドラインに従います

AlwaysOn 対応のクライアント ライブラリ表形式のデータ ストリーム (TDS) プロトコル Version 74 以降をサポートしているクライアント ライブラリを使用しますこれによってAlwaysOn の機能に対応した適切な機能がクライアント側でも提供されますクライアント ライブラリの例としてはData Provider for SQL Server in NET Framework 402SQL Native Client 110 などがあります

接続プロバイダー プロパティ MultiSubnetFailover = True接続文字列にこのキーワードを使用することでクライアント ライブラリでは(複数のサブネットに IP アドレスを持つ) 可用性グループ リスナーまたは FCI に登録されているすべての IP アドレスに同時に接

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 34

続できるようになります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 35

接続プロバイダー プロパティ ApplicationIntent = ReadOnly必要に応じてプライマリ レプリカの読み取り専用ワークロードをセカンダリ レプリカに移管することができます

レガシ クライアントの接続タイムアウトレガシ クライアントのデータベース ライブラリには並列で接続を試行する機能が実装されていないため複数の IP アドレスがある場合にはTCP タイムアウトに達するか正常に接続できるまで1 つずつ順番に接続を試行します

複数の IP アドレスが存在する場合はタイムアウトと再試行が逐次的に繰り返される可能性に備えてレガシ クライアントの接続タイムアウトを調整する必要があります値は少なくとも 15 秒 + 21 秒 times セカンダリ レプリカ数にします

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 36

結論このホワイト ペーパーではSQL Server 2012 の AlwaysOn による高可用性災害復旧ソリューションを使用し予定されたダウンタイムや予定外のダウンタイムを短縮したりアプリケーションの可用性を最大限に高めたりデータを保護したりする方法について基本的なコンテキストを確立しました

高可用性データベース環境の計画管理測定に関連したビジネス上の目的と課題は多くの場合目標復旧時点 (RPO) と目標復旧時間 (RTO) という形で数量化して表すことができます

SQL Server 2012 AlwaysOn は組織が高可用性や災害復旧に関する一般的な状況に対処するための機能をRPO と RTO を適切に達成できることを念頭にインフラストラクチャ レベルデータ プラットフォーム レベルデータベース レベルのそれぞれで提供します

詳細情報

httpwwwmicrosoftcomja-jpsqlserver2012defaultaspx SQL Server Web サイト

httptechnetmicrosoftcomja-jpsqlserver SQL Server TechCenter

httpmsdnmicrosoftcomja-jpsqlserver SQL Server 開発者向け技術情報

このホワイト ペーパーはお役に立ちましたか フィードバックをお寄せください1 (役に立たなかった) ~ 5 (非常に役に立った) の 5 段階で評価してくださいまたその評価の理由もお知らせください以下に例を示します

評価が高い 例が適切図がわかりやすい説明が明快といったことが理由である 評価が低い 例が少ない図がわかりにくい説明があいまいといったことが理由で

ある

このようなフィードバックをお寄せいただくと今後のホワイト ペーパーの品質向上につながります

フィードバックの送信

loz Version 112012 年 2 月 21 日

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 37

  • 高可用性と災害復旧の概念
    • 高可用性について
      • 予定されたダウンタイムと予定外のダウンタイム
      • 段階的な可用性
        • ダウンタイムの定量化
          • 復旧目標
          • ROI または機会費用の正当化
          • 可用性の健全度の監視
          • 災害復旧の計画
            • 概要 Microsoft SQL Server 2012 での高可用性
              • SQL Server AlwaysOn
              • 計画的なダウンタイムの大幅な削減
              • アイドル状態のハードウェアをなくしてコスト効率とパフォーマンスを向上
              • 簡単な配置と管理
              • RPO と RTO の機能比較
                  • SQL Server AlwaysOn の保護レイヤー
                    • インフラストラクチャの可用性
                      • Windows オペレーティング システム
                        • Windows Server Core インストール オプション
                        • プライベート クラウド用の SQL Server の最適化
                          • Windows Server フェールオーバー クラスタリング
                            • WSFC ストレージ構成
                            • WSFC リソースの正常性の検出とフェールオーバー
                              • WSFC のクラスター検証ウィザード
                              • WSFC クォーラム モードと投票の構成
                                • クォーラムによるクラスター状態検出
                                • クォーラム モード
                                • 投票ノードと非投票ノード
                                • クォーラム投票に推奨される調整
                                  • WSFC の強制クォーラムによる災害復旧
                                    • SQL Server インスタンス レベルでの保護
                                      • 可用性の向上 ndash SQL Server インスタンス
                                      • AlwaysOn フェールオーバー クラスター インスタンス
                                        • FCI のフェールオーバー プロセス
                                        • FCI の強化
                                            • データベースの可用性
                                              • AlwaysOn 可用性グループ
                                                • 可用性レプリカとロール
                                                • 可用性レプリカの同期
                                                  • 可用性グループのフェールオーバー
                                                  • 可用性グループ リスナー
                                                    • アプリケーションの目的によるフィルター処理
                                                    • アプリケーションの目的の読み取り専用ルーティング
                                                      • 可用性の向上 ndash データベース
                                                        • クライアント接続の推奨事項
                                                          • 結論
Page 38: 高可用性と災害復旧の概念download.microsoft.com/download/6/B/E/6BE0C3F3-2991-4766... · Web view高可用性と災害復旧のソリューションのために最適なデータベース

読み取り専用の目的を許可するクライアントが読み取り専用を指定していない場合接続を拒否します

詳細については「可用性レプリカでの読み取り専用アクセスの構成」(httpmsdnmicrosoftcomja-jplibraryhh213002(SQL110)aspx) を参照してください

アプリケーションの目的の読み取り専用ルーティングAlwaysOn 可用性グループの特に優れた点はスタンバイ ハードウェア インフラストラクチャを災害復旧以外の目的に利用できることです1 つ以上のセカンダリ レプリカを読み取り専用でアクセスできるように構成するとプライマリ レプリカからかなりの量のワークロードを軽減できます

読み取り専用セカンダリ レプリカに回すように簡単に調整できるワークロードはレポートデータベース バックアップデータベース整合性チェックインデックスの断片化の分析データ パイプライン抽出運用サポート操作サポートアドホック クエリなどです

各可用性レプリカではSQL Server インスタンスのエンドポイントについて順次的な読み取り専用ルーティング リストを構成することもできますこのリストはレプリカがプライマリ ロールであるときに適用されますこのリストが存在する場合アプリケーションの目的が読み取り専用と指定されているクライアント接続要求はそのリスト内に記載されていて前述のアプリケーションの目的フィルターに適合する最初のセカンダリ レプリカにリダイレクトされます

注 読み取り専用ルーティングによるリダイレクトはプライマリ レプリカにバインドされている可用性グループ リスナーによって実行されますプライマリ レプリカがオフラインの場合クライアントのリダイレクトは機能しません

詳細については「可用性グループの読み取り専用ルーティングの構成 (SQL Server) 」(httpmsdnmicrosoftcomja-jplibraryhh710054(SQL110)aspx) を参照してください

可用性の向上 ndash データベースSQL Server 2012 ではデータベースの構成と機能に関してさまざまな点が強化されています

以下の機能は復旧時間の短縮に役立ちます

予測可能な復旧時間データベースごとにターゲット復旧時間の長さを設定することでバックグラウンドで実行される CHECKPOINT コマンドのスケジュールを制御できますこのコマンドは間接的なチェックポイントとして再起動時またはフェールオーバー時にトランザクション ログの復旧に必要となる時間の推定値に基づいて定期的に実行されますそれによってチェックポイントごとに IO 操作がほぼ均等に配分され復旧時間 (RTO) の予測可能性が高まります

SQL Server 2012 よりも前のバージョンではバックグラウンドの CHECKPOINT コマンドがトランザクションの量や負荷とは無関係に一定間隔で実行されていたので復旧時間を予測することはできませんでした

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 33

詳細については「データベース チェックポイント」(httpmsdnmicrosoftcomja-jplibraryms189573(SQL110)aspx) を参照してください

以下の向上点は計画的なダウンタイムが必要になる一般的な状況を減らすのに役立ちます

LOB 列のオンライン インデックス操作varbinary(max)varchar(max)nvarchar(max)または XML データ型の列が含まれているインデックスをオンラインで再構築または再構成できるようになりました

新しい NOT NULL 列のオンライン スキーマ修正既定値を使用して新しい NOT NULL 列を SQL Server 2012 データベース テーブルに追加する場合システム メタデータの更新にはスキーマ ロックだけが必要ですALTER TABLE ステートメントですべての行にデータを設定する必要はありません

いずれかの行で実際に変更またはインデックスの再作成が行われない限り列の既定値は物理的に格納されませんクエリでは列に実際の値が存在しない場合メタデータから既定値を返します

ストレージのサポート強化の例として次のようなものがあります

ページの自動修復ある種のストレージ サブシステム エラーが発生するとデータ ページが破損し読み取り不可能になる場合がありますAlwaysOn 可用性グループではそのような種類のエラーを検出し自動的に復旧できます復旧のために影響を受けたデータ ページの最新のコピーが別の可用性レプリカから非同期で取得され適用されます

以前のバージョンでもデータベース ミラーリングに同様の機能がありましたが新しい機能では複数のレプリカをサポートできるようになっています

詳細については「ページの自動修復」(httpmsdnmicrosoftcomja-jplibrarybb677167(SQL110)aspx) を参照してください

クライアント接続の推奨事項クライアント アプリケーションが Microsoft SQL Server 2012 AlwaysOn テクノロジの利点を十分に活用できるようにするには次のガイドラインに従います

AlwaysOn 対応のクライアント ライブラリ表形式のデータ ストリーム (TDS) プロトコル Version 74 以降をサポートしているクライアント ライブラリを使用しますこれによってAlwaysOn の機能に対応した適切な機能がクライアント側でも提供されますクライアント ライブラリの例としてはData Provider for SQL Server in NET Framework 402SQL Native Client 110 などがあります

接続プロバイダー プロパティ MultiSubnetFailover = True接続文字列にこのキーワードを使用することでクライアント ライブラリでは(複数のサブネットに IP アドレスを持つ) 可用性グループ リスナーまたは FCI に登録されているすべての IP アドレスに同時に接

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 34

続できるようになります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 35

接続プロバイダー プロパティ ApplicationIntent = ReadOnly必要に応じてプライマリ レプリカの読み取り専用ワークロードをセカンダリ レプリカに移管することができます

レガシ クライアントの接続タイムアウトレガシ クライアントのデータベース ライブラリには並列で接続を試行する機能が実装されていないため複数の IP アドレスがある場合にはTCP タイムアウトに達するか正常に接続できるまで1 つずつ順番に接続を試行します

複数の IP アドレスが存在する場合はタイムアウトと再試行が逐次的に繰り返される可能性に備えてレガシ クライアントの接続タイムアウトを調整する必要があります値は少なくとも 15 秒 + 21 秒 times セカンダリ レプリカ数にします

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 36

結論このホワイト ペーパーではSQL Server 2012 の AlwaysOn による高可用性災害復旧ソリューションを使用し予定されたダウンタイムや予定外のダウンタイムを短縮したりアプリケーションの可用性を最大限に高めたりデータを保護したりする方法について基本的なコンテキストを確立しました

高可用性データベース環境の計画管理測定に関連したビジネス上の目的と課題は多くの場合目標復旧時点 (RPO) と目標復旧時間 (RTO) という形で数量化して表すことができます

SQL Server 2012 AlwaysOn は組織が高可用性や災害復旧に関する一般的な状況に対処するための機能をRPO と RTO を適切に達成できることを念頭にインフラストラクチャ レベルデータ プラットフォーム レベルデータベース レベルのそれぞれで提供します

詳細情報

httpwwwmicrosoftcomja-jpsqlserver2012defaultaspx SQL Server Web サイト

httptechnetmicrosoftcomja-jpsqlserver SQL Server TechCenter

httpmsdnmicrosoftcomja-jpsqlserver SQL Server 開発者向け技術情報

このホワイト ペーパーはお役に立ちましたか フィードバックをお寄せください1 (役に立たなかった) ~ 5 (非常に役に立った) の 5 段階で評価してくださいまたその評価の理由もお知らせください以下に例を示します

評価が高い 例が適切図がわかりやすい説明が明快といったことが理由である 評価が低い 例が少ない図がわかりにくい説明があいまいといったことが理由で

ある

このようなフィードバックをお寄せいただくと今後のホワイト ペーパーの品質向上につながります

フィードバックの送信

loz Version 112012 年 2 月 21 日

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 37

  • 高可用性と災害復旧の概念
    • 高可用性について
      • 予定されたダウンタイムと予定外のダウンタイム
      • 段階的な可用性
        • ダウンタイムの定量化
          • 復旧目標
          • ROI または機会費用の正当化
          • 可用性の健全度の監視
          • 災害復旧の計画
            • 概要 Microsoft SQL Server 2012 での高可用性
              • SQL Server AlwaysOn
              • 計画的なダウンタイムの大幅な削減
              • アイドル状態のハードウェアをなくしてコスト効率とパフォーマンスを向上
              • 簡単な配置と管理
              • RPO と RTO の機能比較
                  • SQL Server AlwaysOn の保護レイヤー
                    • インフラストラクチャの可用性
                      • Windows オペレーティング システム
                        • Windows Server Core インストール オプション
                        • プライベート クラウド用の SQL Server の最適化
                          • Windows Server フェールオーバー クラスタリング
                            • WSFC ストレージ構成
                            • WSFC リソースの正常性の検出とフェールオーバー
                              • WSFC のクラスター検証ウィザード
                              • WSFC クォーラム モードと投票の構成
                                • クォーラムによるクラスター状態検出
                                • クォーラム モード
                                • 投票ノードと非投票ノード
                                • クォーラム投票に推奨される調整
                                  • WSFC の強制クォーラムによる災害復旧
                                    • SQL Server インスタンス レベルでの保護
                                      • 可用性の向上 ndash SQL Server インスタンス
                                      • AlwaysOn フェールオーバー クラスター インスタンス
                                        • FCI のフェールオーバー プロセス
                                        • FCI の強化
                                            • データベースの可用性
                                              • AlwaysOn 可用性グループ
                                                • 可用性レプリカとロール
                                                • 可用性レプリカの同期
                                                  • 可用性グループのフェールオーバー
                                                  • 可用性グループ リスナー
                                                    • アプリケーションの目的によるフィルター処理
                                                    • アプリケーションの目的の読み取り専用ルーティング
                                                      • 可用性の向上 ndash データベース
                                                        • クライアント接続の推奨事項
                                                          • 結論
Page 39: 高可用性と災害復旧の概念download.microsoft.com/download/6/B/E/6BE0C3F3-2991-4766... · Web view高可用性と災害復旧のソリューションのために最適なデータベース

詳細については「データベース チェックポイント」(httpmsdnmicrosoftcomja-jplibraryms189573(SQL110)aspx) を参照してください

以下の向上点は計画的なダウンタイムが必要になる一般的な状況を減らすのに役立ちます

LOB 列のオンライン インデックス操作varbinary(max)varchar(max)nvarchar(max)または XML データ型の列が含まれているインデックスをオンラインで再構築または再構成できるようになりました

新しい NOT NULL 列のオンライン スキーマ修正既定値を使用して新しい NOT NULL 列を SQL Server 2012 データベース テーブルに追加する場合システム メタデータの更新にはスキーマ ロックだけが必要ですALTER TABLE ステートメントですべての行にデータを設定する必要はありません

いずれかの行で実際に変更またはインデックスの再作成が行われない限り列の既定値は物理的に格納されませんクエリでは列に実際の値が存在しない場合メタデータから既定値を返します

ストレージのサポート強化の例として次のようなものがあります

ページの自動修復ある種のストレージ サブシステム エラーが発生するとデータ ページが破損し読み取り不可能になる場合がありますAlwaysOn 可用性グループではそのような種類のエラーを検出し自動的に復旧できます復旧のために影響を受けたデータ ページの最新のコピーが別の可用性レプリカから非同期で取得され適用されます

以前のバージョンでもデータベース ミラーリングに同様の機能がありましたが新しい機能では複数のレプリカをサポートできるようになっています

詳細については「ページの自動修復」(httpmsdnmicrosoftcomja-jplibrarybb677167(SQL110)aspx) を参照してください

クライアント接続の推奨事項クライアント アプリケーションが Microsoft SQL Server 2012 AlwaysOn テクノロジの利点を十分に活用できるようにするには次のガイドラインに従います

AlwaysOn 対応のクライアント ライブラリ表形式のデータ ストリーム (TDS) プロトコル Version 74 以降をサポートしているクライアント ライブラリを使用しますこれによってAlwaysOn の機能に対応した適切な機能がクライアント側でも提供されますクライアント ライブラリの例としてはData Provider for SQL Server in NET Framework 402SQL Native Client 110 などがあります

接続プロバイダー プロパティ MultiSubnetFailover = True接続文字列にこのキーワードを使用することでクライアント ライブラリでは(複数のサブネットに IP アドレスを持つ) 可用性グループ リスナーまたは FCI に登録されているすべての IP アドレスに同時に接

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 34

続できるようになります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 35

接続プロバイダー プロパティ ApplicationIntent = ReadOnly必要に応じてプライマリ レプリカの読み取り専用ワークロードをセカンダリ レプリカに移管することができます

レガシ クライアントの接続タイムアウトレガシ クライアントのデータベース ライブラリには並列で接続を試行する機能が実装されていないため複数の IP アドレスがある場合にはTCP タイムアウトに達するか正常に接続できるまで1 つずつ順番に接続を試行します

複数の IP アドレスが存在する場合はタイムアウトと再試行が逐次的に繰り返される可能性に備えてレガシ クライアントの接続タイムアウトを調整する必要があります値は少なくとも 15 秒 + 21 秒 times セカンダリ レプリカ数にします

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 36

結論このホワイト ペーパーではSQL Server 2012 の AlwaysOn による高可用性災害復旧ソリューションを使用し予定されたダウンタイムや予定外のダウンタイムを短縮したりアプリケーションの可用性を最大限に高めたりデータを保護したりする方法について基本的なコンテキストを確立しました

高可用性データベース環境の計画管理測定に関連したビジネス上の目的と課題は多くの場合目標復旧時点 (RPO) と目標復旧時間 (RTO) という形で数量化して表すことができます

SQL Server 2012 AlwaysOn は組織が高可用性や災害復旧に関する一般的な状況に対処するための機能をRPO と RTO を適切に達成できることを念頭にインフラストラクチャ レベルデータ プラットフォーム レベルデータベース レベルのそれぞれで提供します

詳細情報

httpwwwmicrosoftcomja-jpsqlserver2012defaultaspx SQL Server Web サイト

httptechnetmicrosoftcomja-jpsqlserver SQL Server TechCenter

httpmsdnmicrosoftcomja-jpsqlserver SQL Server 開発者向け技術情報

このホワイト ペーパーはお役に立ちましたか フィードバックをお寄せください1 (役に立たなかった) ~ 5 (非常に役に立った) の 5 段階で評価してくださいまたその評価の理由もお知らせください以下に例を示します

評価が高い 例が適切図がわかりやすい説明が明快といったことが理由である 評価が低い 例が少ない図がわかりにくい説明があいまいといったことが理由で

ある

このようなフィードバックをお寄せいただくと今後のホワイト ペーパーの品質向上につながります

フィードバックの送信

loz Version 112012 年 2 月 21 日

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 37

  • 高可用性と災害復旧の概念
    • 高可用性について
      • 予定されたダウンタイムと予定外のダウンタイム
      • 段階的な可用性
        • ダウンタイムの定量化
          • 復旧目標
          • ROI または機会費用の正当化
          • 可用性の健全度の監視
          • 災害復旧の計画
            • 概要 Microsoft SQL Server 2012 での高可用性
              • SQL Server AlwaysOn
              • 計画的なダウンタイムの大幅な削減
              • アイドル状態のハードウェアをなくしてコスト効率とパフォーマンスを向上
              • 簡単な配置と管理
              • RPO と RTO の機能比較
                  • SQL Server AlwaysOn の保護レイヤー
                    • インフラストラクチャの可用性
                      • Windows オペレーティング システム
                        • Windows Server Core インストール オプション
                        • プライベート クラウド用の SQL Server の最適化
                          • Windows Server フェールオーバー クラスタリング
                            • WSFC ストレージ構成
                            • WSFC リソースの正常性の検出とフェールオーバー
                              • WSFC のクラスター検証ウィザード
                              • WSFC クォーラム モードと投票の構成
                                • クォーラムによるクラスター状態検出
                                • クォーラム モード
                                • 投票ノードと非投票ノード
                                • クォーラム投票に推奨される調整
                                  • WSFC の強制クォーラムによる災害復旧
                                    • SQL Server インスタンス レベルでの保護
                                      • 可用性の向上 ndash SQL Server インスタンス
                                      • AlwaysOn フェールオーバー クラスター インスタンス
                                        • FCI のフェールオーバー プロセス
                                        • FCI の強化
                                            • データベースの可用性
                                              • AlwaysOn 可用性グループ
                                                • 可用性レプリカとロール
                                                • 可用性レプリカの同期
                                                  • 可用性グループのフェールオーバー
                                                  • 可用性グループ リスナー
                                                    • アプリケーションの目的によるフィルター処理
                                                    • アプリケーションの目的の読み取り専用ルーティング
                                                      • 可用性の向上 ndash データベース
                                                        • クライアント接続の推奨事項
                                                          • 結論
Page 40: 高可用性と災害復旧の概念download.microsoft.com/download/6/B/E/6BE0C3F3-2991-4766... · Web view高可用性と災害復旧のソリューションのために最適なデータベース

続できるようになります

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 35

接続プロバイダー プロパティ ApplicationIntent = ReadOnly必要に応じてプライマリ レプリカの読み取り専用ワークロードをセカンダリ レプリカに移管することができます

レガシ クライアントの接続タイムアウトレガシ クライアントのデータベース ライブラリには並列で接続を試行する機能が実装されていないため複数の IP アドレスがある場合にはTCP タイムアウトに達するか正常に接続できるまで1 つずつ順番に接続を試行します

複数の IP アドレスが存在する場合はタイムアウトと再試行が逐次的に繰り返される可能性に備えてレガシ クライアントの接続タイムアウトを調整する必要があります値は少なくとも 15 秒 + 21 秒 times セカンダリ レプリカ数にします

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 36

結論このホワイト ペーパーではSQL Server 2012 の AlwaysOn による高可用性災害復旧ソリューションを使用し予定されたダウンタイムや予定外のダウンタイムを短縮したりアプリケーションの可用性を最大限に高めたりデータを保護したりする方法について基本的なコンテキストを確立しました

高可用性データベース環境の計画管理測定に関連したビジネス上の目的と課題は多くの場合目標復旧時点 (RPO) と目標復旧時間 (RTO) という形で数量化して表すことができます

SQL Server 2012 AlwaysOn は組織が高可用性や災害復旧に関する一般的な状況に対処するための機能をRPO と RTO を適切に達成できることを念頭にインフラストラクチャ レベルデータ プラットフォーム レベルデータベース レベルのそれぞれで提供します

詳細情報

httpwwwmicrosoftcomja-jpsqlserver2012defaultaspx SQL Server Web サイト

httptechnetmicrosoftcomja-jpsqlserver SQL Server TechCenter

httpmsdnmicrosoftcomja-jpsqlserver SQL Server 開発者向け技術情報

このホワイト ペーパーはお役に立ちましたか フィードバックをお寄せください1 (役に立たなかった) ~ 5 (非常に役に立った) の 5 段階で評価してくださいまたその評価の理由もお知らせください以下に例を示します

評価が高い 例が適切図がわかりやすい説明が明快といったことが理由である 評価が低い 例が少ない図がわかりにくい説明があいまいといったことが理由で

ある

このようなフィードバックをお寄せいただくと今後のホワイト ペーパーの品質向上につながります

フィードバックの送信

loz Version 112012 年 2 月 21 日

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 37

  • 高可用性と災害復旧の概念
    • 高可用性について
      • 予定されたダウンタイムと予定外のダウンタイム
      • 段階的な可用性
        • ダウンタイムの定量化
          • 復旧目標
          • ROI または機会費用の正当化
          • 可用性の健全度の監視
          • 災害復旧の計画
            • 概要 Microsoft SQL Server 2012 での高可用性
              • SQL Server AlwaysOn
              • 計画的なダウンタイムの大幅な削減
              • アイドル状態のハードウェアをなくしてコスト効率とパフォーマンスを向上
              • 簡単な配置と管理
              • RPO と RTO の機能比較
                  • SQL Server AlwaysOn の保護レイヤー
                    • インフラストラクチャの可用性
                      • Windows オペレーティング システム
                        • Windows Server Core インストール オプション
                        • プライベート クラウド用の SQL Server の最適化
                          • Windows Server フェールオーバー クラスタリング
                            • WSFC ストレージ構成
                            • WSFC リソースの正常性の検出とフェールオーバー
                              • WSFC のクラスター検証ウィザード
                              • WSFC クォーラム モードと投票の構成
                                • クォーラムによるクラスター状態検出
                                • クォーラム モード
                                • 投票ノードと非投票ノード
                                • クォーラム投票に推奨される調整
                                  • WSFC の強制クォーラムによる災害復旧
                                    • SQL Server インスタンス レベルでの保護
                                      • 可用性の向上 ndash SQL Server インスタンス
                                      • AlwaysOn フェールオーバー クラスター インスタンス
                                        • FCI のフェールオーバー プロセス
                                        • FCI の強化
                                            • データベースの可用性
                                              • AlwaysOn 可用性グループ
                                                • 可用性レプリカとロール
                                                • 可用性レプリカの同期
                                                  • 可用性グループのフェールオーバー
                                                  • 可用性グループ リスナー
                                                    • アプリケーションの目的によるフィルター処理
                                                    • アプリケーションの目的の読み取り専用ルーティング
                                                      • 可用性の向上 ndash データベース
                                                        • クライアント接続の推奨事項
                                                          • 結論
Page 41: 高可用性と災害復旧の概念download.microsoft.com/download/6/B/E/6BE0C3F3-2991-4766... · Web view高可用性と災害復旧のソリューションのために最適なデータベース

接続プロバイダー プロパティ ApplicationIntent = ReadOnly必要に応じてプライマリ レプリカの読み取り専用ワークロードをセカンダリ レプリカに移管することができます

レガシ クライアントの接続タイムアウトレガシ クライアントのデータベース ライブラリには並列で接続を試行する機能が実装されていないため複数の IP アドレスがある場合にはTCP タイムアウトに達するか正常に接続できるまで1 つずつ順番に接続を試行します

複数の IP アドレスが存在する場合はタイムアウトと再試行が逐次的に繰り返される可能性に備えてレガシ クライアントの接続タイムアウトを調整する必要があります値は少なくとも 15 秒 + 21 秒 times セカンダリ レプリカ数にします

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 36

結論このホワイト ペーパーではSQL Server 2012 の AlwaysOn による高可用性災害復旧ソリューションを使用し予定されたダウンタイムや予定外のダウンタイムを短縮したりアプリケーションの可用性を最大限に高めたりデータを保護したりする方法について基本的なコンテキストを確立しました

高可用性データベース環境の計画管理測定に関連したビジネス上の目的と課題は多くの場合目標復旧時点 (RPO) と目標復旧時間 (RTO) という形で数量化して表すことができます

SQL Server 2012 AlwaysOn は組織が高可用性や災害復旧に関する一般的な状況に対処するための機能をRPO と RTO を適切に達成できることを念頭にインフラストラクチャ レベルデータ プラットフォーム レベルデータベース レベルのそれぞれで提供します

詳細情報

httpwwwmicrosoftcomja-jpsqlserver2012defaultaspx SQL Server Web サイト

httptechnetmicrosoftcomja-jpsqlserver SQL Server TechCenter

httpmsdnmicrosoftcomja-jpsqlserver SQL Server 開発者向け技術情報

このホワイト ペーパーはお役に立ちましたか フィードバックをお寄せください1 (役に立たなかった) ~ 5 (非常に役に立った) の 5 段階で評価してくださいまたその評価の理由もお知らせください以下に例を示します

評価が高い 例が適切図がわかりやすい説明が明快といったことが理由である 評価が低い 例が少ない図がわかりにくい説明があいまいといったことが理由で

ある

このようなフィードバックをお寄せいただくと今後のホワイト ペーパーの品質向上につながります

フィードバックの送信

loz Version 112012 年 2 月 21 日

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 37

  • 高可用性と災害復旧の概念
    • 高可用性について
      • 予定されたダウンタイムと予定外のダウンタイム
      • 段階的な可用性
        • ダウンタイムの定量化
          • 復旧目標
          • ROI または機会費用の正当化
          • 可用性の健全度の監視
          • 災害復旧の計画
            • 概要 Microsoft SQL Server 2012 での高可用性
              • SQL Server AlwaysOn
              • 計画的なダウンタイムの大幅な削減
              • アイドル状態のハードウェアをなくしてコスト効率とパフォーマンスを向上
              • 簡単な配置と管理
              • RPO と RTO の機能比較
                  • SQL Server AlwaysOn の保護レイヤー
                    • インフラストラクチャの可用性
                      • Windows オペレーティング システム
                        • Windows Server Core インストール オプション
                        • プライベート クラウド用の SQL Server の最適化
                          • Windows Server フェールオーバー クラスタリング
                            • WSFC ストレージ構成
                            • WSFC リソースの正常性の検出とフェールオーバー
                              • WSFC のクラスター検証ウィザード
                              • WSFC クォーラム モードと投票の構成
                                • クォーラムによるクラスター状態検出
                                • クォーラム モード
                                • 投票ノードと非投票ノード
                                • クォーラム投票に推奨される調整
                                  • WSFC の強制クォーラムによる災害復旧
                                    • SQL Server インスタンス レベルでの保護
                                      • 可用性の向上 ndash SQL Server インスタンス
                                      • AlwaysOn フェールオーバー クラスター インスタンス
                                        • FCI のフェールオーバー プロセス
                                        • FCI の強化
                                            • データベースの可用性
                                              • AlwaysOn 可用性グループ
                                                • 可用性レプリカとロール
                                                • 可用性レプリカの同期
                                                  • 可用性グループのフェールオーバー
                                                  • 可用性グループ リスナー
                                                    • アプリケーションの目的によるフィルター処理
                                                    • アプリケーションの目的の読み取り専用ルーティング
                                                      • 可用性の向上 ndash データベース
                                                        • クライアント接続の推奨事項
                                                          • 結論
Page 42: 高可用性と災害復旧の概念download.microsoft.com/download/6/B/E/6BE0C3F3-2991-4766... · Web view高可用性と災害復旧のソリューションのために最適なデータベース

結論このホワイト ペーパーではSQL Server 2012 の AlwaysOn による高可用性災害復旧ソリューションを使用し予定されたダウンタイムや予定外のダウンタイムを短縮したりアプリケーションの可用性を最大限に高めたりデータを保護したりする方法について基本的なコンテキストを確立しました

高可用性データベース環境の計画管理測定に関連したビジネス上の目的と課題は多くの場合目標復旧時点 (RPO) と目標復旧時間 (RTO) という形で数量化して表すことができます

SQL Server 2012 AlwaysOn は組織が高可用性や災害復旧に関する一般的な状況に対処するための機能をRPO と RTO を適切に達成できることを念頭にインフラストラクチャ レベルデータ プラットフォーム レベルデータベース レベルのそれぞれで提供します

詳細情報

httpwwwmicrosoftcomja-jpsqlserver2012defaultaspx SQL Server Web サイト

httptechnetmicrosoftcomja-jpsqlserver SQL Server TechCenter

httpmsdnmicrosoftcomja-jpsqlserver SQL Server 開発者向け技術情報

このホワイト ペーパーはお役に立ちましたか フィードバックをお寄せください1 (役に立たなかった) ~ 5 (非常に役に立った) の 5 段階で評価してくださいまたその評価の理由もお知らせください以下に例を示します

評価が高い 例が適切図がわかりやすい説明が明快といったことが理由である 評価が低い 例が少ない図がわかりにくい説明があいまいといったことが理由で

ある

このようなフィードバックをお寄せいただくと今後のホワイト ペーパーの品質向上につながります

フィードバックの送信

loz Version 112012 年 2 月 21 日

高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド 37

  • 高可用性と災害復旧の概念
    • 高可用性について
      • 予定されたダウンタイムと予定外のダウンタイム
      • 段階的な可用性
        • ダウンタイムの定量化
          • 復旧目標
          • ROI または機会費用の正当化
          • 可用性の健全度の監視
          • 災害復旧の計画
            • 概要 Microsoft SQL Server 2012 での高可用性
              • SQL Server AlwaysOn
              • 計画的なダウンタイムの大幅な削減
              • アイドル状態のハードウェアをなくしてコスト効率とパフォーマンスを向上
              • 簡単な配置と管理
              • RPO と RTO の機能比較
                  • SQL Server AlwaysOn の保護レイヤー
                    • インフラストラクチャの可用性
                      • Windows オペレーティング システム
                        • Windows Server Core インストール オプション
                        • プライベート クラウド用の SQL Server の最適化
                          • Windows Server フェールオーバー クラスタリング
                            • WSFC ストレージ構成
                            • WSFC リソースの正常性の検出とフェールオーバー
                              • WSFC のクラスター検証ウィザード
                              • WSFC クォーラム モードと投票の構成
                                • クォーラムによるクラスター状態検出
                                • クォーラム モード
                                • 投票ノードと非投票ノード
                                • クォーラム投票に推奨される調整
                                  • WSFC の強制クォーラムによる災害復旧
                                    • SQL Server インスタンス レベルでの保護
                                      • 可用性の向上 ndash SQL Server インスタンス
                                      • AlwaysOn フェールオーバー クラスター インスタンス
                                        • FCI のフェールオーバー プロセス
                                        • FCI の強化
                                            • データベースの可用性
                                              • AlwaysOn 可用性グループ
                                                • 可用性レプリカとロール
                                                • 可用性レプリカの同期
                                                  • 可用性グループのフェールオーバー
                                                  • 可用性グループ リスナー
                                                    • アプリケーションの目的によるフィルター処理
                                                    • アプリケーションの目的の読み取り専用ルーティング
                                                      • 可用性の向上 ndash データベース
                                                        • クライアント接続の推奨事項
                                                          • 結論