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

更新 : 2006 年 4 月 14 日

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

データベースの移動は、レポート サーバー アイテムに現在定義されているスケジュールされた操作には影響しません。レポート サーバー Windows サービスを初めて再起動したときに、スケジュールが再作成されます。サブスクリプション、キャッシュされたレポート、およびスナップショットは、移動したデータベースに保持されます。reportservertempdb に格納される一時的なレポートとユーザー セッション データは、データベースを移動すると保存されます。

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

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

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

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

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

  1. レポート サーバー Windows サービスおよび Web サービスを停止します。レポート サーバー Web サービスを停止するには、サービスをホストするアプリケーション プールを停止します。
  2. SQL Server Management Studio を起動し、レポート サーバー データベースをホストしている SQL Server インスタンスへの接続を開きます。
  3. レポート サーバー データベースを右クリックし、[タスク] をポイントして [デタッチ] をクリックします。レポート サーバーの一時データベースに対しても、この手順を行います。
  4. 使用する SQL Server インスタンスのデータ フォルダに .mdf ファイルおよび .ldf ファイルをコピーまたは移動します。2 つのデータベースを移動するので、4 つのファイルがすべて移動またはコピーされていることを確認してください。
  5. Management Studio で、レポート サーバー データベースを新しくホストする SQL Server インスタンスへの接続を開きます。
  6. [データベース] ノードを右クリックし、[アタッチ] をクリックします。
  7. [追加] をクリックして、アタッチするレポート サーバー データベースの .mdf ファイルおよび .ldf ファイルを選択します。レポート サーバーの一時データベースに対しても、この手順を行います。
  8. データベースをアタッチした後、レポート サーバー データベースおよび一時データベースのデータベース ロールが RSExecRole であることを確認します。RSExecRole には、レポート サーバー データベースのテーブルの選択、作成、更新、削除、および参照を行う権限とストアド プロシージャの実行権限が必要です。
  9. Reporting Services 構成ツールを起動して、レポート サーバーに接続します。
  10. [データベースのセットアップ] ページで新しい SQL Server インスタンスを選択し、[接続] をクリックします。
  11. 移動したレポート サーバー データベースを選択し、[適用] をクリックします。
  12. レポート サーバー Windows サービスおよび Web サービスを再起動します。

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

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

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

データベースをバックアップする場合、COPY_ALL 引数を設定します。両方のデータベースとログ ファイルを必ずバックアップしてください。

-- To permit log backups, before the full database backup, alter the database 
-- to use the full recovery model.
USE master;
GO
ALTER DATABASE ReportServer
   SET RECOVERY FULL

-- If the ReportServerData device does not exist yet, create it. 
USE master
GO
EXEC sp_addumpdevice 'disk', 'ReportServerData', 
'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\BACKUP\ReportServerData.bak'

-- Create a logical backup device, ReportServerLog.
USE master
GO
EXEC sp_addumpdevice 'disk', 'ReportServerLog', 
'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\BACKUP\ReportServerLog.bak'

-- Back up the full ReportServer database.
BACKUP DATABASE ReportServer
   TO ReportServerData
   WITH COPY_ONLY

-- Back up the ReportServer log.
BACKUP LOG ReportServer
   TO ReportServerLog
   WITH COPY_ONLY

-- To permit log backups, before the full database backup, alter the database 
-- to use the full recovery model.
USE master;
GO
ALTER DATABASE ReportServerTempdb
   SET RECOVERY FULL

-- If the ReportServerTempDBData device does not exist yet, create it. 
USE master
GO
EXEC sp_addumpdevice 'disk', 'ReportServerTempDBData', 
'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\BACKUP\ReportServerTempDBData.bak'

-- Create a logical backup device, ReportServerTempDBLog.
USE master
GO
EXEC sp_addumpdevice 'disk', 'ReportServerTempDBLog', 
'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\BACKUP\ReportServerTempDBLog.bak'

-- Back up the full ReportServerTempDB database.
BACKUP DATABASE ReportServerTempDB
   TO ReportServerTempDBData
   WITH COPY_ONLY

-- Back up the ReportServerTempDB log.
BACKUP LOG ReportServerTempDB
   TO ReportServerTempDBLog
   WITH COPY_ONLY

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

