>> 連載トップページに戻る

 


~オラクルコンサルタントの Big 3(大竹、大野、大木)が語る~
データベース運用における Oracle Enterprise Manager 徹底活用への道
第5回 オラクル・コンサルタントが語る、運用を効率化するBI Publisher活用のススメ –後編-


[著者紹介]
日本オラクル株式会社
コンサルティングサービス事業統括
クラウド・テクノロジーコンサルティング事業本部
大野 勝矢(おおの かつや)

日本オラクルに中途入社後、Oracle Databaseの運用、アップグレードに関わる業務に携わってきた。
より多くのお客様のEMを活用した運用効率化に貢献できるように日々奮闘中。


本記事は、第4回の記事の後編です。
前回の記事では、Oracle Business Intelligence Publisher (以下、BI Publisher) の機能概要、アーキテクチャおよび運用での活用例をご紹介しました。

今回はBI Publisherのレポート作成手順、運用効率化の為の自動配信の仕組み、および、開発時に便利なエクスポート・インポート機能をご紹介します。

なお、本記事で取り扱う EMCC やBI Publisherの画面例で使用する製品バージョンは、特に断りがない限り EMCC 13c Release 2、BI Publisher 12.1.3とします。
また、監視対象やリポジトリとして使用するOracle Database は 12c Release 1 とします。

まず、レポート作成手順についてご紹介します。

1. BI Publisherのレポート作成詳細手順

本項目ではBI Publisherレポートの作成詳細手順についてご紹介します。 EMCCおよびBI Publisherが構成され、データソース設定(前回記事の4.1 データソース設定を参照)がされていることを前提とした場合、レポート作成は以下の手順で実施します。

  • (1) カタログ・フォルダ作成
  • (2) データ・モデル作成
    •       ・ データ・セット設定
    •       ・ 値リスト設定
    •       ・ パラメータ設定
  • (3) レポート作成

作成手順をご紹介するにあたり、出力結果が以下図1のようになる「SQL実行回数(秒間)のレポート」を例として取り扱います。 情報の取得元はデータベース内部に保管されたAWR情報(DBA_HISTビュー)です。


図1:SQL実行回数(秒間)レポート

1.1 カタログ・フォルダ作成

はじめに、データ・モデルおよびレポートを格納する為のカタログ・フォルダを作成します。手順は下記の通りで、カタログ・フォルダ名は任意の名称で問題ありません。 カタログ・フォルダは、作成したユーザのみが参照可能な「マイ・フォルダ」と複数ユーザが参照可能な「共有フォルダ」に分かれています。「共有フォルダ」にはデフォルトで用意されているレポートが「/共有フォルダ/Enterprise Manager Cloud Control」配下に格納されています。
本手順では、SYSMANユーザでログインし、「マイ・フォルダ」内にカタログ・フォルダを作成します。


図2:カタログ・フォルダ作成画面

1.2 データ・モデル作成

つぎに、レポートのインプット情報となるデータ・モデルを作成します。 前回の記事でご紹介させていただいた通り、データ・モデル作成時にはデータ・セット、値リストおよびパラメータの設定が必要です。

まず、データ・モデルを下記手順で作成します。


図3:データ・モデル作成画面

データ・モデルの作成画面を起動した後、以降に記載するサンプルSQLをデータ・セットに設定します。


図4:データ・セット設定画面

「OK」を押下後、メッセージ(1つ以上のバインド変数を選択して、対応するパラメータを作成してください)が出力されますが、後続の手順で作成する為、「OK」を押下します。


図5:データ・セット設定画面

データ・セットに定義するサンプルSQLの概要およびSQL文は以下の通りです。

【サンプルSQL概要】
該当時間のSQL実行回数(秒間)をAWRのスナップショット間の差分情報から 取得します。

(動作確認環境)

  •       ・Oracle Database 12c Release 1 (12.1.0.2)
  •       ・非MTA環境
  •       ・RACおよびシングル環境
【サンプルSQL文】
SELECT
    di.INSTANCE_NAME,
    bsn.SNAP_ID begin_snap_id,
    TO_CHAR(esn.BEGIN_INTERVAL_TIME,'YY-MM-DD HH24:MI') begin_time,
    ROUND((esy.VALUE - bsy.VALUE)/(EXTRACT (HOUR FROM esn.END_INTERVAL_TIME-esn.BEGIN_INTERVAL_TIME) * 3600
    + EXTRACT (MINUTE FROM  esn.END_INTERVAL_TIME-esn.BEGIN_INTERVAL_TIME)*60
    + EXTRACT (SECOND FROM esn.END_INTERVAL_TIME-esn.BEGIN_INTERVAL_TIME)), 1) execute_count  
