別のコンピューターへのレポート サーバー データベースの移動
現在の環境で使用しているレポート サーバー データベースは、別のコンピューター上の SQL Server データベース エンジン インスタンスに移動できます。 reportserver と reportservertempdb データベースは、一緒に移動またはコピーする必要があります。 Reporting Services の使用環境には、両方のデータベースが必要です。reportservertempdb データベースは、移動する reportserver プライマリ データベースに名前を関連付ける必要があります。
データベースの移動は、レポート サーバー アイテムに現在定義されているスケジュールされた操作には影響しません。
レポート サーバー サービスを初めて再起動したときに、スケジュールが再作成されます。
スケジュールを開始する際に使用される SQL Server エージェント ジョブは、新しいデータベース インスタンスで再作成されます。 このジョブを新しいコンピューターに移動する必要はありませんが、そのコンピューターで今後使用しないジョブは削除することをお勧めします。
サブスクリプション、キャッシュされたレポート、およびスナップショットは、移動したデータベースに保持されます。 データベースの移動後にスナップショットが更新されたデータを取得していない場合は、レポート マネージャーでスナップショット オプションを解除し、[適用] をクリックして変更を保存します。次に、スケジュールを再作成し、もう一度 [適用] をクリックして変更を保存します。
reportservertempdb に格納される一時的なレポートとユーザー セッション データは、データベースを移動しても保持されます。
SQL Server には、バックアップと復元、アタッチとデタッチ、コピーなど、データベースを移動するための方法がいくつかあります。 ただし、既存のデータベースを新しいサーバー インスタンスに再配置する場合に、これらすべての方法が適切とは限りません。 レポート サーバー データベースを移動するために使用する方法は、システムの可用性要件によって異なります。 レポート サーバー データベースを移動する最も簡単な方法は、レポート サーバー データベースをアタッチおよびデタッチすることです。 ただし、この方法を使用する場合、データベースをデタッチするときにレポート サーバーをオフラインにする必要があります。 サービスの中断を最小限に抑えるには、バックアップと復元が適しています。ただし、この操作を行うには、Transact-SQL コマンドを実行する必要があります。 権限設定がデータベースに保持されないため、データベースをコピーすること (特に、データベース コピー ウィザードの使用) は推奨されていません。
重要 |
---|
このトピックの手順をお勧めできるのは、既存環境に対して行う変更が、レポート サーバー データベースの再配置のみの場合です。 Reporting Services インストール全体を移行する場合 (データベースの移動と、データベースを使用するレポート サーバー Windows サービスの ID の変更を行う場合)、接続を再構成して、暗号化キーを再設定する必要があります。 |
レポート サーバー データベースのデタッチとアタッチ
レポート サーバーをオフラインにすると、データベースをデタッチして、使用する SQL Server インスタンスにデータベースを移動できます。 この方法では、権限がデータベースに保持されます。 SQL Server 2012 データベースを使用している場合は、SQL Server 2012 の別のインスタンスにそのデータベースを移動する必要があります。 データを移動した後、レポート サーバーがそのレポート サーバー データベースに接続されるように再構成する必要があります。 スケールアウト配置を実行している場合は、各レポート サーバーについて、レポート サーバー データベースの接続を再構成する必要があります。
次の手順に従ってデータベースを移動します。
移動するレポート サーバー データベースの暗号化キーをバックアップします。 キーは Reporting Services 構成ツールを使用してバックアップできます。
レポート サーバー サービスを停止します。 サービスは Reporting Services 構成ツールを使用して停止できます。
SQL Server Management Studio を起動し、レポート サーバー データベースをホストしている SQL Server インスタンスへの接続を開きます。
レポート サーバー データベースを右クリックし、[タスク] をポイントして [デタッチ] をクリックします。 レポート サーバーの一時データベースに対しても、この手順を行います。
使用する SQL Server インスタンスのデータ フォルダーに .mdf ファイルおよび .ldf ファイルをコピーまたは移動します。 2 つのデータベースを移動するので、4 つのファイルがすべて移動またはコピーされていることを確認してください。
Management Studio で、レポート サーバー データベースを新しくホストする SQL Server インスタンスへの接続を開きます。
[データベース] ノードを右クリックし、[アタッチ] をクリックします。
[追加] をクリックして、アタッチするレポート サーバー データベースの .mdf ファイルおよび .ldf ファイルを選択します。 レポート サーバーの一時データベースに対しても、この手順を行います。
データベースをアタッチした後、レポート サーバー データベースおよび一時データベースのデータベース ロールが RSExecRole であることを確認します。 RSExecRole には、レポート サーバー データベースのテーブルの選択、挿入、更新、削除、および参照を行う権限とストアド プロシージャの実行権限が必要です。 詳細については、「RSExecRole を作成する」を参照してください。
Reporting Services 構成ツールを起動して、レポート サーバーに接続します。
[データベース] ページで新しい SQL Server インスタンスを選択し、[接続] をクリックします。
移動したレポート サーバー データベースを選択し、[適用] をクリックします。
[暗号化キー] ページで、[復元] をクリックします。 キーのバックアップ コピーが格納されているファイルとそのパスワードを指定し、ファイルのロックを解除します。
レポート サーバー サービスを再開します。
レポート サーバー データベースのバックアップと復元
レポート サーバーをオフラインにできない場合は、バックアップと復元を使用して、レポート サーバー データベースを再配置できます。 バックアップと復元を実行するには、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\MSSQL11.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\MSSQL11.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
レポート サーバー データベースの接続を構成する方法
Reporting Services 構成マネージャーを起動して、レポート サーバーに接続します。
[データベース] ページの [データベースの変更] をクリックします。 [次へ] をクリックします。
[既存のレポート サーバー データベースを選択する] をクリックします。 [次へ] をクリックします。
現在レポート サーバー データベースをホストしている SQL Server を選択し、[接続テスト] をクリックします。 [次へ] をクリックします。
[データベース名] で、使用するレポート サーバー データベースを選択します。 [次へ] をクリックします。
レポート サーバーがレポート サーバー データベースに接続するときに使用する資格情報を [資格情報] に指定します。 [次へ] をクリックします。
[次へ] をクリックし、[完了] をクリックします。
注 |
---|
Reporting Services のインストールでは、SQL Server データベース エンジン インスタンスに RSExecRole ロールが含まれている必要があります。 ロールの作成、ログインの登録、およびロールの割り当ては、Reporting Services 構成ツールでレポート サーバー データベースの接続を設定する際に行います。 別の方法 (特に、rsconfig.exe コマンド プロンプト ユーティリティを使用する場合) で接続を構成する場合は、レポート サーバーが非動作状態になります。 場合によっては、レポート サーバーを利用可能な状態にするための WMI コードを作成する必要があります。 詳細については、「Reporting Services WMI プロバイダーへのアクセス」を参照してください。 |
関連項目
タスク
参照
概念
レポート サーバー データベース接続の構成 (ネイティブ モード)