8.1 Oracleデータベースのワークロードを管理するためのOracle Database QoS Managementの構成
Oracle Database Quality of Service (QoS) Managementを使用する前に、データベースを構成する必要があります。
- データベースの構成
Oracle Database QoS Managementと連携するためにOracle RACデータベースを構成する場合、サーバー・プール構成タスクは管理者管理型データベースに必要ありません。 - クラスタ用のOracle Grid Infrastructureのインストールおよび構成
クラスタ用のOracle Grid Infrastructureのインストールおよび構成については、このマニュアルでは扱いません。 - サーバー・プールの作成および構成
デフォルトでは、Oracle Grid Infrastructureのインストール中に、空きプールと呼ばれるサーバー・プールが作成されます。 - Oracle RACデータベースの作成および構成
Oracle RACデータベースの作成および構成のステップは、本書の対象外です。 - Oracle Database QoS Management管理者のアカウントの作成
Oracle Database QoS Managementダッシュボード(ダッシュボード)にログインする前に、Oracle Database QoS Management管理ユーザーを作成する必要があります。この設定を初めて行うときは、このアカウントに関連付けられているオペレーティング・システム・ユーザーがクラスタ管理者である必要があります。 - Oracle Database QoS Managementの有効化
同じクラスタ上で複数のデータベースが実行されている場合は、Oracle QoS Managementで管理するデータベースを指定できます。 - SolarisおよびQuality of Service ManagementでのマルチCPUバインディングについて
マルチCPUバインディング(MCB)およびOracle Database Quality of Service (QoS) Managementを一緒に使用する場合、システム管理者とデータベース管理者(DBA)の間の密接な連携が必要です。
8.1.1 データベースの構成
Oracle Database QoS Managementと連携するためにOracle RACデータベースを構成する場合、サーバー・プール構成タスクは管理者管理型データベースに必要ありません。
Oracle Database QoS Management管理者の初期構成タスクについては、次の各項で詳細に説明します。
Oracle Solarisプラットフォームの場合は、その他の考慮事項があります。
8.1.2 クラスタ用Oracle Grid Infrastructureのインストールおよび構成
クラスタ用Oracle Grid Infrastructureのインストールおよび構成は、本書の対象外です。
8.1.3 サーバー・プールの作成および構成
デフォルトでは、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はサーバー・プール・サイズを変更できないため、完全なリソース管理はそのような構成でサポートされません。これは、管理者管理型データベースのリソース管理に存在する制限と同じです。
関連項目:
-
サーバー・プールの詳細は、『Oracle Clusterware管理およびデプロイメント・ガイド』を参照してください。
-
SRVCTLを使用したサーバー・プールの作成の詳細は、『Oracle Real Application Clusters管理およびデプロイメント・ガイド』を参照してください。
-
DBCAを使用したOracle RACデータベースの作成の詳細は、『Oracle Real Application Clustersインストレーション・ガイド for Linux and UNIX』を参照してください。
-
クラスタ管理者ユーザーの詳細は、『Oracle Clusterware管理およびデプロイメント・ガイド』を参照してください。
8.1.4 Oracle RACデータベースの作成および構成
Oracle RACデータベースの作成および構成のステップは、本書の対象外です。
データベースを作成する場合、ポリシー管理型Oracle RACデータベースを作成し、実行するサーバー・プールを指定することをお薦めします。管理者管理型Oracle RACデータベースを作成する場合、汎用サーバー・プールで排他的に実行されます。
データベースの作成後、次のステップを実行して、Oracle Database QoS Managementで使用するようにデータベースを構成します。
- データベース初期化パラメータの変更
データベースがOracle Database QoS Managementで管理される場合、サーバー・プールで実行される各データベース・インスタンスのCPU_COUNT
パラメータを同じ値に設定する必要があります。 - データベース・サービスの作成
アプリケーションおよびユーザーは、サービスを使用して、データベースに接続します。
8.1.4.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
値を手動で構成します。
親トピック: Oracle RACデータベースの作成および構成
8.1.5 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ユーザーを作成することもできます。
8.1.6 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を有効にするには、次のステップを実行します。
8.1.7 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つのリソース・コントロールがあります。
-
コンシューマ・グループ・マッピング: 非CDBまたはPDB内の競合するワークロード間のCPU共有。
-
コンテナ・データベース(CDB)リソース・プラン: CDB内の競合するPDB間のCPU共有
-
インスタンス・ケージング: 共同ホストされたデータベース・インスタンス間のCPU/スレッド
-
サーバー・プール・カーディナリティ: データベースを提供するサーバー・プールのサーバーの数
Oracle Database Quality of Service (QoS) Managementがオペレーティング・システムで適用されないCPU_COUNT
の変更を推奨する可能性があるため、インスタンス・ケージングに関してMCBが問題になります。推奨されたアクションがこの状況で実装されると、ドナー・データベースがCPUを失うため、ターゲット・ワークロードへの改善が引き続き存在します。これにより、リソース・マネージャは難しいパーティション化が使用されない場合に役立つ多数のパラレル・セッションをスケジュール設定しません。ただし、予測されるパフォーマンスの向上は誇張されます。