본문 바로가기
DATABASE/ORACLE

temp tablespace 알림

by YUNZZANG 2024. 5. 30.
728x90
export 할 때는 temp tablespace 를 쓸 일이 없기 때문에 특별히 신경쓰지는 않아도 되는 부분이지만,
 
import 할 때는 index를 만들 때 temp tablespace를 쓰기 때문에 한번 검토해줘야한다.
 

TEMP Tablespace 의 종료되지 않은 세션 확인

  • sort작업으로 인해 어떤 것이 TEMP Tablespace를 사용하고 있는지 확인
select s.*, u.tablespace, u.contents, u.extents
from v$session s,
v$sort_usage u
where s.saddr=u.session_addr;

TEMP 를 사용하고 있는 세션 종료

  • 위 세션을 확인하면 SID 번호가 나온다. 이 SID번호를 확인하여 PID 조회 후 종료한다.

1. 종료되지 않은 세션 정보 확인

  • 적어둔 두개의 쿼리로 세션 정보 및 클라이언트 이름 및 모든 정보를 확인 할 수 있다.
SELECT
a.sid, -- SID
a.status, -- 상태정보
a.process, -- 프로세스정보
a.osuser, -- 접속자의 OS 사용자 정보
b.sql_text, -- sql
c.program -- 접속 프로그램
FROM v$session a,
v$sqlarea b,
v$process c
WHERE a.sql_hash_value=b.hash_value
AND a.sql_address=b.address
AND a.paddr=c.addr
 
SELECT /*+ rule */
s.STATUS "Status", s.serial# "Serial#", s.TYPE "Type",
s.username "DB User", s.osuser "Client User", s.server "Server",
s.machine "Machine", s.module "Module", s.terminal "Terminal",
s.program "Program", p.program "O.S. Program",
s.logon_time "Connect Time", lockwait "Lock Wait",
si.physical_reads "Physical Reads", si.block_gets "Block Gets",
si.consistent_gets "Consistent Gets",
si.block_changes "Block Changes",
si.consistent_changes "Consistent Changes", s.process "Process",
p.spid, p.pid, s.serial#, si.sid, s.sql_address "Address",
s.sql_hash_value "Sql Hash", s.action
FROM v$session s, v$process p, sys.v_$sess_io si
WHERE s.paddr = p.addr(+)
AND si.sid(+) = s.sid
AND s.username IS NOT NULL
AND NVL (s.osuser, 'x') <> 'SYSTEM'
AND s.TYPE <> 'BACKGROUND'
ORDER BY 3;

2. 종료되지 않은 세션 Kill

alter system kill session 'SID값을 넣어주세요, SERIAL값을 넣어주세요';

3. 세션을 종료가 되지 않는 경우 프로세스 종료

select spid from v$process
where addr = (select paddr from v$session where sid = 'SID값을 넣어주세요');
 

'DATABASE > ORACLE' 카테고리의 다른 글

tnsnames.ora 위치  (0) 2024.05.30
SYS 계정 선별 sql  (0) 2024.05.30
temp tablespace 확인 (GB단위)  (0) 2024.05.30
system 계정 비밀번호에 특수기호가 있을경우  (0) 2024.05.30
RAC 개요  (0) 2024.05.10

댓글