SQL Server の AlwaysOn フェールオーバーの構成データベースと組織のデータベースを設定する

 

公開日: 2017年1月

対象: Dynamics 365 (on-premises)、Dynamics CRM 2016

Microsoft SQL ServerAlwaysOn フェールオーバー クラスター インスタンス (FCI) および AlwaysOn 可用性グループは、包括的な高可用性および障害復旧のソリューションを提供します。 このトピックでは、Microsoft Dynamics 365 Server の既存の設置型展開を構成して、構成と組織のデータベースを、可用性グループを使用する 2 ノードの AlwaysOn のフェールオーバー クラスター インスタンスの一部とする方法を説明します。

重要

SQL ServerAlwaysOn FCI に既に構成済みの Microsoft Dynamics 365 構成と組織のデータベースをアップグレードする場合、この手順を再度実行する必要はありません。

これらの SQL Server 高可用性のソリューションの詳細については、AlwaysOn フェールオーバー クラスター インスタンス および AlwaysOn 可用性グループ を参照してください。

このトピックの内容

前提条件

SQL Server AlwaysOn の有効化

可用性のグループの作成

すべてのセカンダリ レプリカで Microsoft Dynamics 365 セキュリティ グループの SQL ログインを作成する

Windows レジストリ内の構成データベース接続文字列を更新する

構成データベースの接続文字列を更新する

IIS および Microsoft Dynamics 365 サービスの再起動

フェールオーバーの可用性グループとテストを監視する

前提条件

このトピックでは、次の要素を必要とする単純な 2 サーバー インスタンス フェールオーバー クラスターが構成されます:

  • SAN、NAS、または Windows Storage Server など、共有記憶域のある 2 ノード フェールオーバー クラスタ構成で実行している 2 台の SQL Server サーバー。 サポートされている SQL Server バージョンの一覧については、「SQL Server のエディション」を参照してください。

  • SQL ServerAlwaysOn インスタンス フェールオーバー クラスターのレプリカとなる Microsoft Windows Server 上で SQL Server を実行する 2 台のサーバー。SQL Server の主レプリカ インスタンスに、構成 (MSCRM_CONFIG) および組織 (OrganizationName_MSCRM) データベースの両方があります。

    どのバージョンの SQL Server が AlwaysOn をサポートするかに関する詳細は、「高可用性 (AlwaysOn)」を参照してください。SQL Server のフェールオーバー クラスターの作成方法に関する詳細は、新しい SQL Server のフェールオーバー クラスター (セットアップ) を参照してください。

SQL Server 2012 2 ノード フェールオーバー クラスター インスタンス

SQL Server AlwaysOn の有効化

AlwaysOn 機能を確立する以下の手順では Microsoft SQL Server Management Studio を使用します。 また、Transact-SQL または SQL ServerPowerShell を使用できます。詳細:AlwaysOn 可用性グループ (SQL Server) の開始

注意

ここでのステップは Microsoft SQL Server 2012 に特有ですが、サポートされた他の SQL Server バージョンでも、同様の手順が使用できます。

  1. SQL Server 構成マネージャー では、主レプリカとセカンダリ レプリカで AlwaysOn 可用性グループを有効にします。 詳細な手順については、「AlwaysOn 可用性グループの有効化」を参照してください。

  2. SQL Server Management Studio では、可用性のグループを作成します。つまり、構成データベースと組織のデータベース、主レプリカとセカンダリのレプリカを指定します。詳細:可用性グループ (SQL Server) の作成と構成

可用性のグループの作成

次の手順では、Microsoft Dynamics 365 構成データベースと単一の組織のデータベースを含む単一の SQL Server 可用性グループを作成します。 また、リスナーは、可用性グループに追加されます。

