ジョブおよびユーザー定義アラートのためのスクリプトの変数

ジョブまたはユーザー定義アラート用に指定した定義済み変数を、スクリプトで使用することができます。 例えば、物理データベース名に解決される変数 DSWEB_DATABASE_NAME が組み込まれたスクリプトを作成できます。
変数をスクリプトに追加するには、それぞれの変数を ${ } で囲んでください。例:
${DSWEB_DATABASE_PROFILENAME}

ジョブ・マネージャー・スクリプトとユーザー定義スクリプトの両方に使用できる変数

下の表にある変数は、どのようなジョブ・マネージャー・アラート・スクリプトおよびユーザー定義アラート・スクリプトでも使用できます。 これらの変数は、アラートで識別される値 (データベース名やジョブ ID など) を表します。

表 1. ジョブ・マネージャー・スクリプトとユーザー定義スクリプトで使用できる変数
変数 返される値
DSWEB_DATABASE_NAME 物理データベース名。
DSWEB_DATABASE_PROFILENAME データベース・ページで作成されるときに、データベースに関連付けられる名前。

この値は物理データベース名ではありませんが、データベースに関連付けられるユニーク ID です。

DSWEB_INSTANCE_NAME DB2 インスタンス名。
DSWEB_JOB_ID スクリプトのユニーク ID を実行したジョブ。
DSWEB_JOB_NAME 現在のジョブに使用した名前またはラベル。
DSWEB_LOGGEDIN_USER スクリプトを実行するために使用されるユーザー ID です。 このユーザー ID は、SSH ユーザー ID でもある場合があります。

ジョブ・マネージャー・スクリプト専用の変数

表 2 にある変数は、ジョブ・マネージャー・スクリプトでのみ使用できます。 これらの変数は、アラート・アクション機能によってトリガーされる場合のみ定義されます。

表 2. ジョブ・マネージャー・スクリプトでのみ使用できる変数
変数 返される値
DSWEB_ALERT_DETAIL アラートに関する重要な詳細または要約。
DSWEB_ALERT_ID 指定したアラート・アクションの対象のアラート ID です。
DSWEB_ALERT_TYPE_NAME アラートのタイプ (データベース状況など) です。

スケジュール監査レコードを一連のデータベースから抽出

この例では、Great Outdoor Company のエンタープライズ DBA チームが、いくつものデータベースの管理を担当しています。 その要件の 1 つとして、監査レコードを一連のデータベースから定期的に (例えば、週に一度) 抽出し、一定期間のレコードのみを含むファイルを中央サーバーに FTP 送信します。 その中央サーバーから、カスタム・アプリケーションが監査情報を照合します。 ポリシー・コンプライアンスおよびユーザー・アクセス検証が確認され、問題があれば、解決の対象としてそれらにフラグが付けられます。

DBA チームは、SYSPROC.AUDIT_DELIM_EXTRACT ストアード・プロシージャーを使用して、監査レコードを抽出するスクリプトを開発します。 すべての Linux および UNIX システムにおいて、このSYSPROC.AUDIT_DELIM_EXTRACT/mnt/dba/scripts/extractaudit.sh からアクセス可能です。 SYSPROC.AUDIT_DELIM_EXTRACT は DB2 コマンドと他のユーティリティーを使用して、監査レコードを抽出し、それらのレコードを中央サーバーにコピーします。 DBA チームの従来の汎用スクリプトは、始動時に、引数としてデータベース名を予期しています。 DBA チームは、データベース名を抽出するスクリプトを作成しなければなりません。 ジョブ・マネージャーによって、そのスクリプトを定期的に実行するようスケジューリングして、データベース名の抽出を自動化することができます。

変数をスクリプトに追加するには、それぞれの変数を ${ } で囲んでください。例:
${DSWEB_DATABASE_PROFILENAME}
echo ==========================================
echo TRACE: Job name is '${DSWEB_JOB_NAME}', Job ID is '${DSWEB_JOB_ID}'
echo TRACE: Job is being run against Database Profile '${DSWEB_DATABASE_PROFILENAME}' with userID: '${DSWEB_LOGGEDIN_USER}'
echo TRACE: The database name is '${DSWEB_DATABASE_NAME}'
echo ==========================================
/mnt/dba/scripts/extractaudit.sh ${DSWEB_DATABASE_NAME}

このスクリプトを実行した後、DBA は、ジョブによるスクリプト起動が予期したとおりに動作することを確認するため、出力を別のデータベースに対してテストします。 DBA は「履歴」ビューに切り替えて、実行ログを調べることによって、スクリプトが正常に実行されたことを確認します。 さらに DBA は、週に一度ジョブを実行するスケジュールを「スケジュール」セクションで作成します。 DBA はデータベースと時刻のセットを選択します。 また DBA は、このジョブが月に一度だけ実行される必要があるデータベースを対象に、月次スケジュールを作成するよう選択します。


フィードバック