コンテンツ データベースを移動する (SharePoint Server 2010)

 

適用先: SharePoint Foundation 2010, SharePoint Server 2010

トピックの最終更新日: 2016-11-30

ここでは、Microsoft SQL Server を実行するサーバー間、SQL Server のインスタンス間、または Microsoft SharePoint Server 2010 Web アプリケーション間でコンテンツ データベースを移動する方法について説明します。コンテンツ データベースを移動することで、データベース サーバーまたは Web アプリケーションの負荷分散を行うことができます。

重要

この記事では、コンテンツ データベースの移動方法だけを説明します。SharePoint Server 2010 に関連付けられている他の種類のデータベースの移動方法については、「サービス アプリケーション データベースの名前の変更または移動を行う (SharePoint Server 2010)」および「すべてのデータベースを移動する (SharePoint Server 2010)」を参照してください。

コンテンツ データベースの移動の概要

コンテンツ データベースを移動するときは、SharePoint Server 2010 ツールと SQL Server ツールの両方を使用する必要があります。SharePoint Server サーバーの全体管理 Web サイトまたは Windows PowerShell 2.0 を使用できます。以下の一覧にコンテンツ データベースの移動方法をまとめます。

  1. コンテンツ データベースの名前、およびデータベースが関連付けられている Web アプリケーションを記録しておきます。詳細については、「各 Web アプリケーションと関連付けられているコンテンツ データベースを記録するには」を参照してください。

  2. タイマー ジョブや検索クロールなど、データベースに対して実行を試みる可能性のあるすべてのサービス アプリケーションおよびサービスを一時停止します。詳細については、「Windows PowerShell を使用してタイマー ジョブを一時停止するには (オプション 1)」または「サーバーの全体管理を使用してタイマー ジョブを一時停止するには (オプション 2)」を参照してください。

  3. SharePoint Server で、Web アプリケーションからコンテンツ データベースを削除します。この操作は、サーバーの全体管理または Windows PowerShell 2.0 を使用して実行できます。一般に、常に複数のデータベースを使用している場合は、Windows PowerShell 2.0 スクリプトを作成する方が時間がかかりません。詳細については、「サーバーの全体管理を使用して Web アプリケーションからコンテンツ データベースを切断するには (オプション 1)」または「Windows PowerShell を使用して Web アプリケーションからコンテンツ データベースを切断するには (オプション 2)」を参照してください。

  4. SQL Server で、現在のインスタンスからデータベースを切断します。詳細については、「コンテンツ データベースを SQL Server から切断するには」を参照してください。

  5. エクスプローラーを使用して、データベースと関連付けられている .mdf, .ndf、および .ldf ファイルを移動元の場所から移動先の場所にコピーまたは移動します。詳細については、「コンテンツ データベースを新しい場所に移動するには」を参照してください。

    注意

    データベースをバックアップして復元することによってもデータベースを移動できます。ただし、この記事ではバックアップと復元については説明しません。詳細については、「バックアップと復旧 (SharePoint Server 2010)」を参照してください。

  6. SQL Server で、データベースを新しいインスタンスに接続します。詳細については、「コンテンツ データベースを SQL Server の新しいインスタンスに接続するには」を参照してください。

  7. SharePoint Server で、コンテンツ データベースを移動先の Web アプリケーションに追加します。コンテンツ データベースを再接続するときは、正確に同じ名前を使用するようにしてください。そうしないと、SharePoint Server は新しいコンテンツ データベースを作成します。この作業は、サーバーの全体管理または Windows PowerShell 2.0 を使用して実行できます。詳細については、「サーバーの全体管理を使用して Web アプリケーションにコンテンツ データベースを接続するには (オプション 1)」または「Windows PowerShell を使用して Web アプリケーションにコンテンツ データベースを接続するには (オプション 2)」を参照してください。

  8. タイマー ジョブや検索クロールなど、データベースに対して実行する必要のあるすべてのサービス アプリケーションおよびサービスを再起動します。詳細については、「Windows PowerShell を使用してタイマー ジョブを再起動するには (オプション 1)」または「サーバーの全体管理を使用してタイマー ジョブを再起動するには (オプション 2)」を参照してください。