FROM 
     DBA_HIST_SNAPSHOT bsn,
     DBA_HIST_SNAPSHOT esn,
     DBA_HIST_SYSSTAT bsy,
     DBA_HIST_SYSSTAT esy,  
     DBA_HIST_DATABASE_INSTANCE di
WHERE bsn.DBID = esn.DBID
AND   bsn.INSTANCE_NUMBER = esn.INSTANCE_NUMBER
AND   bsn.END_INTERVAL_TIME = esn.BEGIN_INTERVAL_TIME
AND   bsn.STARTUP_TIME = esn.STARTUP_TIME
AND   bsn.DBID = bsy.DBID
AND   bsn.INSTANCE_NUMBER = bsy.INSTANCE_NUMBER
AND   bsn.SNAP_ID = bsy.SNAP_ID
AND   esn.DBID = esy.DBID
AND   esn.INSTANCE_NUMBER = esy.INSTANCE_NUMBER
AND   esn.SNAP_ID = esy.SNAP_ID
AND   bsy.STAT_ID = esy.STAT_ID
AND   bsy.STAT_ID = :stat_id  
AND   bsn.END_INTERVAL_TIME >= :start_time 
AND   esn.BEGIN_INTERVAL_TIME <= :end_time 
AND   bsn.DBID = di.DBID
AND   bsn.INSTANCE_NUMBER = di.INSTANCE_NUMBER
AND   bsn.STARTUP_TIME = di.STARTUP_TIME
AND   di.DB_NAME=:db_name 
AND   di.INSTANCE_NAME IN(:instance_name) 
ORDER BY di.INSTANCE_NAME,BEGIN_TIME

【サンプルSQL補足】

  • ① AWRのスナップショット間の差分情報(SQL実行回数)を取得し、定義されているスナップショットの取得間隔で割ります。
          ⇒ この仕組みにすることによりスナップショットの取得間隔が異なる環境でも流用することが可能です。
  • ② 差分情報を取得する為、前後のスナップショット情報(DBA_HIST_SNAPSHOT)、および、それらのスナップショット内のデータ(DBA_HIST_SYSSTAT)を指定します。
  • ③ 指定したバインド変数をデータ・セット内でパラメータとして設定します。
          ⇒ パラメータ設定手順は述します。

次に、データベース名等のパラメータ値をSQLで抽出する為、下記手順で値リストの設定をします。


図6:値リスト設定画面

今回のサンプルSQLに使用する値リスト、および、それぞれの値リストに使用するサンプルSQLは、下記の表に記載した通りです。

値リスト名 値リストサンプルSQL
db_name
SELECT DISTINCT DB_NAME
FROM DBA_HIST_DATABASE_INSTANCE
instance_name
SELECT DISTINCT INSTANCE_NAME 
FROM DBA_HIST_DATABASE_INSTANCE WHERE DB_NAME=:db_name
ORDER BY INSTANCE_NAME
stat_id
SELECT A.STAT_ID
FROM DBA_HIST_STAT_NAME A
WHERE A.STAT_NAME = 'execute count'
AND A.DBID = (SELECT B.DBID 
              FROM DBA_HIST_DATABASE_INSTANCE B 
              WHERE B.DB_NAME = :db_name 
              AND ROWNUM = 1)
AND ROWNUM = 1

表1:サンプルSQLに使用する値リスト

値リスト「stat_id」について補足します。「stat_id」で指定する値を切り替えることにより、SQL実行回数以外のレポートも簡単に作成することが可能です。
具体的には、表1にある「stat_id」の値リストサンプルSQLで指定しているSTAT_NAMEを抽出したい情報に変更します。 参考情報としてSTAT_NAMEに指定できる値と作成されるレポートの組み合わせをいくつかご紹介します。

作成対象レポート STAT_NAME
CPU使用量 CPU used by this session
ログバッファ割り当て処理リトライ回数 redo buffer allocation retries
ブロックロスト発生回数 gc blocks lost
コミット数 user commits
Redoログ生成量 redo size
インスタンス間転送CRブロック gc cr blocks received
インスタンス間転送Currentブロック gc current blocks received
論理読み込みブロック数 session logical reads
物理読み込みブロック数 physical reads
Session数 logons current