構成データベースおよび組織のデータベースで可用性グループを作成する

  1. 主レプリカとなる SQL Server で、SQL Server Management Studio を開始します。

  2. オブジェクト エクスプローラーで、[AlwaysOn 高可用性] を右クリックし、[新しい可用性グループのウィザード] をクリックします。

  3. ウィザードが表示されたら、[次へ] をクリックします。

  4. [名前の指定] ページで、可用性グループの名前 (Dynamics 365 など) を入力し、[次へ] をクリックします。

  5. [データベースの選択] ページで、MSCRM_CONFIG および OrganizationName_MSCRM データベースを選択し、[次へ] をクリックします。

    重要

    可用性グループにデータベースを追加する条件:

    • 復旧モデルを "完全" に設定する必要があります。 既定では、組織のデータベース (OrganizationName_MSCRM)は、"簡易" に設定されます。

    • データベースの完全バックアップ。

  6. [レプリカの指定] ページで、[レプリカの追加] をクリックし、[サーバー名] ボックスにレプリカ SQL Server の名前 (この例では CRMNode2 など) を入力し、[接続] をクリックします。 レプリカ サーバー インスタンスは [サーバー インスタンス] リストに表示されます。

  7. [エンドポイント] タブをクリックし、両方のレプリカが一覧に含まれていることを確認します。SQL Server サービス アカウント にスクロールし、ドメイン ユーザー アカウントが指定されていることを確認します。SQL Server サービスのドメイン ユーザー アカウントが、SQL Server のフェールオーバー クラスタリングに必要です。

  8. [リスナー] タブをクリックします。 可用性グループのリスナーにより、複数のサブネットのシナリオで、簡単にクライアント接続のフェールオーバーができます。 次の情報を入力します。

    • リスナー DNS 名: リスナーの名前を入力します。

    • リスナーの作成を完了するには、TCP ポートを指定し、[静的 IP][ネットワーク モード] を設定します。[追加] をクリックして IP アドレスを入力し、[OK] をクリックします。 これらのプロパティの詳細については、新しい可用性グループ ウィザードのヘルプをクリックします。

      [次へ] をクリックします。

  9. また、レプリカに対して追加の変更が必要か判断し、[次へ] をクリックします。 詳細については、新しい可用性グループ ウィザードのヘルプをクリックします。

    1. [データ同期の選択] ページで、データ同期方法を選択します。 [フル] を選択し、すべてのレプリカからアクセスできるネットワーク共有を追加する必要があります。SQL Server サービス アカウントには、共有するために読み取り/書き込みのアクセス許可が必要とされることに注意してください。 詳細については、新しい可用性グループ ウィザードのヘルプをクリックします。

      [次へ] をクリックします。

  10. 新しい可用性グループの検証チェックを実行する [検証] ページが表示されます。 可用性グループを作成する前にエラーを修正します。[次へ] をクリックします。

  11. [サマリ] ページで、選択が正しいことを確認し、[完成] をクリックします。

すべてのセカンダリ レプリカで Microsoft Dynamics 365 セキュリティ グループの SQL ログインを作成する

セカンダリ レプリカで Microsoft Dynamics 365 セキュリティ グループの SQL ログインを作成します。 これを行うには、次の手順を実行します。

  1. SQL Server Management Studio を起動し、セカンダリ SQL Server レプリカ (CRMNode2) に接続します。

  2. [セキュリティ] ノードを展開し、[ログイン] を右クリックして [新しいログイン] をクリックします。

  3. [ログイン] 名前ボックスで、[検索] をクリックしてから、[グループ] が [このオブジェクトの種類を選択] に含まれていることを確認します。含まれていない場合は、[オブジェクトの種類] をクリックし、追加します。DomainName\PrivReportingGroup を入力し、[名前の確認] をクリックし、名前が正しく解決する場合は、[OK] をクリックします。

    注意

    実際の PrivReportingGroup 名が異なることがあります。 名前が Active Directory にあることを確認します。

  4. 次のセキュリティ グループに対して、手順 2 ~ 3 を繰り返します。

    • ReportingGroup

    • SQLAccessGroup

