可用性グループと一緒にSQL Server Always Onを使用するConfiguration Manager

Configuration Manager (現在のブランチ) に適用

この記事では、サイト データベースConfiguration Manager可用性グループSQL Server Always Onを準備します。 この機能は、高可用性と障害復旧ソリューションを提供します。

Configuration Managerグループの使用をサポートしています。

  • プライマリ サイトとサーバーの全体管理サイト。
  • オンプレミス、またはMicrosoft Azure。

Azure 可用性セットを使用して、Microsoft Azure可用性グループを使用すると、サイト データベースの可用性をさらに 向上できます。 Azure 可用性セットの詳細については、「仮想マシンの 可用性の管理」を参照してください

重要

続行する前に、ユーザーと可用性グループの構成SQL Serverにしてください。 この記事では、ドキュメント ライブラリSQL Server詳細と手順について説明します。

サポートされるシナリオ

次のシナリオは、可用性グループを使用して可用性グループを使用Configuration Manager。 各シナリオの詳細と手順については、「可用性グループを構成する」を参照Configuration Manager

前提条件

次の前提条件は、すべてのシナリオに適用されます。 追加の前提条件が特定のシナリオに適用される場合は、そのシナリオについて詳しく説明します。

Configuration Managerアカウントとアクセス許可

インストール アカウント

セットアップの実行に使用するアカウントConfiguration Managerする必要があります。

  • 可用性グループのメンバーである各コンピューター上のローカル Administrators グループのメンバー。
  • サイト データベースを ホストするSQL Serverの sysadmin。

サイト サーバーからレプリカ メンバーへのアクセス

サイト サーバーのコンピューター アカウントは、可用性グループのメンバーである各コンピューターのローカル Administrators グループのメンバーである必要があります。

SQL Server

バージョン

可用性グループ内の各レプリカは、バージョンの SQL ServerでサポートされているバージョンのデータベースをConfiguration Manager。 可用性グループでサポートSQL Server、可用性グループの異なるノードで異なるバージョンのサーバーをSQL Server。 詳細については、「サポートされているバージョンのSQL Server」を参照Configuration Manager

エディション

バージョンの Enterprise を使用SQL Server。

取引

各インスタンスはSQL Serverユーザー アカウント (サービス アカウント) またはドメイン 以外のアカウントで実行できます。 グループ内の各レプリカは、異なる構成を持つ場合があります。

Database

新しいレプリカでデータベースを構成する

プライマリ レプリカでのみこれらの構成を行います。 セカンダリ レプリカを構成するには、最初にプライマリからセカンダリにフェールオーバーします。 このアクションにより、セカンダリが新しいプライマリ レプリカになります。

各レプリカのデータベースを次の設定で構成します。

  • CLR 統合を有効にする:

    sp_configure 'show advanced options', 1;  
    GO  
    RECONFIGURE;  
    GO  
    sp_configure 'clr enabled', 1;  
    GO  
    RECONFIGURE;  
    GO
    

    詳細については、「CLR 統合 」を参照してください

  • 最大 テキスト repl サイズを次に設定 します 2147483647

    EXECUTE sp_configure 'max text repl size (B)', 2147483647
    
  • データベース所有者を SA アカウントに設定します。 このアカウントを有効にする必要はない。

  • 信頼 できる設定****をオン にします。

    ALTER DATABASE [CM_xxx] SET TRUSTWORTHY ON;
    

    詳細については、「 TRUSTWORTHY データベース プロパティ」を参照してください

  • サービス ブローカー を有効にする:

    ALTER DATABASE [CM_xxx] SET ENABLE_BROKER
    

    注意

    可用性グループの一部であるデータベースでサービス ブローカー オプションを有効にできません。 可用性グループに追加する前に、そのオプションを有効にする必要があります。

  • サービス ブローカーの優先度を構成します。

    ALTER DATABASE [CM_xxx] SET HONOR_BROKER_PRIORITY ON;
    ALTER DATABASE [CM_xxx] SET ENABLE_BROKER WITH ROLLBACK IMMEDIATE
    

