Reporting Services の移行

ここでは、SQL Server 2000 Reporting Services を新しい SQL Server 2005 Reporting Services インスタンスに移行する手順について説明します。アップグレードの障害となる問題が発生した場合、大規模な展開やシステムの連続稼動が必要な場合、またはインストールのハードウェアやトポロジを変更する場合は、インストールを移行すると便利です。Reporting Services の移行プロセスには、手動の手順と自動化された手順があります。レポート サーバーの移行の一環として、次の作業を実行します。

  • データベース、アプリケーション、および構成ファイルをバックアップします。
  • SQL Server 2005 の新しいインスタンスを既存の SQL Server 2000 のインストールとサイドバイサイド構成でインストールします。SQL Server 2000 Reporting Services は常に既定の SQL Server インスタンスで動作するため、インストールする新しい SQL Server 2005 インスタンスは、名前付きインスタンスとして構成する必要があります。
  • レポート サーバー データベースを SQL Server 2000 のインストールから新しい SQL Server 2005 のインストールに移動します。データベースを新しいデータベース エンジン インスタンスに移動する場合は、RSExecRole を手動で作成する必要があります。
  • 新しいインスタンスが完全に機能することを確認してから、SQL Server 2000 Reporting Services をアンインストールします。

以前のインストールで作成した既存のレポート サーバー データベースを再利用する場合、そのレポート サーバー データベースをホストするために使用できる SQL Server のエディションには制限があることに注意してください。詳細については、「レポート サーバー データベースの作成」を参照してください。

ファイルおよびデータのバックアップ

Reporting Service の新しいインスタンスをインストールする前に、現在インストールされているすべてのファイルを必ずバックアップしてください。

  1. レポート サーバー データベースの対称キーをバックアップします。この操作は、rskeymgmt ユーティリティを使用して実行します。
  2. サポートされている任意の SQL Server データベース バックアップ方法で、レポート サーバー データベースをバックアップします。詳細については、「別のコンピュータへのレポート サーバー データベースの移動」のレポート サーバー データベースのバックアップ手順を参照してください。
  3. レポート サーバーの構成ファイルをバックアップします。バックアップするのは次のファイルです。
    1. Rsreportserver.config
    2. Rswebapplication.config
    3. Rssvrpolicy.config
    4. Rsmgrpolicy.config
    5. Reportingservicesservice.exe.config
    6. レポート サーバーおよびレポート マネージャの ASP.NET アプリケーション用の Web.config
    7. ASP.NET 用の Machine.config
  4. レポート サーバーの仮想ディレクトリ設定をバックアップします。インターネット インフォメーション サービス マネージャを使用して、設定をバックアップします。
  5. 高可用性を持つレポート サーバーの場合は、レポート サーバー データベースを読み取り専用に設定し、SQL Server データベース エンジン上の RSExec ロールを変更して、レポート サーバー データベースのトランザクションを停止します。

SQL Server 2005 Reporting Services のインストール

Reporting Services と Service Pack 1 をインストールします。

  1. SQL Server 2005 セットアップを実行して、Reporting Services の新しいインスタンスをインストールします。

  2. [インストールするコンポーネント] ページで、[Reporting Services] を選択します。データベース エンジンの新しいインスタンスと Report Designer を同じコンピュータにインストールする場合は、SQL Server Database Services とワークステーションのコンポーネント、Books Online、および開発ツールも選択できます。

  3. [インスタンス名] に、インストールする SQL Server 2005 インスタンスの新しい名前を入力します。[既定のインスタンス] は指定しないでください。既定のインスタンスを指定すると、新しいレポート サーバー インスタンスが作成されず、既存のインストールのインプレース アップグレードが行われます。

  4. [サービス アカウント] に、Report Server Windows サービス用のサービス アカウントを指定します。サービス アカウントの詳細については、「Windows サービス アカウントの設定」を参照してください。

    必要に応じて、[セットアップ終了時にサービスを開始する] で SQL Server Agent を選択します (スケジュール設定された操作をサポートするには SQL Server Agent が実行している必要があります)。

  5. [レポート サーバー インストール オプション] で、[サーバーを構成せずにインストールする] を選択します。このオプションを選択した場合は、セットアップの終了後にレポート サーバーを構成できます。

  6. セットアップを終了します。

  7. Service Pack 1 を適用する場合は、SQL Server 2005 のサービスをすべて停止します (レポート サーバー Windows サービス、SQL Server Agent、SQL Server Browser、および SQL Server フルテキスト検索を含む)。

  8. Service Pack 1 を適用してからサービスを再起動します。

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

レポート サーバー データベースをホストしたことのないデータベース エンジン インスタンスに、レポート サーバー データベースを移動する場合は、Master および MSDB システム データベースに RSExecRole を作成する必要があります。データベース アップグレード スクリプトが動作するには、ロールが存在する必要があります。

ロールが存在しない場合にデータベースをアップグレードしようとすると、「データベース アップグレード スクリプトを適用中に問題が発生しました」というエラーが表示されます。

