SSIS カタログのバックアップ、復元、および移動

SQL Server 2014 Integration Services ( SSIS) には SSISDB データベースが用意されています。 SSISDB カタログに格納されているオブジェクト、設定、および業務データを検査するには、SSISDB データベースのビューに対してクエリを実行します。 このトピックでは、データベースのバックアップと復元の手順について説明します。

SSISDB カタログは、Integration Services サーバーに配置したパッケージを格納します。 カタログの詳細については、「 SSIS カタログ」を参照してください。

SSIS データベースをバックアップするには

  1. SQL Server Management Studio を開き、 SQL Serverのインスタンスに接続します。

  2. BACKUP MASTER KEY Transact-SQL ステートメントを使用して、SSISDB データベースのマスター キーをバックアップします。 このキーは指定したファイルに格納されます。 ファイル内のマスター キーを暗号化するには、パスワードを使用します。

    ステートメントの詳細については、「BACKUP MASTER KEY (Transact-SQL)」を参照してください。

    次の例では、マスター キーが c:\temp directory\RCTestInstKey ファイルにエクスポートされます。 マスター キーの暗号化には、 LS2Setup! というパスワードが使用されます。

    backup master key to file = 'c:\temp\RCTestInstKey'  
           encryption by password = 'LS2Setup!'  
    
    
  3. [データベースのバックアップ] SQL Server Management Studioダイアログ ボックスを使用して SSISDB データベースをバックアップします。 詳細については、「データベースをバックアップする方法 (SQL Server Management Studio) に関する記事をご覧ください。

  4. 次の手順を実行して、##MS_SSISServerCleanupJobLogin## の CREATE LOGIN スクリプトを生成します。 詳細については、「CREATE LOGIN (Transact-SQL)」を参照してください。

    1. SQL Server Management Studioのオブジェクト エクスプローラーで、 [セキュリティ] ノードを展開し、 [ログイン] ノードを展開します。

    2. [##MS_SSISServerCleanupJobLogin##] を右クリックし、 [ログインをスクリプト化] > [CREATE] > [新しいクエリ エディター ウィンドウ] の順にクリックします。

  5. SSISDB カタログが作成されていない SQL Server インスタンスに SSISDB データベースを復元する場合は、次の操作を行って、sp_ssis_startup の CREATE PROCEDURE スクリプトを生成します。 詳細については、「CREATE PROCEDURE (Transact-SQL)」を参照してください。

    1. オブジェクトエクスプローラーで、[データベース] ノードを展開し、[システムデータベース] [master] [プログラミング] [ > master > Programmability > ストアドプロシージャ] ノードの順に展開します。

    2. [dbo.sp_ssis_startup] を右クリックし、 [ストアド プロシージャをスクリプト化] > [CREATE] > [新しいクエリ エディター ウィンドウ] の順にクリックします。

  6. SQL Server エージェントが起動したことを確認します。

  7. SSISDB カタログが作成されていない SQL Server インスタンスに SSISDB データベースを復元する場合は、次の操作を行って、SSIS サーバー メンテナンス ジョブのスクリプトを生成します。 SSISDB カタログが作成されると、スクリプトは SQL Server エージェントで自動的に作成されます。 このジョブは、保有期間外の操作ログのクリーンアップおよび古いバージョンのプロジェクトの削除に役立ちます。

    1. オブジェクト エクスプローラーで、 [SQL Server エージェント] ノードを展開し、 [ジョブ] ノードを展開します。

    2. [SSIS サーバーメンテナンスジョブ] を右クリックし、[ジョブをスクリプト化] をクリックし > CREATE To > 新しいクエリエディターウィンドウを作成します。

SSIS データベースを復元するには

  1. SSISDB カタログが作成されていない SQL Server インスタンスに SSISDB データベースを復元する場合は、sp_configure ストアド プロシージャを実行して、共通言語ランタイム (CLR) を有効にします。 詳細については、「sp_configure (Transact-SQL)」と「clr enabled サーバー構成オプション」を参照してください。

    use master   
           sp_configure 'clr enabled', 1  
           reconfigure  
    
    
  2. SSISDB カタログが作成されていない SQL Server インスタンスに SSISDB データベースを復元する場合は、非対称キーと非対称キーからのログインを作成し、UNSAFE 権限をログインに付与します。

    Create Asymmetric key MS_SQLEnableSystemAssemblyLoadingKey  
           FROM Executable File = 'C:\Program Files\Microsoft SQL Server\110\DTS\Binn\Microsoft.SqlServer.IntegrationServices.Server.dll'  
    
    

    Integration Services ログインを行うには Microsoft Win32 API などの制限付きのリソースへの追加アクセスが必要であるため、CLR ストアド プロシージャでは、UNSAFE 権限をログインに付与する必要があります。 UNSAFE コード権限の要件の詳細については、「 アセンブリの作成」を参照してください。

    Create Login MS_SQLEnableSystemAssemblyLoadingUser  
           FROM Asymmetric key MS_SQLEnableSystemAssemblyLoadingKey   
    
           Grant unsafe Assembly to MS_SQLEnableSystemAssemblyLoadingUser  
    
    
  3. [データベースの復元] SQL Server Management Studioダイアログ ボックスを使用して、バックアップから SSISDB データベースを復元します。 詳細については、次の各トピックを参照してください。

  4. ##MS_SSISServerCleanupJobLogin##、sp_ssis_startup、および SSIS サーバー メンテナンス ジョブの「 SSIS をバックアップするには 」で作成したスクリプトを実行します。 SQL Server エージェントが起動したことを確認します。

  5. 次のステートメントを実行して、sp_ssis_startup プロシージャの自動実行を設定します。 詳細については、「sp_procoption (Transact-SQL)」を参照してください。

    EXEC sp_procoption N'sp_ssis_startup','startup','on'  
    
  6. [ログインのプロパティ] SQL Server Management Studioダイアログ ボックスを使用して、SSISDB ユーザーの ##MS_SSISServerCleanupJobUser## (SSISDB database) を ##MS_SSISServerCleanupJobLogin## にマップします。

  7. 次のいずれかの方法を使用して、マスター キーを復元します。 暗号化の詳細については、「 暗号化階層」を参照してください。

    • 方法 1

      この方法は、データベース マスター キーのバックアップが実行済みで、マスター キーの暗号化に使用するパスワードがある場合に使用します。

             Restore master key from file = 'c:\temp\RCTestInstKey'  
             Decryption by password = 'LS2Setup!' -- 'Password used to encrypt the master key during SSISDB backup'  
             Encryption by password = 'LS3Setup!' -- 'New Password'  
             Force  
      
      

      注意

      SQL Server サービス アカウントにバックアップ キー ファイルの読み取り権限があることを確認してください。

      注意

      データベース マスター キーがサービス マスター キーによって暗号化されていない場合、 SQL Server Management Studio には次の警告メッセージが表示されます。 この警告メッセージは無視してください。

      現在のマスター キーは暗号化解除できません。FORCE オプションが指定されたので、エラーは無視されました。

      FORCE 引数は、現在のデータベース マスター キーが開いていない場合でも復元プロセスを続行するように指定します。 SSISDB カタログについては、データベースを復元するインスタンスでデータベース マスター キーが開いていないため、このメッセージが表示されます。

    • 方法 2

      この方法は、SSISDB の作成に使用した元のパスワードがある場合に使用します。

      open master key decryption by password = 'LS1Setup!' --'Password used when creating SSISDB'  
             Alter Master Key Add encryption by Service Master Key  
      
  8. Integration Services catalog.check_schema_version を実行して、SSISDB カタログ スキーマとバイナリ (ISServerExec および SQLCLR アセンブリ) に互換性があるかどうかを確認します。

  9. SSISDB データベースが正常に復元されたことを確認するには、SSISDB カタログに対して、 Integration Services サーバーに配置したパッケージの実行などの操作を実行します。 詳細については、「 SQL Server Management Studio を使用した SSIS サーバーでのパッケージの実行」を参照してください。

SSIS データベースを移動するには

  • ユーザー データベースの移動の手順に従います。 詳細については、「 ユーザー データベースの移動」を参照してください。

    SSISDB データベースのマスター キーをバックアップしてバックアップ ファイルを保護していることを確認します。 詳細については、「 SSIS データベースをバックアップするには」を参照してください。

    Integration Services (SSIS) 関連のオブジェクトが、SSISDB カタログが作成されていない新しい SQL Server インスタンスに作成されていることを確認します。