---
title: "ウォークスルー:xDBコレクションデータベースのAlways On設定"
slug: "walkthrough--configuring-always-on-for-the-xdb-collection-database"
abstract: "xDBコレクションデータベースのAlways Onの設定方法。"
---
# ウォークスルー:xDBコレクションデータベースのAlways On設定

Always Onを使えば、オンプレミスのSQL ServerでxDBコレクションデータベースの高可用性(HA)を実現できます。このウォークスルーでは以下の方法を説明します:

-   Always Onの設定と設定
-   ログインセキュリティ識別子の同期
-   ShardsGlobalテーブルのシャードサーバー名を更新
-   xConnect接続文字列を更新してください

> !注XPサービスデータベースや [コアロールデータベース](https://doc.sitecore.com/xp/ja/developers/92/platform-administration-and-architecture/configure-sql-server-always-on-for-the-core,-master,-web,-and-reporting-databases.html "Configure SQL Server Always On for the Core, Master, Web, and Reporting databases")用にAlways Onを設定することも可能です。

## Always Onの設定と設定

Always Onの設定と設定:

-   docs.microsoft.com の「 [常時オン可用性グループで始める](https://docs.microsoft.com/en-us/sql/database-engine/availability-groups/windows/getting-started-with-always-on-availability-groups-sql-server?view=sqlallproducts-allversions) 」を参照してください。

可用性グループを設定する際には以下の点を念頭に置いてください:

-   セカンダリ複製を作成する際は [、同期コミットモード](https://docs.microsoft.com/en-us/sql/database-engine/availability-groups/windows/availability-modes-always-on-availability-groups?view=sql-server-2017#SyncCommitWithAuto) を使用していることを確認してください。
-   [Availability Groupリスナーの設定](https://docs.microsoft.com/en-us/sql/database-engine/availability-groups/windows/create-or-configure-an-availability-group-listener-sql-server?view=sql-server-ver15)が必要です。
-   xDBコレクションのデータベースは実際には複数のデータベースで構成されており、シャードマップマネージャーとシャードセットを含みます。SQL Serverのエディションに応じて、各データベースごとに可用性グループを設定するか、すべてのデータベースを含む可用性グループを設定することができます。

## ログインセキュリティ識別子の同期

デフォルトでは、すべてのxDBコレクションデータベースには*collection\_user*という名前の単一のユーザーがいます。Always Onの設定の一環として、プライマリとセカンダリプレプリカ間でユーザーのセキュリティ識別子(SID)を同期させる必要があります。

プライマリとセカンダリレプリカ間でユーザーのSIDを同期させるには:

1.  プライマリプリカからcollection\_user SIDを取得するには、SQLマスターデータベースに対して以下のクエリを実行します:
    
    SELECT @@SERVERNAME SERVERNAME, name, sid
    FROM sys.server\_principals
    WHERE name='collection\_user'; -- Specify login name
    
2.  セカンダリプレプリカから*collection\_user*を削除してください。
    
3.  プライマリプリカのSIDを使ってセカンダリ複製の*collection\_user*ログインを再作成します。
    
    CREATE LOGIN collection\_user -- Specify login name
    WITH
    PASSWORD=N'Password12345'
    -- Use the SID retrieved from the Primary Replica
    , SID = 0x9AE4CE9DC738EC4BA1968FF2DF9DD787
    , DEFAULT\_DATABASE = master

## ShardsGlobalテーブルのシャードサーバー名を更新

シャードマップマネージャーの \_\_ShardManagement.ShardsGlobalテーブルには、シャードセット内の各シャードに関する情報、シャードデータベース名やサーバーが含まれます。

シャードのサーバー名を更新するには:

-   ServerNameフィールドの値をサーバー名から可用性グループのリスナーに変更します。例えば、値をSQLServer-ABCDからtcp:Shard0Listener, 5025に変更します。\_\_ShardManagement.ShardsGlobalテーブル内のすべてのシャードに対してこれを繰り返します。

## xConnect接続文字列を更新してください

最後に、[xDBコレクションデータベースを参照するすべてのロール](https://doc.sitecore.com/xp/ja/developers/92/platform-administration-and-architecture/xdb-collection-database.html "xDB Collection database")の接続文字列を更新する必要があります。

xConnect接続文字列を更新するには:

-   <root>\\App\_Config\\ConnectionStrings.configファイル内で、collection接続文字列を変更してシャードマップマネージャのレプリカのリスナーを参照します。以下の例では、リスナーはtcp:CollectionList,5025です:
    
    <connectionStrings>
          <add name="collection" connectionString="user id=exampleuser;password=SXglRtUUQYVJwUT9OLfL;data source=tcp:CollectionList,5025;Initial Catalog=sample\_Xdb.Collection.ShardMapManager" />
    </connectionStrings>