選択コンテンツ移行

コンテンツ移行では、完全コンテンツ移行と増分 (または選択) コンテンツ移行の 2 種類を実行できます。完全移行は、SharePoint サイト全体またはサイト コレクションをコンテンツ移行パッケージとして移行し、新しいサーバーに元のサイト コレクションのミラー イメージを作成します。一方、選択移行は、複数のコンテンツ移行シナリオのうち任意のシナリオを参照します。コンテンツ移行シナリオは、ソース サイトにある特定のコンテンツ アイテムを指定した条件とユーザー設定のロジックに基づいて選択し、移行用にパッケージ化します。選択移行では、名前空間 Microsoft.SharePoint.Deployment にあるコンテンツの展開と移行の API を使用します。

コンテンツ移行の概要

多くのシナリオでは、特定の SharePoint サイトから別のサイトにコンテンツを移動する必要があります。シナリオで完全移行を実行する (SharePoint サイトまたはサイト コレクションのコンテンツ全体を移動する) 場合は、この作業は比較的簡単です。通常、次の主な 2 つの方法のどちらかを使用します。

  • Stsadm.exe ユーティリティでエクスポートとインポート操作を使用し、別のサイトにデータを移行します。詳細については、「Stsadm.exe を使用してサイト データを移行する」を参照してください。

  • または、Sites Web サービスに実装されている ExportWeb メソッドと ImportWeb メソッドへの SOAP 呼び出しを使用して、データをリモート サーバーから移行することもできます。

ただし、どちらの方法にも制限があります。これらの方法では、SharePoint サイトまたはサイト コレクションの全体のみ移行できます。また、移行操作中、オブジェクトの ID を維持できません。選択移行を実行するには、オブジェクトの ID の維持は必須の機能です。Stsadm.exeSites Web サービスを使用する場合は、別の制限があります。

このため、選択したコンテンツのみをエクスポートする必要があるコンテンツ移行シナリオの場合や、移行操作を自動化またはカスタマイズする必要があるコンテンツ移行シナリオの場合は、Microsoft.SharePoint.Deployment 名前空間にある API を使用するユーザー設定ソリューションを作成する必要があります。

重要

選択移行の場合は、最初に完全コンテンツ移行を実行して、移行先をソースのミラー イメージにする必要があります。

通常、選択移行は、コンテンツのバージョン (現在のバージョンと新しいバージョン)、タイム スタンプ、コンテンツの状態 (たとえば、承認済みと確認中) などの要素に基づいてサーバーから別のサーバーに移行する必要があるコンテンツに適用されます。選択条件により、サイト コレクション内の範囲を詳細に指定できます。つまり、選択する Web、リスト、フォルダ、リスト アイテムの範囲を管理できます。

移行操作では、任意の数の .cmp ファイルを使用でき、移行先も複数指定できます。ただし、特定のコンテンツ移行パッケージ (.cmp) ファイルに格納されるオブジェクトは、単一のサイト コレクションから作成されている必要があります。

移行シナリオ

Microsoft.SharePoint.Deployment 名前空間にある API には、高機能の移行ツールボックスがあります。これにより、柔軟性に広範囲の移行シナリオに対応できます。Windows SharePoint Services 3.0 でサポートされている移行機能と展開機能を次の一覧に示します。この一覧は、サポートされている移行シナリオの大まかな概要を示したものです。展開 API には、想定されるあらゆる状況に対応できる機能があります。

  • サイト コレクション全体をエクスポートします (完全移行)。

  • サイト コレクションの特定のサイトをエクスポートします。この場合、必要に応じてサブサイトのコンテンツを含めるかどうかを選択できます。展開 API により、依存関係を含めるかどうかを選択できます。

  • SharePoint リストやドキュメント ライブラリ、またはドキュメント ライブラリ内の特定のフォルダをエクスポートします。

  • ドキュメント ライブラリから単一のリスト アイテムまたはドキュメントをエクスポートします。この方法では、詳細な設定で柔軟性の高い移行を実行できます。

  • イメージや添付ファイルなどのオブジェクトの依存関係をエクスポートします。

  • エクスポート ファイルを圧縮したエクスポート (.cmp) パッケージ、または圧縮していないファイルの形式で生成します。

  • 圧縮したエクスポート パッケージ ファイルの最大サイズを指定し (必要に応じて、複数のエクスポート ファイルが作成されます)、エクスポートの負荷を調整します。

  • 変更トークンに基づいて、エクスポート用に選択されたアイテムの増分エクスポートをサポートします。変更トークンに指定されているタイムスタンプ以降に作成、変更、または削除されたすべてのアイテムのエクスポートを自動化できます。

  • オブジェクト ID を保持するかどうかを指定して、エクスポートされたコンテンツをインポートします。つまり、エクスポート パッケージ内のオブジェクトでオブジェクト GUID を維持するように構成できます。これは、選択移行の場合は必須です。

  • 移行先コンテンツ データベースで、同じ親または別の親の下に移行コンテンツをインポートします。アイテムをサイト階層の別の場所に移動する操作は、親子関係の変更と呼ばれます。

  • インポート中にリンクの修正を実行します。

移行の計画

