8.1 Oracleデータベースのワークロードを管理するためのOracle Database QoS Managementの構成

Oracle Database Quality of Service (QoS) Managementを使用する前に、データベースを構成する必要があります。

Oracle Database QoS Managementと連携するためにOracle RACデータベースを構成する場合、サーバー・プール構成タスクは管理者管理型データベースに必要ありません。

  1. ポリシー管理型データベースの場合、データベース管理者(DBA)は、データベースで使用するサーバー・プールへのアクセスをリクエストします。クラスタ管理者はDBA用のサーバー・プールを作成し、そのサーバー・プールへのアクセス権限をDBAに付与します。クラスタ管理者ユーザーがDBAユーザーと同じ場合は、DBCAでポリシー管理オプションを選択することにより、DBCAの実行時にサーバー・プールを作成できます。サーバー・プールは、インストール後にServer Control(SRVCTL)を使用して作成することもできます。

    このサーバー・プールの最小サイズはデータベース・インスタンス数です。サーバー・プールの最大サイズが最小サイズより大きい場合は、ピーク・ワークロードを処理するため、または拡張に対応するために、データベースに新しいインスタンスを追加できます。

    管理者管理型データベースの場合、データベースは自動的に構成され、汎用サーバー・プールで実行されます。

  2. ポリシー管理型データベースの場合、DBAは、DBCAでポリシー管理オプションを選択して、割り当てられたサーバー・プール内にOracle RACデータベースを作成します。
  3. DBAは、Oracle Clusterwareで管理されるデータベース・サービスを作成します。アプリケーション・ユーザーは、それらのサービスを使用してデータベースに接続します。
  4. DBAは、Enterprise Manager Cloud Controlを使用して、データベースでOracle Database QoS Managementを有効にします。

Oracle Database QoS Management管理者の初期構成タスクについては、次の各項で詳細に説明します。

Oracle Solarisプラットフォームの場合、追加の考慮事項があります: 「SolarisおよびQuality of Service ManagementでのマルチCPUバインディングについて」

8.1.1 クラスタ用Oracle Grid Infrastructureのインストールおよび構成

クラスタ用Oracle Grid Infrastructureのインストールおよび構成は、本書の対象外です。

8.1.2 サーバー・プールの作成および構成

デフォルトでは、Oracle Grid Infrastructureのインストール中に、空きプールと呼ばれるサーバー・プールが作成されます。Oracle RACデータベース用のサーバー・プールを作成するには、SRVCTLまたはOracle Enterprise Managerを使用できます。

DBCAを使用してOracle RACデータベースを作成する場合は、データベースをポリシー管理することを選択し、データベース・インスタンスを実行するサーバー・プールを選択することをお薦めします。管理者管理型Oracle RAC データベースの作成を選択すると、データベースは、Oracle Grid Infrastructureのインストール中に作成される汎用サーバー・プールで排他的に実行されます。

クラスタ管理者がデータベース管理者と異なる場合は、クラスタ管理者ユーザーのみがサーバー・プールを作成できます。クラスタ管理者は、インストールされたOracle RACを所有するオペレーティング・システム・ユーザーに、サーバー・プールに対する権限を付与します。

注意:

Oracle Database QoS Managementで使用するサーバー・プールを作成するときに、サーバー・プールのSERVER_NAMES属性(srvctl add svrpoolコマンドまたはsrvctl modify svrpoolコマンドの-serversオプション)を構成しないでください。Oracle Database QoS Managementはサーバー・プール・サイズを変更できないため、完全なリソース管理はそのような構成でサポートされません。これは、管理者管理型データベースのリソース管理に存在する制限と同じです。

関連項目:

8.1.3 Oracle RACデータベースの作成および構成

Oracle RACデータベースの作成および構成の手順は、本書の対象外です。

データベースを作成する場合、ポリシー管理型Oracle RACデータベースを作成し、実行するサーバー・プールを指定することをお薦めします。管理者管理型Oracle RACデータベースを作成する場合、汎用サーバー・プールで排他的に実行されます。