コンテンツ データベースの移動

注意

以下の手順を実行するには、ローカル コンピューターの Administrators グループのメンバーである必要があります。最小特権環境で SharePoint Server 2010 を実行していて、サーバーの全体管理から手順を実行する場合は、SQL Server での以下のロールがあることを確認してください。

  • コンテンツ データベースを切断するために、移動元サーバーの構成データベースおよびコンテンツ データベースに対する dbowner 固定データベース ロール。

  • データベースを接続し、SQL Server ログインを構成するために、移動先サーバーでの dbcreator および securityadmin 固定データベース ロール。

注意

コンテンツ データベースを異なるファームに移動する場合は、復元プロセスの間に、サーバー ファーム アカウントをデータベース サーバーの Administrators グループのメンバーにする必要があります。これにより、そのアカウントはデータベースのセキュリティ設定をレプリケートできるようになります。このアクセス レベルは、コンテンツ データベースを移動した後で削除してかまいません。詳細については、「アカウントの権限とセキュリティ設定 (SharePoint Server 2010)」を参照してください。
移動先ファームで実行されている SharePoint Server 2010 のバージョンは、移動元ファームと同じかそれより後のバージョンである必要があります。

各 Web アプリケーションと関連付けられているコンテンツ データベースを記録するには

  1. 次の最小要件を満たしていることを確認します。Add-SPShellAdmin を参照してください。

  2. [スタート] メニューの [すべてのプログラム] をクリックします。

  3. [Microsoft SharePoint 2010 Products] をクリックします。

  4. [SharePoint 2010 管理シェル] をクリックします。

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

    Get-SPContentDatabase -WebApplication <http://SiteName>
    

    <http://SiteName> は Web アプリケーションの URL です。

  6. これを Web アプリケーションごとに繰り返します。

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

注意

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

Windows PowerShell を使用してタイマー ジョブを一時停止するには (オプション 1)

  1. 次の最小要件を満たしていることを確認します。Add-SPShellAdmin を参照してください。

  2. [スタート] メニューの [すべてのプログラム] をクリックします。

  3. [Microsoft SharePoint 2010 Products] をクリックします。

  4. [SharePoint 2010 管理シェル] をクリックします。

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

    Get-SPTimerJob -webapplication <http://WebApplicationURL> | select name | Out-File <c:\timerjobfile.txt> -Append -Encoding ascii
    
    ForEach($tmrjob in (Get-Content <c:\timerjobfile.txt>)) { Get-SPTimerJob -Identity $tmrjob | Disable-SPTimerjob }
    

    ここで、

    • <http://WebApplicationURL> は、移動するコンテンツ データベースに関連付けられている Web アプリケーションです。

    • <c:\timerjobfile.txt> は、Web アプリケーションと関連付けられているすべてのタイマー ジョブのリストを格納する、作成しているファイルの場所です。

詳細については、「Get-SPTimerJob」、「Out-File」、「ForEach-Object」、「Get-Content」、および「Disable-SPTimerJob」を参照してください。

注意

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

サーバーの全体管理を使用してタイマー ジョブを一時停止するには (オプション 2)

  1. この手順を実行しようとしているユーザー アカウントが、Farm Administrators SharePoint グループのメンバーであることを確認します。

  2. サーバーの全体管理の [監視] セクションで、[ジョブ状態の確認] をクリックします。

  3. 移動するコンテンツ データベースに対して実行するようにスケジュールされている各ジョブについて、ジョブをクリックして [タイマー ジョブの編集] ページを開き、[無効] をクリックして、[OK] をクリックします。

  4. Search Service アプリケーションを実行してコンテンツ データベースをクロールしている場合は、「クロールを開始、一時停止、再開、または停止する (SharePoint Server 2010)」の手順に従ってクロールを一時停止します。