Reporting Services では、SQL Server エージェント サービスの拡張ストアド プロシージャを使用して、スケジュールされた操作をサポートします。次の手順では、プロシージャの実行権限を RSExecRole ロールに付与する方法について説明します。

Management Studio を使用して master システム データベースに RSExecRole を作成するには

  1. SQL Server Management Studio を起動し、レポート サーバー データベースをホストするデータベース エンジン インスタンスに接続します。

  2. [データベース] を開きます。

  3. [システム データベース] を開きます。

  4. [master] を開きます。

  5. [セキュリティ] を開きます。

  6. [ロール] を開きます。

  7. [データベース ロール] を右クリックして [新しいデータベース ロール] をクリックします。[全般] ページが表示されます。

  8. [ロール名] に「RSExecRole」と入力します。

  9. [所有者] に「DBO」と入力します。

  10. [セキュリティ保護可能なリソース] をクリックします。

  11. [追加] をクリックします。[オブジェクトの追加] ダイアログ ボックスが表示されます。[オブジェクトの指定] オプションが既定で選択されます。

  12. [OK] をクリックします。

  13. [オブジェクトの種類] をクリックします。

  14. [拡張ストアド プロシージャ] をクリックします。

  15. [OK] をクリックします。

  16. [参照] をクリックします。

  17. 拡張ストアド プロシージャの一覧を下にスクロールし、以下を選択します。

    1. xp_sqlagent_enum_jobs
    2. xp_sqlagent_is_starting
    3. xp_sqlagent_notify
  18. [OK] をクリックし、もう一度 [OK] をクリックします。

  19. [実行] 行の [許可] 列で、チェック ボックスをオンにし、[OK] をクリックします。

残りの各ストアド プロシージャに同じ操作を繰り返します。RSExecRole には、3 つのストアド プロシージャすべてに対する実行権限を付与する必要があります。

MSDB での RSExecRole の作成

Reporting Services は、スケジュールされた操作をサポートするために、SQL Server エージェント サービスのストアド プロシージャを使用し、システム テーブルからジョブ情報を取得します。次の手順では、プロシージャに対する実行権限およびテーブルでの選択権限を RSExecRole に付与する方法を説明します。

MSDB システム データベースで RSExecRole を作成するには

  1. MSDB のストアド プロシージャとテーブルに対する権限を付与する場合は、同様の手順を繰り返します。手順を簡素化するために、ストアド プロシージャとテーブルを別々に準備します。

  2. [MSDB] を開きます。

  3. [セキュリティ] を開きます。

  4. [ロール] を開きます。

  5. [データベース ロール] を右クリックして [新しいデータベース ロール] をクリックします。[全般] ページが表示されます。

  6. [ロール名] に「RSExecRole」と入力します。

  7. [所有者] に「DBO」と入力します。

  8. [セキュリティ保護可能なリソース] をクリックします。

  9. [追加] をクリックします。[オブジェクトの追加] ダイアログ ボックスが表示されます。[オブジェクトの指定] オプションが既定で選択されます。

  10. [OK] をクリックします。

  11. [オブジェクトの種類] をクリックします。

  12. [ストアド プロシージャ] をクリックします。

  13. [OK] をクリックします。

  14. [参照] をクリックします。

  15. 項目の一覧を下にスクロールし、以下を選択します。

    1. sp_add_category
    2. sp_add_job
    3. sp_add_jobschedule
    4. sp_add_jobserver
    5. sp_add_jobstep
    6. sp_delete_job
    7. sp_help_category
    8. sp_help_job
    9. sp_help_jobschedule
    10. sp_verify_job_identifiers
  16. [OK] をクリックし、もう一度 [OK] をクリックします。

  17. 最初のストアド プロシージャ sp_add_category を選択します。

  18. [実行] 行の [許可] 列で、チェック ボックスをオンにし、[OK] をクリックします。

  19. 残りの各ストアド プロシージャに同じ操作を繰り返します。RSExecRole には、10 個のストアド プロシージャすべてに対する実行権限を付与する必要があります。

  20. [セキュリティ保護可能なリソース] タブで、もう一度 [追加] をクリックします。[オブジェクトの追加] ダイアログ ボックスが表示されます。[オブジェクトの指定] オプションが既定で選択されます。

  21. [OK] をクリックします。

  22. [オブジェクトの種類] をクリックします。

  23. [テーブル] をクリックします。

  24. [OK] をクリックします。

  25. [参照] をクリックします。

  26. 項目の一覧を下にスクロールし、以下を選択します。

    1. syscategories
    2. sysjobs
  27. [OK] をクリックし、もう一度 [OK] をクリックします。

  28. 最初のテーブル syscategories を選択します。

  29. [選択] 行の [許可] 列で、チェック ボックスをオンにし、[OK] をクリックします。

sysjobs テーブルに同じ操作を繰り返します。RSExecRole には、両方のテーブルに対する選択権限を付与する必要があります。

レポート サーバー データベースのアタッチと構成ファイルのコピー

SQL Server 2000 のインストールからバックアップしたレポート サーバー データベースを新しいインスタンスにアタッチまたは復元します。レポート サーバー データベースと一時データベースの両方が必要であり、一緒に移動する必要があります。