データベースの作成後、次の手順を実行して、Oracle Database QoS Managementで使用するようにデータベースを構成します。

8.1.3.1 データベース初期化パラメータの変更

データベースがOracle Database QoS Managementで管理される場合、サーバー・プールで実行される各データベース・インスタンスのCPU_COUNTパラメータを同じ値に設定する必要があります。

各サーバーで実行されるすべてのデータベース・インスタンスのCPU_COUNT値の合計を、物理CPU数以下にする必要があります。たとえば、8つのCPUを持つサーバーがあり、このサーバーで2つのデータベース・インスタンスが実行されている場合は、Oracle Database QoS Managementで管理するデータベースに対して、サーバー上のすべてのデータベース・インスタンスのCPU_COUNTパラメータ値の合計が8以下になるように各インスタンスのCPU_COUNTパラメータを設定する必要があります。たとえば、あるインスタンスでCPU_COUNT=3、もう一方のインスタンスでCPU_COUNT=4と設定するか、あるインスタンスでCPU_COUNT=6、もう一方のインスタンスでCPU_COUNT=2と設定します。

注意:

デフォルトでは、サーバーで起動される各データベースのCPU数は、そのサーバーにインストールされている物理CPU数に設定されます。

サーバー・プールで複数のデータベースを実行している場合、CPU_COUNTにデフォルト設定を使用すると、Oracle Database QoS Managementで違反がレポートされます。このエラーを回避するため、Oracle Enterprise ManagerまたはSQL*Plusを使用して、SPFILEのCPU_COUNT値を手動で構成します。

  • SQL*Plusを使用して、Oracle RACデータベースのすべてのインスタンスのCPU_COUNTデータベース初期化パラメータを変更します。
    ALTER SYSTEM SET cpu_count=n SCOPE=BOTH SID='*';
    

    前のコマンドで、nは、データベース・インスタンスで使用されるCPUの数です。

    CPU_COUNTは、デフォルトでは設定されない動的パラメータです。この値は、データベース・インスタンスが常に利用する最大CPU数に設定する必要があります。サーバー上のすべてのインスタンスのCPU_COUNT値の合計が、そのサーバーの物理CPU数を超えることはできません。CPU_COUNTには、最小値の2を使用することをお薦めします。

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

アプリケーションおよびユーザーは、サービスを使用して、データベースに接続します。

データベース・サービスの作成の詳細は、本書の対象外です。

8.1.4 Oracle Database QoS Management管理者のアカウントの作成

Oracle Database QoS Managementダッシュボード(ダッシュボード)にログインする前に、Oracle Database QoS Management管理ユーザーを作成する必要があります。この設定を初めて行うときは、このアカウントに関連付けられているオペレーティング・システム・ユーザーがクラスタ管理者である必要があります。

Oracle Database QoS Managementサーバーの管理ユーザーは、QoS Adminユーザーと呼ばれます。このユーザーは、QoS Adminユーザーのアカウント・パスワードのチェックや変更など、Oracle Database QoS Managementサーバーのすべての機能にアクセスできます。複数のQoS Adminユーザーを作成することもできます。

  1. クラスタ管理者ユーザーとして、Oracle Database QoS Managementサーバーをホスティングしているノードにログインします。このノードは、Oracle Grid Infrastructureのホームで次のコマンドを使用して判断できます。
    srvctl status qosmserver
    
  2. Oracle Database QoS Managementサーバー・リソースを停止します。
    srvctl stop qosmserver
    
  3. CRS管理者ユーザーとしてログオンし、次のコマンドを入力します。
    qosctl qosadmin -setpasswd qosadmin
    

    このコマンドを入力すると、デフォルトのQoS Adminユーザーのパスワードの入力を1回以上求められます。

    別のユーザー名を使用する場合、次のコマンドを入力します。

    qosctl qosadmin -adduser username
    

    この例では、次のようになります。

    • qosadminは、デフォルトのQoS Adminユーザーの名前です。

    • usernameは、作成するQoS Adminユーザーの名前です。このユーザーのパスワードの入力を求められます。

  4. Oracle Database QoS Managementサーバー・リソースを再起動します。
    srvctl start qosmserver
    