表2:STAT_NAME一覧

次に、下記手順でパラメータ設定をします。上記で定義した値リストは、下記手順で対象のパラメータと紐づけします。


図7:パラメータ設定画面

今回のサンプルSQLに使用するパラメータは、下記の表に記載した通りです。

パラメータ名 データ型 デフォルト値 パラメータ・タイプ 値リスト オプション
db_name
文字列 - メニュー
db_name
・変更時に他のパラメータをリフレッシュ
instance_name
文字列 - メニュー
instance_name
・複数選択
・全選択可能(すべての値が渡されました)
start_time
日付 {$sysdate()-2$} 日付 - -
end_time
日付 {$sysdate()-1$} 日付 - -
stat_id
整数 - メニュー
stat_id
・全選択可能(すべての値が渡されました)

表3:サンプルSQLに使用するパラメータ

上記で設定するオプションである「変更時に他のパラメータをリフレッシュ」についてご補足します。
このオプションは、データベース名とインスタンス名のように値に依存関係がある場合に使用します。
表1:サンプルSQLに使用する値リストでご紹介している通り、インスタンス名(instance_name)は、データベース名(db_name)の値が変更されると値の再取得が必要となります。該当のオプションにチェックを入れると、データベース名(db_name)を変更した場合に自動的にインスタンス名(instance_name)を取得可能となり、手動での再取得が不要となります。その為、チェックを入れていただくことを推奨致します。

最後にサンプル・データおよびデータ・モデルの保存を下記手順で実施します。


図8:サンプル・データ保存画面


図9:データ・モデル保存画面

以上がデータ・モデルの作成手順です。

1.3 レポート作成

ここでは、画面ショットを使用してレポート作成方法を紹介します。
作成したデータ・モデルを使用して、レポートを作成します。


図10:レポート作成画面 ①

作成するレポートのレイアウトおよび抽出項目を設定します。


図11:レポート作成画面 ②

グラフと併せて表示する表形式のデータを選択し、レポート作成は完了です。


図12:レポート作成画面 ③

作成したレポートを保存し、表示できることを確認します。


図13:レポート作成画面 ④

以上がレポートの作成手順です。
次に、作成したレポートをメールで自動配信する設定についてご紹介します。

2. 自動配信設定手順

前回の記事でもご紹介させていただいた通り、BI Publisherで作成したレポートをメールで自動配信することにより運用負荷を更に軽減することが可能です。
本項目では、レポートを自動配信する為の下記設定手順についてご紹介します。
   (1) メールサーバの設定
   (2) レポート・ジョブの作成

2.1 メールサーバの設定

まず、メールサーバの設定を下記手順で実施します。


図14:メールサーバ追加画面 ①


図15:メールサーバ追加画面 ②


図16:メールサーバ追加画面 ③

以上がメールサーバの追加手順です。
次にレポート・ジョブの作成手順をご紹介します。

2.2 レポート・ジョブの作成

定期的に配信したいレポートを選択し、ジョブを作成します。
週次レポートを配信する運用を例として手順を記載します。


図17:レポート・ジョブ作成画面 ①

週次レポートを配信したい場合は、1週間分の情報を取得できるように「開始日付」および「終了日付」のパラメータ設定を変更する必要があります。
例えば毎週日曜日に動作する週次レポート(平日)を配信するジョブを発行したい場合はデータ・モデル内のパラメータを下記のように設定します。

パラメータ名 データ型 デフォルト値 パラメータ・タイプ 値リスト オプション
start_time
日付 {$sysdate()-6$} 日付 - -
end_time
日付 {$sysdate()-3$} 日付 - -

表4:週次レポートに使用するパラメータ

※日曜日に実行される処理で平日(月曜日~金曜日)をSQLのデータ取得期間として指定するため、sysdate(日曜日)から見て6日前(月曜日)をstart_time、sysdate(日曜日)から見て3日前(金曜日)をend_timeのデフォルト値にそれぞれ指定しています。


図18:レポート・ジョブ作成画面 ②

「出力」タブでは配信フォーマットやメール本文に記載する情報を入力します。


図19:レポート・ジョブ作成画面 ③

配信するレポートフォーマットは下記から選択可能です。

  • ・ PDF
  • ・ HTML
  • ・ RTF
  • ・ Excel
  • ・ PowerPoint

