別のコンピューターへのレポート サーバー データベースの移動

現在の環境で使用しているレポート サーバー データベースは、別のコンピューター上の SQL Server データベース エンジン インスタンスに移動できます。reportserver と reportservertempdb データベースは、一緒に移動またはコピーする必要があります。Reporting Services の使用環境には、両方のデータベースが必要です。reportservertempdb データベースは、移動する reportserver プライマリ データベースに名前を関連付ける必要があります。

データベースの移動は、レポート サーバー アイテムに現在定義されているスケジュールされた操作には影響しません。

  • レポート サーバー サービスを初めて再起動したときに、スケジュールが再作成されます。

  • スケジュールを開始する際に使用される SQL Server エージェント ジョブは、新しいデータベース インスタンスで再作成されます。このジョブを新しいコンピューターに移動する必要はありませんが、そのコンピューターで今後使用しないジョブは削除することをお勧めします。

  • サブスクリプション、キャッシュされたレポート、およびスナップショットは、移動したデータベースに保持されます。データベースの移動後にスナップショットが更新されたデータを取得していない場合は、レポート マネージャーでスナップショット オプションを解除し、[適用] をクリックして変更を保存します。次に、スケジュールを再作成し、もう一度 [適用] をクリックして変更を保存します。

  • reportservertempdb に格納される一時的なレポートとユーザー セッション データは、データベースを移動しても保持されます。

SQL Server には、バックアップと復元、アタッチとデタッチ、コピーなど、データベースを移動するための方法がいくつかあります。ただし、既存のデータベースを新しいサーバー インスタンスに再配置する場合に、これらすべての方法が適切とは限りません。レポート サーバー データベースを移動するために使用する方法は、システムの可用性要件によって異なります。レポート サーバー データベースを移動する最も簡単な方法は、レポート サーバー データベースをアタッチおよびデタッチすることです。ただし、この方法を使用する場合、データベースをデタッチするときにレポート サーバーをオフラインにする必要があります。サービスの中断を最小限に抑えるには、バックアップと復元が適しています。ただし、この操作を行うには、Transact-SQL コマンドを実行する必要があります。権限設定がデータベースに保持されないため、データベースをコピーすること (特に、データベース コピー ウィザードの使用) は推奨されていません。

重要な注意事項重要

このトピックの手順をお勧めできるのは、既存環境に対して行う変更が、レポート サーバー データベースの再配置のみの場合です。Reporting Services インストール全体を移行する場合 (データベースの移動と、データベースを使用するレポート サーバー Windows サービスの ID の変更を行う場合)、接続を再構成して、暗号化キーを再設定する必要があります。Reporting Services インストールの移行の詳細については、「移行 (Reporting Services)」を参照してください。

レポート サーバー データベースのデタッチとアタッチ

レポート サーバーをオフラインにすると、データベースをデタッチして、使用する SQL Server インスタンスにデータベースを移動できます。この方法では、権限がデータベースに保持されます。SQL Server 2008 データベースを使用している場合は、SQL Server 2008 の別のインスタンスにそのデータベースを移動する必要があります。データを移動した後、レポート サーバーがそのレポート サーバー データベースに接続されるように再構成する必要があります。スケールアウト配置を実行している場合は、各レポート サーバーについて、レポート サーバー データベースの接続を再構成する必要があります。

