今日のIT環境はいくつもコンポーネントの組合せで構成されているため、それらのITコンポーネントのサポート時間を最短にし、コンポーネントのメンテナンスに関連する人的エラーを排除する必要があります。Enterprise Manager Grid Controlのジョブ・システムを使用し、日常的に繰り返し行われる管理タスクを自動化し、環境内のコンポーネントを同期化することで、より効率的に管理できます。
この章では、ジョブ・システムについて説明しています。この章に含まれる項は次のとおりです。
Enterprise Managerのジョブ・システムには、次の2つの目的があります。
バックアップ、クローニング、パッチ適用など、多岐にわたる管理タスクの自動化
ユーザーのカスタムOSスクリプトやSQLスクリプトを使用した、固有のジョブの作成
ジョブとは、頻繁に実行するタスクの自動化を定義するための作業の単位です。ジョブのメリットの1つは、ジョブの即時実行または後で実行するための両方のスケジュールが可能である点です。1回のみの実行または特定の間隔(月3回など)での実行を指定できるオプションも用意されています。ジョブの結果はターゲットのホームページに表示されます。
「ジョブ・アクティビティ」ページ(図8-1)は、ジョブ・システムの中枢です。このページからは、次の操作が可能です。
既存のジョブ実行と個別ジョブ実行の検索
「名前」、「所有者」、「ステータス」、「スケジュール開始」、「ジョブ・タイプ」、「ターゲット・タイプ」、「ターゲット名」などで検索を絞り込むことができます。
ジョブの作成
ジョブ実行の表示、編集、類似作成、一時停止、再開、停止および削除
個別ジョブ実行の表示、編集、類似作成、一時停止、再開、再試行、停止および削除
ジョブ機能は、「ジョブ」タブのみに制限されているわけではありません。デプロイ中やデータベースでの作業中にもジョブ機能にアクセスできます。「デプロイ」ページでは、データベースのクローニングを行うジョブの作成や、Oracleホームのクローニングを行う別のジョブを作成できます。データベースでの作業中は、「関連リンク」セクションで「デプロイ」をクリックし、データベースをクローニングできます。
個別ジョブ実行は通常、特定のデータベースのバックアップ・ジョブなど、単一のターゲットに関連付けられます。複数のターゲットに対して実行されるジョブでは、個別ジョブ実行が各ターゲットに対して1回ずつ実行されます。
個別ジョブ実行は、必ずしもターゲットへ1対1で割り当てられているとはかぎりません。個別ジョブ実行によっては、ホストの比較など、複数のターゲットに対して実行される場合があります。また、RefreshFromMetaLinkジョブなど、ターゲットのない個別ジョブ実行もあります。
複数のターゲットへジョブを発行する場合、ターゲットごとにジョブの個別実行ステータスを確認するのは大変な作業です。たとえば、100個のデータベースに対してバックアップ・ジョブを実行したとします。ジョブ実行後は、すべてのバックアップが成功したかどうかを確認する必要があります。そして、失敗したバックアップがあれば、失敗したものを特定します。このバックアップ・ジョブが毎週実行される場合、成功したバックアップと失敗したバックアップを、毎週確認する必要があります。
ジョブ・システムでは、ジョブ実行を表示して、その結果を簡単に知ることができます。ジョブ実行は、スケジュールした特定の日に実行されたすべての個別ジョブ実行の集合です。バックアップの例で見ると、11月5日に100個のデータベースに対してバックアップジョブを実行している場合、11月5日分のジョブ実行が作成されます。ジョブ実行を表示する「ジョブ」表には、それらの個別ジョブ実行のステータスのロールアップが表示されます。
ジョブ・システムには、作成、編集、類似作成、削除などの標準的なジョブ操作のサポートに加えて、ジョブの一時停止や再開、失敗した個別ジョブ実行の再試行などの機能があります。たとえば、リソースが足りない場合、ジョブを一時停止にするか、一時停止できなければ延期する必要があります。ジョブを一時停止すると、スケジュールされた個別ジョブ実行は、ジョブを再開するまで実行されません。
失敗した個別ジョブ実行を分析する際には、原因が特定された後に個別実行を再試行する機能があると便利です。これにより、失敗した個別実行に対して新しいジョブを作成する必要がなくなります。ジョブ・システムで再試行操作を実行する場合、Enterprise Managerは失敗した個別実行から個別実行の再試行、およびその逆のリンクを提供します。これは、失敗した原因をさかのぼって調査するのに便利です。
関連項目: 個別ジョブ実行とジョブ実行の詳細は、Enterprise Manager Grid Controlのオンライン・ヘルプを参照してください。 |
Enterprise Managerは、データベース・ターゲットとデプロイ用に事前定義済のジョブ・タスクを提供しています。ジョブ・タスクは、アプリケーションへのパッチ適用やデータベースのバックアップなど、事前定義された、変更不可のロジックに使用されます。
事前定義済のデータベース・ジョブには、バックアップ、エキスポート、インポートなどがあります。デプロイに関連付けられている事前定義済のジョブには、パッチ適用、Oracleホームのクローニングおよびデータベースのクローニングなどがあります。
事前定義済のジョブ・タスクに加え、OSスクリプトやSQLスクリプトに含めるコードを記述し、固有のジョブ・タスクを定義できます。これらのスクリプトの使用には、次のメリットがあります。
これらのジョブの定義時に、ターゲット・プロパティを使用できます。
複数のターゲットまたは1つのグループに対し、ジョブを発行できます。ジョブは、自動的にグループ・メンバーシップに対応します。
ホスト・コマンドのジョブでは、クラスタに対してジョブを発行できます。
SQLジョブでは、Real Application Clusterに対してジョブを発行できます。
ジョブ・システムを使用し、次のジョブ・タイプを使用したジョブを作成できます。
CloneHome: Oracleホームの既知の状態をコピーします。たとえば、Oracleホームが既知の状態となった後(特定のインストール・オプションを選択、必要なパッチを適用し、テストした場合)、このOracleホームを1つ以上のホストにクローニングする必要がある場合があります。
ホスト・コマンド: ユーザー定義のOSスクリプトの実行に使用します。
パッチ: パッチまたはパッチ・セットを検索し、適用します。
MetaLinkからのリフレッシュ: クリティカル・パッチ・アドバイザの通知に使用されます。
SQLスクリプト: ユーザー定義のSQLスクリプトの実行に使用します。
ジョブの発行後、すべてのターゲットに対するすべての個別ジョブ実行は自動的にロールアップされ、「Grid Control」コンソールのホームページで参照できるようになります。図8-2は、「Grid Control」コンソールのホームページの「すべてのターゲット・ジョブ」情報を示します。
この情報は、何百、何千というシステムに対しジョブを実行する場合には特に重要となります。失敗した個別ジョブ実行を特定することもできます。特定の個別実行に関連付けられた数字をクリックすると、ドリルダウンして失敗したジョブの詳細を参照できます。
ジョブは、個別のターゲットに対して発行するのみでなく、ターゲットのグループに対しても発行できます。グループに発行したすべてのジョブは、自動的にそのメンバー・ターゲットへと適用され、グループのメンバーが変更されてもそれに従い適用されます。
たとえば、人事管理ジョブが給与支払グループに発行されているとします。新しいホストがこのグループに追加されると、そのホストは自動的に人事管理ジョブに追加されます。さらに、給与支払グループがデータベース、ホスト、アプリケーション・サーバーなど複数のターゲットから構成されている場合、ジョブはグループ内の適用されるターゲットに対してのみ実行されます。
グループのホームページにアクセスし、そのグループのジョブ・アクティビティを分析できます。
ジョブ職責の共有を許可するために、ジョブ・システムはジョブ権限を提供しています。これらのジョブ権限を使用し、他の管理者とジョブを共有できます。権限を使用し、次の操作を許可できます。
ジョブの結果を確認する必要がある管理者のアクセス権の表示
ジョブ定義の編集が必要な管理者への完全なアクセス権の付与
これらの権限は必要に応じて付与できます。
ジョブの定義後は、ジョブをジョブ・ライブラリに保存できます。ライブラリは、頻繁に使用されるジョブのリポジトリとして使用できます。アクティブ・ジョブと同様に、特定の管理者に表示権限または完全なアクセス権限を付与できます。
さらに、ジョブ・ライブラリを使用して、次の内容を保存できます。
ジョブの基本定義、さらにターゲットおよびその他のカスタム設定(ジョブ発行前に追加可能)。
自身で再利用、または他のユーザーと共有するためのジョブ。ジョブへの表示アクセス、または完全なアクセス権限を付与し、ジョブを共有できます。
Grid Controlの通知システムを使用して、ジョブが選択した状態(スケジュール済、稼働中、一時停止中、完了または問題)になったときに、ジョブ所有者に電子メールを送信するための通知ルールを定義できます。通知システム(ルール作成)には新しい機能が追加され、特定のジョブを通知ルールに簡単に関連付けられるようになりました。
マルチタスクのジョブを使用し、1つ以上の別個のタスクから構成される複数のジョブを作成できます。マルチタスクのジョブは同じタイプまたは異なるタイプのターゲットに対して実行できるため、同じタイプまたは異なるタイプの1つ以上のターゲットに対して非定型操作を実行できます。
それぞれ異なる2つの別個のターゲット・タイプに対して動作する、2つのタスクから構成されるマルチタスクのジョブを作成できます。次に例を示します。
タスク1(ジョブ・タイプはOSコマンド)はホスト1に対して動作します。
タスク1が成功すると、タスク2(ジョブ・タイプはSQLスクリプト)をデータベース1およびデータベース2に対して実行します。
ジョブ・システムのマルチタスク機能により、非常に複雑な操作を簡単に作成できます。