Mergecontentdbs : Stsadm 操作 (Office SharePoint Server)

更新 : 2009-04-28

説明

sourcedatabasename パラメータおよび destinationdatabasename パラメータが指定されているときに、1 つのコンテンツ データベースから別のデータベースへのサイト コレクションの移動を許可します。

移動元のデータベースと移動先のデータベースは同じ Microsoft SQL Server インスタンス内にあり、同じ Web アプリケーションに接続されている必要があります。最適なパフォーマンスを得るには、一度に移動するサイト コレクションの数を 250 以下にしてください。一度にそれ以上の数のサイト コレクションを移動すると、パフォーマンスが大幅に低下する可能性があります。

Note メモ

mergecontentdbs 操作は、Microsoft Office SharePoint Server 2007 Service Pack 1 で最初に導入されました。

Important 重要

4 月の累積的な更新プログラムは、Stsadm mergecontentdbs 操作に影響する既知の問題を修正します。この問題の詳細については、「STSADM MergeContentDB コマンドがデータベースが破損 Windows SharePoint Services 3.0 で」を参照してください。コンテンツ データベースの結合または分割を計画している場合は、4 月の累積的な更新プログラムをインストールすることをお勧めします。

構文

stsadm -o mergecontentdbs

   -url <URL 名>

   -sourcedatabasename <移動元のデータベース名>

   -destinationdatabasename <移動先のデータベース名>

   [-operation] {1-3}

      1 - Analyze (既定)

      2 - データベースの完全なマージ

      3 - ファイルからの読み取り

   [-filename] <stsadm から生成されたファイル -o enumsites>

パラメータ

パラメータ名

必須/省略可能

説明

url

有効な URL ("http://server_name" など)

必須

データベースをマージする Web アプリケーションの URL。

sourcedatabasename

有効なデータベース名 ("WSS_Content_1" など)

必須

サイト コレクションの移動元となるデータベースの名前。

destinationdatabasename

有効なデータベース名 ("WSS_Content_2" など)

必須

サイト コレクションの移動先となるデータベースの名前。

operation

次のいずれかの値 :

  • 1 - 分析

  • 2 - データベースの完全なマージ

  • 3 - ファイルからの読み取り

省略可能

1 - 分析 : コマンド ウィンドウにサイト コレクションの現在の数、データベース サイズ、サイト コレクションの最大数、および各コンテンツ データベースのサイト コレクションの最大数に達する前に追加できるサイト コレクションの数を表示することを示します。

また、どのコンテンツ データベースを移動元として使用し、どのコンテンツ データベースを移動先として使用するかに関する推奨も、コマンド ウィンドウに表示されます (データベースのすべてのサイト コレクションを移動することを想定)。この推奨は、どのコンテンツ ベースのデータが少ないかに基づいています。データの少ないデータベースはより高速に移動できるためです。

これが既定値です。

2 - データベースの完全なマージ : コンテンツ データベース全体を 1 つのデータベースから別のデータベースにマージします。操作が完了しても、ソースのコンテンツ データベースは Microsoft SQL Server に残り、Web アプリケーションに接続されたままです。ただし、このコンテンツ データベースにはサイト コレクションが含まれなくなります。

3 - ファイルからの読み取り : サイト コレクションのサブセットのみがソース データベースから移動先のデータベースに移動します。移動対象のサイト コレクションは、filename パラメータで指定されるファイルに含まれている必要があります。

filename

有効なファイル名 ("sites.xml" など)

省略可能

移動先のデータベースに移動する、移動元のコンテンツ データベース内の特定のサイト コレクションを指定します。

この情報を取得するには、Enumsites 操作の databasename パラメータを使用します。

Note メモ
databasename パラメータは、Office SharePoint Server 2007 Service Pack 1 で最初に導入されました。
Note メモ
リダイレクト演算子 ">" を使用すると、enumsites 操作の XML 出力をテキスト ファイルに取得できます。

備考

Stsadm mergecontentdbs 操作を実行する前に、次のことを行う必要があります。

  • ソース サイト コレクションのサイズの少なくとも 3 倍の空き容量を確保する必要があります。「Enumsites : Stsadm 操作 (Office SharePoint Server)」を参照して、サイト コレクションのサイズを確認してください。

  • データベース内のプロファイル機能とサイトの間でデータが確実に同期されるようにします。これを行うには、preparetomove 操作を実行します。

1 つのデータベースから別のデータベースにサイト コレクションを移動するには、ファームの管理者グループとローカルの Administrators グループの両方のメンバである必要があり、移動する必要があるサイト コレクションに対するフル コントロール権限が許可されている必要があります。この権限を許可するには、サーバーの全体管理で、[アプリケーション構成の管理]、[アプリケーション セキュリティ]、[Web アプリケーションのポリシー] の順にクリックします。この手順を実行するために使用するアカウントは、SQL Server の db_owner 固定データベース ロールのメンバである必要があります。

サイトを正常に移動したら、[Web アプリケーションのポリシー] ページを使用してアカウントのアクセス許可レベルを削除または変更する必要があります。他のサービスでアカウントを使用している場合は、元のアクセス許可レベルにリセットします。

操作を実行するための適切な権限がない場合は、次のエラー メッセージが表示されます。"Moving sites... /sites/test には、既に他のサイトが存在します。このサイトを削除してから、同じ URL の新しいサイトを作成するか、別の URL を選択してください。または、指定した元のパスに新しい管理対象パスを追加してください。"

移動が完了したら、ファームの各フロントエンド Web サーバーで iisreset /noforce コマンドを実行する必要があります。大量のデータを移動した場合は、SQL データベースとトランザクション ログを圧縮することをお勧めします。SQL データベースの圧縮の詳細については、「データベースを圧縮する方法 (SQL Server Management Studio)」(http://go.microsoft.com/fwlink/?linkid=102959&clcid=0x411) を参照してください。

filename パラメータを使用してコンテンツ データベースをマージする

この例では、WSS_Content_1 と WSS_Content_2 がコンテンツ データベース名です。

リダイレクト演算子 ">" を使用して sites.xml ファイル内にサイトの一覧を作成するには、次の構文を使用します。

stsadm -o enumsites -url http://<サーバー名> –databasename WSS_Content_1 > sites.xml

Note メモ

リダイレクト演算子 ">" は、sites.xml というテキスト ファイルに出力をリダイレクトします。次に、sites.xml ファイルを編集して、移動するサイト コレクションを一覧で示します。

sites.xml ファイルに指定されたサイト コレクションを 1 つのコンテンツ データベースから別のコンテンツ データベースに移動するには、次の構文を使用します。

stsadm -o mergecontentdbs -url http://<サーバー名> -sourcedatabasename WSS_Content_1 -destinationdatabasename WSS_Content_2 -operation 3 -filename sites.xml

Note メモ

operation パラメータの数字 "3" は、"ファイルからの読み取り" に相当します。

サイト コレクションを移動した後に、ファーム内のすべてのフロントエンド Web サーバーで変更を確実に有効にするには、コマンド プロンプトから次のコマンドを実行します。

iisreset /noforce

関連項目

Page view tracker