MSCRMSqlClrLogin SQL ログインを作成する

  1. MSCRMSqlClrLogin SQL ログインの非対称的なキーを作成します。

    すべてのセカンダリ レプリカで、次の SQL ステートメントを master データベースに対して実行し、<path> が Microsoft.Crm.SqlClr.Helper.dll ファイル(展開ツールのサーバーの役割がインストールされたサーバーにある)へのパスである非対称的なキーを作成します。 たとえば、\crmdeploymenttools\CRMshare\Tools\ のような共有場所に UNC のパスを指定します。 既定では、Microsoft.Crm.SqlClr.Helper.dllは、C:\Program Files\Microsoft Dynamics CRM\Tools\フォルダーの展開ツール サーバーにあります。

    IF NOT EXISTS (SELECT * FROM sys.asymmetric_keys WHERE name = 'MSCRMSqlClrKey') BEGIN CREATE ASYMMETRIC KEY MSCRMSqlClrKey FROM EXECUTABLE FILE = ’<path>\Microsoft.Crm.SqlClr.Helper.dll’; 
    END
    
  2. MSCRMSqlClrLogin SQL ログインを作成します。

    MSCRMSqlClrLogin SQL ログインを作成するには master データベースに対して、次の SQL ステートメントを実行します。

    IF NOT EXISTS (SELECT * FROM sys.syslogins WHERE name = 'MSCRMSqlClrLogin') BEGIN CREATE LOGIN MSCRMSqlClrLogin FROM ASYMMETRIC KEY MSCRMSqlClrKey GRANT UNSAFE ASSEMBLY TO MSCRMSqlClrLogin END
    

Windows レジストリ内の構成データベース接続文字列を更新する

Microsoft Dynamics 365 レポート拡張機能 サーバーを含む、Microsoft Dynamics 365 Server の役割を実行しているすべてのサーバー上の Windows レジストリ にある、SQL Server 接続文字列を更新します。 これを行うには、以下の手順を実行します。

警告

レジストリ エディターまたは別の方法を使用してレジストリを不適切に変更すると、深刻な問題が発生する可能性があります。 これらの問題が発生した場合、オペレーティング システムと Microsoft Dynamics 365 の再インストールが必要になることがあります。 マイクロソフトは、これらの問題の解決を保証できません。 レジストリはユーザー自身の責任において変更してください。

  1. Microsoft Dynamics 365 Server の役割を実行しているコンピューター上で、レジストリ エディタ を起動して、次のレジストリ サブキーを探します。

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSCRM\

  2. [configdb] を右クリックし、[修正] をクリックします。

    1. Failover Partner=MSCRM_Mirror がある場合は、この値からこれを削除します。

    2. データ ソース を SQL Server インスタンス名から可用性グループのリスナー名に変更します。

      完成した接続文字列は次の例のようになります。ここで、MSCRMAG は Microsoft Dynamics 365 構成データベースを含む可用性グループの可用性グループ リスナー名です。

      Data Source MSCRMAG;Initial Catalog= MSCRM_CONFIG;Integrated Security=SSPI

      ヒント

      リスナーの名前は SQL Server Management Studioの 可用性グループ ノード下で確認できます。

    3. リスナーを使用している場合、接続文字列を作成するには、;multisubnetfailover=true を configdb 値の最後に追加します。詳細:高可用性、障害復旧のための SqlClient サポート

      複数のサブネットの完全 configdb 値は、次のように表示されている必要があります。

      Data Source MSCRMAG;Initial Catalog= MSCRM_CONFIG;Integrated Security=SSPI;multisubnetfailover=true

  3. [OK] をクリックし、レジストリ エディタを閉じます。

  4. Microsoft Dynamics 365 Server ロールを実行している各サーバー(Microsoft Dynamics 365 レポート拡張機能を実行しているサーバーを含む)の構成サブキーに接続文字列を追加するには、上記の手順を繰り返します。

構成データベースの接続文字列を更新する