サーバーの全体管理を使用して Web アプリケーションからコンテンツ データベースを切断するには (オプション 1)

  1. この手順を実行しようとしているユーザー アカウントが、Farm Administrators SharePoint グループのメンバーであることを確認します。

  2. サーバーの全体管理の [アプリケーション構成の管理] セクションで、[コンテンツ データベースの管理] をクリックします。

  3. [コンテンツ データベースの管理] ページで、移動するコンテンツ データベースをクリックします。

    [コンテンツ データベース設定の管理] ページが開きます。

    注意

    コンテンツ データベースがリストに表示されない場合、別の Web アプリケーションに関連付けられている可能性があります。別の Web アプリケーションを選択するには、[Web アプリケーション] メニューの [Web アプリケーションの変更] をクリックします。

  4. [コンテンツ データベース設定の管理] ページの [コンテンツ データベースの削除] セクションで、[コンテンツ データベースの削除] チェック ボックスをオンにし、[OK] をクリックします。

    注意

    コンテンツ データベースを削除してもデータベースは削除されません。データベースと Web アプリケーションの関連付けのみが削除されます。

  5. 移動するコンテンツ データベースごとに、手順 3. ~ 4. を繰り返します。

Windows PowerShell を使用して Web アプリケーションからコンテンツ データベースを切断するには (オプション 2)

  1. 次の最小要件を満たしていることを確認します。Add-SPShellAdmin を参照してください。

  2. [スタート] メニューの [すべてのプログラム] をクリックします。

  3. [Microsoft SharePoint 2010 Products] をクリックします。

  4. [SharePoint 2010 管理シェル] をクリックします。

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

    Dismount-SPContentDatabase "<ContentDB>" 
    

    <ContentDB> は、コンテンツ データベースの名前です。

    注意

    同じ名前の複数のコンテンツ データベースがある場合は、このコマンドでコンテンツ データベース名の代わりにコンテンツ データベースの GUID を使用する必要があります。コンテンツ データベースの GUID を調べるには、Get-SPContentDatabase コマンドレットを引数なしで実行してください。

詳細については、「Dismount-SPContentDatabase」および「Get-SPContentDatabase」を参照してください。

注意

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

コンテンツ データベースを SQL Server から切断するには

  1. この手順を実行するユーザー アカウントは、各データベースが格納されているデータベース サーバー上で、db_owner 固定データベース ロールのメンバーである必要があります。

  2. SQL Server Management Studio で、移動元の SQL Server インスタンスを開き、[データベース] ノードを展開します。

  3. コンテンツ データベースを右クリックして、[タスク] をポイントし、[デタッチ] をクリックします。移動するコンテンツ データベースごとに、この操作を繰り返します。

    注意

    この手順は、コンテンツ データベースのみを移動するときに使用します。他の種類のデータベースを切断しないでください。

コンテンツ データベースを新しい場所に移動するには

  1. この手順を実行するユーザー アカウントに、移動元フォルダーと移動先フォルダーの両方に対する書き込みアクセス許可があることを確認します。

  2. エクスプローラーを使用して、コンテンツ データベースの .mdf, .ldf, .ndf ファイルを探します。

  3. 移動するデータベースの .mdf, .ldf、および .ndf ファイルを選択して、移動先のディレクトリにそれらのファイルをコピーまたは移動します。

コンテンツ データベースを SQL Server の新しいインスタンスに接続するには

  1. この手順を実行するユーザー アカウントが、各データベースが格納されているデータベース サーバー上で、dbcreator 固定サーバー ロールのメンバーであることを確認します。

  2. Management Studio で、移動先の SQL Server インスタンスを開きます。

  3. [データベース] ノードを右クリックし、[タスク] をポイントして、[アタッチ] をクリックします。

  4. [データベースのアタッチ] ダイアログ ボックスで, .mdf, .ldf、および .ndf ファイルの転送先を参照し、接続するデータベースの .mdf ファイルを選択して、[OK] をクリックします。

  5. 移動するコンテンツ データベースごとに、手順を繰り返します。

