SharePoint Server ですべてのデータベースを移動する

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

SharePoint サーバーの全体管理 Web サイトまたは SQL Server ツールを使用して、SharePoint Server に関連付けられているすべてのデータベースを新しいデータベース サーバーに移動できます。

はじめに

この記事の手順では、単一のデータベース サーバーでホストされている次の種類のデータベースを移動する方法について説明しています。

  • 構成データベース

  • サーバーの全体管理のコンテンツ データベース

  • コンテンツ データベース

  • サービス アプリケーション データベース

重要

SQL Server の同じインスタンス内でデータベース ファイルを移動するには、ALTER DATABASE ステートメントの FILENAME 句を使用することをお勧めします。 詳細については、「 ユーザー データベースの移動」を参照してください。

注:

データベースを SQL Server の別のインスタンスまたは別のサーバーに移動するには、「データベースのデタッチとアタッチ (SQL Server)」または「SQL Server データベースのバックアップと復元」にある手順を使用することをお勧めします。

この手順を実行するために必要な権限は次のとおりです。

  • Farm Administrators SharePoint グループのメンバーであること。

  • SharePoint サーバーの全体管理 Web サイトを実行しているコンピューターの Administrators グループのメンバーであること。

  • データベースの移動元のデータベース サーバー上で、以下のメンバーであること。

    • Administrators グループ

    • db_backupoperator 固定データベース ロール

  • データベースの移動先のデータベース サーバー上で、以下のメンバーであること。

    • Administrators グループ

    • db_owner 固定データベース ロール

環境によっては、データベース管理者との間で移動手順を調整する必要があります。 データベースを操作する際は、適用されるポリシーとガイドラインに必ず従ってください。

重要

データベースを移動する場合は、ユーザーはプロセスが完了するまで、すべてのファーム サイトと資産を利用できなくなります。 この操作は通常の勤務時間外に完了してください。

すべてのデータベースを移動する

データベース サーバー間ですべてのデータベースを移動するには、SharePoint Serverと SQL Server の両方で作業する必要があります。

この操作を開始する前に、このプロセスの手順を確認してください。

  1. 新しいデータベース サーバーを準備します。

  2. 開いているすべての SharePoint 管理シェルウィンドウを閉じます。

  3. SharePoint Server と インターネット インフォメーション サービス (IIS) に関連するすべてのサービスを停止します。

  4. 現在の SQL Serverインスタンスからデータベースを切断します

  5. データベースに関連付けられているすべてのファイル (.mdf, .ndf、および .ldf) を、SQL Server を実行する展開先の新しいサーバーにコピーまたは移動します。

  6. データベースのすべての SQL Server ログイン、固定サーバー ロール、固定データベース ロール、および権限が展開先の新しいデータベース サーバーで正しく構成されていることを確認します。

    注:

    データベースを移動する移行先サーバーのデータベース情報は、現在の SQL Server インスタンスと同じであることが重要です。 これを行う方法の詳細については、「 SQL Server のインスタンス間でログインとパスワードを転送する方法」を参照してください。 詳細については、「 サーバー レベルのロール」 と「 データベース レベルのロール」を参照してください。

  7. SQL Server を実行する展開先の新しいサーバーにデータベースを接続します。

  8. SQL Server 接続エイリアスを使用して新しいデータベース サーバーを参照し、すべての Web サーバーを更新します。

    SQL Server 接続エイリアスを使用しない場合は、以下のいずれかの手順を使用して、SharePoint Server ファームのデータベース接続を更新してください。

  • シナリオ 1: 高可用性またはディザスター リカバリーに SharePoint Server と SQL Server Always On 可用性グループを使用する場合は、この手順を使用してデータベース接続を更新します。

  • シナリオ 2:この手順は、手動の手順を使用することが必要な場合、またはデータベースを SharePoint Server シングル サーバー ファーム役割のインストール システムから新しいシングル サーバー ファーム役割のインストール システムに移動する場合に使用します。

  1. 手順 3. で停止したすべてのサービスを再起動します。

新しいデータベース サーバーを準備するには

新しいデータベース サーバーを構成するには、「SharePoint Server 用の SQL Server セキュリティを構成する」の手順を使用します。

新しいデータベース サーバーは、既存のデータベース サーバーと同じバージョンの Windows Server と SQL Server を実行するか、次のいずれかのバージョンを実行する必要があります。

SharePoint Server 2019 の場合:

  • Windows Server 2019

  • Windows Server 2016

  • SQL Server 2016

  • SQL Server 2017

SharePoint Server 2016 の場合:

  • Windows Server 2012 R2

  • Windows Server 2016

  • SQL Server 2014 Service Pack 1 (SP1)

  • SQL Server 2016

