2005年09月09日

ジョブ

○ ジョブの作成
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 実行中にエージェントサービスが停止すると実行中のジョブステップ情報がヒストリに記録
    → エージェントがサービスを停止する前にジョブが完了するまでの待ち時間を設定可(秒単位)
posted by w@ko at 18:44|  ・SQL Server ノート | このブログの読者になる | 更新情報をチェックする
×

この広告は90日以上新しい記事の投稿がないブログに表示されております。