RBS のメンテナンス (SharePoint Server 2010)

 

適用先: SharePoint Foundation 2010, SharePoint Server 2010

トピックの最終更新日: 2016-11-30

この記事では、Microsoft SharePoint Server 2010 のリモート BLOB ストレージ (RBS) に関連付けられたメンテナンス タスクの実行方法を説明します。

SharePoint Server 2010 の RBS に関連付けられたメンテナンス タスクのほとんどは、Microsoft SQL Server のツールである RBS Maintainer を使用して実行します。RBS Maintainer は、SharePoint 2010 の RBS 展開に対して定期的なガーベジ コレクションおよびその他のメンテナンス タスクを実行します。Windows タスク スケジューラまたは Microsoft SQL Server エージェントを使用すると、RBS を使用するデータベースごとに、これらのタスクをスケジュールできます。コマンド ライン パラメーターまたは XML ファイルを使用して RBS Maintainer を準備する必要があります。ミラー化されたデータベースまたはレプリケートされたデータベースでは、単一インスタンスに対して RBS Maintainer を実行できます。

この記事の内容

  • ガーベジ コレクション

  • RBS および BLOB ストアの整合性チェック

  • RBS Maintainer の実行

ガーベジ コレクション

SharePoint Server 2010 は、未参照または削除済みの BLOB データに自動的に削除対象マークを付けます。SharePoint Server 2010 は、削除時に SharePoint Server 2010 によってそのコンテンツ データベースに保存された BLOB ID の一覧を調べることによって、BLOB への参照をカウントします。RBS ストア テーブル内にはあるが、コンテンツ データベース内にない BLOB 参照は SharePoint Server 2010 によって削除されたものと見なされ、削除対象マークが付けられます。コンテンツ データベース内にない BLOB で、孤立アイテムのクリーンアップ時間帯 (この記事で後述) よりも以前に作成されたものも SharePoint Server 2010 によって削除されたものと見なされ、削除対象マークが付けられます。

SharePoint Server 2010 は、コンテンツ データベースの RBS 列から BLOB 参照のテーブルを作成するので、すべての RBS 列に有効なインデックスがないと RBS への登録を行えません。

SQL Server RBS Maintainer ツールは、SharePoint Server 2010 によって削除対象マークが付けられたアイテムを削除します。通常のデータベース操作に影響が出ないようにピーク時を避けてクリーンアップ タスクを実行するようにスケジュールしてください。

RBS ガーベジ コレクションは、次に示す 3 つのステップで実行されます。

  • 参照スキャン。最初のステップでは、SharePoint Server 2010 コンテンツ データベースの RBS テーブルの内容が RBS の内部テーブルと照合され、参照されていない BLOB がないか調べられます。参照されていない BLOB には削除対象マークが付けられます。

  • 伝達の削除。次のステップでは、garbage_collection_time_window 値よりも長い時間にわたって削除のマークが付けられている BLOB が判別され、それらが BLOB ストアから削除されます。

  • 孤立アイテムのクリーンアップ。最後のステップでは、BLOB ストアには存在しているのに、RBS テーブルには存在しない BLOB があるかどうかが判定されます。これらの孤立した BLOB は削除されます。

RBS ガーベジ コレクションの構成

以下の RBS Maintainer の設定とデータベースの設定を指定することで、ガーベジ コレクションを構成できます。

  • Maintainer のスケジュール。この設定によって Maintainer の実行頻度が決まります。

  • タスク期間。この設定によって 1 回の RBS Maintainer タスクの最長実行時間が決まります。既定の設定値は 2 時間です。

