7.1 Oracle Database QoS Managementでサポートされる構成

Oracle Database QoS Managementを使用するには、システムが特定の要件を満たしている必要があります。また、アプリケーションとデータベース接続が特定の標準に従っている必要もあります。

サポートされている構成を使用しない場合、Oracle Database QoS Managementは構成違反をレポートし、無効になります。

7.1.1 サポートされるサーバー・プール構成

Oracle Database Quality of Service (QoS) Managementでクラスタのリソースを管理する前に、パフォーマンス・ポリシーでサーバー・プールを管理対象としてマークする必要があります。サーバー・プールがOracle Database QoS Managementで管理されていない場合、そのサーバー・プールはOracle Database QoS Managementサーバーから参照できません。マークされていないサーバー・プール内のワークロードまたはリソースは、Oracle Database QoS Managementによって管理されません。

サーバー・プールにデータベース・インスタンスが含まれていない場合、または現在のサイズがゼロの場合でも、Oracle Database QoS Managementで管理するサーバー・プールを選択できます。これにより、ワークロードが開始する前に、Oracle Database QoS Managementで管理するサーバー・プールを事前に構成できます。また、サーバー・プールの最小サイズをゼロに構成した場合、Oracle Database QoS Managementはそのサーバー・プールからサーバーを削除して、より優先度の高いワークロードにリソースを提供できます。この場合は、サーバー・プールにOracle Database QoS Managementで管理するリソースがなくても、そのサーバー・プールで実行されているワークロードは引き続き監視され、可能な場合にはワークロードをサポートするためにそのサーバー・プールにリソースが割り当てられます。

7.1.2 サポートされるデータベース構成

データベース構成に応じて、Oracle Database QoS Managementのすべての機能または一部の機能のみを使用できます。

Oracle Database QoS Managementのすべての機能は、Oracle Database 12cリリース2のソフトウェアを実行しているOracle RACデータベース用に使用できます。Oracle Database 11gリリース2およびOracle Database 12cリリース1のOracle RACデータベースの場合、Oracle RACデータベースはポリシー管理型データベースである必要があります。測定のみまたは監視(12.1.0.2)モードでのみOracle Database QoS Managementを使用できます。

ポリシー管理型データベースの場合、データベース・サービスはUNIFORMサービスとして作成する必要があります。これは、指定されたサーバー・プールで実行されている使用可能なすべてのインスタンスによって、サービスが提供されることを意味します。アプリケーションでSINGLETONサービスが必要な場合、Oracle Database QoS Managementを管理モードで使用するために、最大サイズを持つサーバー・プールでサービスを実行する必要があります。最大サイズが1より大きいサーバー・プールでSINGLETONサービスを使用すると、Oracle Database QoS Managementは構成違反をレポートします。このデータベースの管理モードに測定のみが選択されている場合、任意の構成でSINGLETONサービスを使用できます。

Oracle Database QoS Managementでは、サーバー・プールを共有する複数のデータベースがサポートされます。同一のサーバー・プールを使用する複数のデータベースでは、パフォーマンス・クラスがすべてのデータベースで定義済の場合、そのサーバー・プールを使用するそれぞれのデータベースでOracle Database QoS Managementを有効化する必要があります。Oracle Database QoS Managementでは、Oracle RAC One Nodeデータベース(singleton databasesと呼ばれることもある)もサポートしますが、パフォーマンス・グループが管理され、測定のみまたは監視されているのではない場合、これらのデータベースは、最大サイズを持つユーザー・プールを使用する必要があります。

データベースを作成する場合、データベース・インスタンスのCPU_COUNT初期化パラメータのデフォルト値は、インスタンスが実行されている各ノード上の物理的なCPUの数に設定されます。同じノードに複数のデータベース・インスタンスがあり、パフォーマンス・グルが管理モードである場合は、各インスタンスのCPU_COUNTの値を調整して、ノードで実行されている各インスタンスのCPU_COUNTの合計が、そのノード上の物理的なCPUの数以下になるようにする必要があります。また、CPU_COUNTの値はデータベースのすべてのインスタンスに対して同じである必要があります。たとえば、両方のインスタンスが同じサーバー・プールにある場合、salesデータベースで、sales1インスタンスに対してCPU_COUNTを4に設定し、sales2インスタンスに対してCPU_COUNTを2に設定することはできません。

Oracle Database 12cリリース2 (12.2)以降、Oracle Database QoS Managementは、マルチテナント・データベースの完全なサポートを提供します。マルチテナント・アーキテクチャでは、Oracle Databaseはマルチテナント・コンテナ・データベース(CDB)として機能します。CDBは、ユーザーが作成した0以上のプラガブル・データベース(PDB)を含みます。PDBは、Oracle Netクライアントに非CDBとして表示されるスキーマ、スキーマ・オブジェクトおよび非スキーマ・オブジェクトのポータブル・コレクションです。Oracle Database 12cより前のOracle Databaseはすべて非CDBでした。

Oracleマルチテナント・オプションでは、既存のスキーマまたはアプリケーションを変更することなくデータおよびコードを統合できます。Oracle Netで接続しているクライアントから、PDBと非CDBの動作が同じように見えます。完全な非CDBで動作する操作は、完全なCDBの場合と同様に動作します(Oracle Data Guardとデータベースのバックアップおよびリカバリの使用時など)。したがって、非CDBのユーザー、管理者および開発者は、データベースの統合後に実質的に同じ経験をします。ハードウェアを統合し、データベース・メモリーおよびファイルを共有することによって、ハードウェア、記憶域、可用性および作業のコストを削減します。たとえば、1つのサーバー上の100のPDBが、1つのデータベース・インスタンスと1つのデータベース・ファイルのセットを共有できることで、必要なハードウェアや人員を減らせます。

