Database Support Blog

Database Support Blog>Qlik Senseを使用したOracle Databaseの監視(UNDO編)

  • Oracle Database
2018.04.06

Qlik Senseを使用したOracle Databaseの監視(UNDO編)

Qlik Senseを使用したOracle Databaseの監視(UNDO編)

Oracle Databaseではデータベースの各種統計を確認できる静的ディクショナリビューや動的パフォーマンスビューがあり、稼働傾向の確認やパフォーマンスダウン時の調査にはこれらのビューを参照します。しかし、出力量が多いためSELECTの結果をそのまま確認するのは容易ではありません。

そこで今回から数回にわたり、無料で利用できるQlik Sense DesktopでSQLの実行結果をグラフ化する方法をご紹介します。SELECT結果をツールを使用してグラフ化することで時系列、項目ごとなど多角的な確認が容易になり、より柔軟な調査が行えるようになります。

第一回目はDBA_HIST_UNDOSTATを棒グラフで表示し、UNDOのアクティビティをより簡単に確認する方法です。

Qlik Senseのインストール

Qlik Sense は、簡単な操作でデータの分析ができる分析プラットフォームです。ドラッグ&ドロップなどの操作で、お手持ちのデータから表やグラフを作成し、分析用アプリやダッシュボードとして利用できます。

体験版のQlik Sense Desktopは無料でご利用いただけますので、弊社のQlik Sense Desktopダウンロードページ をご覧ください。有償版であるQlik Sense Enterpriseは企業でご利用いただくために、アプリやデータの一元管理機能(ユーザーはブラウザさえあればPC、タブレット、スマートフォンなど、どこからでもデータにアクセス可能)や、セキュリティ機能(必要な方のみ必要なデータにアクセス可能)などが用意されています。

つまり、データベース管理者が自身の業務効率化のために使う分には、無償版であるQlik Sense Desktopでも十分な機能を持っています。インストールは基本的にインストーラーの指示に従うだけで問題ありませんが、弊社の技術情報サイトやシステム要件も併せてご参照ください。

Qlik View Training BLOG - Qlik Sense Desktopのダウンロード
Qlik View Training BLOG - Qlik Sense Desktopのインストール
Qlik Sense Help - システム要件

Qlik Senseからデータベースへの接続設定

Qlik SenseではExcel、CSVなどのファイルからデータを読み込むことができますが、ORACLE、PostgreSQLなどのデータベースから直接データを取り込むことも可能です。接続のために追加でツールをインストールする必要はありません。

1.Qlik Senseを起動後、「アプリの新規作成」→「スクリプトエディター」を選択

2.「接続の新規作成」から"Oracle"を選択

3.接続先データベース(リスナー)とユーザの情報を入力/Test Connectionの成功を確認

これでデータベースへの接続定義が作られました。

DBA_HIST_UNDOSTATからデータをロード

データベースから分析用のデータをロードします。ユーザがSQLを書く必要はなく、確認したい表と列を選択するだけで可能です。なお、データベースへのアクセスを行うのはこのタイミングのみです。

1.接続定義から「データの選択」を選択

2.「所有者」で"SYS"、「テーブル」で"DBA_HIST_UNDOSTAT"を選択/「スクリプトを挿入」を選択

※11.2以降のStandard Edition環境ではDBA_HIST_UNDOSTATではなくV_$UNDOSTATを選択します

3.スクリプトエディタ画面から「データのロード」を選択/ロードの正常終了を確認

これでQlik SenseにDBA_HIST_UNDOSTATがロードされました。

なお、DBA_HIST_XXXXビューは基本的にはEnterprise Edition + Diagnostics Packのライセンスが必要ですが、いくつかのビューはStandard Editionでも利用可能です。

Oracle® Enterprise Managerライセンス情報ユーザー・マニュアル

接頭辞DBA_HIST_で始まるすべてのデータ・ディクショナリ・ビューおよびその基礎となる表は、このパックのライセンスを必要とします。例外は、DBA_HIST_SNAPSHOT, DBA_HIST_DATABASE_INSTANCE, DBA_HIST_SNAP_ERROR, DBA_HIST_SEG_STAT, DBA_HIST_SEG_STAT_OBJ,およびDBA_HIST_UNDOSTATビューです。これらは、Oracle Diagnostics Packライセンスなしで、またはStandard Editionライセンスとともに使用できます。

https://docs.oracle.com/cd/E26854_01/doc.121/b66197/ch2_db_mgmt.htm#BABGAFHD