データベース検証スクリプト

次のスクリプトをSQL、プライマリ レプリカとセカンダリ レプリカの両方のデータベース構成を確認します。 セカンダリ レプリカで問題を解決する前に、そのセカンダリ レプリカをプライマリ レプリカに変更します。

    SET NOCOUNT ON

    DECLARE @dbname NVARCHAR(128)

    SELECT @dbname = sd.name FROM sys.sysdatabases sd WHERE sd.dbid = DB_ID()

    IF (@dbname = N'master' OR @dbname = N'model' OR @dbname = N'msdb' OR @dbname = N'tempdb' OR @dbname = N'distribution' ) BEGIN
    RAISERROR(N'ERROR: Script is targeting a system database.  It should be targeting the DB you created instead.', 0, 1)
    GOTO Branch_Exit;
    END ELSE
    PRINT N'INFO: Targeted database is ' + @dbname + N'.'

    PRINT N'INFO: Running verifications....'

    IF NOT EXISTS (SELECT * FROM sys.configurations c WHERE c.name = 'clr enabled' AND c.value_in_use = 1)
    PRINT N'ERROR: CLR is not enabled!'
    ELSE
    PRINT N'PASS: CLR is enabled.'

    DECLARE @repltable TABLE (
    name nvarchar(max),
    minimum int,
    maximum int,
    config_value int,
    run_value int )

    INSERT INTO @repltable
    EXEC sp_configure 'max text repl size (B)'

    IF NOT EXISTS(SELECT * from @repltable where config_value = 2147483647 and run_value = 2147483647 )
    PRINT N'ERROR: Max text repl size is not correct!'
    ELSE
    PRINT N'PASS: Max text repl size is correct.'

    IF NOT EXISTS (SELECT db.owner_sid FROM sys.databases db WHERE db.database_id = DB_ID() AND db.owner_sid = 0x01)
    PRINT N'ERROR: Database owner is not sa account!'
    ELSE
    PRINT N'PASS: Database owner is sa account.'

    IF NOT EXISTS( SELECT * FROM sys.databases db WHERE db.database_id = DB_ID() AND db.is_trustworthy_on = 1 )
    PRINT N'ERROR: Trustworthy bit is not on!'
    ELSE
    PRINT N'PASS: Trustworthy bit is on.'

    IF NOT EXISTS( SELECT * FROM sys.databases db WHERE db.database_id = DB_ID() AND db.is_broker_enabled = 1 )
    PRINT N'ERROR: Service broker is not enabled!'
    ELSE
    PRINT N'PASS: Service broker is enabled.'

    IF NOT EXISTS( SELECT * FROM sys.databases db WHERE db.database_id = DB_ID() AND db.is_honor_broker_priority_on = 1 )
    PRINT N'ERROR: Service broker priority is not set!'
    ELSE
    PRINT N'PASS: Service broker priority is set.'

    PRINT N'Done!'

    Branch_Exit:

可用性グループの構成

レプリカ メンバー

  • 可用性グループには 1 つのプライマリ レプリカが必要です。

  • 可用性グループ内のレプリカのバージョンがサポートするのと同じ数と種類SQL Serverします。

  • 非同期コミット レプリカを使用して同期レプリカを回復できます。 詳細については、「サイト データベースの 回復オプション」を参照してください

    警告

    Configuration Managerデータベース として非同期コミット レプリカを使用するフェールオーバーはサポートされていません。 詳細については、「フェールオーバー モードとフェールオーバー モード (可用性グループAlways On)」を参照してください

Configuration Manager、非同期コミット レプリカの状態を検証して現在の状態を確認することはできません。 サイト データベースとして非同期コミット レプリカを使用すると、サイトとデータの整合性が危険にさらされる可能性があります。 このレプリカは、設計によって同期が取れなく場合があります。 詳細については、「可用性グループの概要SQL Server Always On参照してください