SharePoint 2013 の場合:

  • Windows Server 2008 R2

  • Windows Server 2008 R2 Service Pack 1 (SP1)

  • Windows Server 2012

  • SQL Server 2008

  • SQL Server 2012

  • SQL Server 2014

既存の SharePoint Server と Windows Server のバージョンでは、DB が移動される新しい SQL Server のバージョンもサポートされている必要があります。 詳細については、「 SharePoint Server 2016 のハードウェアとソフトウェアの要件」と「SharePoint 2013のハードウェアとソフトウェアの要件」を参照してください。

SharePoint 管理シェルで開いているすべてのセッションを閉じるには

  1. 開いているすべての SharePoint 管理シェルウィンドウと開いているすべてのコマンド プロンプト ウィンドウを閉じます。

ファームを停止するには

  1. ファーム内のすべての SharePoint サーバーで、次のサービスを停止します。
  • SharePoint Administration

  • SharePoint Timer

  • SharePoint Tracing

  • SharePoint User Code Host

  • SharePoint VSS Writer

  • World Wide Web 発行サービス

  • SharePoint Server Search 16

  1. ファーム内のすべての SharePoint サーバーで、コマンド プロンプトで「 iisreset /stop」と入力します。

データベースを切断するには

  1. 元のデータベース サーバー上の SQL Server Management Studio で、移動するデータベースをアタッチ先のインスタンスからデタッチします。 多数のデータベースを実行している場合は、Transact-SQL スクリプトを使用してデータベースを切断することもできます。

    次の場合は、データベースを切断できません。

データベース ファイルを新しいサーバーへ移動するには

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

    データベースの移動元のデータベース サーバー上で、以下のメンバーであること。

  • Administrators グループ

  • db_backupoperator 固定データベース ロール

    データベースの移動先のデータベース サーバー上で、以下のメンバーであること。

  • Administrators グループ

  • db_owner 固定データベース ロール

  1. エクスプローラーを使用して、移動する各データベースの .mdf、.ldf、および .ndf ファイルを探します。

  2. SQL Server を実行している新しいコンピューター上の移動先ディレクトリへファイルをコピーまたは移動します。

新しいサーバーで権限をセットアップするには

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

  • db_owner 固定データベース ロール

  1. 移行先データベース サーバーで、Management Studio を起動し、ログオン資格情報とアクセス許可を元のインスタンスから移行先インスタンスに転送します。 権限の転送はスクリプトを実行して行うことをお勧めします。 スクリプトの例については、「 SQL Server のインスタンス間でログインとパスワードを転送する方法」を参照してください

    インスタンス間で SQL Server のメタデータを転送する方法の概要については、「データベースを別のサーバー インスタンスで使用できるようにするときのメタデータの管理」を参照してください。

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

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

  • db_owner 固定データベース ロール

  1. 移動先のデータベース サーバーで、データベースを新しいインスタンスに接続します。 詳細については、「データベースとsp_attach_db のアタッチ(Transact-SQL)」を参照してください。

次の手順では、新しい SQL Server インスタンスに接続するか、データベース接続を更新する方法を提供します。 SharePoint Server ファーム環境に最適な手順を使用します。

重要

データベースを移動する前に SharePoint Server と SQL Server Always On 可用性グループを使用している場合は、AG Listner をポイントする必要があります。 単一サーバー ファームから AlwayOn 可用性グループに移行する場合は、cliconfg.exe を使用する必要があります。

SQL Server 接続エイリアスを設定して Web アプリケーションから新しいデータベース サーバーを参照するには

  1. この手順は、データベースをホストする SQL Server のインスタンスに接続する SharePoint Server ファームのすべてのサーバーで実行する必要があります。

  2. この手順を実行しているユーザー アカウントが以下のメンバーであることを確認します。

  • Administrators グループ

  • db_owner 固定データベース ロール

  1. SQL Server クライアント ネットワーク ユーティリティ (cliconfg.exe) を起動します。 このユーティリティは通常、C:\Windows\SysWOW64 フォルダーと C:\Windows\System32 フォルダーにあります。

  2. [全般] タブで、TCP/IP が有効になっていることを確認します。

  3. [別名] タブで、[追加] をクリックします。 [ネットワーク ライブラリ構成の追加] ウィンドウが表示されます。

  4. [サーバー エイリアス] ボックスで、SQL Server の現在のインスタンスの名前を入力します。

  5. [ネットワーク ライブラリ] 領域で、[TCP/IP] をクリックします。

  6. [接続パラメータ] 領域の [サーバー名] ボックスに、サーバー名およびエイリアスに関連付けるインスタンスを入力し、[OK] をクリックします。 これは、SharePoint Server データベースをホストしている新しいサーバーの名前です。

  7. SQL Server の新しいインスタンスに接続するファームのすべてのサーバーで、手順 3 から 8 を繰り返します。

  8. 省略可能。 環境が System Center 2012 - Data Protection Manager (DPM) またはボリューム シャドウ コピー サービス フレームワークを使用してバックアップと回復を行うサード パーティ製アプリケーションに依存している場合は、SQL Server セットアップを実行して各 Web サーバーまたはアプリケーション サーバーに SQL Server 接続コンポーネントをインストールする必要があります。 詳細については、「 インストール ウィザード (セットアップ) から SQL Server 2014 をインストールする」 および 「Windows Server のインストールとアップグレード」を参照してください。