構成データベースの組織テーブルを更新して、クライアント接続文字列の可用性グループ リスナー名を指定します。 このためには、構成 (MSCRM_CONFIG) データベースに対して、次の更新ステートメントを実行します。

警告

次の更新ステートメントを実行する前に、Microsoft Dynamics 365 構成データベース (MSCRM_CONFIG) をバックアップしてください。

Update Organization set ConnectionString = 'Provider=SQLOLEDB;Data Source=AG_Listener_Name;Initial Catalog=OrganizationName_MSCRM;Integrated Security=SSPI';MultiSubnetFailover=True' where DatabaseName = 'OrganizationName_MSCRM'
  • AG_Listener_Name を、Microsoft Dynamics 365 組織のデータベースが配置される可用性グループ リスナーの名前に変更します。

  • OrganizationName_MSCRM を、組織のデータベースの名前に変更します。

使用できる追加のパラメーター

また、可用性グループのリスナーに 1433 以外のポート番号を使用する場合は、Port_Number がネットワーク ポート番号である場所に、次のパラメーターを追加します。

Update Organization set ConnectionString = 'Provider=SQLOLEDB;Data Source=AG_Listener_Name,Port_Number;Initial Catalog=OrganizationName_MSCRM;Integrated Security=SSPI;multisubnetfailover=true' where DatabaseName = 'OrganizationName_MSCRM'

IIS および Microsoft Dynamics 365 サービスの再起動

これらの変更を行った後、Web アプリケーション サーバー 役割を実行しているコンピューターで IIS をリセットします。

警告

すべてのアクティブな Microsoft Dynamics 365 ユーザーは切断されている状態です。

これを行うには、[スタート] ボタンをクリックし、[ファイル名を指定して実行] をクリックします。 [開く] ボックスで、iisreset と入力して、[OK] をクリックします。

Microsoft Dynamics CRM Server 2013 機能がインストールされているすべてのサーバーの展開で、すべての Microsoft Dynamics 365 サービスを再起動します。

フェールオーバーの可用性グループとテストを監視する

Microsoft SQL Server Management Studio には、可用性のグループの状態を確認して、手動で簡単にフェールオーバーを実行する機能が含まれます。

可用性グループの状態を表示する

  1. SQL Server Management Studio を開始して、可用性グループの主レプリカである SQL Server のインスタンスに接続します。

  2. SQL Server Management Studioで、[可用性グループ] を展開し、Microsoft Dynamics 365 用に作成した可用性グループを右クリックし、[ダッシュボードの表示] をクリックします。

ダッシュボードでは、すべてのレプリカと同期の状態を表示します。 可用性グループの任意のレプリカからダッシュボードを表示できます。

フェールオーバーをテストする

  1. Microsoft Dynamics 365 が可用性グループに接続できることを確認します。 たとえば、Internet Explorer を起動し、Microsoft Dynamics 365 組織の URL に接続します。

  2. 前の手順で説明されてしたダッシュボードから、フェールオーバー プロセスを開始するには [フェールオーバーのウィザードを開始] をクリックします。

  3. ウィザードの指示に従って、フェールオーバーを完了します。

    フェールオーバーが完了すると、主レプリカはセカンダリ レプリカに、セカンダリ レプリカは、主レプリカになります。

  4. Microsoft Dynamics 365 組織に接続された Web ブラウザを切り替えて、アプリケーションのどこかをクリックして新しい主レプリカにシームレスに接続できることを確認します。

元の主レプリカとセカンダリ レプリカへ切り替え、新しいレプリカで手動のフェールオーバーの手順を実行します。

関連項目

Microsoft Dynamics CRM サーバーのインストールまたはアップグレード
フェールオーバー クラスターの詳細な手順: 2 ノードのファイル サーバーのフェールオーバー クラスターの構成
Microsoft Dynamics CRM Server のアップグレード

© 2017 Microsoft. All rights reserved. 著作権