各レプリカ メンバーには、次の構成が必要です。

  • 既定の インスタンスまたは名前付インスタンスを使用します

    注意

    サーバー上に、インスタンス名と同じ名前のファイル共有SQL Serverしません。

  • [ プライマリ 役割の接続] 設定 は、[すべての接続 を許可する] です

  • [ 読み取り可能なセカンダリ] 設定 は [は い] です

  • 手動フェールオーバー が有効

    注意

    Configuration Manager自動フェールオーバーに設定すると、可用性グループ同期レプリカの使用 がサポートされます。 次の 場合に手動フェールオーバーを 設定します。

    • 可用性グループConfiguration Manager使用を指定するには、このセットアップを実行します。
    • 更新プログラムをインストールして、Configuration Manager。 (サイト データベースに適用される更新プログラムだけではありません)。
  • すべてのメンバーに同じシード モードが必要です Configuration Managerセットアップには、インストールまたは回復を通じてデータベースを作成するときにこの構成を確認するための前提条件チェックが含まれています。

    注意

    セットアップによってデータベースが作成され、自動シード処理を構成する場合、可用性グループにはデータベースを作成するためのアクセス許可が必要です。 この要件は、新しいデータベースまたは回復の両方に適用されます。 詳細については、「セカンダリ レプリカの 自動シード」を参照してください

レプリカ メンバーの場所

オンプレミスの可用性グループ内のすべてのレプリカをホストするか、すべてのレプリカをオンプレミスでホストMicrosoft Azure。 オンプレミスのメンバーと Azure のメンバーを含むグループはサポートされていません。

注意

アプリケーションに Azure 仮想マシンを使用している場合は、SQL Server IP を有効にしてください。 詳細については、「Azure 仮想マシンの可用性グループ用にロード SQL Server Always Onを構成する」を参照してください

Configuration Managerセットアップでは、各レプリカに接続する必要があります。 Azure で可用性グループを設定し、グループが内部ロード バランサーまたは外部ロード バランサーの背後にある場合は、次の既定のポートを開きます。

  • RPC エンドポイント マッパー: TCP 135

  • SQL Server サービス ブローカー: TCP 4022

  • SQL TCP: TCP 1433

セットアップが完了した後、これらのポートは、サーバーとレプリケーション リンク アナライザー Configuration Manager開いた状態を続けなければならない。

これらの構成にはカスタム ポートを使用できます。 エンドポイントと可用性グループ内のすべてのレプリカで同じカスタム ポートを使用します。

サイトSQL Serverデータをレプリケートするには、Azure ロード バランサーの各ポートの負荷分散ルールを作成します。 詳細については、「Configure High Availability Ports for an internal load Balancer」を参照してください

リスナー

可用性グループには、少なくとも 1 つの可用性 グループ リスナーが必要です。 可用性グループでサイト Configuration Managerを使用するサーバー を構成すると、このリスナーの仮想名が使用されます。 可用性グループには複数のリスナーを含めConfiguration Manager使用できるのは 1 つのみです。 詳細については、「可用性グループ リスナーの作成または構成SQL Serverを参照してください

ファイルのパス

Configuration Manager セットアップを実行して可用性グループ内のデータベースを使用するサイトを構成する場合、各セカンダリ レプリカ サーバーには、現在のプライマリ レプリカ上のサイト データベース ファイルのファイル パスと同じ SQL Server ファイル パスが必要です。 同じパスが存在しない場合、セットアップでは、可用性グループのインスタンスをサイト データベースの新しい場所として追加できません。

ローカル サービス SQL Serverこのフォルダーに対する フル コントロールアクセス 許可が必要です。

セカンダリ レプリカ サーバーでは、可用性グループでデータベース インスタンスをConfiguration Managerする場合にのみ、このファイル パスが必要です。 可用性グループ内のサイト データベースの構成が完了したら、セカンダリ レプリカ サーバーから未使用のパスを削除できます。

