次の方法で共有


レポート サーバー データベースを別のコンピューターに移動する (SSRS ネイティブ モード)

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

適用対象: Reporting Services ネイティブ モード。

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

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

  • スケジュールのトリガーに使用される SQL Server エージェント ジョブは、新しいデータベース インスタンスで再作成されます。 新しいコンピューターにジョブを移動する必要はありませんが、使用されなくなったコンピューター上のジョブを削除することもできます。

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

  • reportservertempdb に格納されている一時レポートおよびユーザー セッション データは、そのデータベースを移動するときに保持されます。

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

重要

レポート サーバー データベースを再配置することのみが既存のインストールへの変更である場合には、このトピックで説明する手順を推奨します。 Reporting Services のインストール全体 (つまり、データベースの移動と、データベースを使用するレポート サーバー Windows サービスの ID の変更) を移行するには、接続の再構成と暗号化キーのリセットが必要です。

レポート サーバー データベースの切り離しと接続

レポート サーバーをオフラインにできる場合は、データベースをデタッチして、使用する SQL Server インスタンスに移動できます。 この方法では、データベースのアクセス許可が保持されます。 SQL Server 2014 データベースを使用している場合は、別の SQL Server 2014 インスタンスに移動する必要があります。 データベースを移動したら、レポート サーバー データベースへのレポート サーバー接続を再構成する必要があります。 スケールアウト配置を実行している場合は、配置内の各レポート サーバーのレポート サーバー データベース接続を再構成する必要があります。

データベースを移動するには、次の手順に従います。

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

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

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

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

  5. .mdfファイルと .ldf ファイルを、使用する SQL Server インスタンスの Data フォルダーにコピーまたは移動します。 2 つのデータベースを移動するため、必ず 4 つのファイルすべてを移動またはコピーしてください。

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

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

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

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

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

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

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

  13. [暗号化キー] ページで、[復元] をクリックします。 キーのバックアップ コピーを含むファイルと、ファイルのロックを解除するためのパスワードを指定します。

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

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

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

BACKUP とCOPY_ONLYを使用したレポート サーバー データベースのバックアップ

データベースをバックアップするときは、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 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\MSSQL12.MSSQLSERVER\MSSQL\BACKUP\ReportServerData.bak'  
  
-- Create a logical backup device, ReportServerLog.  
USE master  
GO  
EXEC sp_addumpdevice 'disk', 'ReportServerLog',   
'C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\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\MSSQL11.MSSQLSERVER\MSSQL\BACKUP\ReportServerTempDBData.bak'  
  
-- Create a logical backup device, ReportServerTempDBLog.  
USE master  
GO  
EXEC sp_addumpdevice 'disk', 'ReportServerTempDBLog',   
'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\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\MSSQL11.MSSQLSERVER\MSSQL\Data\ReportServer.mdf',   
      MOVE 'ReportServer_log' TO  
         'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\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\MSSQL11.MSSQLSERVER\MSSQL\Data\ReportServer.mdf',   
      MOVE 'ReportServer_log' TO  
         'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\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\MSSQL11.MSSQLSERVER\MSSQL\Data\ReportServerTempDB.mdf',   
      MOVE 'ReportServerTempDB_log' TO  
         'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\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\MSSQL11.MSSQLSERVER\MSSQL\Data\ReportServerTempDB.mdf',   
      MOVE 'ReportServerTempDB_log' TO  
         'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\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. [データベース] ページで、[ データベースの変更] をクリックします。 [次へ] をクリックします。

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

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

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

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

  7. [次へ][完了] の順にクリックします。

Reporting Services のインストールでは、SQL Server データベース エンジン インスタンスに RSExecRole ロールが含まれている必要があります。 Reporting Services 構成ツールを使用してレポート サーバー データベース接続を設定すると、ロールの作成、ログイン登録、およびロールの割り当てが行われます。 別の方法 (具体的には、rsconfig.exe コマンド プロンプト ユーティリティを使用する場合) を使用して接続を構成する場合、レポート サーバーは動作状態になりません。 レポート サーバーを使用できるようにするには、WMI コードを記述する必要がある場合があります。 詳細については、「 Reporting Service WMI プロバイダーへのアクセス」を参照してください。

こちらもご覧ください

RSExecRole を作成する
レポート サーバー サービスの開始と停止
レポート サーバー データベース接続の構成 (SSRS 構成マネージャー)
無人実行アカウントの構成 (SSRS 構成マネージャー)
Reporting Services Configuration Manager (ネイティブ モード)
rsconfig ユーティリティ (SSRS)
暗号化キーの構成と管理 (SSRS 構成マネージャー)
レポート サーバー データベース (SSRS ネイティブ モード)