サイトコレクションを異なる Web アプリケーションにコピーする
はじめに
サイトコレクションのコピー、簡単そうで実は非常に手間のかかる作業です。
AvePoint さんの製品 コンテンツマネージャー を使えば簡単にできてしまいますが、ここでは手動で異なる Web アプリケーションにサイトコレクションをコピーする方法をご紹介します。
(2013年9月13日追記)
本記事は2013年9月1日に公開しましたが、マイクロソフトのサポートサービスさんにテクニカルサポートを依頼し、詳細な確認をしていただいたところ、この手順ではコピーはできるものの問題があることが分かりました。
詳細はこの後書きますが、基本的にはこの手順でのコピーは行わないでください。
Copy-SPSite の問題
Copy-SPSite は、Backup/Restore と同様、SharePoint が内部的に持っている各種 GUID を書き換えることなく、コピーを行います。
そのため、一つのサイトコレクションのコピーを、同一コンテンツ DB に Copy-SPSite を使って複数個コピーすると、GUID が重複してしまい、SharePoint として不整合なデータの状態になってしまうことが分かりました。
これにより、エクスポートでエラーが起きたり、ゴミ箱のアイテムを削除するのにエラーが起きたりと、一部動作に問題がでます。
従って、せっかくの Copy-SPSite ですが、これを使ってサイトコレクションを量産していくということには使えないということになります。
調査の結果、SharePoint 標準機能を使ってサイトコレクションのコピーを完ぺきに実現する方法はない、という結論に至りました。
残念。。。
もちろん、Copy-SPSite を使って、毎回異なるコンテンツ DB にコピーする分には問題なく使えますので、そのような用途でのみ Copy-SPSite を使うようにしてください。