■このツールについて  このShellスクリプトおよびSQLスクリプトは、  Unix(Linux)でのDBA作業をメインとした方が効率良く作業できることを目的として  DBA用のディクショナリやチューニング等で検索する情報を画面やログとして確認  できるようにしたスクリプトである。  皆様がこのツールをもとにさらに改良を加えることも自由にできますので、  Oracle作業を効率的に作業してください。  ■セットアップについて  1.TARの解凍   $uncompress oratool $tar xvf oratoolxxxxx.tar . 2.セットアップの実行   $./setup    (使用するSHELLを設定してください。[csh,ksh,sh])  3.環境変数PATHへの追加   setupコマンドの最後に表示されている/Binを 環境変数PATHへ追加    4.再度ログインで完了  その他(管理コマンド)  chp    :alive,dbo,tkpのOracleパスワード(MANAGER)を       一括変換するShellスクリプト  tar.sh  :バックアップShellスクリプト  RmDir.sh :ディレクトリ削除Shellスクリプト  oraenv :csh用の環境変数ファイル  oranenk :ksh,sh用の環境変数ファイル  ohelp [s/e]:sjis,euc用の簡易コマンドヘルプ ■チューニングコマンド  チューニングについての情報は、各種チューニングマニュアル等や  チューニング文献等を参考にしてください。   1.sqlsta   □内容:V$SQLディクショナリを検索する。 -I/O(DISK_READS) -DB Buffer(BUFFER_GETS)       をキーにして、重いSQL文をファイルに書き出す。       SQL_TEXTは1000文字まで。   □PATH設定:N/A □ファイル名:ORATOOL/TUNING/sqlsta □関連ファイル:N/A   □引数等:N/A □入力:N/A   □出力:sqlsta_MMDDHHMM.log ex)sqlsta_01181547.log □その他:Where句の条件(DISK_READS,BUFFER_GETSの調整)        SQL文をファイル(xx.sql)を作成し、planコマンドでSQL解析パスを分析   □サンプル: ----- SQL_TEXT -------------------------------------------------------------------------------- DATE_TIME SORTS EXECUTE PARSE DISK_READS BUFFER_GETS MODULE -------------- ----- -------- ------ ---------- ----------- ---------------- SELECT ID_FLEX_NAME,ID_FLEX_STRUCTURE_NAME,PARENT_SEGMENT_NAME,SEGMENT_NAME,FLEX _VALUE,VALUE_DESCRIPTION,APPLICATION_ID,APPLICATION_NAME,FLEX_DESCRIPTION,STRUCT _DESCRIPTION,SEGMENT_DESCRIPTION,FLEX_VALUE_SET_ID,SECURITY_ENABLED_FLAG,PARENT_ FLEX_VALUE_SET_ID,VALIDATION_TYPE,SUMMARY_ALLOWED_FLAG FROM FND_FLEX_KEY_SEG_VSE T_V WHERE (validation_type in ('I', 'D') or (validation_type = 'F' and summary_a llowed_flag = 'Y')) and (ID_FLEX_NAME=:1) and (ID_FLEX_STRUCTURE_NAME LIKE :2) a nd (PARENT_SEGMENT_NAME=:3) and (SEGMENT_NAME IS NULL) and (APPLICATION_NAME=:4) 01/18 16:04:44 4 8 8 856 215771 2.alive □内容:V$SESSION,V$PROCESSを使用して、現在接続している情報の表示   □PATH設定:有り   □ファイル:ORATOOL/Bin/alive □関連ファイル:aliveシェルよりORATOOL/UTIL/alive.sql、alive2.sqlを実行   □引数:N/A □入力:N/A   □出力:画面表示のみ   □その他:プロセスIDの特定等に有効   □サンプル: ----- Now Connecting SID => ora806 Now Connecting PROCESS Number is 7. Server Oracle Client Client ProcNo User User ProcNo Client Prog Login Time ------ ---------- ---------- -------- ---------------------------- ----------- 24827 CTXSYS oramgra 24821 ctxsrv@ora806 (TNS V1-V3) 01/18 03:42 25098 APPS appsmgra 25062 ICM@ora806 (TNS V1-V3) 01/18 03:43 25115 APPS appsmgra 25103 STANDARD@ora806 (TNS V1-V3 01/18 03:43 25116 APPS appsmgra 25102 STANDARD@ora806 (TNS V1-V3 01/18 03:43 25125 APPS appsmgra 25101 CRM@ora806 (TNS V1-V3) 01/18 03:43 3044 APPS appsmgra 1731 f45runm@ora806 (TNS V1-V3) 01/18 13:39 3044 APPS appsmgra 1731 f45runm@ora806 (TNS V1-V3) 01/18 15:21 3.tkp □内容:user_dump_destに出力されたトレースファイルをTKPROFしてくれる簡易シェル   □PATH設定:有り   □ファイル:ORATOOL/Bin/tkp □関連ファイル:N/A   □引数:user_dump_destに出力された最新トレースファイルを作成した場合 第1引数にl(エル)       #tkp l       user_dump_destに出力されている全てのトレースファイルを変換する場合 第1引数にa       #tkp a   □入力:USER/PASSWORD       ソートオプション   □出力:tkpを実行したディレクトリに出力する。       第1引数lの場合:lst1.prf       第1引数aの場合:all(1〜n).prf 4.plan □内容:SQLファイルを指定して、SQL解析パスを確認する。       EXPLAIN PLANをシェル化して使い易くしたもの   □PATH設定:有り   □ファイル:ORATOOL/Bin/plan □関連ファイル:ORATOOL/PLAN/plan1.sql、plan2.sql、plan3.sql   □引数:結果が複雑な場合のみ第一引数にm(エム)を指定する       #plan m   □入力:USER/PASSWORD(解析するSQL文の実行オラクルユーザー)       入力SQLファイル名(拡張子.sqlは入力しない)       EXPLAIN_ID(出力ファイル名)   □出力:実行時ディレクトリにEXPLAIN_ID.listが出力される   □サンプル: ----- ******************** PLAN_TABLE OUTPUT ********************* ID OPERATION OPTIONS OBJECT_NAME COST --- -------------------------------- --------------- -------------------- ----- 1 NESTED LOOPS OUTER 2 TABLE ACCESS BY INDEX ROWID OBJ$ 3 INDEX RANGE SCAN I_OBJ2 4 TABLE ACCESS CLUSTER TAB$ 5 INDEX UNIQUE SCAN I_OBJ# ****************** EXECUTE SQL STATEMENT ******************* select * from tab ■その他分析コマンド -引数    :全て無し -ログファイル:.log -PATHの設定 :全て無し [O/S] sarsta : sarコマンドのログ vmsta : vmstatコマンドのログ [Oracle] Oracle Userのパスワード[default:'MANAGER'] (異なる場合エディタにて変更のこと。) sescnt : 現在のセッション数とACTIVEセッション数 sgastat : 現在のSHARED_POOLの内容(v$sgastat) seswait : v$session_waitによるセッションの待ち情報 seswait_latch :v$session_waitにおける'latch free'待ちのラッチ名表示 seswait_enq :v$session_waitにおける'enqueue'待ちのエンキュー名表示 seswait_block :v$session_waitにおけるI/O系待ちのオブジェクト表示 seswait_sql :v$session_waitにおけるI/O系待ちのSQL文を表示 redo_latch :v$latchの'redo allocation','redo copy'を表示 sqlsta :v$sqlのI/Oブロック操作の多いSQL文を表示 sqlstab :v$sqlのBufferブロック操作の多いSQL文を表示