データベースをコピーしても新しいインストールにセキュリティ設定がすべて移行されるわけではないため、コピーは使用しないでください。

SQL Server 2005 データベース エンジンの新しいインスタンスを使用している場合は、SQL Server Management Studio を使用してデータベースをアタッチまたは復元できます。

データベースのアタッチとファイルのコピー

  1. 別のコンピュータへのレポート サーバー データベースの移動」の説明に従ってデータベースをアタッチまたは移動します。SQL Server 2000 を使用してレポート サーバー データベースをホストしている場合は、新しいインストール用にデータベースのコピーを作成します。

  2. SQL Server 2000 のインストールで使用されている rsreportserver.config の設定を、新しい SQL Server 2005 のインストールの rsreportserver.config ファイルに次の手順でコピーします。

    1. InstallationID エントリをコピーします。レポート サーバー データベースの Keys テーブルに未使用のエントリが 2 つ存在する状況を避けるには、インストール ID をコピーする必要があります。2 つの未使用の行は、SQL Server 2000 インスタンスのインストール識別子です。未使用の行は不完全です。各行に欠如しているのはコンピュータ名とインスタンス名です。コンピュータ名もインスタンス名も SQL Server 2000 インスタンスでは定義されていないため、レポート サーバー データベースのアップグレード後、Keys テーブルのそれらの列には値がありません。コンピュータ名とインスタンス名がないエントリは、レポート サービス構成ツールで削除できません。ただし、Keys テーブルを編集して、行を削除するかコンピュータ名とインスタンス名を追加することが可能です。また、未使用のエントリをテーブルに残しておくこともできます。未使用のエントリはレポート サーバーの運用に影響しません。
    2. 新しいインストールで使用するその他のカスタム設定をコピーします。インストールでカスタム拡張機能を使用している場合は、使用前に拡張機能の再コンパイルが必要になる可能性があります。詳細については、アップグレード アドバイザ製品のマニュアルを参照してください。
  3. カスタム トレース設定がある場合は、新しいインストールの Web.config ファイルか Machine.config ファイルにエントリをコピーします。

レポート サーバーの構成

レポート サーバー設定の構成

  1. Reporting Services 構成ツールを開始し、今インストールした SQL Server 2005 Reporting Services のインスタンスに接続します。

  2. レポート サーバーおよびレポート マネージャ用の仮想ディレクトリを作成します。仮想ディレクトリ名は一意でなければならないため、SQL Server 2000 Reporting Services で既定の名前を使用している場合は、SQL Server 2005 のインストールに既定以外の名前を選択する必要があります。

    レポート サーバーの仮想ディレクトリを作成すると、Web サービス ID が自動的に構成されます。正しく構成されない場合は、サービスを実行するための新しいアプリケーション プールを作成してください。

    レポート サーバー Windows サービスは、セットアップ中に自動的に構成されます。別のアカウントでサービスを実行する場合は、ここで変更できます。サービス アカウントの詳細については、SQL Server Books Online の「Windows サービス アカウントの設定」および「Reporting Services の配置における接続とアカウント」を参照してください。

  3. [レポート サーバーの状態] ページで、[停止] をクリックしてレポート サーバー Windows サービスを停止します。このステップは重要です。サービスを停止しなければ、スキーマが完全にアップデートされる前にデータベース アップグレード処理がタイムアウトになり、データベースが中間の状態になる可能性があります。

  4. [データベースのセットアップ] ページの [サーバー名] で、アップグレード対象のレポート サーバー データベースをホストしている SQL Server インスタンスを選択し、[接続] をクリックします。

  5. SQL Server 2005 のインストールで使用するレポート サーバー データベースを選択します。

  6. [アップグレード] をクリックします。レポート サーバー データベースと一時データベースの両方が新しいスキーマにアップグレードされます。

  7. レポート サーバーをレポート サーバー データベースに接続するときに使用するアカウントを指定します。

  8. [暗号化キー] ページで、レポート サーバー データベースの内容の暗号化と復号化に使用されるキーを復元します。これは、このトピックの「ファイルおよびデータのバックアップ」セクションの手順 1. でバックアップした暗号化キーです。

  9. ブラウザを開き、URL アドレスを入力して、レポート サーバーとレポート マネージャの仮想ディレクトリをテストします。そのインスタンスに指定する URL とデータベース接続情報に、インスタンス名を含める必要があります。

  10. レポートをテストし、レポートに意図したデータが含まれることを確認します。データ ソース情報で、データ ソース接続情報が指定されたままになっているかどうかを確認します。

  11. SQL Server 2000 Reporting Services をアンインストールします。

  12. 仮想ディレクトリの名前を以前のインストールで使用していた名前に変更します。カスタム仮想ディレクトリ設定を使用した場合は、新しい値が使用されるように、作成した仮想ディレクトリを更新します。

参照

概念

Reporting Services のアップグレード

その他の技術情報

レポート サーバー データベース
Reporting Services の旧バージョンとの互換性
Reporting Services 構成ツール

ヘルプおよび情報

SQL Server 2005 の参考資料の入手