SharePoint Server のデータベース間でサイト コレクションを移動する

適用対象:yes-img-13 2013yes-img-162016 yes-img-192019 yes-img-seSubscription Edition no-img-sopSharePoint in Microsoft 365

状況によっては、1 つ以上のサイト コレクションを別のコンテンツ データベースに移動しなければならないことがあります。 たとえば、サイト コレクションが現在のコンテンツ データベースよりも大きくなり、より大きなコンテンツ データベースに移動する必要がある場合などです。 SharePoint Server では、この手順は、サイト コレクションを大規模なデータベースに移動するものとして表示する必要があります。

ただし、サイト コレクションが想定される容量に拡大しない場合は、複数のサイト コレクションを 1 つのコンテンツ データベースに結合すると便利な場合があります。 SharePoint Server では、このプロセスではコンテンツ データベースがマージされず、サイト コレクションが新しいデータベースに移動されて結合されます。

SharePoint Server ファーム内のデータベース間でサイト コレクションを移動するには、Microsoft PowerShell を使用します。 バックアップと復元の手順を使用してサイト コレクションを移動することもできます。 これを行う方法については、「SharePoint Server でのサイト コレクションのバックアップ」および「SharePoint Server でのサイト コレクションの復元」を参照してください。

はじめに

この操作を開始する前に、以下の条件を満たす必要があります。

  • 移動先コンテンツ データベースが既に存在すること。

  • 移動元コンテンツ データベースと移動先コンテンツ データベースが同じ SQL Server インスタンスに存在すること。

  • 移動元コンテンツ データベースと移動先コンテンツ データベースが同じ Web アプリケーションに接続されていること。 コンテンツ データベースを Web アプリケーションに追加する方法については、「Add content databases in SharePoint Server」を参照してください。

移動元サイト コレクションのサイズを確認する

サイト コレクションを他のコンテンツ データベースに移動すると、監査データがコピーされます。 監査データのサイズは、サイト コレクションのイベント コレクション設定によって異なります。 監査データが大きい場合は、サイト コレクションを移動する前に、そのデータを他のデータベースに移動できます。 これを行うには、「Microsoft PowerShell を使用して監査データをアーカイブおよびトリミングするには」の手順に従って操作します。

どのような理由でサイト コレクションを移動する場合でも、最初に行う作業は、移動するサイト コレクションのサイズを確認することです。 これは、移動先のハード ディスクにサイト コレクションのコンテンツを格納する十分な容量があることを確認するのに必要な情報です。 移動先のハード ディスクに、サイト コレクションの格納に必要な容量の少なくとも 3 倍の空き領域があることを確認してください。

ヒント

サイト コレクションが使用している容量の最新の状態を追跡するには、サイト クォータと電子メール通知を作成します。

PowerShell を使用してサイト コレクションのサイズを確認するには

  1. 次のメンバーシップがあることを確認します。
  • SQL Server インスタンスにおける securityadmin 固定サーバー ロール。

  • 更新するすべてのデータベースに対する db_owner 固定データベース ロール。

  • PowerShell コマンドレットを実行するサーバーでの Administrators グループ。

    管理者は Add-SPShellAdmin コマンドレットを使用して、SharePoint Server コマンドレットを使用する権限を付与できます。

    注:

    アクセス許可がない場合は、セットアップ管理者または SQL Server 管理者に連絡してアクセス許可を要求してください。 PowerShell アクセス許可の詳細については、「Add-SPShellAdmin」を参照してください。

  1. SharePoint 管理シェルを起動します。

  2. PowerShell コマンド プロンプトで、次のコマンドを入力します。

