SharePoint 2013 で新しい検索パーティションとレプリカを追加する

原文の記事の投稿日: 2012 年 12 月 3 日 (月曜日)

この問題に関するリソースは、今頃はもうどこかにあると思いますが、以前に探したときになかなか見つからなかったため、ここに投稿することにしました。さいわい、少し前に友人の Knut B. が、インデックス パーティションを管理するための PowerShell スクリプトを送ってくれました。作業の流れを簡単に説明すると、パーティションまたはパーティション レプリカを作成するホストの Search Service インスタンスへの参照を取得し、既存の検索トポロジを複製してパーティションまたはレプリカを追加します。この作業が完了したら、作成したトポロジの複製を使うように SharePoint に対して指定できます。ファーム ウィザードで作成したファームを使う場合、インデックス パーティションは 1 つで、パーティションのレプリカもありません。したがって、まず、新しい検索パーティションを追加する方法を見てみましょう。

# 追加する新しいサーバーを指定し、Search Service インスタンスを開始します。
$newssi = Get-SPEnterpriseSearchServiceInstance -Identity "nameOfServerThatYouWantTheNewPartitionOn"
Start-SPEnterpriseSearchServiceInstance -Identity $newssi

# SSI が実行されるまで待ちます。SSI の状態が "Online" になったら次のコマンドを実行します。
Get-SPEnterpriseSearchServiceInstance -Identity $newssi

これで、対象のサーバーを選択し、そこで Search Service インスタンスが実行されていることを確認できたので、次に、既存の検索トポロジを複製します。

# 既存のトポロジを複製します。
$ssa = Get-SPEnterpriseSearchServiceApplication
$activeTopology=Get-SPEnterpriseSearchTopology -Active -SearchApplication $ssa
$newTopology = New-SPEnterpriseSearchTopology -SearchTopology $activeTopology -SearchApplication $ssa -Clone

トポロジを複製したら、新しいパーティションを作成します。パーティションには 0 から始まる番号が付いているため、ウィザードを使ってファームを作成し、パーティションがまだ 1 つしかない場合、そのパーティションの番号は 0 になります。したがって、複製したトポロジに追加する 2 つ目のパーティションは、パーティション 1 になります。パーティションを追加したら、複製したトポロジを新しい検索トポロジに設定します。

# 新しいインデックス コンポーネントを追加して、新しいインデックス パーティション 1 に関連付けます。
New-SPEnterpriseSearchIndexComponent -SearchTopology $newTopology -SearchServiceInstance $newssi -IndexPartition 1
Set-SPEnterpriseSearchTopology -Identity $newTopology

ここでは、New-SPEnterpriseSearchIndexComponent に $newssi 変数を渡しています。これは、先ほど、パーティションを作成するサーバーを代入した変数です。パーティションが作成されたら、ほぼ同じ PowerShell スクリプトを実行して、そのパーティションのレプリカを別のサーバーに作成します。このスクリプトの内容については既に説明したので、以下にスクリプト全体をそのまま貼り付けて、その後で解説します。

# 追加する新しいサーバーを指定し、Search Service インスタンスを開始します。
$newssi = Get-SPEnterpriseSearchServiceInstance -Identity "nameOfServerThatYouWantTheReplicaOn"
Start-SPEnterpriseSearchServiceInstance -Identity $newssi

# SSI が実行されるまで待ちます。SSI の状態が "Online" になったら次のコマンドを実行します。
Get-SPEnterpriseSearchServiceInstance -Identity $newssi

# 既存のトポロジを複製します。
$ssa = Get-SPEnterpriseSearchServiceApplication
$activeTopology=Get-SPEnterpriseSearchTopology -Active -SearchApplication $ssa
$newTopology = New-SPEnterpriseSearchTopology -SearchTopology $activeTopology -SearchApplication $ssa -Clone

# 新しいインデックス コンポーネントを追加して、新しいインデックス パーティション 1 に関連付けます。
New-SPEnterpriseSearchIndexComponent -SearchTopology $newTopology -SearchServiceInstance $newssi -IndexPartition 1
Set-SPEnterpriseSearchTopology -Identity $newTopology

次の 2 つの点に注意してください。

  1. Get-SPEnterpriseSearchServiceInstance コマンドレットでは、パーティション レプリカをホストするサーバーを指定します。
  2. New-SPEnterpriseSearchIndexComponent コマンドレットでは、-IndexPartition フラグを使用してパーティションを指定しています。インデックス パーティション 1 は既にあるため、このパーティションのレプリカが作成されます。

以上です。この記事が SharePoint 2013 の検索パーティションの管理に役立てばさいわいです。最後にもう一度、この PowerShell スクリプトを教えてくれた Knut に感謝します。

これはローカライズされたブログ投稿です。原文の記事は、「Adding a New Search Partition and Replica in SharePoint 2013」をご覧ください。