DBA_HIST_UNDOSTATをグラフ化する

DBA_HIST_UNDOSTATではUNDOブロックのステータスを確認できます。先程ロードしたDBA_HIST_UNDOSTATを使い、時間帯ごとのACTIVEBLKS(利用中)、UNEXPIREDBLKS(コミット後保証期間内)、EXPIREDBLKS(保証期間が経過し再利用可能)の推移を棒グラフで確認できるようにします。

1.「アプリ概要」から「シートの新規作成」を選択

2.「シートの編集」から「棒チャート」を画面上にドラッグ&ドロップ

3.「データ」の「軸」に"BEGIN_TIME"を追加

4.「メジャー」から「数式エディタを開く」を選択し、"EXPIREDBLKS"を「集計なし」で挿入

5.「メジャー」から「追加」を選択し、同様に"UNEXPIREDBLKS"、"ACTIVEBLKS"を追加

6.「スタイル」の「プレゼンテーション」から「積み上げ」を選択

6.「テーブル」をドラッグ&ドロップし、軸に確認したい列を追加

これでグラフ化が完了しました。

DBA_HIST_UNDOSTATをグラフで確認する

作成したグラフを使い、UNDOの使用状況を確認します。BEGIN_TIMEでソートし、グラフの下にあるバーを移動させることで、時間帯ごとのUNDO使用量の推移を見ることができます。

ターミナルに出力されたSELECT結果からACTIVEBLKSやUNEXPIREDBLKSが多い時間帯を目視で確認するのは苦労しますが、グラフ化することで直感的に確認可能です。また、グラフや表で確認したい時間帯をクリックすることでその時間帯のデータのみフォーカスして見ることも可能です。

新しいデータで確認したい時は「データロードエディタ」から「データのロード」を行えばグラフの定義などはそのままに最新の情報を確認することができます。ロードしたデータはQlik Sense側で保持しますので、「データのロード」を実行したタイミング以外でデータベースに負荷をかけることはありません。

まとめ

Qlik Senseは操作が非常に簡単です。筆者も弊社のQlik製品の 入門コース のセミナーを受けた直後とQlik Senseについては素人同然ですが、普段確認しているSELECT結果を容易に、かつ、見やすい形でグラフ化できたため「これは使える!」と思いブログ化することにしました。

Diagnostics Packライセンスを契約している環境であれば、AWR、ADDM、ASHといった運用をサポートする強力な機能がEnterprise Managerから利用できるためベストと言えます。EE単体、SEでもビューの情報をこのような形でデータベースの情報を確認できるようにしておくことで運用を効率化できます。

今回の情報から特定の時間帯でアクティブなUNDOブロックがスパイクしている時間帯があれば、その時間帯にアクセスの多いオブジェクトやアプリケーションからの処理を見直すことでトラブルの発生を未然に防ぐことができるかもしれません。

次回はDBA_HIST_SNAPSHOT、DBA_HIST_SEG_STAT、DBA_HIST_SEG_STAT_OBJを使用した、アクセスの多いオブジェクトの監視方法をご紹介します。

Qlik Sense Desktopのダウンロード

今回ご紹介したQlik Sense Desktopは、下記のページよりダウンロードいただけます。資料も無料で提供しておりますのでご参考になさってください。


筆者情報

大野 高志

サービス事業部 付加価値創造部

2007年アシスト入社。Oracle Databaseのサポート業務を経て、サポートセンターに蓄積されたナレッジを使用したサービス開発の立ち上げに従事。現在は「 アシストの超サポ 」を広め、カスタマーエンゲージメントの構築を実現するための活動を行っている。


データベースのサポートならアシスト

関連している記事

  • Oracle Database
2018.03.22

アーカイブログの削除方法まとめ(ORA-00257対処方法)

アーカイブログの出力先領域を増やす緊急手段として、アーカイブログの削除方法を3つ紹介します。

  • Oracle Database
2017.12.15

【Oracle】Statspackレポートを期間指定で一括取得するスクリプト

Oracle DatabseのStatspackレポートを期間指定で一括取得するスクリプトをご紹介します。

  • Oracle Database
2017.12.14

Oracle Database 12cR2へのアップグレード後に発生するORA-01017

Oracle Database 12cR2へのアップグレード後に発生することが多いORA-01017エラーについて、その原因と対処方法をご紹介します。

アシストサポートセンターのご紹介 Oracle Database研修

ページの先頭へ戻る