Oracle Database QoS Managementは次をサポートします。

  • PDBで実行されているパフォーマンス・クラスのCPU共有を調整したプラガブル・データベース(PDB)内のスキーマの統合

  • 同じマルチテナント・コンテナ・データベース(CDB)内の異なるPDB間のCPU共有を調整したデータベース統合

  • サーバー・プール・サイズを変更した同じ物理サーバーでホストされるすべてのCDBのCPU数およびCDBインスタンスの合計数を調整した複数のCDBの統合(ポリシー管理型データベースを使用する場合)

この機能は、Oracle Enterprise Manager Cloud ControlのOracle Database QoS Managementのページにシームレスに統合されています。

7.1.3 サポートされるサービス構成

Oracle Database QoS Managementには、Oracle Clusterwareで管理されているデータベース・サービスが必要です。Oracle Database QoS Managementで管理されているすべてのワークロードは、Oracle Clusterwareで管理されているデータベース・サービスを使用してデータベースに接続する必要があります。デフォルトのデータベース・サービスは使用できません。デフォルトのデータベース・サービスは、Oracle Clusterwareで管理されていません。

データベースへの接続に使用されるサービスはUNIFORMである必要があります。アプリケーションにSINGLETONサービスが必要な場合、Oracle Database QoS Managementを使用するには、最大サイズが1のサーバー・プールでサービスが実行されている必要があります。

Oracle RAC高可用性フレームワークは、データベースとそのサービスを監視し、高速アプリケーション通知(FAN)を使用してイベント通知を送信します。Oracle ClusterwareとOracle Net Servicesは、サービス構成で指定されたルールに従ってサービスのロード・バランシングを行います。これらのルールは次のとおりです。

  • 接続ロード・バランシングの目標: インスタンスの現在のワークロードと接続のタイプ(LONGまたはSHORT)を使用して接続がインスタンスにルーティングされ、最高のパフォーマンスを実現できるインスタンスが判断されます。Oracle Database QoS Managementでは、新規サーバーがサービスのサーバー・プールに割り当てられている場合に新規接続が新規サーバーにより高速に移行するように、接続ロード・バランシングの目標をLONGに設定する必要があります。接続を新規サーバーにより迅速に移行することで、ワークロードは使用可能なすべてのインスタンスにより高速に分散され、ワークロードのレスポンス時間がより高速に向上します。

  • ランタイム接続ロード・バランシングの目標: ロード・バランシング・アドバイザ・データを使用して、サービスに対して指定されている目標を最もよく満たしているインスタンスが判断されます。2つの目標は、SERVICE_TIME(ロード・バランシング・アドバイザ・データはインスタンス内で行われた作業の経過時間に基づきます)とTHROUGHPUT(ロード・バランシング・アドバイザ・データはインスタンス内で作業が完了する速度に基づきます)です。Oracle Database QoS Managementでは、オプションで最大サイズが1のサーバー・プールを除き、サーバー・プールを使用するすべてのデータベース・サービスに対してランタイム接続ロード・バランシングの目標をSERVICE_TIMEに設定する必要があります。

ランタイム接続のロード・バランシングは、Oracle RACデータベース内のインスタンス間で接続リクエストのバランスをとる方法について接続プールにアドバイスを送信します。ロード・バランシング・アドバイザは、受信した作業に対して最適なサービス・クオリティを提供するインスタンスにその作業を転送する方法についてのアドバイスも提供します。これにより、後で作業を再配置する必要性が最小化されます。

サービスのロード・バランシング目標を構成するには、次の例で示すServer Control(SRVCTL)ユーティリティまたはEnterprise Managerを使用します。

srvctl modify service -db db_name -service service_name -rlbgoal SERVICE_TIME -clbgoal LONG

7.1.4 サポートされるワークロードと目標のタイプ

Oracle Database QoS Managementでサポートされるデータベースのワークロードと目標のタイプを確認します。

Oracle Database QoS Managementの初期リリースでは、オンライン・トランザクション処理(OLTP)ワークロードのみサポートされます。サポートされるパフォーマンス目標は、データベース・リクエストの平均レスポンス時間のみです。Oracle Database QoS Managementは、オープン・ワークロード、つまり要求がレスポンス時間に依存しないワークロードを管理するように設計されています。

アプリケーション・ワークロードのデータベース・リクエストは、平均レスポンス時間が1秒未満である必要があり、平均時間が0.5秒未満であることが理想です。パフォーマンス・クラス内の各データベース・リクエストは、リソース使用率が同質である必要があります。ワークロードのデータベース・リクエストのサブセットが他のリクエストよりも非常に多くのリソースを使用する場合、新しいパフォーマンス・クラスを作成して、より多くのリソースを必要とするデータベース・リクエストを含める必要があります。

Oracle Database QoS Managementでは、パラレル問合せを含むワークロードはサポートされません。デフォルトでは、パラレル問合せは、データベースへの接続に使用されたサービスに関係なく、データベースのすべての使用可能インスタンスで実行されます。そのため、ワークロードが含まれていないか、サービスを提供するインスタンスのみでの実行に制限されます。同様の理由で、Oracle Database QoS Managementでは、GV$ビューへの問合せを伴う大量のデータベース・リクエストを含むワークロードはサポートされません。

Oracle Database QoS Managementで管理されるワークロードでは、データベース接続にOracle Clusterwareで管理されているデータベース・サービスを使用する必要があります。接続を開始するクライアントまたはアプリケーションは、JDBC(シックまたはシン)クライアント、つまりOCIクライアントである必要があります。データベースへのbequeath接続を使用するワークロードは、Oracle Database QoS Managementで管理されません。