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