OceanBaseデータベースは、GUIツールであるOCPを使用したパフォーマンスチューニングをサポートしています。主な機能は以下のとおりです:
モニタリングとアラート
OCPは、OceanBaseクラスタ、テナント、ノードごとのモニタリングとアラートをサポートしており、パフォーマンス、容量、稼働状態などの指標に関する7×24時間の監視データ収集が可能です。モニタリングはグラフィカル表示に対応しており、ユーザーがOceanBaseクラスタの使用状況を包括的に理解し、クラスタの異常を迅速に検出し、早期警告を発することで、データベースの安定かつ効率的な運用を確保します。
詳細については、公式ドキュメントアラート管理の使用を参照してください。
SQL診断
現在、リレーショナルデータベースは依然として多くの企業における主要なデータストレージエンジンであり、システムはSQLを介してデータベースにアクセスします。SQLはITシステムの重要な構成要素であり、そのパフォーマンスの良し悪しは、システムの可用性、ユーザーの応答時間、システムのスループット、ITインフラコストなどの指標に非常に大きな影響を与えます。そのため、SQLに起因するさまざまな問題が絶えず発生し、根本的な解決が困難です。このような背景から、OCPではTopSQL、SlowSQL、ParallelSQL、疑わしいSQL、SQL Plan、Outline、SQL Tuning Advisor、SQLリクエスト分析など、多角的なSQL診断機能を提供しています。ユーザーは異なるアプリケーションシナリオに応じて、適切なツールを選択できます。さらに、OCPはSQLチューニングの提案、インデックスバインディング、計画バインディング、SQL制限、キーワード制限などの緊急チューニング機能も備えており、SQL問題の発見、分析、処理までの一連の機能を提供します。
詳細については、公式ドキュメントSQL診断を参照してください。
パフォーマンスレポート
OceanBase Analyze Report(以下、OBARと略)は、データベースのパフォーマンス分析製品を提供することを目的としており、ユーザーがOceanBaseデータベースでパフォーマンス問題が発生した場合に、OBARを通じて包括的なパフォーマンス関連の診断情報を取得できるようにします。OBARの主な目標は、ユーザーがクラスタまたはテナントの負荷とパフォーマンス状況を把握すると同時に、ユーザーが一般的なチェック項目を実行できるよう支援し、最終的にレポート形式で表示することです。レポート形式を提供することで、一方ではユーザーの操作が簡素化され、ワンクリックで多次元のシステム状態情報を集約できるようになり、他方ではユーザーがクラスタの状態を迅速に把握できるようになり、ユーザーの利用ハードルが低減されます。
詳細については、公式ドキュメントパフォーマンスレポートを参照してください。
ASHレポート
適用対象
現在、OceanBaseデータベースCommunity EditionはASHレポートをサポートしていません。
OceanBase Active Session History Report(以下、ASHレポートと略)は、瞬間的に発生した異常を特定する分析レポートを提供するものであり、パフォーマンスレポートと比較して、より細かい粒度の診断情報を提供できます。ASHレポートの実装には、収集とレポート生成の2つのプロセスが含まれます。収集プロセスでは、OCPが管理するOceanBaseクラスタ上の各マシンにocp_monagentをデプロイし、ocp_monagentは一定の戦略に従って必要な監視データを収集し、その後OCPの監視データベースに永続化します。レポート生成プロセスでは、ユーザーがOCPのアクティブセッション履歴機能に関連情報を入力することで、対応するレポートを生成します。ASHレポート全体の実装ロジックは、OCPのタスクモジュールを利用して複数のサブタスクを並行実行し、異なるサブタスク間でCONTEXTを通じて情報を伝達し、最終的にレポート内容はOCPのOSSサービスに保存され、ユーザーが複数回閲覧できるようになります。OceanBaseデータベースは、
v$session_eventビューに、各ユーザー接続のセッションで既に実行済みのSQLのすべての待機イベントを記録します。これには、待機イベントID、待機回数、累積待機時間が含まれます。このプロセス全体において、ocp_monagentは固定頻度でv$session_eventを収集し、増分データを保存します。詳細については、公式ドキュメントASHレポートを参照してください。
トランザクション診断
OceanBaseデータベースにおいて、トランザクションが実行中に長時間リソースを占有し解放しない、または過剰なリソースを占有すると、データベースシステムが不安定な状態に陥り、データベースシステムが効率的なサービスを正常に提供することに影響を与えます。このようなトランザクションを大規模トランザクションと呼びます。OCPのトランザクション診断は、これらの大規模トランザクションに対する監視、分析、および緊急対応機能を提供します。トランザクション診断機能は、実行詳細や実行済みのSQL詳細など、大規模トランザクションの詳細情報を提供し、トランザクションのモデルを取得し、トランザクション内での時間消費やリソース消費の具体的な原因を判断し、ユーザーが業務チューニングを行うのに役立ちます。トランザクションの現在の状態と継続時間に基づいて、長時間トランザクション、一時停止トランザクション、通常トランザクションの3種類に分類されます。長時間トランザクションと一時停止トランザクションは、ユーザーが注目すべき異常トランザクションであり、OCPはこれらの異常トランザクションに対して緊急対応手段を提供しており、ワンクリックで異常トランザクションを閉じることも、緊急マニュアルを利用して問題を解決し、システムを迅速に安定状態に復旧させることも可能です。
詳細については、公式ドキュメントトランザクション診断を参照してください。
デッドロック検出
OceanBaseデータベースは、分散型デッドロックの自動検出機能をサポートしています。クラスタの分散型デッドロック自動検出機能のスイッチをオンにすると、OceanBaseデータベースはデッドロックを自動的に検出し、デッドロック問題を解決できます。ユーザーは、SQLが投げる例外情報に基づいて、トランザクションをコミットするかロールバックするかを決定する必要があります。ユーザーはデッドロックを通じて、デッドロックノード数、中断されたデッドロックノード、ノードが実行するSQLなどの情報を取得します。
詳細については、公式ドキュメントデッドロック分析の表示を参照してください。