データベースを復元する際には、パスを指定できるように MOVE 引数を使用してください。NORECOVERY 引数を使用して最初の復元を行うと、データベースが RESTORING 状態で保たれ、ログのバックアップを確認してどのデータベースを復元するかを決定する時間ができます。最後の手順では、RECOVERY 引数を使用して RESTORE 操作を繰り返します。

MOVE 引数では、データ ファイルの論理名を使用します。論理名を検索するには、RESTORE FILELISTONLY FROM DISK='C:\ReportServerData.bak'; ステートメントを実行してください。

復元するログ ファイルの位置を指定できるように、次の例では FILE 引数を使用しています。ファイルの位置を検索するには、RESTORE HEADERONLY FROM DISK='C:\ReportServerData.bak'; ステートメントを実行してください。

データベースとログ ファイルを復元する場合、RESTORE 操作は個別に実行する必要があります。

-- Restore the report server database and move to new instance folder 
RESTORE DATABASE ReportServer
   FROM DISK='C:\ReportServerData.bak'
   WITH NORECOVERY, 
      MOVE 'ReportServer' TO 
         'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\ReportServer.mdf', 
      MOVE 'ReportServer_log' TO
         'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\ReportServer_Log.ldf';
GO

-- Restore the report server log file to new instance folder 
RESTORE LOG ReportServer
   FROM DISK='C:\ReportServerData.bak'
   WITH NORECOVERY, FILE=2
      MOVE 'ReportServer' TO 
         'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\ReportServer.mdf', 
      MOVE 'ReportServer_log' TO
         'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\ReportServer_Log.ldf';
GO

-- Restore and move the report server temporary database
RESTORE DATABASE ReportServerTempdb
   FROM DISK='C:\ReportServerTempDBData.bak'
   WITH NORECOVERY, 
      MOVE 'ReportServerTempDB' TO 
         'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\ReportServerTempDB.mdf', 
      MOVE 'ReportServerTempDB_log' TO
         'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\REportServerTempDB_Log.ldf';
GO

-- Restore the temporary database log file to new instance folder 
RESTORE LOG ReportServerTempdb
   FROM DISK='C:\ReportServerTempDBData.bak'
   WITH NORECOVERY, FILE=2
      MOVE 'ReportServerTempDB' TO 
         'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\ReportServerTempDB.mdf', 
      MOVE 'ReportServerTempDB_log' TO
         'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\REportServerTempDB_Log.ldf';
GO

-- Perform final restore
RESTORE DATABASE ReportServer
   WITH RECOVERY
GO

-- Perform final restore
RESTORE DATABASE ReportServerTempDB
   WITH RECOVERY
GO

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

  1. Reporting Services 構成ツールを起動して、レポート サーバーに接続します。
  2. [データベースのセットアップ] ページで、レポート サーバー データベースをホストしている SQL Server を選択し、[接続] をクリックします。
  3. [データベース名] で使用するレポート サーバー データベースを選択し、[適用] をクリックします。
ms156421.note(ja-jp,SQL.90).gifメモ :
Reporting Services のインストールには、RSExecRole を含む SQL Server データベース エンジン インスタンスが必要です。ロールの作成、ログインの登録、およびロールの割り当ては、Reporting Services 構成ツールでレポート サーバー データベースの接続を設定する際に行います。別の方法 (特に、rsconfig.exe コマンド ライン ユーティリティを使用する場合) で接続を構成する場合は、レポート サーバーが非動作状態になります。場合によっては、また別のスクリプトを実行して、レポート サーバーを使用できるようにする必要があります。詳細については、「配置タスクおよび管理タスクのためのスクリプト作成」を参照してください。

参照

概念

レポート サーバー Windows サービスの開始と停止
自動実行されるレポート処理用のアカウントの構成
Reporting Services 構成ツール
暗号化キーの管理
レポート サーバー データベース

その他の技術情報

バックアップの概要 (SQL Server)
コピーのみのバックアップ
rsconfig ユーティリティ

ヘルプおよび情報

SQL Server 2005 の参考資料の入手

変更履歴

リリース 履歴

2006 年 4 月 14 日

新しい内容
  • アタッチとデタッチを使用する手順。
  • バックアップと復元を使用するサンプル スクリプトと手順。