たとえば、次のシナリオを考えます。

  • 3 つのサーバーを使用する可用性グループSQLします。

  • プライマリ レプリカ サーバーは、2014 年SQL Serverインストールです。 既定では、データベース MDF ファイルと LDF ファイルが格納されます C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\DATA

  • 両方のセカンダリ レプリカ サーバーを以前のバージョンSQL Server 2014 にアップグレードしました。 アップグレードを実行すると、これらのサーバーは元のファイル パスを保持してデータベース ファイルを保存します。 C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA

  • サイト データベースをこの可用性グループに移動する前に、各セカンダリ レプリカ サーバーで、次のファイル パスを作成します。 C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\DATA このパスは、セカンダリ レプリカがこのファイルの場所を使用しない場合でも、プライマリ レプリカで使用されているパスの複製です。

  • 次に、各セカンダリ レプリカSQL Serverサーバー上の新しく作成されたファイルの場所へのフル コントロール アクセス権を付与します。

  • 可用性グループ内のサイト Configuration Managerを使用するサイトを構成するために、このセットアップを正常に実行できます。

複数サブネットのフェールオーバー

MultiSubnetFailover 接続文字列キーワードを有効にSQL Server。 また、サイト サーバーのレジストリに次の値Windows手動で追加する必要があります。

HKLM:\SOFTWARE\Microsoft\SMS\Identification
HKLM:\SOFTWARE\Microsoft\SMS\SQL Server

MSF Enabled : 1 (DWORD)

警告

複数サブネット フェールオーバーを使用してサイト サーバー SQL Server Always On可用性グループを使用しても、障害復旧シナリオに対する自動フェールオーバーの完全な機能は提供されません。

メンバーをリモートの場所に持つ可用性グループを作成する必要がある場合は、最も低いネットワーク待機時間に基づいて優先順位を付ける必要があります。 ネットワークの待機時間が長い場合、レプリケーションエラーが発生する可能性があります。

制限事項と既知の問題

次の制限は、すべてのシナリオに適用されます。

サポートされていないSQL Serverオプションと構成

  • 基本可用性グループ: 2016 SQL Server Standard Edition で導入された基本可用性グループは、セカンダリ レプリカへの読み取りアクセスをサポートしています。 構成には、このアクセスが必要です。 詳細については、「Basic SQL Server可用性グループ」を参照してください

  • フェールオーバー クラスター インスタンス: フェールオーバー クラスター インスタンスは、フェールオーバー クラスター インスタンスと一緒に使用するレプリカConfiguration Manager。 詳細については、「フェールオーバー クラスター インスタンスSQL Server Always Onを参照してください

SQL可用性グループをホストするサーバー

SQL Serverで使用するグループに加えて、SQL Server が Configuration Manager 1 つ以上の可用性グループをホストする場合は、Configuration Manager セットアップの実行時に特定の設定が必要です。 これらの設定は、更新プログラムをインストールする場合にも必要Configuration Manager。 各可用性グループの各レプリカには、次の構成が必要です。

  • 手動フェールオーバー

  • 読み取り専用接続を許可する

注意

Configuration Manager自動フェールオーバーに設定すると、可用性グループ同期レプリカの使用 がサポートされます。 次の 場合に手動フェールオーバーを 設定します。

  • 可用性グループConfiguration Manager使用を指定するには、このセットアップを実行します。
  • 更新プログラムをインストールして、Configuration Manager。 (サイト データベースに適用される更新プログラムだけではありません)。

サポートされていないデータベースの使用

Configuration Manager可用性グループ内のサイト データベースのみをサポートする場合

次のデータベースは、可用性グループのConfiguration Managerサポートされていません。

  • レポート データベース

  • WSUS データベース

既存のデータベース

レプリカに作成された新しいデータベースは使用できません。 可用性グループを構成する場合は、既存のデータベースのコピー Configuration Managerプライマリ レプリカに復元します。

ConfigMgrSetup.log でのセットアップ エラー

サイト データベースを可用性Configuration Managerに移動するセットアップを実行すると、可用性グループのセカンダリ レプリカ上のデータベース ロールの処理が試行されます。 ConfigMgrSetup.log ファイルには、次のエラーが表示されます。