8.1.5 Oracle Database QoS Managementの有効化

同一クラスタ上で複数のデータベースが実行されている場合、どのデータベースをOracle QoS Managementで管理するかを指定できます。

階層方法でOracle Database QoS Managementを有効化します。

  • クラスタの測定、監視または管理

  • クラスタで実行される個々のデータベースの測定、監視または管理

データベースを管理するには、次の場合に同じユーザー定義サーバー・プールを使用するすべてのデータベースをOracle Database QoS Managementに対して有効化する必要があります。

  • ユーザー定義サーバー・プールの1つ以上のパフォーマンス・クラスがアクティブ・ポリシーで「測定のみ」とマークされていない

  • データベースがホストするサービスを含むパフォーマンス・クラスが存在する

Oracle Database QoS Managementに対して同じユーザー定義サーバー・プールのすべてのデータベースを有効化せず、上記のいずれかの条件が存在する場合、データベースのダッシュボードにアクセスしようとすると、違反が通知されます。ユーザー定義サーバー・プールのすべてのパフォーマンス・クラスが測定のみモードまたは監視モードであり、パフォーマンス・クラスがホストされたサービスを指定していない場合、データベースのダッシュボードにアクセスしても違反は報告されません。

注意:

Oracle QoS Managementを有効化してコンテナ・データベース(CDB)を監視または管理する場合、すべての含まれるプラガブル・データベース(PDB)も監視または管理されます。Oracle QoS Managementを構成して個々のPDBを監視または管理できません。

システムでOracle QoS Managementを有効にするには、次の手順を実行します。

  1. データベース・レベルでのOracle QoS Managementの有効化
  2. 初期ポリシー・セットの作成
  3. クラスタ・レベルでのOracle QoS Managementの有効化

8.1.5.1 データベース・レベルでのOracle QoS Managementの有効化

  1. Oracle Enterprise Manager Cloud Controlにデータベース管理者としてログインします。
  2. 「データベース・ターゲット」ページから、変更するデータベースを選択します。
  3. 「可用性」「サービスのクオリティ管理の有効化/無効化」の順に選択します。
  4. 「クラスタ資格証明」および「データベース資格証明」に入力し、「ログイン」をクリックします。

    注意:

    この手順を完了するには、SYSDBAとクラスタ管理者アカウント両方のログイン情報を指定する必要があります。

    「QoS管理を有功化/無効化」画面が表示されます。

  5. APPQOSSYSユーザーのパスワードの入力を求められます。選択したパスワードを「パスワード」フィールドおよび「パスワードの確認」フィールドに入力し、「OK」をクリックします。

    パスワードを入力すると、次の処理が行われます。

    • Oracle Database QoS Managementサーバーがデータベースに接続できるようにするAPPQOSSYSアカウントがロック解除され、新しいパスワードが設定されます。

    • Oracle Database QoS Managementがデータベースにログインできるようにするための資格証明が、Oracle Cluster Registryに格納されているOracle Walletに書き込まれます。

  6. アクティブに管理されているすべてのデータベースでAPPQOS_PLANがアクティブなOracle Database Resource Managerプランとして設定されているため、Oracle Database QoS Managementはパフォーマンス・クラスのCPUアクセスを調整できます。APPQOS_PLANは、すべてのパフォーマンス・クラスで「測定のみ」が選択されているデータベースでは不要です。

