Configuration ManagerでSQL Server Always On可用性グループを使用する準備をする

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

この記事を使用して、サイト データベースのSQL Server Always On可用性グループを使用するようにConfiguration Managerを準備します。 この機能は、高可用性とディザスター リカバリーのソリューションを提供します。

Configuration Managerでは、可用性グループの使用がサポートされています。

  • プライマリ サイトと中央管理サイト。
  • オンプレミスまたは azure 内Microsoft。

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

重要

続行する前に、SQL Serverと可用性グループの構成に慣れる必要があります。 この記事では、SQL Server ドキュメント ライブラリに関する詳細と手順について説明します。

サポートされるシナリオ

Configuration Managerで可用性グループを使用する場合は、次のシナリオがサポートされています。 各シナリオの詳細と手順については、「Configuration Managerの可用性グループを構成する」を参照してください。

前提条件

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

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

インストール アカウント

Configuration Managerセットアップの実行に使用するアカウントは次のとおりです。

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

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

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

SQL Server

バージョン

可用性グループ内の各レプリカは、Configuration ManagerのバージョンでサポートされているバージョンのSQL Serverを実行する必要があります。 SQL Serverでサポートされている場合、可用性グループのさまざまなノードで異なるバージョンのSQL Serverを実行できます。 詳細については、「Configuration ManagerでサポートされているSQL Serverバージョン」を参照してください。

Edition

SQL Serverの Enterprise エディションを使用します。

取引

SQL Serverの各インスタンスは、ドメイン ユーザー アカウント (サービス アカウント) または非ドメイン アカウントで実行できます。 グループ内の各レプリカには、異なる構成を設定できます。

Database

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

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

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

  • CLR 統合を有効にする:

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

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

  • [テキストの最大サイズ] を に2147483647設定します。

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

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

    ALTER DATABASE [CM_xxx] SET TRUSTWORTHY ON;
    

    詳細については、 信頼できるデータベース プロパティに関するページを参照してください。

  • Service Broker を有効にします。

    ALTER DATABASE [CM_xxx] SET ENABLE_BROKER
    

    注:

    可用性グループに既に含まれているデータベースで Service Broker オプションを有効にすることはできません。 可用性グループに追加する前に、そのオプションを有効にする必要があります。

  • Service 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セットアップには、インストールまたは回復を使用してデータベースを作成するときに、この構成を確認するための前提条件チェックが含まれています。

    注:

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

レプリカ メンバーの場所

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

注:

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

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

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

  • SQL Server Service Broker: TCP 4022

  • SQL over TCP: TCP 1433

セットアップが完了した後、これらのポートは、Configuration Managerおよびレプリケーション リンク アナライザー用に開いたままにする必要があります。

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

SQL Serverサイト間でデータをレプリケートするには、Azure ロード バランサー内の各ポートの負荷分散規則を作成します。 詳細については、「 内部ロード バランサーの高可用性ポートを構成する」を参照してください。

リスナー

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

ファイルのパス

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

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

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

たとえば、次のようなシナリオについて考えてみます。

  • 3 つの SQL Server を使用する可用性グループを作成します。

  • プライマリ レプリカ サーバーは、SQL Server 2014 の新しいインストールです。 既定では、データベース 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オプションと構成

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

  • フェールオーバー クラスター インスタンス: フェールオーバー クラスター インスタンスは、Configuration Managerで使用するレプリカではサポートされていません。 詳細については、「フェールオーバー クラスター インスタンスのSQL Server Always On」を参照してください。

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

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に戻す必要があります。

トランザクション ログ

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

サイトの回復に関する変更

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

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

ヒント

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

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

レポートの変更

レポート サービス ポイントをインストールする

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

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

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

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

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

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

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

次の手順

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