第2回 サポートツールを活用しよう(1)


近年のIT環境では、クラウドや継続的インテグレーション/デプロイメント、テスト駆動開発などのムーブメントの広がりもあって、自動化・省力化が進んでいます。アプリケーション分野と比べると、データベースを含むインフラ分野の自動化は遅れ気味ですが、それでも徐々に進化しています。高度化・多様化するIT環境では、インフラにもさらなる「スピード」が求められるのは必然でしょう。

さらなる「スピード」を実現するためにはツールの活用が欠かせません。Oracleデータベースには構築や運用、トラブルシュートに役立つツールがたくさんあります。有名なものとしては、Oracle Enterprise Manager や AWR ( Automatic Workload Repository ), ADDM( Automatic Database Diagnostic Monitor )などでしょう。

これらはよく知られていますので、今回はあまり知られていないけれど便利な、Oracle製品サポートで提供しているツール群を紹介します。

Oracle製品サポートで提供しているツール群

Oracle製品サポートではたくさんのツールを提供しているのですが、今回はいくつかのツールを一つにまとめた「Support Tools Bundle」の中から、比較的使いやすいものを中心に紹介します。

  • ※Support Tools Bundleは2015年1月で廃止になり、TFA Collectorに統合されました。まとめて使用したいときは、TFA Collectorをダウンロードしてください。OSWatcherやORAchk、ORATOPなどのツールは、従来通り単体でのダウンロードも可能です。

DB Support Tools Bundleに含まれているツール一覧

ツール名 説明
ORAchk RACを含むOracleデータベースのヘルスチェックツール
Trace File Analyzer Collector(TFA) 診断データ収集ユーティリティ。複数の診断データを一括収集したり、時間範囲を指定したりできる
OSWatcher OSのパフォーマンス情報を収集するスクリプト。収集したデータの分析機能もある
Procwatcher プロセス障害に起因するパフォーマンス問題やセッションハング情報を収集するツール
ORATOP Oracle版のtop。Oracleのプロセスや待機イベントをリアルタイムに表示する
SQLT(SQLTXPLAIN) SQL文の分析ツール
RDA システムの構成や稼動状況、ログ等の詳細な情報を収集するツール

ORAchk

ORAchkは、シングルインスタンスのデータベースだけでなく、RACやE-Business Suiteなどのシステム環境を分析して、設定をチェックするツールです。機械的にチェックするので、見落としを防止するために有用です。またシステムの構成情報を把握するためにも役立ちます。以前はRACcheckと言われていました。

使い方は簡単で、次のコマンドを実行するだけです。システム状況を分析してHTMLのレポートを生成します。

$ ./orachk -a

次の画像は、出力結果のほんの一部分です。読みこなすには、ある程度の知識は必要ですが、WARNING(警告), FAIL(失敗)など、カテゴリごとに評価され、総合ポイントも出力されます。

Database Server図

OSWatcher

OSWatcherは、内部的にvmstatやiostat、netstatなどを使用してOSの稼働情報を収集するツールです。Oracleデータベースでも、ある程度のOS情報は収集していますが、システム状況を詳細に分析するためにOSレベルの稼働情報は欠かせません。

そしてこのツールが優秀なのは、取得したデータを分析する機能や、古いログを自動削除する機能があることです。つねに稼働させておくことで、OS(OSWatcher)とDB(AWR/ADDM)の両面からシステムを分析できます。障害時に役立つだけでなく、パフォーマンスチューニングなどのフェーズでも役に立ちます。

詳しい使い方はマニュアルを見ていただくとして、簡単に使い方や機能を紹介します。なおExadataには、ExaWatcherという同等のツールがあります。

60秒間隔で情報を収集し、データは直近の24時間だけ残すには、次のように実行します。最後の引数はデータの出力先ディレクトリです。

$ LANG=C ./startOSWbb.sh 60 24 gzip /u01/tools/oswbb/archive

セッションをログアウトしてもバックグラウンドで動かすためには次のように入力します。

$ LANG=C nohup ./startOSWbb.sh 60 24 gzip /u01/tools/oswbb/archive &

該当ディレクトリをtreeコマンドで見てみると、iostatやmeminfoなどの情報を取得していることがわかります。

