とりあえず、速報です。
Copy-SPSite にて失敗する場合の可能性が高い原因についてです。
- Copy-SPSite について
- Copy-SPSite でのサイズ制限について
- Copy-SPSite での失敗する原因について
- Copy-SPSite での失敗する原因の特定について
- Copy-SPSite での失敗の回避策について
Copy-SPSite は、異なる コンテンツ DB にサイトコレクションをコピーする時に利用する PowerShell コマンドレットです。
通常の使い方としては、1つの コンテンツ DB に複数のサイトコレクションをホストしていて、サイズが大きくなった等で、サイトコレクション配置を変更する際に利用します。
従来の Backup-SPSite と Restore-SPSite との違いとしては、バックアップする必要が無いので、処理時間が速いというメリットがあります。
但し、コピー先は、同一サーバー、または、インスタンス内のコンテンツ DB に限られます。
もう1つの用途としては、サイトコレクションの URL を変更したい場合というのがあります。
URL の変更についても、Copy-SPSite にて、サイトコレクションのコピーを行った後に、コピー元を削除するというアプローチが利用出来ます。
・Copy-SPSite
https://technet.microsoft.com/ja-jp/library/fp161280(v=office.15).aspx
Copy-SPSite では明確なサイズ制限は無いようですが、バックアップとリストアについては、明確に 100GB までサポートと明言されています。
・ソフトウェアの境界と制限 (SharePoint 2013)
https://technet.microsoft.com/ja-JP/library/cc262787(v=office.15).aspx
⇒ サイトコレクションの制限
こちらの、サイト コレクションのサイズに記載されている通りです。
サポートされるというのは、マイクロソフトでテストが実施されているという意味になり、製品の不具合があった場合には、バグ修正する可能性があるということになります。
明示的な制限では無いので、100GB を超えても実行は可能ですが、何らかの原因で失敗する可能性があり、なおかつ、その際にマイクロソフトに問合せしてもサポートは受けられますが、万が一、製品の問題に起因していたとしてもバグ修正は行われないという扱いになります。
実際に、100GB 超えのサイトコレクションのコピーを行っても、通常は普通に成功するようです。
他にも原因はある可能性がありますが、現時点で明確に判明しているのは、以下の条件が重なる場合です。
・監査ログのデータ件数が大量にある
・DB サーバーの割り当てメモリ量が十分じゃない
手元で確認した限りでは、監査ログが 200万件で、DB サーバーのメモリ割り当てが 2GB の時は、メモリ不足でコピーに失敗しました。
メモリ割り当てを 6GB にした所、コピーは成功しています。
また、監査ログの削除でも成功することが分かっています。
今回の問題に遭遇して分かったのですが、SQL Server 2012 になってから、拡張イベントという機能が追加されているんですね。
従来、トレースログを取得していないと、問題が発生した場合に、原因究明が難しかったと思うのですが、既定の設定範囲でも、大よその原因究明が出来るようになっています。
拡張イベントについては、こちらの解説記事が、とても分かり易く参考になりました。
・トレースはもはや古い?SQL Server 2012 の拡張イベント(前編)
http://enterprisezine.jp/iti/detail/3629
・トレースはもはや古い?SQL Server 2012 の拡張イベント(後編)
http://enterprisezine.jp/dbonline/detail/3644
ということで、今回、失敗した際のエラーメッセージ、イベントログのタイムスタンプ、そして、拡張イベントでのエラーから、恐らく、監査ログのコピーが原因ではないかと推測しています。
SQL 文が AuditData テーブルへの Insert だったのです。
現時点で、大量の監査ログに起因する失敗については、上述の通り、回避策としては以下の2つのどちらかになります。
・監査ログの削除
・DB サーバーの割り当てメモリを増やす
後者は、搭載メモリに余裕があれば可能ですが、現実解としては、監査ログの削除ということになるかと思います。
他の回避策が見つかった場合には、追加報告したいと思います。
2月最初の投稿ですが、想定外のネタになってしまいました・・・
Kokuho Hi (Sonorite / SharePoint Technology Center)