Gblog

おもにTips

v$parameter と v$parameter2

前回の記事で使いましたが、パラメータの確認にたまに便利な v$parameter2。

たとえば、

SQL> select name , value from v$parameter where name ='control_files';

NAME            VALUE
--------------- ----------------------------------------------------------------------------------------------------
control_files   /u01/app/oracle/oradata/ora112/control01.ctl, /u01/app/oracle/oradata/ora112/control02.ctl

 これだとうまく設定されていそうですが、、、

SQL> alter database mount;
alter database mount
*
行1でエラーが発生しました。:
ORA-00205: ?????????????????????????????????????????

実際には、起動できません。

続きを読む

初期化パラメータに複数の値を設定する

これもいつも忘れてしまう。例えば初期化パラメータの control_file や event など 単一のパラメータに複数の値を設定する場合の設定方法。

pfile の場合は、2行に分けて続けて書いてあげればいい。

control_files='/u01/app/oracle/oradata/ora112/control01.ctl'
control_files='/u01/app/oracle/oradata/ora112/control02.ctl'

するとこんな感じ。

SQL> select name , value from v$parameter2 where name ='control_files';

NAME            VALUE
--------------- ----------------------------------------------------------------------------------------------------
control_files   /u01/app/oracle/oradata/ora112/control01.ctl
control_files   /u01/app/oracle/oradata/ora112/control02.ctl

 

続きを読む

AWR レポートの出力 (awrrpt.sql) を非対話型で

awrrpt.sql は、awrrpti をコールしているだけ。

この時、いくつか bind 変数を設定している。

--
-- Get the current database/instance information - this will be used
-- later in the report along with bid, eid to lookup snapshots

set echo off heading on underline on;
column inst_num  heading "Inst Num"  new_value inst_num  format 99999;
column inst_name heading "Instance"  new_value inst_name format a12;
column db_name   heading "DB Name"   new_value db_name   format a12;
column dbid      heading "DB Id"     new_value dbid      format 9999999999 just c;

prompt
prompt Current Instance
prompt ~~~~~~~~~~~~~~~~

select d.dbid            dbid
     , d.name            db_name
     , i.instance_number inst_num
     , i.instance_name   inst_name
  from v$database d,
       v$instance i;

@@awrrpti

続きを読む

AWR report を出力するためのSQL

たくさんあるよね。

ルールはこんな感じ。

  • i がつくと、dbid を指定できる。
  • sq は SQLレポート
  • g がつくと、Oracle RAC 用(複数ノードをまとめてだしてくれる)
  • d は比較レポート

 

実際にどんなファイルがあるかというと。

続きを読む

USERENV(関数)と SYS_CONTEXT

前回、セッション情報を取得するときに気付いたのですが USERENV は非推奨なんですね・・・。

Oracle Database SQL言語リファレンス(12.1)

注意:
USERENVは、下位互換用に保持されるレガシー・ファンクションです。現行の機能に対して組込みUSERENVネームスペースとともにSYS_CONTEXTファンクションを使用することをお薦めします。詳細は、「SYS_CONTEXT」を参照してください。

 

SYS_CONTEXT で NAMESPACE=USERENV を指定するといろんな情報がとれるみたいです。自分が便利かも、と思うものをいくつか紹介。

続きを読む

トレースファイル名を取得するSELECT

トレースを取ったはいいけど、どのファイルにでているのか分からなくなってしまう自分向け。

select tracefile from v$process p , v$session s
where  s.paddr=p.addr and audsid=sys_context('USERENV','SESSIONID');

結果は、

続きを読む

SQL TRACE の生トレース

生トレースみるのは、バインド変数の確認や待機イベントの分析時でしょうか。

PARSE とか WAIT とか STAT とか、いろいろな情報が出力されていますが、いつも忘れてしまうのは XCTEND。

続きを読む