$used = (Get-SPSiteAdministration -Identity <http://ServerName/Sites/SiteName>).DiskUsed
$used

ここで、

  • <http://ServerName/Sites/SiteName> は、サイト コレクションの名前です。

指定したサイト コレクションで使用されているディスク領域の量は 、$used 変数に格納され、2 番目のコマンドの実行時にコマンド プロンプトに表示されます。

注:

表示されるディスク容量には、サイト コレクションで使用される監査データが使用するディスク容量は含まれません。

詳細については、「Get-SPSiteAdministration」を参照してください。

PowerShell を使用して監査データをアーカイブおよびトリミングするには

  1. 次のメンバーシップがあることを確認します。
  • SQL Server インスタンスにおける securityadmin 固定サーバー ロール。

  • 更新するすべてのデータベースに対する db_owner 固定データベース ロール。

  • PowerShell コマンドレットを実行するサーバーでの Administrators グループ。

    管理者は Add-SPShellAdmin コマンドレットを使用して、SharePoint Server コマンドレットを使用する権限を付与できます。

    注:

    アクセス許可がない場合は、セットアップ管理者または SQL Server 管理者に連絡してアクセス許可を要求してください。 PowerShell アクセス許可の詳細については、「Add-SPShellAdmin」を参照してください。

  1. SharePoint 管理シェルを起動します。

  2. PowerShell コマンド プロンプトで、次のコマンドを入力します。

(Get-SPSite -Identity <http://ServerName/Sites/SiteName>).Audit.TrimAuditLog(deleteEndDate)

ここで、

  • <http://ServerName/Sites/SiteName> は、サイト コレクションの名前です。

アーカイブせずに監査データを削除するには、次のコマンドを入力します。

(Get-SPSite -Identity <http://ServerName/Sites/SiteName>).Audit.DeleteEntries(deleteEndDate)

詳細については、「Get-SPSite」を参照してください。

注:

コマンドライン管理タスクを実行するときには Windows PowerShell を使用することが推奨されています。 Stsadm コマンドライン ツールは推奨されていませんが、製品の以前のバージョンとの互換性をサポートするために含まれています。

サイト コレクションをコンテンツ データベース間で移動する

PowerShell コマンド Move-SPSite を使用して、コンテンツ データベース間でサイト コレクションを移動できます。 ここでは、2 つの方法について説明します。 最初の方法では、1 つのサイト コレクションを新しいコンテンツ データベースに移動し、もう一方の方法では、複数のサイト コレクションを新しいコンテンツ データベースに移動します。

1 つのサイト コレクションを移動するには

  1. 次のメンバーシップがあることを確認します。
  • SQL Server インスタンスにおける securityadmin 固定サーバー ロール。

  • 更新するすべてのデータベースに対する db_owner 固定データベース ロール。

  • PowerShell コマンドレットを実行するサーバーでの Administrators グループ。

    管理者は Add-SPShellAdmin コマンドレットを使用して、SharePoint Server コマンドレットを使用する権限を付与できます。

    注:

    アクセス許可がない場合は、セットアップ管理者または SQL Server 管理者に連絡してアクセス許可を要求してください。 PowerShell アクセス許可の詳細については、「Add-SPShellAdmin」を参照してください。

  1. SharePoint 管理シェルを起動します。

  2. PowerShell コマンド プロンプトで、次のコマンドを入力します。

Move-SPSite <http://ServerName/Sites/SiteName> -DestinationDatabase <DestinationContentDb>

ここで、

  • <http://ServerName/Sites/SiteName> は、サイト コレクションの名前です。

  • <DestinationContentDb> は、移動先コンテンツ データベースの名前です。

複数のサイト コレクションを移動するには

  1. 次のメンバーシップがあることを確認します。
  • SQL Server インスタンスにおける securityadmin 固定サーバー ロール。

  • 更新するすべてのデータベースに対する db_owner 固定データベース ロール。

  • PowerShell コマンドレットを実行するサーバーでの Administrators グループ。

    管理者は Add-SPShellAdmin コマンドレットを使用して、SharePoint Server コマンドレットを使用する権限を付与できます。

    注:

    アクセス許可がない場合は、セットアップ管理者または SQL Server 管理者に連絡してアクセス許可を要求してください。 PowerShell アクセス許可の詳細については、「Add-SPShellAdmin」を参照してください。

  1. SharePoint 管理シェルを起動します。

  2. PowerShell コマンド プロンプトで、次のコマンドを入力します。

Get-SPSite -ContentDatabase <SourceContentDb> | Move-SPSite -DestinationDatabase <DestinationContentDb>

詳細は次のとおりです。

  • <SourceContentDb> は、移動元のコンテンツ データベースの名前です。

  • <DestinationContentDb> は、移動先コンテンツ データベースの名前です。

このコマンドを実行すると、すべてのサイト コレクションが移動元コンテンツ データベースから移動先コンテンツ データベースに移動されます。

詳細については、「Move-SPSite」を参照してください。

注:

コマンドライン管理タスクを実行するときには Windows PowerShell を使用することが推奨されています。 Stsadm コマンドライン ツールは推奨されていませんが、製品の以前のバージョンとの互換性をサポートするために含まれています。

関連項目

概念

SharePoint Server でコンテンツ データベースを追加する