SharePoint Server を使用した SQL Server で可用性グループを展開、管理、および削除するには、これらの Microsoft PowerShell コマンドレットを使用することができます。

  • Add-DatabaseToAvailabilityGroup

  • Remove-DatabaseFromAvailabilityGroup

  • Get-AvailabilityGroupStatus

SharePoint Server と SQL Server Always On 可用性グループを使用して高可用性またはディザスター リカバリーを行う場合は、次の手順に従ってデータベース接続を更新します。

シナリオ 1: PowerShell を使用してデータベース接続を更新する方法

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

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

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

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

    注:

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

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

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

Add-DatabaseToAvailabilityGroup -AGName "<AGGroupName>" -DatabaseName "<DatabaseName>" [-FileShare "<\\server\share>"]

ここで、

  • <AGGroupName> は可用性グループの名前です。

  • <DatabaseName> は、可用性グループに追加するデータベースの名前です。

  • 省略可能 な -FileShare パラメーターを使用する場合、 <\server\share> は、使用するサーバーと共有の名前です。

  1. 構成データベースやサーバーの全体管理コンテンツ データベースなど、移動するすべてのデータベースに対してこの手順を繰り返します。

以下のシナリオのためには、次の手順を使用します。

  • 手動の手順を使用する必要がある場合

  • SharePoint Server 2016 シングル サーバー ファーム役割の種類から新しいシングル サーバー ファーム役割タイプに、または SharePoint 2013 シングル サーバー インストールから新しいシングル サーバー インストールにデータベースを移動する場合。

    注:

    単一のサーバー ファームの役割は、SharePoint Server の以前のリリースで使用可能だったスタンドアロン インストール モードに置き換わるものです。 詳細については、「 SharePoint Server 2016 の MinRole サーバーの役割の概要」を参照してください。

  • 可用性グループを使用する場合は、その高可用性/障害復旧サポートに役立つように、可用性グループにデータベースを手動で追加する必要があります。 詳細については、「可用性グループへのデータベースの追加 (SQL Server)」を参照してください。

  • SQL ミラーリングを使用する場合は、ミラーリングが適切にセットアップされていることを確認してください。 詳細については、「 データベース ミラーリングのセットアップ (SQL Server)」 および「 データベース ミラーリング (SQL Server)」を参照してください。

シナリオ 2: Microsoft PowerShell を使用してデータベース接続を更新する方法

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

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

$db = Get-SPDatabase -Identity <guid>

ここで <GUID> は、移動するデータベースの ID です。

注:

パラメーターを指定せずに Get-SPDatabase を使用して、GUID を持つすべてのデータベースの一覧を表示します。

$db.ChangeDatabaseInstance("<DBServerName>")

ここで、 <DBServerName> は新しい SQL Server の名前またはエイリアス、または Always On 可用性グループ リスナー DNS 名です。

$db.Update()
  1. SQL Server データベース ミラーリングを使用する場合は、SharePoint データベースの FailoverServiceInstance プロパティに値を設定するように注意しなければなりません。
$db.failoverserviceinstance("<DBServerName>")

ここで、 <DBServerName> は、ミラー化された SQL Server の名前またはエイリアスです。

$db.update()
  1. 構成データベースやサーバーの全体管理コンテンツ データベースなど、移動するすべてのデータベースに対してこの手順を繰り返します。

ファーム内のサービスを再起動するには

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

  2. ファーム内のすべての SharePoint サーバーで、コマンド プロンプトで「 iisreset /start」と入力します

  3. Microsoft 管理コンソール サービス スナップインで、SharePoint Server と IIS に関連するすべてのサービスを開始します。 これらは以下のサービスです。

  • SharePoint Administration

  • SharePoint Timer

  • SharePoint Tracing

  • SharePoint User Code Host

  • SharePoint VSS Writer

  • World Wide Web 発行サービス

  • SharePoint Server Search

関連項目

概念

データベースの種類と説明 (SharePoint Server)

その他のリソース

クイック リファレンス ガイド:SharePoint Server 2016 データベース

SharePoint 2013 をサポートするデータベース

Add a database server to an existing farm in SharePoint 2013