catalog.cleanup_server_log
適用対象: SQL Server Azure Data Factory の SSIS 統合ランタイム
適用対象: SQL Server
操作ログをクリーンアップして、SSISDB データベースを、SERVER_OPERATION_ENCRYPTION_LEVEL プロパティの値が変更可能な状態にします。
構文
catalog.cleanup_server_log
引数
[なし] :
リターン コードの値
成功の場合は 0、失敗の場合は 1 です。
結果セット
[なし] :
アクセス許可
このストアド プロシージャには、次の権限のいずれかが必要です。
プロジェクトの READ および EXECUTE アクセス許可と、該当する場合は、参照先の環境での READ アクセス許可。
ssis_admin データベース ロールのメンバーシップ。
sysadmin サーバー ロールのメンバーシップ。
エラーおよび警告
このストアド プロシージャは、次のシナリオでエラーが発生します。
SSISDB データベースに 1 つ以上のアクティブな操作がある。
SSISDB データベースがシングル ユーザー モードではない。
注釈
SQL Server 2012 Service Pack 2 により、SERVER_OPERATION_ENCRYPTION_LEVEL プロパティが internal.catalog_properties テーブルに追加されました。 このプロパティには、次の 2 つの有効値があります。
PER_EXECUTION (1): 機密性の高い実行パラメーターと実行ログを保護する証明書と対称キーが実行するたびに作成されます。 実行ごとに証明書/キーが生成されるため、運用環境でパフォーマンスの問題 (デッドロック、メンテナンス ジョブの失敗など) が発生する可能性があります。 ただしこの設定は、その他の値 (2) よりも高いレベルのセキュリティを提供します。
PER_PROJECT (2): 実行のたびに証明書と対称キーが作成されます。これらは機密性の高いパラメーターを保護するために使用されます。 PER_PROJECT (2) は既定値です。 この設定は、キーと証明書が実行ごとではなく、プロジェクトに対して 1 回生成されるため、PER_EXECUTION レベルより優れたパフォーマンスを提供します。
SERVER_OPERATION_ENCRYPTION_LEVEL を 2 から 1、または 1 から 2 に変更するには、事前に catalog.cleanup_server_log ストアド プロシージャを実行する必要があります。 このストアド プロシージャを実行する前に、次の操作を行う必要があります。
catalog.catalog_properties (SSISDB データベース) テーブルで OPERATION_CLEANUP_ENABLED プロパティの値が TRUE に設定されていることを確認します。
Integration Services データベース (SSISDB) をシングル ユーザー モードに設定します。 SQL Server Management Studio で SSISDB の [データベース プロパティ] ダイアログ ボックスを開き、[オプション] タブに切り替え、[アクセスの制限] プロパティをシングル ユーザー モード (SINGLE_USER) に設定します。 cleanup_server_log ストアド プロシージャを実行すると、プロパティ値が元の値に設定されます。
ストアド プロシージャ catalog.cleanup_server_log を実行します。
次に、catalog.catalog_properties (SSISDB データベース) テーブルで SERVER_OPERATION_ENCRYPTION_LEVEL プロパティの値を変更します。
ストアド プロシージャ catalog.cleanup_server_execution_keys を実行し、SSISDB データベースから証明書とキーをクリーンアップします。 SSISDB データベースからの証明書とキーの削除は、長時間かかる場合があるため、オフピークの時間帯に定期的に実行する必要があります。
スコープまたはレベル (実行とプロジェクトの比較) および削除するキーの数を指定できます。 既定のバッチ サイズは 1000 です。 レベルを 2 に設定すると、関連するプロジェクトが削除されている場合にのみ、キーと証明書が削除されます。
詳細については、次のサポート技術情報の記事を参照してください:FIX: Performance issues when you use SSISDB as your deployment store in SQL Server 2012 (修正: SQL Server 2012 で、SSISDB を展開ストアとして使用すると、パフォーマンスの問題が発生する)
例
次の例では、cleanup_server_log ストアド プロシージャを呼び出します。
USE [SSISDB]
GO
DECLARE@return_value int
EXEC@return_value = [internal].[cleanup_server_log]
SELECT'Return Value' = @return_value
GO