SharePoint Server で RBS のメンテナンスを行う

適用対象:yes-img-13 2013yes-img-162016 yes-img-192019 yes-img-seSubscription Edition no-img-sopSharePoint in Microsoft 365

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

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

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

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

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

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

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

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

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

RBS ガーベジ コレクションを構成する

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

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

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

通常の活動への影響が最小限になるように RBS Maintainer を構成してください。 データベースのガベージ コレクションの設定 (設定の構成方法など) については、「RBS Maintainer の実行」を参照してください。

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

RBS メンテナは、RBS BLOB 参照の整合性を検証し、検出されたすべてのエラーを修正します。 データベースに対していくつかの整合性チェックを実行します。たとえば、RBS 列にインデックスが存在することを確認したり、SharePoint Server によって参照されるすべての BLOB が RBS に存在することを確認したりします。

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

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

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

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

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

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

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

RBS Maintainer の実行

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

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

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

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

  2. 実行する RBS メンテナ タスクの _<RBS インストール ディレクトリ>_Maintainer\Microsoft.Data.SqlRemoteBlobs.Maintainer.exe.config ファイルに接続文字列を追加します。 The RBS installer creates one connection string that is named RBSMaintainerConnection by using the connection information that was provided during setup. However, new connection strings must be added for every additional database.

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

    aspnet_regiis -pef connectionStrings 。 -prov DataProtectionConfigurationProvider

    rename web.config Microsoft.Data.SqlRemoteBlobs.Maintainer.exe.config

    If you are using SQL authentication, the RBS Maintainer connection strings must be in an encrypted format. Therefore, to add connection strings, either the new strings must be encrypted or all the connection strings must be decrypted. Encrypted strings must be added one at a time. ただし、すべての接続文字列は、Microsoft .NET Frameworkの一部として配布される %windir%\Microsoft.net\Framework\ <バージョン>の\Aspnet_regiis.exe ツールを使用して同時に復号化できます。

    以下のコマンドで、接続文字列を復号化し、結果を 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 を実行するタスクをスケジュールするたびに次の手順を実行する必要があります。

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

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

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

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

  • [ 設定] の [ プログラム/スクリプト ] ボックスで、[メンテナー バイナリ ファイル <RBS インストール ディレクトリ> ]\Maintainer\Microsoft.Data.SqlRemoteBlobs.Maintainer.exeを参照し、[引数の 追加 (省略可能)] テキスト ボックスに任意の引数を追加します。 インストーラーにより、次の既定の値が作成されます。

    <-ConnectionStringName RBSMaintainerConnection>、<-Operation GarbageCollection ConsistencyCheck ConsistencyCheckForStores>、<-GarbageCollectionPhases rdo>、<-ConsistencyCheckMode r>、<-TimeLimit 120>

  • [OK] をクリックします。

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

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

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

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

関連項目

概念

SharePoint Server での RBS の概要

SharePoint Server ファームで FILESTREAM を使用する RBS をインストールおよび構成する

SharePoint Server で FILESTREAM と一緒に RBS を使うようにコンテンツ データベースを設定する

コンテンツを SharePoint Server の RBS 内または RBS 外に移行する

SharePoint Server でコンテンツ データベースにある RBS を無効にする