「スケジュール」タブでは、運用に適した配信頻度および時刻を設定します。 本手順では、週次レポートを配信する前提の為、「週次」を選択します。


図20:レポート・ジョブ作成画面 ④

頻度は下記から選択可能です。

  • ・ 1回
  • ・ 毎時/分
  • ・ 日次
  • ・ 週次
  • ・ 月次
  • ・ 毎年
  • ・ 特定の日付

「スケジュール」タブでの設定完了後、ジョブを発行することが可能です。


図21:レポート・ジョブ作成画面 ⑤

以上が自動配信設定手順です。

次に、作成したデータ・モデルおよびレポートのエクスポートおよびインポート手順についてご紹介します。

3. エクスポートおよびインポート手順

本番環境のデータ・モデルやレポートをバックアップする時や、開発環境で作成したデータ・モデルやレポートを本番環境へリリースする時に、エクスポートおよびインポート機能を活用することができます。

まず、エクスポート手順をご紹介します。


図22:エクスポート画面

上記手順では、データ・モデルのエクスポート手順をご紹介しましたが、レポートのエクスポート手順も同様です。

次に、インポート手順をご紹介します。上記でエクスポートしたデータ・モデルを違うフォルダにインポートします。


図23:インポート画面

以上がインポート手順です。
インポート時の注意点として、フォルダ構成またはデータソースの名称が同一でない場合は、インポート後の環境で下記対応が必要となります。

  • ・フォルダ構成が同一でない場合
        レポートの再作成が必要となります。
        ⇒ データ・モデルは使用可能ですが、レポート起動時に下記エラーが出力されます。


図24:レポート起動時のエラーメッセージ

  • ・データソースの名称が同一でない場合
        データソースを変更する必要があります。
        ⇒ データ・セットおよび値リスト起動時に下記エラーが出力されます。


図25:データソースのエラーメッセージ

エススポートおよびインポート機能のご紹介は以上です。
最後にBI Publisherを構成する場合のEMサーバの要件について記載します。

4. EMサーバ要件

EMサーバで必要となるOracle Management Service(以下 OMS)とOracle Management Repository(以下 OMR)の要件についてそれぞれ記載します。
なお、本項目は製品マニュアルの抜粋であるため、最新情報を確認する意味で参考情報と示した実際のマニュアル記述もあわせてご確認ください。

OMSの要件は規模別に下記の通りです。規模についての補足情報は後述します。
下記の物理メモリーには、BI Publisherに必要なメモリーが含まれています。

規模 CPU RAM ハード・ディスク領域 一時ディレクトリのハード・ディスク領域 Oracle Weblogic Server JVMヒープ・サイズ
4 10GB 28GB 10GB 1.7GB
6 12GB 28GB 10GB 4GB
12 24GB 28GB 10GB 8GB

表5:OMSの要件

Oracle® Enterprise Manager Cloud Control基本インストレーション・ガイド 13cリリース2 E78878-03
1.1 Oracle Management ServiceのCPU、RAM、ヒープ・サイズおよびハード・ディスク領域要件

また、OMRの要件は規模別に下記の通りです。

規模 CPU RAM ハード・ディスク領域
4 7GB 147GB
6 10GB 455GB
12 18GB 649GB

表6:OMRの要件

Oracle® Enterprise Manager Cloud Control基本インストレーション・ガイド 13cリリース2 E78878-03 1.3
Oracle Management RepositoryのCPU、RAM、ヒープ・サイズおよびハード・ディスク領域要件

EMCCの構成規模の考え方は下記の通りです。

規模 エージェント数 ターゲット数 同時ユーザセッション数
100未満 1000未満 10未満
100以上1000未満 1000以上10000未満 10以上25未満
1000以上 10000以上 25以上50未満

表7:EMCC構成規模

Oracle® Enterprise Manager Cloud Controlアドバンスト・インストレーションおよび構成ガイド 13c リリース2 E78876-03
13.1.1.2 サイジングの仕様

以上がBI Publisherを構成する場合のEMサーバの要件となります。

最後に

本記事では具体例を使用したBI Publisherのレポート作成手順、および、運用効率化の為の自動配信の仕組みや開発時に便利なエクスポート・インポート機能をご紹介させていただきました。

前回の記事と併せてBI Publisherの運用イメージは持っていただけたでしょうか。
BI Publisherをご活用いただくことで皆様のDB運用が効率化すれば幸いです。