Entries from 人とデータと、時々IT tagged with 'クラウド'

[DB Architect] 雲の中でも安全運転なアプリ運用 - その2 -

前回に続き、同じタイトルを使って行きたいと思います。 「監視しやすいアプリを構築するTips」という言葉は長ったらしいので、 略して「Module列の活用」とさせていただきます("省略"じゃなくて、"言い換え"ですが...)。 この「Module列」の活用って、実は結構古くからある機能なんです。 少なくとも、Oracle8iの時からありますし、私のお客様でもOracle8i (8.1.7.4)でも ご活用いただいていました。 で、これって結局何?といわれると、V$SESSIONビューのモジュール列に反映されるものです。 SQL*Plusから実行するなら、こんな感じです。 SQL> SET APPINFO 例: SQL> SET APPINFO myappl DBAが稼動状況監視の時や万が一の障害発生時に最初に良く見る V$SESSIONやDB Controlでは以下の様に反映されるのです。 これは内部的には、DBMS_APPLICATION_INFOというPL/SQLパッケージの SET_MODULEというプロシージャが実行されているのです。 ということは? もう、お分かりですね。 DBMS_APPLICATION_INFOパッケージを使えば、様々なアプリケーションからでも このModule列に対してアプリケーション情報を設定できるのです。 アプリケーションを開発する時に、そのアプリケーションが運用において、 数十という種類のサービス、アプリケーション、そして実際には 数百~数千というデータベース・セッションの中に埋もれてしまうという 事を意識して開発する人は限られているのでは無いでしょうか? 障害の時、エラーが発生している時、その発生している状況を迅速かつ 正確に情報を収集できるかが早期解決の鍵になります。 データベース・インスタンス・レベルでの情報収集は自動ワークロード・ リポジトリ(Automatic Workload Repository:AWR)によって実施されています。 そこから、更に掘り下げたい場合には、SQLトレースを取得する事などが考えられます。 更に効率化を狙う時には、 ・SQLチューニング・セットを作成する ・SQLチューニングアドバイザを実行する...