ヘッダーをスキップ
Oracle® Database管理者ガイド
11g リリース2 (11.2)
B56301-04
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

データベース・サービスでのアプリケーション・ワークロードの管理

この項の内容は、次のとおりです。

データベース・サービスの理解

データベース・サービス(サービス)は、Oracle Databaseでワークロードを管理するための論理的な抽象概念です。サービスは、ワークロードを互いに共通の要素を持たないグループに分割します。各サービスは、一般的な属性、サービス・レベルしきい値および優先度でワークロードを表します。グループ化は作業の属性に基づいて行われますが、これらの属性には、使用するアプリケーション機能、アプリケーション機能を実行する場合の優先度、管理の対象となるジョブ・クラス、アプリケーション機能またはジョブ・クラスで使用するデータの範囲などが含まれていることがあります。たとえば、Oracle E-Business Suiteでは、総勘定元帳、売掛金勘定、受注など、職務ごとにサービスを定義します。データベース・サービスを構成するとき、一意のグローバル名、関連するパフォーマンス目標および関連する重要性を各サービスに指定します。これらのサービスは、Oracle Databaseと緊密に統合され、データ・ディクショナリに保持されます。

接続要求には、データベース・サービス名を指定できます。このように、中間層アプリケーションおよびクライアントとサーバーのアプリケーションでは、サービスをTNS接続データ内の接続の一部として指定することで、サービスを利用します。サービス名が指定されておらず、Net Servicesファイルlistener.oraにデフォルト・サービスが指定されている場合は、デフォルト・サービスを使用して接続されます。

サービスを使用すると、ワークロードの構成、管理、有効化と無効化を実行でき、さらに単一エンティティとして測定できます。これらの作業は、Database Configuration Assistant(DBCA)、Net Configuration Assistant(NetCA)およびOracle Enterprise Managerなどの標準的なツールを使用して実行できます。Enterprise Managerは、表示と操作に関するサービスを全体としてサポートし、必要な場合はインスタンス・レベルへのドリルダウンをサポートしています。

Oracle Real Application Clusters(Oracle RAC)環境では、サービスは1つ以上のインスタンスにまたがり、トランザクション・パフォーマンスに基づいたワークロードの均衡化に役立ちます。これによって、エンドツーエンドの無人リカバリ、ワークロードによるロール変更、位置の完全な透過性が可能となります。また、Oracle RACを使用すると、Enterprise Manager、DBCAおよびServer Control Utility(SRVCTL)で複数のサービス機能を管理できます。

サービスは、パフォーマンス・チューニングに追加のディメンションも提供します。すべてのセッションを匿名で共有している大部分のシステムでは、「サービスとSQL」によるチューニングで「セッションとSQL」によるチューニングを置換できます。サービスを使用することで、ワークロードが表示可能および測定可能となります。リソースの使用と待機は、アプリケーションがその起因となっています。また、サービスに割り当てたリソースは、ロードの増減にあわせて調整できます。この動的なリソース割当てによって、要求の発生に対応した費用効率の高いソリューションが可能となります。たとえば、サービスを自動的に測定し、そのパフォーマンスをサービス・レベルのしきい値と比較できます。パフォーマンス違反はEnterprise Managerにレポートされるため、自動ソリューションまたはスケジュールされたソリューションを実行できます。

Oracle Database機能のいくつかは、サービスをサポートしています。自動ワークロード・リポジトリ(AWR)は、サービスのパフォーマンスを管理します。AWRには、実行時間、待機クラスおよびサービスで使用されたリソースも含めて、サービスのパフォーマンスが記録されます。AWRは、サービス応答時間がしきい値を超えた場合、警告をアラートします。動的なビューには、現在のサービス・パフォーマンスのメトリックが時間の履歴単位でレポートされます。各サービスには、応答時間とCPU使用に関するサービス品質のしきい値があります。

さらに、データベース・リソース・マネージャでは、サービスをコンシューマ・グループにマッピングできます。これによって、サービスの優先度を他のサービスと関連させて自動的に管理できます。コンシューマ・グループを使用すると、比率またはリソース使用量の観点から相対的な優先順序を定義できます。詳細は、第27章「Oracle Database Resource Managerを使用したリソースの管理」および具体的には「コンシューマ・グループへのセッションのマッピング・ルールの指定」を参照してください。

また、サービスのエディション属性を指定することもできます。エディションを使用すると、データベース内に同じオブジェクトの複数のバージョンを保持できます。あるサービスにエディション属性を指定すると、そのサービスを指定する後続のすべての接続が、このエディションを初期セッション・エディションとして使用します。詳細は、「データベース・サービスのエディション属性の設定」を参照してください。

エディションをサービス属性として指定すると、リソース使用の管理が容易になります。たとえば、1つのエディションに関連付けられた複数のサービスを1つのOracle RAC環境における個別のインスタンスに配置でき、データベース・リソース・マネージャは、リソース・プランを対応するサービスに関連付けることによって、異なるエディションで使用されているリソースを管理できます。

