今回は

みなさん、こんにちはMaxGaugeを販売しております日本エクセムの製品担当です。

前回一般的な監視ツールとMaxGaugeによるDPMによる違いを説明しました。
今回はMaxGauge for Oracleのシステム構成データ収集方法などアーキテクチャについて説明します。

MaxGauge低負荷で多くの稼働データを収集する仕組みについてご理解いただけると幸いです。

待望の日本エクセム技術連載 第2弾です!
前回の記事も是非ご覧くださいね!

MaxGaugeが作られた話

OracleデータベースのツールとしてMaxGaugeが作られた経緯について紹介します。

むかしむかし(20年くらい前)あるところにOracleデータベースのコンサルティングをしていたCさんがいました。
CさんはOracleデータベースのトラブル調査や稼働状況を把握するためスクリプトなどのツールを駆使して日々データベースと格闘していました。

そんなCさんは思いました。

データベースの詳細な稼働状況が分かるデータがあればトラブルも解消できるし効率的なデータベースの運用も出来ると。

そこからCさん新しいツールを作りました

ツールにコンセプトは以下でした。

  • データベースの稼働状況を把握するための詳細なデータを収集
  • 詳細なデータを収集するけどデータベースへの負荷は低い
  • 収集した詳細データを簡単に分析出来るインターフェース

ツールは現場やお客様の意見を聞きながら必要な機能を追加して大活躍!!
そしてCさんが作ったツールはMaxGaugeとなりました。

おわり。

MaxGaugeデータベース管理者システム管理者の目線で必要と思えるデータや機能を具現化して作られたツールなのですね!これが人気の理由!

システム構成

MaxGaugeのシステム構成について説明します。
MaxGaugeは次の図の構成になりMaxGauge管理サーバと監視対象データベースにエージェントを設置します。

  1. 監視対象のデータベースサーバにMaxGaugeのエージェントを設置します
  2. エージェントが収集したデータはMaxGauge Server(管理サーバ)に保存します。
  3. 保存されたデータはClient(PC)のブラウザからMaxGaugeのWEB画面にアクセスしてデータを閲覧します。

データ収集方法

MaxGaugeは監視対象データベースから「ダイレクトメモリアクセス」SQLによる2種類の方法でデータを取得します。

ダイレクトメモリアクセス

MaxGaugeが取得する主要なデータはダイレクトメモリアクセス(DMA)によって収集します。
具体的に説明しますとMaxGaugeエージェントはOracleの共有メモリに直接アクセスしてOracleの稼働情報を取得します。

この方法のメリットは
Oracleプロセスに負荷を掛けず稼働情報を取得することが出来ます
データベースの分析に重要情報はDMAにより低負荷かつ短い間隔での収集を実現しています。

DMAで収集する稼働情報の一覧

稼働情報 取集間隔 説明
セッション情報 1秒間隔 セッションのステータスがアクティブのセッションの情報を収集します。
SQL情報 0.05秒間隔 実行中のSQLの情報を取得します。
収集したSQLの情報は10分間隔で集計されます。
システム統計情報 1分間隔 全てのシステム統計情報を1秒間隔で収集して1分間の最大値と平均値に集計します。
待機イベント情報 1分間隔 全ての待機イベント情報を1分間隔で発生回数と待機時間を収集します。

SQL

MaxGaugeが取得する稼働情報で収集頻度が低くても、分析に影響しないデータはSQLを実行して取得しています。

SQL実行による監視対象データベースへの負荷を極力少なくするため収集間隔は長く、負荷の掛からないSQL文の実行で稼働情報を取得します。

SQLで収集する稼働情報の一覧

稼働データ 取集間隔 説明
実行計画 10分間隔 MaxGaugeが収集したSQL情報の実行計画をV$PLANより取得します。
BIND値 10分間隔 MaxGaugeが収集したSQL情報で使用されたBIND値を取得します。V$SQL_BIND_CAPTUREから取得します。
セグメント使用率 1日1回 セグメントに割り当てられた領域の使用状況を取得します。
パラメータ情報 1日1回 インスタンスのパラメータの情報を取得します。
ブロッキングセッション情報 10分間隔 参考情報として、V$ACTIVE_SESSION_HISTORYよりブロッキングセッションの情報を取得します。
(情報の取得には Oracle Diagnostics Pack のライセンスが必要です)
パッケージ・プロシージャ情報 1日1回 データベースに登録されているパッケージ・プロシージャの情報を取得します。PL/SQL分析の画面で利用します。

これだけの情報があれば、突発的なトラブルも、いつ、何が起きていたのか明確に分析できますね!

MaxGaugeによる負担とか大丈夫?

お客様からよくいただくご質問で
「1秒間隔とかで情報取得するけどデータベースへの負荷が心配です、大丈夫ですか?」とか「本番環境で本当に動かしても大丈夫なんですか?」
などデータベースへの負荷や影響に関するご質問をいただくことが多いですが

大丈夫です。心配ありません。」と自信をもってお答えしております。

具体的な数字で負荷を説明しますとMaxGaugeによる監視対象データベースへの負荷はCPU使用率で約1%以下のケースが多く、メモリやデータベースへの影響はありません。

また、ミッションクリティカルなシステムへの導入実績は多数あり、多くのシステムでMaxGaugeが活躍しております。

対応するoracleデータベース

MaxGaugeが対応するOracleデータベースは
Oracle Database 10gR1 ~ Oracle Database 21c
まで対応しております。
各バージョンのエディションによる制約などはなく動作します。

Oracle Database 10g のように古い環境やSE、SE2 などEnterprise Editionのオプションである
Oracle Diagnostics Packを使用できない環境でもMaxGaugeは動作します。

これは心強いです!

最後に

今回はMaxGaugeのアーキテクチャを中心に紹介しました。
データベースの稼働状況分析にはデータの解像度が重要で解像度が高いほど分析の精度が高くなります。
MaxGaugeはDMAにより高解像度分析に必要なデータを備えています。

次回は収集したデータを多角的に分析出来るMaxGaugeの機能概要を中心に紹介していきます。

いかがでしたでしょうか?MaxGauge便利ですよね!
db tech showcase 2023 に登壇します!2023/12/07(木) 12:00-12:45 RoomHでは、日本エクセム様とSTSの対談形式で行います。
MaxGaugeのお話もありますので、是非足を運んでみてくださいね。お申込みはこちら。※残席わずかです!

投稿者プロフィール

日本エクセム株式会社
日本エクセム株式会社
日本エクセム株式会社 プロダクトソリューション部
MaxGaugeの製品販売、およびDBAサービス(データベース管理サービス)、データベースチューニング支援、障害解析支援など幅広いサービスを実施しています。弊社でもデータベースに関する記事など書いていますがOracleデータベースの待機イベントの記事がおすすめです。