Oracleトラブル対応めも

●datapumpでエラーになった時のKILL方法
expdp ユーザ/パスワード attach = OWNER.JOB名
※impdpも同様
としてそれぞれのセッションに接続後、kill_jobを実行しなければならない。

 

尚、上記JOB名はDBA_DATAPUMP_JOBSから取得できる。

 

●現在動作中のSQLを把握する方法
col lockwait for a10
col sql_fulltext for a30
col event for a10
select v.sid,v.event,v.serial#,s.sql_fulltext,lockwait from v$session v,v$sql s where v.sql_hash_value=s.hash_value and status='ACTIVE'
--RAC
col lockwait for a10
col sql_fulltext for a30
col event for a10
col sid for 99999
col i for 9
select v.inst_id as i,v.sid,v.event,v.serial#,s.sql_fulltext,lockwait from gv$session v,gv$sql s where v.sql_hash_value=s.hash_value and status='ACTIVE' and v.inst_id = s.inst_id
●長時間動作しているSQLを把握する方法
alter session set nls_date_format='yyyy/mm/dd HH24:MI:SS';
select start_time,last_update_time,sql_hash_value,elapsed_seconds from v$session_longops order by last_update_time
●ロックしているオブジェクトを検索する。
select L.*,O.* from V$locked_object L,dba_objects o
where L.object_id = o.object_id;
/
●ロックしているセッション検索する。
col username for a10
col program for a10
col machine for a20
col osuser for a10
col sid for 9999
SELECT S.SID, S.SERIAL#,S.osuser,S.username,S.program,S.machine,L.ID1,L.ID2,L.LMODE,L.CTIME,L.BLOCK FROM V$SESSION S,V$LOCK L
WHERE S.SID = L.SID
and L.TYPE IN ('TM','TX')
/
●隠しパラメータを表示する
SELECT * FROM SYS.X$KSPPI WHERE KSPPINM LIKE '_%';
●_b_tree_bitmap_plans (隠しパラメータ)の値を確認する。
select ksppinm as "Hidden Parameter", ksppstvl as "Value" from x$ksppi join x$ksppcv using (indx) where ksppinm = '_b_tree_bi';