選択移行ジョブを実行する場合、事前に計画を立てることが非常に重要です。選択移行を計画する場合は、移行する必要があるデータを明確にするために、いくつかの重要な点について確認する必要があります。

  • 移行する必要があるサイト オブジェクトは何か。

  • オブジェクトを移行する頻度はどのくらいか。

  • コンテンツ オブジェクトの中に、別のスケジュールで移行する必要があるコンテンツ オブジェクトがあるかどうか。

  • 移行する必要のないアイテムはどれか。

  • 計画全体に影響を与える可能性がある不確定要素やエッジ ケースにはどのようなものがあるか。

計画上の課題点については、多くの場合エクスポート設定 (SPExportSettings) に値を指定する必要があります。移行に影響を与える考慮点を次に示します。

  • バージョン (SPExportSettings オブジェクトの IncludeVersions プロパティ)。

    移行時に、指定したファイルの最新のメジャー バージョンのみをエクスポートする (既定) か、現在のバージョンのみ、すべてのバージョン、最新のメジャー バージョンとマイナー バージョンのうちどのオプションでエクスポートするのかを決定します。IncludeVersions プロパティで指定できる値を次に示します。

All

選択したファイルのすべての既存のバージョンをエクスポートします

CurrentVersion

選択したファイルの最新のバージョンのみをエクスポートします

LastMajor

選択したファイルの最新のメジャー バージョンのみをエクスポートします (既定値)

LastMajorAndMinor

最新のメジャー バージョンとそのマイナー バージョンをエクスポートします

アプリケーションの要件によって最適な値が異なります。ただし、定期的なスケジュールで移行を実行するときに、パフォーマンスが考慮事項になる場合は、CurrentVersion が最適なオプションです。値に All を設定すると、パフォーマンスが大幅に低下します。

  • セキュリティ グループとロール (IncludeSecurity)。

    一般的に、選択移行シナリオにセキュリティ グループとロールのデータを含める必要はなく、効率的でもありません。 移行先サイトの最初のセットアップと移行中にこのデータを移行することは適切ですが、選択移行を実行中にこのデータをエクスポートすると、移行の速度が遅くなります。

    もちろん例外もあります。セキュリティ データの変更が検出された場合です。アプリケーション ロジックでセキュリティ データの変更を検出し、このプロパティを適切に構成する必要があります。IncludeSecurity プロパティは SPIncludeSecurity 列挙を呼び出し、ここで 3 つの値を指定できます。既定値は None で、この場合はセキュリティ データは移行されません。

All

ユーザー メンバシップとロールの割り当て (Web デザイナなどの出荷時のロールや、出荷時の状態のロールを拡張した独自のロールなど) のエクスポートを指定します。 DAP サーバーや LDAP サーバーで定義されているユーザー情報、および各オブジェクトに対する ACL が移行パッケージにエクスポートされます。

None

ユーザー ロールやセキュリティ グループ情報をエクスポートしません (既定値)。

WssOnly

ユーザー メンバシップとロールの割り当て (Web デザイナなどの出荷時ロールや、出荷時の状態のロールを拡張した独自のロールなど) のエクスポートを指定します。各オブジェクトに対する ACL は移行パッケージにエクスポートされますが、DAP サーバーや LDAP サーバーで定義されているユーザー情報はエクスポートされません。

パフォーマンスの計画

次に説明するエクスポートとインポート設定の中には、移行操作のパフォーマンスに影響を与えるものがあります。パフォーマンスを微調整してもパフォーマンス向上の割合は大きくありませんが、移行の規模が非常に大きい場合はパフォーマンスが大幅に向上することがあります。

  • ファイルの圧縮を使用しなければ、エクスポート操作とインポート操作が約 30% 向上します。ファイル圧縮は既定で有効になっているので、[:Microsoft.SharePoint.Deployment.SPExportSettings]SPImportSettings (どちらも [:Microsoft.SharePoint.Deployment.SPDeploymentSettings] クラスの FileCompression プロパティから派生します) の両方で FileCompression プロパティを明示的に変更する必要があります。

  • SPImportSettings オブジェクトの SuppressAfterEvents を true (既定は false) に設定すると、インポート操作で After イベントが無視され、パフォーマンスが若干向上します。

  • SPExportSettings オブジェクトの IncludeVersions プロパティに false を設定すると、パフォーマンスが若干向上します。SPImportSettings オブジェクトのこのプロパティに設定した場合、これより効果は小さくなります。

  • SPExportSettings オブジェクトの IncludeSecurity() プロパティに false を設定すると、パフォーマンスが向上します。SPImportSettings オブジェクトのこのプロパティに設定した場合、これより効果は小さくなります。ただし、ユーザー データをエクスポートする場合はこのプロパティを false に設定しないでください (選択移行の場合は、通常、このようなことはありません)。

  • 選択移行中は、エクスポート オブジェクトを選択するプロセスで膨大な量の処理能力が消費されます。エクスポートに大量のエクスポート オブジェクトが含まれる場合はパフォーマンスが低下します。

  • インポートで CommandLineVerbose プロパティと LogFilePath プロパティに false を設定する場合も、パフォーマンスが若干向上します。特に SPImportSettings オブジェクトの場合に効果があります。

See Also

概念

選択移行に関する主要概念

コンテンツ移行 : コンテンツのエクスポート

コンテンツ移行 : コンテンツのインポート