サーバーの全体管理を使用して Web アプリケーションにコンテンツ データベースを接続するには (オプション 1)

  1. この手順を実行しているユーザー アカウントが Farm Administrators グループのメンバーであることを確認します。

  2. サーバーの全体管理の [アプリケーション構成の管理] セクションで、[コンテンツ データベースの管理] をクリックします。

  3. [コンテンツ データベースの管理] ページで、[コンテンツ データベースの追加] をクリックします。

  4. [コンテンツ データベースの追加] ページで、[Web アプリケーション] メニューに正しい Web アプリケーションが表示されることを確認します。

  5. [サーバー] ボックスで、データベースをホストするデータベース サーバーを指定します。

  6. [データベース名] ボックスに、転送したコンテンツ データベースの正確な名前を入力します。

    注意

    名前が正しいことを確認してください。正しくないと、新しいデータベースが作成されます。

  7. データベースの認証方法を指定し、[OK] をクリックします。

  8. 追加するデータベースごとに手順を繰り返します。各データベースに対し、[Web アプリケーション] メニューから正しい Web アプリケーションを選択します。

Windows PowerShell を使用して Web アプリケーションにコンテンツ データベースを接続するには (オプション 2)

  1. 次の最小要件を満たしていることを確認します。Add-SPShellAdmin を参照してください。

  2. [スタート] メニューの [すべてのプログラム] をクリックします。

  3. [Microsoft SharePoint 2010 Products] をクリックします。

  4. [SharePoint 2010 管理シェル] をクリックします。

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

    Mount-SPContentDatabase "<ContentDB>" -DatabaseServer "<DBServer>" -WebApplication <http://SiteName>
    

    ここで、

    • <ContentDB> は、接続するコンテンツ データベースです。

    • <DBServer> は、データベース サーバーの名前です。

    • <http://SiteName> は、コンテンツ データベースの接続先の Web アプリケーションの URL です。

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

注意

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

Windows PowerShell を使用してタイマー ジョブを再起動するには (オプション 1)

  1. 次の最小要件を満たしていることを確認します。Add-SPShellAdmin を参照してください。

  2. [スタート] メニューの [すべてのプログラム] をクリックします。

  3. [Microsoft SharePoint 2010 Products] をクリックします。

  4. [SharePoint 2010 管理シェル] をクリックします。

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

    ForEach($tmrjob in (Get-Content <c:\timerjobfile.txt>)) {Get-SPTimerJob -Identity $tmrjob | Enable-SPTimerjob}
    

    ここで、

    • <c:\timerjobfile.txt> は、Web アプリケーションと関連付けられているすべてのタイマー ジョブのリストが格納されている、前の手順で作成したファイルの場所です。

詳細については、「Get-SPTimerJob」、「ForEach-Object」、「Get-Content」、および「Enable-SPTimerJob」を参照してください。

注意

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

サーバーの全体管理を使用してタイマー ジョブを再起動するには (オプション 2)

  1. この手順を実行しているユーザー アカウントが Farm Administrators グループのメンバーであることを確認します。

  2. サーバーの全体管理の [監視] セクションで、[ジョブ状態の確認] をクリックします。

  3. 前の手順で無効にしたスケジュールされている各ジョブについて、ジョブをクリックして [タイマー ジョブの編集] ページを開き、[有効] をクリックして、[OK] をクリックします。

  4. Search Service アプリケーションを実行してコンテンツ データベースをクロールしている場合は、「クロールを開始、一時停止、再開、または停止する (SharePoint Server 2010)」の手順に従ってクロールを再開します。コンテンツ データベースのフル クロールを実行する必要があります。