RBS を保守する (SharePoint Foundation 2010)
適用先: SharePoint Foundation 2010
この記事では、Microsoft SharePoint Foundation 2010 でリモート BLOB ストレージ (RBS) に関連付けられたメンテナンス作業を行う方法について説明します。
SharePoint Foundation 2010 での RBS に関連するメンテナンス タスクの大半は、Microsoft SQL Server のツールである RBS Maintainer を使用して実行されます。RBS Maintainer は、SharePoint 2010 RBS 展開に対して、定期的にガーベジ コレクションとその他のメンテナンス タスクを実行します。Windows タスク スケジューラや Microsoft SQL Server エージェントを使用すると、RBS を使用する各データベースにこれらのタスクをスケジュールできます。RBS Maintainer は、コマンドライン パラメーターまたは XML ファイルを利用してプロビジョニングする必要があります。ミラー化またはレプリケートされたデータベースの場合は、任意の 1 つのインスタンスに対して RBS Maintainer を実行できます。
この記事の内容
ガーベジ コレクション
RBS および BLOB ストアの整合性チェック
RBS Maintainer の実行
ガーベジ コレクション
SharePoint Foundation 2010 では、参照されていない BLOB データや削除済みの BLOB データが削除対象として自動的にマークされます。SharePoint Foundation 2010 では、BLOB データが削除されるときに SharePoint Foundation 2010 によってコンテンツ データベースに保存される BLOB ID のリストを確認することで、BLOB への参照をカウントします。RBS 格納テーブルに存在するが、コンテンツ データベースには存在しないすべての BLOB 参照は、SharePoint Foundation 2010 によって削除されたと見なされ、削除対象としてマークされます。コンテンツ データベースに存在せず、この記事の後で説明する孤立アイテムのクリーンアップの時間帯の前に作成されたと見なされる BLOB も、SharePoint Foundation 2010 によって削除されたと見なされ、削除対象としてマークされます。
SharePoint Foundation 2010では、コンテンツ データベースの RBS 列から BLOB 参照を集計するので、各列を RBS に登録するには、各列に有効な索引が含まれている必要があります。
SQL Server RBS Maintainer ツールは、SharePoint Foundation 2010 によって削除のマークが設定されたアイテムを削除します。クリーンアップ タスクの実行をピーク外の時間帯にスケジュールして、データベースの通常の動作に影響しないようにしてください。
RBS ガーベジ コレクションは、次の 3 つの手順で実行されます。
参照スキャン。最初の手順では、SharePoint Foundation 2010 のコンテンツ データベース内の RBS テーブルのコンテンツと RBS 独自の内部テーブルを比較して、参照されなくなった BLOB を特定します。参照されていない BLOB は、削除対象としてマークされます。
伝達の削除。次の手順では、garbage_collection_time_window 値よりも長い期間、削除対象としてマークされている BLOB を特定し、それらの BLOB を BLOB ストアから削除します。
孤立アイテムのクリーンアップ。最後の手順では、BLOB が BLOB ストアに存在するが、RBS テーブルには存在しないかどうかを調べます。このような孤立した BLOB は後で削除されます。
RBS ガーベジ コレクションの構成
以下の RBS Maintainer 設定およびデータベース設定を指定して、ガーベジ コレクションを構成できます。
Maintainer のスケジュール。RBS Maintainer の実行頻度を指定する設定です。
タスク期間。この設定によって 1 つの RBS Maintainer タスクを実行できる最長時間が決まります。既定の設定値は 2 時間です。
RBS Maintainer のアクティビティが通常のアクティビティに影響しないように RBS Maintainer を構成してください。設定の構成方法を含むデータベースのガーベジ コレクションの設定については、「Running RBS Maintainer (英語)」(https://go.microsoft.com/fwlink/?linkid=199638&clcid=0x411) (英語) を参照してください。
RBS および BLOB ストアの整合性チェック
RBS Maintainer は、RBS BLOB 参照の整合性を検証し、エラーがあれば修正します。RBS Maintainer は、データベースに対して、いくつかの整合性チェックを実行します。たとえば、RBS 列の索引の有無を検証したり、SharePoint Foundation 2010 によって参照されるすべての BLOB が RBS に存在するかどうかを検証したりします。
補助テーブルの整合性チェックでは、RBS 補助テーブルが一貫した状態にあることを検証します。次の点を調べます。
各 RBS テーブル例に有効な索引が含まれていること。
RBS テーブル列が存在し、その列で有効な索引が有効になっていて、列の種類が正しいこと。
以下の整合性チェックは無効にすることができますが、RBS ストアの整合性を維持するのに役立つことから、無効にしないことをお勧めします。既定で、以下の整合性チェックは有効です。
SharePoint Foundation 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 Maintainer タスクは、RBS を使用する各データベースに対して、個別にスケジュールする必要があります。次の手順は、RBS Maintainer タスクをスケジュールする方法を示しています。
RBS Maintainer タスクをスケジュールするには
RBS をインストールしたフォルダーに対する書き込み権限を持っていることを確認します。
実行する RBS Maintainer タスクの <RBS インストール ディレクトリ>\Maintainer\Microsoft.Data.SqlRemoteBlobs.Maintainer.exe 構成ファイルに接続文字列を追加します。RBS インストーラーは、セットアップ時に指定された接続情報を使用して、RBSMaintainerConnection という接続文字列を 1 つ作成します。ただし、追加のデータベースについては個々に、新しい接続文字列を追加する必要があります。
Windows 認証を使用する場合は、接続文字列が暗号化されている必要はありません。暗号化されていない接続文字列を追加するには、以下のコマンドを実行します。
aspnet_regiis -pef connectionStrings . -prov DataProtectionConfigurationProvider
rename web.config Microsoft.Data.SqlRemoteBlobs.Maintainer.exe.configSQL 認証を使用している場合、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.configWindows スケジューラ タスクを作成して、該当するデータベースごとに RBS Maintainer タスクを実行します。RBS インストーラーを GUI モードで実行した場合、Windows スケジューラ タスクは自動的に作成されます。一方、RBS インストーラーをコマンドライン モードで実行した場合は、RBS Maintainer を実行するタスクをスケジュールするたびに、次の手順を実行する必要があります。
[スタート] メニューの [管理ツール] をクリックし、[タスク スケジューラ] をクリックします。
[操作] メニューの [タスクの作成] をクリックします。
[操作] タブで [新規] をクリックします。
[新しい操作] ダイアログ ボックスの [操作] ドロップダウン リストで、[プログラムの開始] を選択します。
[設定] の [プログラム/スクリプト] ボックスで、Maintainer バイナリ ファイル <RBS インストール ディレクトリ>\Maintainer\Microsoft.Data.SqlRemoteBlobs.Maintainer.exe を参照し、[引数の追加 (オプション)] ボックスにオプションの引数を追加します。次の既定値はインストーラーによって作成されるものです。
<-ConnectionStringName RBSMaintainerConnection>
<-Operation GarbageCollection ConsistencyCheck ConsistencyCheckForStores>
<-GarbageCollectionPhases rdo>
<-ConsistencyCheckMode r>
<-TimeLimit 120>[OK] をクリックします。
[トリガー] タブで [新規] をクリックします。
[新しいトリガー] ダイアログ ボックスでタスクをスケジュールし、[OK] をクリックします。システムの稼働率が低い時間帯に実行されるようにタスクをスケジュールすることをお勧めします。
[全般] タブの [セキュリティ オプション] で、ユーザー アカウントがタスクを実行するための適切な権限を持っていることを確認します。[ユーザーまたはグループの変更] をクリックして、権限を変更することもできます。
[全般] タブの [ユーザーがログオンしているかどうかにかかわらず実行する] をクリックし、[OK] をクリックします。
See Also
Concepts
RBS の概要 (SharePoint Foundation 2010)
RBS を計画する (SharePoint Foundation 2010)
RBS をインストールして構成する (SharePoint Foundation 2010)
FILESTREAM プロバイダーを使用せずにリモート BLOB ストレージ (RBS) をインストールして構成する (SharePoint Foundation 2010)
コンテンツ データベースでリモート BLOB ストレージ (RBS) の使用を設定する (SharePoint Foundation 2010)
コンテンツをリモート BLOB ストレージ (RBS) 内または RBS 外に移行する (SharePoint Foundation 2010)
コンテンツ データベースでリモート BLOB ストレージ (RBS) の使用を無効にする (SharePoint Foundation 2010)