ERROR: SQL Server error: [25000][3906][Microsoft][SQL Server Native Client 11.0][SQL Server]Failed to update database "CM_AAA" because the database is read-only. Configuration Manager Setup 1/21/2016 4:54:59 PM 7344 (0x1CB0)

これらのエラーは無視しても安全です。

サイトの拡張

可用性グループを使用するスタンドアロン プライマリ サイト用のサイト データベースを構成する場合、サイトを展開してサーバーの全体管理サイトを含めすることはできません。 このプロセスを試した場合、失敗します。 サイトを展開するには、プライマリ サイト データベースを可用性グループから一時的に削除します。

セカンダリ サイトを追加するときに構成を変更する必要はない。

サイト バックアップの変更点

バックアップ データベース ファイル

サイト データベースで可用性グループを使用する場合は、組み込みの バックアップ サイト サーバーメンテナンス タスクを実行して、一般的な設定とファイルConfiguration Managerバックアップします。 そのバックアップによって作成された MDF ファイルや LDF ファイルは使用しない。 代わりに、データベース ファイルを使用してこれらのデータベース ファイルを直接SQL Server。

引き続きバックアップSQL Server使用できます。ただし、バックアップクラスターに直接復元SQL Server Always Onできません。 スタンドアロン サーバーで復元し、そのサーバーを別のサーバーにSQL Server Always On。

トランザクション ログ

サイト データベースの回復モデルを Full に設定 します。 この構成は、可用性グループConfiguration Manager使用する場合の要件です。 サイト データベース トランザクション ログのサイズを監視および維持する計画を立て、 完全復旧モデルでは、データベースまたはトランザクション ログの完全バックアップを行うまで、トランザクションは強化されません。 詳細については、「データベースのバックアップと復元」をSQL Serverしてください

サイトの回復の変更点

可用性グループの少なくとも 1 つのノードがまだ機能している場合は、サイト回復オプションを使用してデータベース復旧をスキップします (サイト データベースが影響を受けていない場合は、このオプション を使用します)。

サイトの回復では、可用性グループ内のデータベースを再作成できます。 このプロセスは、手動シードと自動シードの両方で動作します。

ヒント

セットアップ/回復ウィザードを実行すると、[新しい可用性グループ データベース] ページが手動シード構成にのみ適用されます。 自動シードを使用すると、共有データベース のバックアップが行えないので、ウィザードのページは表示されません。

詳細については、「バックアップと回復 」を参照してください

レポートの変更点

レポート サービス ポイントのインストール

レポート サービス ポイントでは、可用性グループのリスナー仮想名の使用はサポートされていません。 また、可用性グループでのデータベースのホストもサポートされていません。

  • 既定では、レポート サービス ポイントのインストールでは、 サイト データベース サーバー名がリスナーとして指定された仮想名に設定されます。 可用性グループ内のレプリカのコンピューター名とインスタンスを指定するには、この設定を変更します。

  • レポートをオフロードし、レプリカ ノードがオフラインのときに可用性を高めるには、各レプリカ ノードに追加のレポート サービス ポイントをインストールする方法を検討してください。 次に、各レポート サービス ポイントで独自のコンピューター名を使用する構成を行います。 可用性グループの各レプリカにレポート サービス ポイントをインストールすると、レポートは常にアクティブなレポート ポイント サーバーに接続できます。

コンソールで使用されるレポート サービス ポイントを切り替える

  1. [レポート] Configuration Managerで、[監視] ワークスペースに移動し、[レポート] を展開し、[レポート] ノードを 選択 します。

  2. リボンで、[レポート オプション] を選択します

  3. [レポート オプション] ダイアログ ボックスで、使用するレポート サービス ポイントを選択します。

次の手順

この記事では、可用性グループを使用するときに必要な一般的なタスクConfiguration Manager、制限、および変更について説明します。 可用性グループを使用するサイトを設定および構成する手順については、「可用性グループの構成 」を参照してください