8.1.5.2 初期ポリシー・セットの作成

  1. Oracle Enterprise Manager Cloud Controlの「すべてのターゲット」ページで、Oracle Database QoS Managementが有効なクラスタ・データベースを実行しているクラスタを選択します。
  2. 「管理」「サービスのクオリティ管理」「ポリシー・セットの作成」の順に選択します。
  3. QoS Management管理者のパスワード(デフォルトのユーザー名はqosadmin)を使用して、Oracle Database QoS Managementサーバーにログインします。
  4. ポリシー・セットの作成ウィザードの最初のページで、データベースを表すサーバー・プールの横の「管理」ボックスを選択します。たとえば、onlinebackofficeなどです。「次へ」をクリックします。
  5. Oracle Database QoS Managementを開始するには、初期構成のデフォルトを受け入れ、ウィザードの各ページで「次へ」をクリックしてデフォルトのポリシー設定を使用します。5番目のステップでは、「ポリシーの設定」をクリックしてDefaultPolicyを「選択されたアクティブ・ポリシー」として設定し、「次へ」をクリックします。

    ポリシー・セットの作成ウィザードの最後のステップで、「ポリシー・セットの発行」をクリックします。

8.1.5.3 クラスタ・レベルでのOracle QoS Managementの有効化

  1. Oracle Enterprise Manager Cloud Controlを使用して、「すべてのターゲット」ページでOracle Database QoS Managementが有効なクラスタ・データベースを実行しているクラスタを選択します。
  2. 「管理」「サービスのクオリティ管理」「ダッシュボード」の順に選択します。
  3. Oracle Database QoS Managementユーザー(qosadminなど)としてログインします。
  4. ダッシュボード・ページの「一般」セクションに、Oracle Database QoS Managementの現在のステータスが表示されます。新規システムでは、ステータスは「無効」です。ステータスの横にある「無効」リンクをクリックして、このクラスタでOracle Database QoS Managementを有効にします。

8.1.6 SolarisおよびQuality of Service ManagementでのマルチCPUバインディングについて

マルチCPUバインディング(MCB)およびOracle Database Quality of Service (QoS) Managementを一緒に使用する場合、システム管理者とデータベース管理者(DBA)の間の密接な連携が必要です。

マルチCPUバインディング(MCB)は1つのプロジェクトを特定のCPUセットにバインドするために使用するOracle Solarisプロジェクト・リソース管理の機能ですが、排他的にCPUをバインドすることはありません。MCBでは、他のプロセスでもこれらのCPUを使用でき、パーティションの重複が許可されています。MCBはOracle Solaris 11.3でサポートされています。Linuxシステムの統制グループ(CGroups)は、CPUおよびサーバー・リソースを特定のアプリケーションに割り当ててサーバー・リソースを管理する別のシステム管理者の手段です。

測定および監視モードで使用する場合、MCBは、Oracle Database Quality of Service (QoS) Managementの使用に影響を与えません。サーバーのグループに対して管理モードのOracle Database Quality of Service (QoS) Managementを使用する場合、Oracle QoS Managementが現在サポートしている4つのリソース・コントロールがあります。

  1. コンシューマ・グループ・マッピング: 非CDBまたはPDB内の競合するワークロード間のCPU共有。

  2. コンテナ・データベース(CDB)リソース・プラン: CDB内の競合するPDB間のCPU共有

  3. インスタンス・ケージング: 共同ホストされたデータベース・インスタンス間のCPU/スレッド

  4. サーバー・プール・カーディナリティ: データベースを提供するサーバー・プールのサーバーの数

Oracle Database Quality of Service (QoS) Managementがオペレーティング・システムで適用されないCPU_COUNTの変更を推奨する可能性があるため、インスタンス・ケージングに関してMCBが問題になります。推奨されたアクションがこの状況で実装されると、ドナー・データベースがCPUを失うため、ターゲット・ワークロードへの改善が引き続き存在します。これにより、リソース・マネージャは難しいパーティション化が使用されない場合に役立つ多数のパラレル・セッションをスケジュール設定しません。ただし、予測されるパフォーマンスの向上は誇張されます。