$ tree /u01/tools/oswbb/
archive/
|-- oswifconfig
|   |-- o121-ol6_ifconfig_14.10.29.1300.dat.gz
|   `-- o121-ol6_ifconfig_14.10.29.1400.dat
|-- oswiostat
|   |-- o121-ol6_iostat_14.10.29.1300.dat.gz
|   `-- o121-ol6_iostat_14.10.29.1400.dat
|-- oswmeminfo
|   |-- o121-ol6_meminfo_14.10.29.1300.dat.gz
|   `-- o121-ol6_meminfo_14.10.29.1400.dat
|-- oswmpstat
|   |-- o121-ol6_mpstat_14.10.29.1300.dat.gz
|   `-- o121-ol6_mpstat_14.10.29.1400.dat
|-- oswnetstat
|   |-- o121-ol6_netstat_14.10.29.1300.dat.gz
|   `-- o121-ol6_netstat_14.10.29.1400.dat
以下省略

停止するには次のように入力します。

./stopOSWbb.sh

次に収集したデータを活用する方法を紹介します。データはテキスト形式なのでExcelなどに取り込んで加工することもできますが、OSWatcherの機能を使って、分析レポートやグラフを含んだレポートを出力することもできます。

たくさんのデータを収集した場合、どこに問題があるのかデータをチェックすること自体大変です。しかし分析機能を使うと問題のある箇所を指摘してくれるので、人間による分析作業を大幅に削減できます。

メニューモードで実行すると、次のようなプロンプトが表示されます。

$ LANG=C java -jar oswbba.jar -i /u01/tools/oswbb/archive

Enter 1 to Display CPU Process Queue Graphs
Enter 2 to Display CPU Utilization Graphs
Enter 3 to Display CPU Other Graphs
Enter 4 to Display Memory Graphs
Enter 5 to Display Disk IO Graphs

Enter 6 to Generate All CPU Gif Files
Enter 7 to Generate All Memory Gif Files
Enter 8 to Generate All Disk Gif Files

Enter L to Specify Alternate Location of Gif Directory
Enter T to Alter Graph Time Scale Only (Does not change analysis dataset)
Enter D to Return to Default Graph Time Scale
Enter R to Remove Currently Displayed Graphs

Enter A to Analyze Data
Enter S to Analyze Subset of Data(Changes analysis dataset including graph time scale)

Enter P to Generate A Profile
Enter X to Export Parsed Data to File
Enter Q to Quit Program

Please Select an Option:

”a”のANALYZEオプションを選択すると、analysisディレクトリ配下に分析結果が出力されます。次はその一部です。環境によって異なりますが、OS全体の分析が600行程度で出力されます。CPU、メモリー、ディスク、ネットワークの各視点から、システム状況を診断し、問題のある箇所を指摘します。

############################################################################
# Section 1: System Status
#
# This section lists the status of each major subsystem. Status values are:
# Critical: The subsystem requires immediate attention
# Warning:  The subsystem detailed findings should be reviewed
# OK:       The subsystem was found to be okay
# Unknown:  The status of the subsystem could not be determined
#
#
Subsystem       Status
------------------------
CPU             OK
MEMORY          OK
I/O             OK
NET             OK

今回は紹介しませんが、分析期間の範囲指定や、パフォーマンスデータのHTMLグラフ出力(profileオプション)など、さまざまな機能があります。またOSWatcherの自動起動をサポートするoswbb-serviceというRPMも提供されています。

Profile機能による出力レポート(一部)

Database Server図

今回は詳細な使い方までは説明していませんが、なんとなく便利そうだと思っていただけましたか。とくにORAchkは簡単なので一度は使ってみてください。

次回はORATOPやSQLTなどを紹介します。

にわかワイン通養成講座

第2回 ボジョレー・ヌーボーの話

ボジョレー・ヌーボーの季節が近くなってきました。ボジョレー・ヌーボーは、フランス南東部の都市「リヨン」の近くのボジョレー地区で作られる新酒ワインのことです。解禁日は毎年11月第3木曜日と決まっていて、日付変更線の関係から、日本が世界で一番早く飲めるといわれています。フランス語のnouveau(ヌーボー)は「新しいもの」という意味です。

20世紀の中ごろに制定された解禁日ですが、日本では1980年代のバブル期に広まり、最近までは世界一の輸入量を誇っていました。その数は圧倒的で、全輸出量の半分を日本に輸入していた時期もあります。ここまでヒットした一番の理由は、新米や初鰹、新酒など「初物好き」の日本人気質が関係していると言われています。

フランスより日本のほうが盛り上がっているのは確かで、フランスでもヌーボーが出回るのはパリと生産地の周辺だけです。そのためヌーボー生産者の重鎮は、解禁日に合わせて毎年のように来日しています。

それでわたしがよく聞かれるのは「ボジョレー・ヌーボーっておいしいの?」という質問です。実際のところ、ワイン好きのなかでも、マニア度の高い人ほど飲まないお酒だと言われています。

でも、わたしは毎年けっこう飲んでいる派です(キッパリ)。解禁日午前零時のパーティーにも何度か参加しています。単に酒好き、祭り好きだからと言ってしまえばそれまでなのですが...。

マニアが飲まないおもな理由は「コストパフォーマンスがよくない」「特筆するほどの味ではない」などでしょう。

コストパフォーマンスがよくないのは、航空便(一時期に集中するため航空運賃も高い)であることに起因しているのですが、最近は流通のがんばりもあって千円以下のものも出回っています。

また「おいしいかどうか」については、嗜好品なので人それぞれぞれですが、フレッシュさを味わうものと考えれば、決してまずくはありません。一般的なワインの味わいのレベルが1から10まであるとすれば、4から5くらいはあります。ブレが少ないワインだとも言えます。

そもそもボジョレー・ヌーボーは、新しいワインが出来たことを祝うものです。それに対して厳密な批評は野暮と言うもの。素直に楽しむというのが正しい姿勢でしょう。みなさんもヌーボーを楽しみませんか。わたしもきっと解禁日の午前零時には酩酊状態...いやハッピー状態になっていることでしょう。



第2回 サポートツールを活用しよう(1)