Share via


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

 

適用先: SharePoint Foundation 2010

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

重要

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

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

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

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

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

  3. SharePoint Foundation で、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 Foundation 2010)」を参照してください。

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

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

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

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

注意

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

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

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

注意

コンテンツ データベースを別のファームに移動するには、サーバー ファーム アカウントを、復元プロセス中にデータベース サーバー上の Administrators グループのメンバーにする必要があります。これにより、アカウントにデータベースのセキュリティ設定を複製できます。このアクセス レベルは、コンテンツ データベースの移動が完了した後で削除できます。
移動先ファームの SharePoint Foundation 2010 のバージョンは、移動元ファーム以上である必要があります。

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

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

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

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

  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 製品] をクリックします。

  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] をクリックします。

サーバーの全体管理を使用して 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 製品] をクリックします。

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

  5. Windows PowerShell コマンド プロンプトで、次のコマンドを入力してください。

    Dismount-SPContentDatabase "<ContentDB>" 
    

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

    注意

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

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

注意

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

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

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

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

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

    注意

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

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

  1. この手順を実行しているユーザー アカウントが移動元および移動先フォルダーに対する書き込みアクセス権を持っていることを確認します。

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

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

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

  1. この手順を実行するユーザー アカウントは、各データベースが格納されているデータベース サーバー上で、SQL Server 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 製品] をクリックします。

  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 製品] をクリックします。

  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] をクリックします。