4.4 Oracle RACのパフォーマンスの問題の事前検出と診断
Oracle Cluster Health Advisorでは、システム管理者およびデータベース管理者に、Oracle RACデータベースおよびクラスタ・ノードに関する保留中のパフォーマンス問題と根本原因、および修正処理について早期に警告します。Oracle Cluster Health Advisorを使用して、可用性とパフォーマンス管理を向上させます。
Oracle Cluster Health Advisorは、デフォルト・モデルに基づいて、観測した入力の予測値を推定します。デフォルト・モデルは、ターゲット・システムの通常操作期間に基づいてトレーニングされた調整モデルです。次にOracle Cluster Health Advisorは、観測された値と予測された値の差異に基づいて、各入力に関する異常検出を実行します。Oracle Cluster Health Advisorは、特定の問題に関連付けられている入力の異常が十分な量になると、警告を発行し、対象を絞った診断および修正処理がただちに生成されます。
また、Oracle Cluster Health Advisorは、Oracle Clusterwareイベント通知プロトコルを使用して、警告メッセージをEnterprise Manager Cloud Controlに送信します。
Oracle Exadataシステムのパフォーマンスと可用性の問題を検出するOracle Cluster Health Advisorの機能が、このリリースで改善されました。
Oracle Solaris向けのOracle Cluster Health Advisorサポートによって、Oracle RACデータベース・デプロイメントでパフォーマンスと可用性の問題を早期に検出および予防できるようになりました。
グリッド・インフラストラクチャ管理リポジトリのインストールの詳細は、Oracle® Grid Infrastructure Grid Infrastructureインストレーションおよびアップグレード・ガイド20c for Linuxを参照してください。
- Oracle Cluster Health Advisorのアーキテクチャ
Oracle Cluster Health Advisorは、クラスタ内の各ノードで高可用性クラスタ・リソースochad
として実行されます。 - グリッド・インフラストラクチャ管理リポジトリの削除
GIMRはOracle Database 23cでサポートされなくなりました。GIMRが既存のOracle Grid Infrastructureインストールで構成されている場合は、GIMRを削除します。 - Oracle Cluster Health AdvisorによるOracle Real Application Clusters (Oracle RAC)環境の監視
Oracle Real Application Clusters (Oracle RAC)またはOracle RAC One Nodeデータベースの場合、Oracle Grid Infrastructureがインストールされると、デフォルトで各ノードにOracle Cluster Health Advisorが自動的にプロビジョニングされます。 - 状態診断でのCluster Health Advisorの使用
Oracle Cluster Health Advisorは問題を自律的に提起し、それをクリアします。 - クラスタ・デプロイメントのためのOracle Cluster Health Advisorモデルの調整
ノードおよびデータベースのデフォルトのモデルに付属しているOracle Cluster Health Advisorは、誤った警告通知を生成しないように設計されています。 - Oracle Cluster Health Advisorモデルの詳細の表示
chactl query model
コマンドを使用して、モデルの詳細を表示します。 - Oracle Cluster Health Advisorリポジトリの管理
Oracle Cluster Health Advisorリポジトリには、クラスタ・ホストの問題、データベースの問題、および関連するメトリックの兆候の履歴レコードがモデルとともに格納されます。 - Cluster Health Advisorのステータスの表示
SRVCTLコマンドは、可用性の高いサービスとしてのOracle Cluster Health Advisorのライフ・サイクル管理に対する総合的な制御を提供するツールです。 - Oracle Pluggable DatabasesのCluster Health Advisorサポートの拡張
Cluster Health Advisor(CHA)診断機能は、Oracle Database 23cの256から4KのPDBをサポートするように拡張されました。
親トピック: 診断データの収集
4.4.1 Oracle Cluster Health Advisorのアーキテクチャ
Oracle Cluster Health Advisorは、クラスタ内の各ノードで高可用性クラスタ・リソースochad
として実行されます。
各Oracle Cluster Health Advisorデーモン(ochad
)は、クラスタ・ノード上のオペレーティング・システムを監視し、オプションでノード上の各Oracle Real Application Clusters (Oracle RAC)データベース・インスタンスを監視します。
ochad
デーモンは、クラスタ状態モニターからオペレーティング・システムのメトリック・データを受信し、メモリー・マップ済ファイルからOracle RACデータベース・インスタンスのメトリックを取得します。デーモンには、各データベース・インスタンスへの接続は必要ありません。このデータは、選択したモデルとともに、Oracle Cluster Health Advisorの状態予測エンジンでノードとそれぞれの監視対象データベース・インスタンスの両方に対して使用され、その状態が1分間に複数回分析されます。
4.4.2 グリッド・インフラストラクチャ管理リポジトリの削除
Oracle Database 23cでは、GIMRはサポートされなくなりました。GIMRが既存のOracle Grid Infrastructureインストールで構成されている場合は、GIMRを削除します。
4.4.3 Oracle Cluster Health AdvisorによるOracle Real Application Clusters (Oracle RAC)環境の監視
Oracle Real Application Clusters (Oracle RAC)またはOracle RAC One Nodeデータベースの場合、Oracle Grid Infrastructureがインストールされると、デフォルトで各ノードにOracle Cluster Health Advisorが自動的にプロビジョニングされます。
Oracle Cluster Health Advisorに追加の構成は必要ありません。
Oracle Cluster Health AdvisorでOracle Real Application Clusters (Oracle RAC)またはOracle RAC One Nodeデータベース・インスタンスが実行中であることが検出されると、Oracle Cluster Health Advisorはクラスタ・ノードの監視を自律的に開始します。Gridユーザーとしてログインしている場合は、CHACTLを使用してデータベースの監視をオンにします。
Oracle Real Application Clusters (Oracle RAC)環境を監視するには:
4.4.4 状態診断でのCluster Health Advisorの使用
Oracle Cluster Health Advisorは問題を自律的に提起し、それをクリアします。
Oracle Grid InfrastructureユーザーはCHACTLを使用して、格納されている情報を問い合せることができます。
診断データを問い合せするには:
例4-5 テキストおよびHTML形式のCluster Health Advisorの出力例
oltpacbd
という名前のデータベースに対するchactl query diagnosis
コマンドのデフォルトのテキスト出力を示しています。$ chactl query diagnosis -db oltpacdb -start "2016-02-01 02:52:50" -end "2016-02-01 03:19:15"
2016-02-01 01:47:10.0 Database oltpacdb DB Control File IO Performance (oltpacdb_1) [detected]
2016-02-01 01:47:10.0 Database oltpacdb DB Control File IO Performance (oltpacdb_2) [detected]
2016-02-01 02:52:15.0 Database oltpacdb DB CPU Utilization (oltpacdb_2) [detected]
2016-02-01 02:52:50.0 Database oltpacdb DB CPU Utilization (oltpacdb_1) [detected]
2016-02-01 02:59:35.0 Database oltpacdb DB Log File Switch (oltpacdb_1) [detected]
2016-02-01 02:59:45.0 Database oltpacdb DB Log File Switch (oltpacdb_2) [detected]
Problem: DB Control File IO Performance
Description: CHA has detected that reads or writes to the control files are slower than expected.
Cause: The Cluster Health Advisor (CHA) detected that reads or writes to the control files were slow
because of an increase in disk IO.
The slow control file reads and writes may have an impact on checkpoint and Log Writer (LGWR) performance.
Action: Separate the control files from other database files and move them to faster disks or Solid State Devices.
Problem: DB CPU Utilization
Description: CHA detected larger than expected CPU utilization for this database.
Cause: The Cluster Health Advisor (CHA) detected an increase in database CPU utilization
because of an increase in the database workload.
Action: Identify the CPU intensive queries by using the Automatic Diagnostic and Defect Manager (ADDM) and
follow the recommendations given there. Limit the number of CPU intensive queries or
relocate sessions to less busy machines. Add CPUs if the CPU capacity is insufficent to support
the load without a performance degradation or effects on other databases.
Problem: DB Log File Switch
Description: CHA detected that database sessions are waiting longer than expected for log switch completions.
Cause: The Cluster Health Advisor (CHA) detected high contention during log switches
because the redo log files were small and the redo logs switched frequently.
Action: Increase the size of the redo logs.
タイムスタンプには、特定のホストまたはデータベースで問題が検出された日時が表示されます。
ノート:
同じ問題が別のホストや別の日時にも発生することがありますが、診断には、問題およびその潜在的な影響の完全な詳細が表示されます。問題ごとに、ターゲットを絞った修正または予防措置も表示されます。
$ chactl query diagnosis -start "2016-07-03 20:50:00" -end "2016-07-04 03:50:00" -htmlfile ~/chaprob.html
4.4.5 クラスタ・デプロイメントのためのOracle Cluster Health Advisorモデルの調整
ノードおよびデータベースのデフォルトのモデルに付属しているOracle Cluster Health Advisorは、誤った警告通知を生成しないように設計されています。
chactl calibrate
コマンドを使用して、特定のワークロードについて、Oracle Cluster Health Advisorモデルの感度および精度を高めることができます。
Oracleでは、6時間以上のデータを使用可能にし、クラスタとデータベースの両方が同じ時間範囲を使用して調整を行うことをお薦めします。
chactl calibrate
コマンドは、正常に稼働しているすべてのワークロード・フェーズを含むユーザー指定の時間間隔を分析します。このデータは、Oracle Cluster Health Advisorが調整対象のクラスタおよびすべてのデータベースの監視中に収集されます。
例4-6 chactl query calibrateコマンドの出力
Database name : oltpacdb
Start time : 2016-07-26 01:03:10
End time : 2016-07-26 01:57:25
Total Samples : 120
Percentage of filtered data : 8.32%
The number of data samples may not be sufficient for calibration.
1) Disk read (ASM) (Mbyte/sec)
MEAN MEDIAN STDDEV MIN MAX
4.96 0.20 8.98 0.06 25.68
<25 <50 <75 <100 >=100
97.50% 2.50% 0.00% 0.00% 0.00%
2) Disk write (ASM) (Mbyte/sec)
MEAN MEDIAN STDDEV MIN MAX
27.73 9.72 31.75 4.16 109.39
<50 <100 <150 <200 >=200
73.33% 22.50% 4.17% 0.00% 0.00%
3) Disk throughput (ASM) (IO/sec)
MEAN MEDIAN STDDEV MIN MAX
2407.50 1500.00 1978.55 700.00 7800.00
<5000 <10000 <15000 <20000 >=20000
83.33% 16.67% 0.00% 0.00% 0.00%
4) CPU utilization (total) (%)
MEAN MEDIAN STDDEV MIN MAX
21.99 21.75 1.36 20.00 26.80
<20 <40 <60 <80 >=80
0.00% 100.00% 0.00% 0.00% 0.00%
5) Database time per user call (usec/call)
MEAN MEDIAN STDDEV MIN MAX
267.39 264.87 32.05 205.80 484.57
<10000000 <20000000 <30000000 <40000000 <50000000 <60000000 <70000000 >=70000000
100.00% 0.00% 0.00% 0.00% 0.00% 0.00% 0.00% 0.00%
Database name : oltpacdb
Start time : 2016-07-26 03:00:00
End time : 2016-07-26 03:53:30
Total Samples : 342
Percentage of filtered data : 23.72%
The number of data samples may not be sufficient for calibration.
1) Disk read (ASM) (Mbyte/sec)
MEAN MEDIAN STDDEV MIN MAX
12.18 0.28 16.07 0.05 60.98
<25 <50 <75 <100 >=100
64.33% 34.50% 1.17% 0.00% 0.00%
2) Disk write (ASM) (Mbyte/sec)
MEAN MEDIAN STDDEV MIN MAX
57.57 51.14 34.12 16.10 135.29
<50 <100 <150 <200 >=200
49.12% 38.30% 12.57% 0.00% 0.00%
3) Disk throughput (ASM) (IO/sec)
MEAN MEDIAN STDDEV MIN MAX
5048.83 4300.00 1730.17 2700.00 9000.00
<5000 <10000 <15000 <20000 >=20000
63.74% 36.26% 0.00% 0.00% 0.00%
4) CPU utilization (total) (%)
MEAN MEDIAN STDDEV MIN MAX
23.10 22.80 1.88 20.00 31.40
<20 <40 <60 <80 >=80
0.00% 100.00% 0.00% 0.00% 0.00%
5) Database time per user call (usec/call)
MEAN MEDIAN STDDEV MIN MAX
744.39 256.47 2892.71 211.45 45438.35
<10000000 <20000000 <30000000 <40000000 <50000000 <60000000 <70000000 >=70000000
100.00% 0.00% 0.00% 0.00% 0.00% 0.00% 0.00% 0.00%
4.4.7 Oracle Cluster Health Advisorリポジトリの管理
Oracle Cluster Health Advisorリポジトリには、クラスタ・ホストの問題、データベースの問題、および関連するメトリックの兆候の履歴レコードがモデルとともに格納されます。
Oracle Cluster Health Advisorリポジトリは、定期的な問題の診断およびトリアージに使用されます。デフォルトでは、リポジトリは16のターゲット(ノードおよびデータベース・インスタンス)のデータを72時間保存できるサイズに設定されています。ターゲットの数が増加すると、保存時間が自動的に減少します。Oracle Cluster Health Advisorでは、保存時間が72時間を下回ると警告メッセージが生成され、保存時間が24時間を下回ると監視が停止し、重大なアラートが生成されます。
CHACTLコマンドを使用してリポジトリを管理し、最大保存時間を設定します。
-
リポジトリの詳細を取得するには、次のコマンドを使用します:
$ chactl query repository
たとえば、前述のコマンドを実行すると、次の出力が表示されます:specified max retention time(hrs) : 72 available retention time(hrs) : 212 available number of entities : 2 allocated number of entities : 0 total repository size(gb) : 2.00 allocated repository size(gb) : 0.07
-
現在の監視対象のターゲット数に基づいて最大保存時間を時間数で設定するには、次のコマンドを使用します:
$ chactl set maxretention -time number_of_hours
たとえば:$ chactl set maxretention -time 80 max retention successfully set to 80 hours
ノート:
maxretention
設定により、リポジトリに保存される古いデータの期間が制限されますが、監視対象のターゲット数が増えてもこれが保持されるとはかぎりません。この場合、監視対象のターゲットと時間数の組合せが十分でなければ、Oracle Cluster Health Advisorリポジトリのサイズを増やします。 -
Oracle Cluster Health Advisorリポジトリのサイズを増やすには、
chactl resize repository
コマンドを使用します。たとえば、現在設定されている最大保存時間を使用して32個のターゲットをサポートするようにリポジトリのサイズを変更するには、次のコマンドを使用します:
$ chactl resize repository –entities 32 repository successfully resized for 32 targets
4.4.8 Cluster Health Advisorのステータスの表示
SRVCTLコマンドは、可用性の高いサービスとしてのOracle Cluster Health Advisorのライフ・サイクル管理に対する総合的な制御を提供するツールです。
SRVCTLコマンドを使用して、Oracle RACクラスタのアクティブなハブまたはリーフ・ノードにおけるOracle Cluster Health Advisorサービスのステータスおよび構成をチェックします。
ノート:
ターゲットは、それが実行中であり、Oracle Cluster Health Advisorサービスもそのターゲットが存在するホスト・ノード上にある場合のみ監視対象になります。
-
Oracle RACクラスタ内のすべてのノードにおけるOracle Cluster Health Advisorのステータスをチェックするには、次のようにします:
srvctl status cha [-help]
たとえば:# srvctl status cha Cluster Health Advisor is running on nodes racNode1, racNode2. Cluster Health Advisor is not running on nodes racNode3, racNode4.
-
Oracle RACクラスタ内のすべてのノードでOracle Cluster Health Advisorサービスが有効化または無効化されているかどうかをチェックするには、次のようにします:
srvctl config cha [-help]
たとえば:# srvctl config cha Cluster Health Advisor is enabled on nodes racNode1, racNode2. Cluster Health Advisor is not enabled on nodes racNode3, racNode4.