通常の活動への影響が最小限になるように RBS Maintainer を構成してください。これらの構成方法やデータベースのガーベジ コレクションの設定については、「Running RBS Maintainer (英語)」(https://go.microsoft.com/fwlink/?linkid=199638&clcid=0x411) (英語) を参照してください。

RBS および BLOB ストアの整合性チェック

RBS Maintainer は、RBS BLOB 参照の整合性を検証し、エラーが見つかれば訂正します。RBS Maintainer は、データベースに対していくつかの整合性チェックを実行します。たとえば、RBS 列に対してインデックスが存在するかどうかを検証したり、SharePoint Server 2010 で参照されている BLOB がすべて RBS に存在するかどうかを検証します。

補助テーブル整合性チェックは、RBS 補助テーブルが矛盾のない状態であるかどうかを検証します。次のチェックが実行されます。

  • RBS テーブルの各列に有効なインデックスがあるかどうかを検証する。

  • RBS テーブルの列が存在するか、列に有効なインデックスがあるか、列の種類が適切かどうかを検証する。

以下の整合性チェックは、無効にすることもできますが、RBS ストアの整合性を確実なものにするために無効にしないことをお勧めします。以下の整合性チェックは、既定で有効になっています。

  • SharePoint Server 2010 で参照されている BLOB がすべて RBS テーブルに存在するかどうかを検証する。

  • 使用中で、かつ削除済みとしてマークされている BLOB がないかどうかを検証する。

見つかった問題はすべてログに記録されます。RBS Maintainer は、欠落しているインデックス エントリを作成するか、欠落している列を登録解除するか、使用中の BLOB を非削除としてマークするかして、それらの問題の解決を試みます。

RBS Maintainer の実行

RBS では、RBS Maintainer を実行する前に、RBS を使用する各データベースへの接続文字列を定義する必要があります。この文字列は、通常はインストール時に作成される <RBS インストール パス>\Microsoft SQL Remote Blob Storage 10.50\Maintainer フォルダー内の構成ファイルに格納されます。RBS Maintainer を手動で実行するには、次の表に示すパラメーターを指定して Microsoft.Data.SqlRemoteBlobs.Maintainer.exe プログラムを実行します。

パラメーター名 説明 必須か

ConnectionStringName <文字列名>

構成ファイルの接続文字列の名前です。

RBSMaintainerConnection は RBS セットアップ時に作成される既定の名前です。

はい

Operation <実行する操作をスペースで区切って並べたもの>

実行するガーベジ コレクションの操作です。このパラメーターは 1 ~ 4 個の引数を取ります。ForceFinalize 値を他の操作と組み合わせて使用することはできません。

ConsistencyCheck

GarbageCollection

Maintenance

ConsistencyCheckForStores

ForceFinalize

はい

GarbageCollectionPhases <フェーズ>

実行するガーベジ コレクションのフェーズです。このパラメーターはガーベジ コレクションを実行または完了するために使用します。値は 1 つ以上の英字で、スペースは挿入しません。

r — 参照スキャン。

d — 伝達の削除。

o — 孤立アイテムのクリーンアップ。

ガーベジ コレクションを実行する場合は必須です。

ConsistencyCheckMode <c、r、または b>

実行する整合性チェックの種類を指定します。

c — チェックだけが行われます。

r  — チェックが行われ、問題が見つかれば修正されます。

b  — 内部データ構造のチェック、修正、および再構築。

整合性チェックを実行する場合は必須です。

ConsistencyCheckExtent <m または c>

整合性チェックの範囲を指定します。

m — メタデータだけがチェックされます。個々の BLOB は未チェックのままです。これが既定のパラメーターです。

c — 完全なチェックが行われます。

指定がない場合は、m が使用されます。

ConsistencyCheckForStores <BLOB ストア名をスペースで区切って並べたもの>

整合性をチェックする BLOB ストアの名前をリストします。

既定では、すべての BLOB ストアがチェックされます。

いいえ

TimeLimit <分単位の時間>

RBS Maintainer タスクの実行に使用できる時間を指定します。引数は正の整数である必要があります。

いいえ

RBS を使用するデータベースごとに RBS Maintainer タスクを個別にスケジュールする必要があります。RBS Maintainer タスクのスケジュール方法を以下に示します。

RBS Maintainer タスクをスケジュールするには

  1. RBS をインストールしたフォルダーに対して書き込み権限があることを確認します。

  2. 実行する RBS Maintainer タスクの <RBS インストール ディレクトリ>\Maintainer\Microsoft.Data.SqlRemoteBlobs.Maintainer.exe.config ファイルに接続文字列を追加します。RBS インストーラーは、セットアップ時に与えられた接続情報を使用して、RBSMaintainerConnection という名前の接続文字列を 1 つ作成します。ただし、追加のデータベースごとに新しい接続文字列を追加する必要があります。

    Windows 認証を使用している場合は、接続文字列を暗号化しなくてもかまいません。暗号化されていない接続文字列は、次のコマンドで追加できます。

    aspnet_regiis -pef connectionStrings . -prov DataProtectionConfigurationProvider
    rename web.config Microsoft.Data.SqlRemoteBlobs.Maintainer.exe.config

    SQL 認証を使用している場合は、RBS Maintainer の接続文字列を暗号化された形式にしなければなりません。そのため、接続文字列を追加するとき、新しい文字列を暗号化するか、すべての接続文字列を復号化することが必要です。暗号化された文字列は一度に 1 つずつ追加する必要がありますが、%windir%\Microsoft.net\Framework\<バージョン>\Aspnet_regiis.exe ツールを使用すれば、すべての接続文字列を同時に復号化できます。このツールは Microsoft .NET Framework の一部として配布されています。

    以下のコマンドで、接続文字列を復号化し、結果を Web.config ファイルに格納します。

    rename Microsoft.Data.SqlRemoteBlobs.Maintainer.exe.config web.config
    aspnet_regiis -pdf connectionStrings

    その後、文字列を復号化された形式で追加し、このファイルを暗号化して、ファイル名を Microsoft.Data.SqlRemoteBlobs.Maintainer.exe.config に変更できます。それには次のコマンドを使用します。

    aspnet_regiis -pef connectionStrings . -prov DataProtectionConfigurationProvider
    rename web.config Microsoft.Data.SqlRemoteBlobs.Maintainer.exe.config

  3. 該当するデータベースごとに RBS Maintainer タスクを実行するための Windows スケジューラ タスクを作成します。RBS インストーラーを GUI モードで実行していた場合は、Windows スケジューラ タスクが自動的に作成されます。しかし、コマンド ライン モードで実行していた場合は、RBS Maintainer を実行するタスクをスケジュールするたびに次の手順を実行する必要があります。

    1. [スタート] メニューで、[管理ツール] をクリックし、[タスク スケジューラ] をクリックします。

    2. [操作] メニューで [タスクの作成] をクリックします。

    3. [操作] タブで [新規] をクリックします。

    4. [新しい操作] ダイアログ ボックスの [操作] ドロップダウン リストで、[プログラムの開始] を選択します。

    5. [設定] の下の [プログラム/スクリプト] ボックスで、Maintainer バイナリ ファイル <RBS インストール ディレクトリ>\Maintainer\Microsoft.Data.SqlRemoteBlobs.Maintainer.exe を参照し、[引数の追加 (オプション)] テキスト ボックスでオプションの引数を追加します。インストーラーによって次の既定値が作成されます。
      <-ConnectionStringName RBSMaintainerConnection>
      <-Operation GarbageCollection ConsistencyCheck ConsistencyCheckForStores>
      <-GarbageCollectionPhases rdo>
      <-ConsistencyCheckMode r>
      <-TimeLimit 120>

    6. [OK] をクリックします。

    7. [トリガー] タブで [新規] をクリックします。

    8. [新しいトリガー] ダイアログ ボックスで、タスクをスケジュールし、[OK] をクリックします。システムの活動レベルが低い時間帯にスケジュールすることをお勧めします。

    9. [全般] タブの [セキュリティ] で、ユーザー アカウントにタスクを実行する権限を与えます。権限を変更するには、[ユーザーまたはグループの変更] をクリックします。

    10. [全般] タブで [ユーザーがログオンしているかどうかにかかわらず実行する] をクリックし、[OK] をクリックします。

See Also

Concepts

RBS の概要 (SharePoint Server 2010)
RBS を計画する (SharePoint Server 2010)
RBS をインストールおよび構成する (SharePoint Server 2010)
FILESTREAM プロバイダーなしでリモート BLOB ストレージ (RBS) をインストールおよび構成する (SharePoint Server 2010)
リモート BLOB ストレージ (RBS) を使用するようにコンテンツ データベースを設定する (SharePoint Server 2010)
コンテンツをリモート BLOB ストレージ (RBS) 内または RBS 外に移行する (SharePoint Server 2010)
コンテンツ データベースでリモート BLOB ストレージ (RBS) を無効にする (SharePoint Server 2010)

Other Resources

SQL Server and SharePoint Server 2010 Databases (https://go.microsoft.com/fwlink/?linkid=199866&clcid=0x411) (英語)