サービスには、アプリケーション、アプリケーション機能およびデータの範囲が、機能サービスまたはデータ依存サービスとして記述されています。機能サービスは最も一般的なワークロードのマッピングです。特定の機能を使用する複数のセッションはまとめてグループ化されます。これに対して、データ依存ルーティングは、データ・キーに基づいてセッションをサービスにルーティングします。作業要求のサービスへのマッピングは、アプリケーション・サーバーとTPモニターのオブジェクト関連マッピング・レイヤーで発生します。たとえば、Oracle RACでは、データベースが共有されているため、これらの範囲は要求に基づいて完全に動的にできます。

また、Oracle RACデータベースには、事前接続のアプリケーション・サービスを定義できます。事前接続のサービスは、複数のインスタンスにまたがって、障害時にサービスをサポートします。この事前接続のサービスは、TAF事前接続モードをサポートし、Oracle RAC使用時には透過的に管理されます。

アプリケーションにより使用されるサービスに加えて、Oracle Databaseでは、2つの内部サービスもサポートされています。SYS$BACKGROUNDはバックグラウンド・プロセスのみで使用され、SYS$USERSはサービスに関連していないユーザー・セッションに対するデフォルトのサービスです。

サービスを使用するために、アプリケーション・コードを変更する必要はありません。クライアント側の作業は、指定したサービスへ接続できます。Oracle Scheduler、パラレル実行、Oracle Streamsアドバンスト・キューイングなどのサーバー側での作業では、ワークロード定義の一部としてサービス名を設定します。サービス下で実行される作業要求は、そのサービスのパフォーマンスしきい値を継承し、サービスの一部として測定されます。

Oracle Schedulerでは、ジョブ・クラスの作成時にオプションでサービスを割り当てることができます。実行中に複数のジョブがジョブ・クラスに割り当てられ、サービス内で複数のジョブ・クラスを実行できます。ジョブ・クラスとともにサービスを使用することで、ジョブ・スケジューラによって実行される作業が、ワークロード管理とパフォーマンス・チューニングに対して示されます。

パラレル問合せとパラレルDMLの場合、問合せコーディネータは他のクライアントと同じようにサービスに接続します。パラレル問合せプロセスは、実行中そのサービスを継承します。問合せが終了した時点で、パラレル実行プロセスはデフォルトのサービスに戻ります。


関連項目:

  • Oracle Schedulerの詳細は、第29章「Oracle Schedulerを使用したジョブのスケジューリング」を参照してください。

  • Oracle RAC環境でのサービスの利用の詳細は、『Oracle Real Application Clusters管理およびデプロイメント・ガイド』を参照してください。

  • サービスへの接続の詳細は、『Oracle Database Net Services管理者ガイド』を参照してください。


データベース・サービスの作成

データベース・サービスの作成方法はデータベースの構成によっていくつかあります。

データベース・サービスの作成方法は、次のとおりです。

  • 単一インスタンスのデータベースをOracle Restartで管理している場合は、SRVCTLユーティリティを使用してデータベース・サービスを作成します。

    srvctl add service -d db_unique_name -s service_name
    
  • Oracle Restartで管理していない単一インスタンスのデータベースでは、以下をいずれかを実行します。

    • SERVICE_NAMESパラメータに希望するサービス名を追加します。

    • DBMS_SERVICE.CREATE_SERVICEパッケージ・プロシージャをコールします。

  • (オプション)サービス属性をOracle Enterprise ManagerまたはDBMS_SERVICE.MODIFY_SERVICEで定義します。


関連項目:

  • Oracle Restartの詳細は、第4章「Oracle Databaseの自動再起動の構成」を参照してください。

  • DBMS_SERVICEパッケージの詳細は、『Oracle Database PL/SQLパッケージ・プロシージャおよびタイプ・リファレンス』を参照してください。

  • Oracle RAC環境でのサービスの作成の詳細は、『Oracle Real Application Clusters管理およびデプロイメント・ガイド』を参照してください。


データベース・サービスのデータ・ディクショナリ・ビュー

サービス情報は、次のサービス固有のビューで参照できます。

  • DBA_SERVICES

  • ALL_SERVICESまたはV$SERVICES

  • V$ACTIVE_SERVICES

  • V$SERVICE_STATS

  • V$SERVICE_EVENT

  • V$SERVICE_WAIT_CLASSES

  • V$SERV_MOD_ACT_STATS

  • V$SERVICE_METRICS

  • V$SERVICE_METRICS_HISTORY

次の追加ビューにも、サービスに関する情報が表示されます。

  • V$SESSION

  • V$ACTIVE_SESSION_HISTORY

  • DBA_RSRC_GROUP_MAPPINGS

  • DBA_SCHEDULER_JOB_CLASSES

  • DBA_THRESHOLDS


関連項目:

これらのビューの詳細は、『Oracle Databaseリファレンス』を参照してください。