次の手順に従ってデータベースを移動します。

  1. 移動するレポート サーバー データベースの暗号化キーをバックアップします。キーは Reporting Services 構成ツールを使用してバックアップできます。

  2. レポート サーバー サービスを停止します。サービスは Reporting Services 構成ツールを使用して停止できます。

  3. SQL Server Management Studio を起動し、レポート サーバー データベースをホストしている SQL Server インスタンスへの接続を開きます。

  4. レポート サーバー データベースを右クリックし、[タスク] をポイントして [デタッチ] をクリックします。レポート サーバーの一時データベースに対しても、この手順を行います。

  5. 使用する SQL Server インスタンスのデータ フォルダーに .mdf ファイルおよび .ldf ファイルをコピーまたは移動します。2 つのデータベースを移動するので、4 つのファイルがすべて移動またはコピーされていることを確認してください。

  6. Management Studio で、レポート サーバー データベースを新しくホストする SQL Server インスタンスへの接続を開きます。

  7. [データベース] ノードを右クリックし、[アタッチ] をクリックします。

  8. [追加] をクリックして、アタッチするレポート サーバー データベースの .mdf ファイルおよび .ldf ファイルを選択します。レポート サーバーの一時データベースに対しても、この手順を行います。

  9. データベースをアタッチした後、レポート サーバー データベースおよび一時データベースのデータベース ロールが RSExecRole であることを確認します。RSExecRole には、レポート サーバー データベースのテーブルの選択、挿入、更新、削除、および参照を行う権限とストアド プロシージャの実行権限が必要です。詳細については、「RSExecRole を作成する方法」を参照してください。

  10. Reporting Services 構成ツールを起動して、レポート サーバーに接続します。

  11. [データベース] ページで新しい SQL Server インスタンスを選択し、[接続] をクリックします。

  12. 移動したレポート サーバー データベースを選択し、[適用] をクリックします。

  13. [暗号化キー] ページで、[復元] をクリックします。キーのバックアップ コピーが格納されているファイルとそのパスワードを指定し、ファイルのロックを解除します。

  14. レポート サーバー サービスを再開します。

レポート サーバー データベースのバックアップと復元

レポート サーバーをオフラインにできない場合は、バックアップと復元を使用して、レポート サーバー データベースを再配置できます。"Copy_Only" オプションを使用する必要があります。SQL Server 2008 以降、SQL Server Management Studio では、コピーのみのバックアップがサポートされています。データベースを復元した後、新しいサーバー インスタンスのデータベースを使用できるように、レポート サーバーを構成する必要があります。詳細については、このトピックの最後にある手順を参照してください。

レポート サーバー データベースをバックアップするための BACKUP および COPY_Only の使用

データベースをバックアップする場合は、COPY_Only オプションを設定し、バックアップの種類を [完全] に設定します。

注意

ReportServer データベースおよび ReportServerTempDB データベースの両方と、そのデータベースに関連付けられているログ ファイルを必ずバックアップしてください。

SQL Server Management Studio を使用したデータベースのバックアップの詳細については、「データベースをバックアップする方法 (SQL Server Management Studio)」を参照してください。

レポート サーバー データベースを再配置するための RESTORE および MOVE の使用

データベースを復元する場合、RESTORE WITH NORECOVERY 引数を使用して最初の復元を行うと、データベースが復元中の状態で維持され、ログのバックアップを確認してどのデータベースを復元するかを決めることができます。その後、RESTORE 操作を繰り返しますが、その際に RESTORE WITH RECOVERY 引数を使用します。

注意

ReportServer データベースおよび ReportServerTempDB データベースの両方と、そのデータベースに関連付けられているログ ファイルを必ず復元してください。

SQL Server Management Studio を使用したデータベースの復元の詳細については、「データベースのバックアップを復元する方法 (SQL Server Management Studio)」を参照してください。

レポート サーバー データベースの接続を構成する方法

  1. Reporting Services 構成ツールを起動して、レポート サーバーに接続します。

  2. [データベース] ページの [データベースの変更] をクリックします。[次へ] をクリックします。

  3. [既存のレポート サーバー データベースを選択する] をクリックします。[次へ] をクリックします。

  4. 現在レポート サーバー データベースをホストしている SQL Server を選択し、[接続テスト] をクリックします。[次へ] をクリックします。

  5. [データベース名] で、使用するレポート サーバー データベースを選択します。[次へ] をクリックします。

  6. レポート サーバーがレポート サーバー データベースに接続するときに使用する資格情報を [資格情報] に指定します。[次へ] をクリックします。

  7. [次へ] をクリックし、[完了] をクリックします。

注意

Reporting Services のインストールでは、SQL Server データベース エンジン インスタンスに RSExecRole ロールが含まれている必要があります。ロールの作成、ログインの登録、およびロールの割り当ては、Reporting Services 構成ツールでレポート サーバー データベースの接続を設定する際に行います。別の方法 (特に、rsconfig.exe コマンド プロンプト ユーティリティを使用する場合) で接続を構成する場合は、レポート サーバーが非動作状態になります。場合によっては、レポート サーバーを利用可能な状態にするための WMI コードを作成する必要があります。詳細については、「Reporting Services WMI プロバイダー」を参照してください。