OceanBaseデータベースは、GUIツールであるOCPを使用したパフォーマンスチューニングをサポートしています。主な機能は以下のとおりです:
モニタリングとアラート
OCPは、OceanBaseクラスタ、テナント、ノードの各レベルでのモニタリングとアラートをサポートしており、パフォーマンス、容量、稼働状態などの指標に関する7×24時間のデータ収集を実現します。モニタリング結果はグラフで視覚的に表示されるため、ユーザーはOceanBaseクラスタの使用状況を包括的に把握し、異常を迅速に検出して早期に警告を発することができ、データベースの安定かつ効率的な運用を確保できます。
詳細については、公式ドキュメントアラート管理の使用を参照してください。
SQL診断
現在でも、リレーショナルデータベースは多くの企業における主要なデータストレージエンジンであり、システムはSQLを介してデータベースにアクセスします。SQLはITシステムの重要な構成要素であり、その性能の良し悪しはシステムの可用性、ユーザー応答時間、システムスループット、ITインフラコストなどの指標に大きな影響を与えます。SQLに起因するさまざまな問題は絶えず発生し、根本的な解決が困難です。そのため、OCPはTopSQL、SlowSQL、ParallelSQL、疑わしいSQL、SQLプラン、アウトライン、SQLTuningAdvisor、SQLリクエスト分析など、多角的なSQL診断機能を提供しています。ユーザーは異なるアプリケーションシナリオに応じて適切なツールを選択できます。さらに、OCPはSQLチューニングの推奨事項、インデックスバインディング、プランバインディング、SQLレート制限、キーワードレート制限などの緊急対応機能も提供し、SQL問題の発見、分析、処理に至る一貫した機能体系を備えています。
詳細については、公式ドキュメントSQL診断を参照してください。
パフォーマンスレポート
OceanBase Analyze Report(以下、OBARと略)の目的は、データベースのパフォーマンスに問題が発生した際に、ユーザーが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などの情報を取得します。
詳細については、公式ドキュメントデッドロック解析の表示を参照してください。