○ ジョブの作成
・ | Enterprise Manager または sp_add_job システムストアドプロシージャで作成可 | |
・ | 定義済みジョブは msdb..sysjobs システムテーブルに格納 → キャッシュ管理 | |
・ | ジョブが有効なことを確認 | |
− | ジョブはデフォルトで有効 | |
− | 無効な場合、スケジュールどおりのジョブ実行不可 | |
※ 警告に応答した場合、Enterprise Manager からジョブを手動起動した場合は実行可 | ||
・ | ジョブ実行の所有者を確認 → 既定でログインアカウント | |
・ | ジョブの実行場所の確認 … ローカルサーバー上もしくはリモートサーバー上 | |
・ | ジョブカテゴリの作成 | |
※ | ジョブのコアセットの定義にはデータベース保守計画を使用すると便利 |
○ ジョブの権限
・ | 所有者が sysadmin ロールのメンバでない場合、ジョブを実行する権限があるか確認 | ||
− | Transact-SQL → どのユーザーでも実行可 | ||
− | OS コマンドおよび ActiveX スクリプトジョブ | ||
sysadmin ロールメンバー → SQL Server サービスアカウント権限で実行 | |||
sysadmin ロールメンバー以外 → 権限を確認 | |||
‥ 既定で実行不可、ただし管理者が実行権限を与えることが可能 … プロキシアカウント | |||
‥ プロキシアカウントの定義 | |||
⇒ Enterprise Manager → [SQL Server エージェント]のプロパティ → [ジョブシステム]タブ | |||
⇒ xp_sqlagent_proxy_account システムストアドプロシージャ | |||
‥ Administrators ローカルグループのメンバーでも実行可 | |||
→ エージェントがプロキシアカウントにアクセス |
○ ジョブステップの定義
・ | Enterprise Manager または sp_add_jobstep システムストアドプロシージャで定義可 | ||
・ | 定義済みジョブステップは msdb..sysjobsteps システムテーブルに格納 | ||
・ | ジョブステップの定義で使用できる実行タイプ(1ステップにつき1実行タイプのみ指定可) | ||
− | Transact-SQL ステートメント | ||
‥ | 使用するデータベースを特定 | ||
‥ | ジョブステップに必要な変数およびパラメータを含める | ||
‥ | ジョブステップの結果セットを出力ファイルに送信可 | ||
→ エラー検出のため 次回のジョブステップの入力値としては使用不可 | |||
− | OS コマンド | ||
‥ | .exe、.bat、.cmd、.com 拡張子 | ||
‥ | コマンドが成功したことを示すプロセス終了コードを識別 | ||
‥ | [コマンド]欄に起動するプログラムのフルパス名を入力 | ||
→ SQL Serverエージェントがプログラムソースを見つけるために必要 | |||
− | ActiveX スクリプト言語 | ||
‥ | ジョブステップが書かれたスクリプト言語の識別(VBScript、Jscript 等) | ||
‥ | ActiveX スクリプトの作成 | ||
→ SQLActiveScriptHost オブジェクトを使用してジョブステップのヒストリ出力、オブジェクトの作成が可能 | |||
− | レプリケーション |
○ ジョブスケジュール
・ | Enterprise Manager または sp_add_jobschedule システムストアドプロシージャで設定可 |
・ | 定義済みジョブスケジュールは msdb..sysjobschedule システムテーブルに格納 |
・ | ジョブは定義されているスケジュールおよび警告の応答によって実行 |
・ | マルチサーバー環境の場合、対象サーバー上で実行ジョブの定義可 |
・
|
SQL Server エージェントサービスアカウントが Administrators ローカルグループのメンバーでない場合はスケジュールの種類として「CPU のアイドル時」を選択できない |
・ | 複数スケジュール設定可 |
○ 通知先オペレータの作成
・ | Enterprise Manager または sp_add_operator システムストアドプロシージャで設定可 |
・ | 定義済みオペレータは msdb..sysoperator システムテーブルに格納 |
→ 最新通知日時も記録 | |
☆
|
電子メール通知の場合は電子メールエイリアスでグループを使用して2人以上に通知し、潜在的問題に対応できるようにする |
○ ジョブヒストリ
・ | msdb..sysjobhistory システムテーブルにジョブヒストリを格納 | |
・ | Enterprise Manager でジョブ右クリック→[ジョブヒストリの表示]で参照可 | |
・
|
Enterprise Manager の SQL Server エージェントサービスのプロパティ→[ジョブシステム]タブでジョブヒストリサイズの上限設定可 | |
− | 最大サイズに達するとジョブヒストリは自動的に上書き (sysjobhistory テーブルから削除) | |
− | 既定のジョブヒストリログ最大サイズ:1,000行 | |
− | 既定の各ジョブのジョブヒストリ最大行数:100行 | |
※ | Transact-SQL 実行中にエージェントサービスが停止すると実行中のジョブステップ情報がヒストリに記録 | |
→ エージェントがサービスを停止する前にジョブが完了するまでの待ち時間を設定可(秒単位) |