세션 관리
자기 자신의 세션번호 빠르게 조회하기 |
SELECT * FROM VT_MYSESSID; |
간단한 세션모니터링 |
SELECT TO_CHAR(sysdate, 'yyyy/mm/dd hh24:mi:ss') AS dt, sid, serial#, username, status, sql_et / 1000 AS "sec", machine, prog_name FROM v$session; |
현재 수행중인 세션 확인 |
SELECT sid, sql_id, prog_name, ipaddr FROM v$session WHERE status = 'RUNNING'; |
자기 세션을 제외하고 running 중인 session에 대해 kill session 구문 생성 |
SELECT 'ALTER SYSTEM KILL SESSION(' || sid || ',' || serial# || ')' FROM v$session WHERE status = 'RUNNING' AND sid <> ( SELECT * FROM vt_mytid ); |
Session Kill 시 Spinlock을 잡고있는 상태면 DB Down이 발생함. Force로 Kill 하기 전에 Spinlock 잡고 있는지 확인하는 방법 |
SELECT inst_id, sid, serial#, pid, OS_THR_ID FROM gv$session WHERE sid = <SID> AND inst_id = <Instance> |
위 조회 결과가 없을 시 Kill Session 수행 |
ALTER SYSTEM KILL SESSION '<위에 조회된sid>,<위에 조회된 serial#>' FORCE; |
|
|
성능 관리
TPR Snapshot 생성 |
EXEC dbms_tpr.create_snapshot; |
TPR Report 생성 |
EXEC dbms_tpr.report_text_id(<snap_id>, <snap_id>, <inst_id>, '<file_name>'); |
SQL 수행 플랜 보기 쿼리 수행 후 플랜 노드 별 수치 보기 |
SELECT * FROM table( dbms_xplan.display_cursor(null, null, 'IOSTATS -TEMPREAD -TEMPWRITE LAST CARDS ROWS -COST PREDICATE ELAPTIME' )); |
SQL 동작 중 Physical Plan Cache 초기화 |
ALTER SYSTEM FLUSH PPC CHILE_NUMBER 'SQL_ID'; |
autotrace 수행 |
SET AUTOT TRACE EXP; SET AUTOT TRACE EXP PLANS STAT; |
접속 중인 다른 세션의 sql trace 수집 예) 접속 중인 89번 세션에 sqltrace 수집하기 |
exec DBMS_MONITOR.SESSION_TRACE_ENABLE(89); // 활성화 exec DBMS_MONITOR.SESSION_TRACE_DISABLE(89); // 비 활성화 |
DB 백업
유저 별 Export Backup |
$ tbexport username=sys password=tibero sid=<SID> port=<PORT> file=<파일명> log=<로그명> script=y user=<유저명> |
Control File Backup |
ALTER DATABASE BACKUP CONTROLFILE TO TRACE AS '<저장할파일명>'; |
기타 명령어
tbsql 명령어를 통한 sql 파일 직접수행 |
$ tbsql <계정명>/'<패스워드>' @<파일명> |
현재 접속된 유저 확인 |
ls user |
tbsql에서 loop 구문 후 SQL 문장 작성시 주기적으로 해당 SQL문 수행 예) loop select 1 from dual; |
SET INTERVAL <시간간격(초)>; LOOP <반복 수행할 SQL문>; |
|
|
로그 및 덤프 관리
tbev -ts 파일명 eventlog 바이너리를 텍스트로 추출하고자 할 때 사용 |
$ tbev -ts <파일명> |
tbiv -ts 파일명 iLOG 바이너리를 텍스트로 추출하고자 할 때 사용 |
$ tbiv -ts <파일명> |
특정 세션의 callstack 수집 |
ALTER SYSTEM DUMP CALLSTACK <SID>; |
특정 에러 번호에 대한 Callstack 덤프 on/off |
ALTER SYSTEM DUMP CALLSTACK ON ERROR <에러번호> <ON/OFF>; |
컨트롤 파일 덤프 수행 |
ALTER SYSTEM DUMP CONTROLFILE; |
데이터파일의 특정 블럭 번호 덤프 수행 |
ALTER SYSTEM DUMP DATAFILE <데이터파일번호> BLOCK <블럭번호>; |
데이터파일의 특정 블럭 번호 구간 덤프 수행 |
ALTER SYSTEM DUMP DATAFILE <데이터파일번호> BLOCK <시작블럭번호> <끝블럭번호>; |
특정 세션이 수행한 쿼리덤프 수집(메모리정보) |
ALTER SYSTEM DUMP MEMLOG <SID>; |
ALTER SYSTEM DUMP PPC 'SQLID' CHILD_NUMBER; |
모든 행위에 대해 Callstack 덤프 수행 |
ALTER SYSTEM DUMP CALLSTACK; |
아카이브 로그 파일 덤프 수행 |
ALTER SYSTEM DUMP LOGFILE '<아카이브파일명(절대경로포함)>'; |
DB 할당 메모리 Dump 추출 |
ALTER SYSTEM DUMP LOGFILE '<아카이브파일명(절대경로포함)>'; |
OS 환경 관리
파일 삭제 시 티베로 프로세스가 파일을 오픈하고 있는지 확인 |
$ fuser <파일명> |
티베로 Port를 사용해야 하는데 충돌 발생 시, 해당 Port를 오픈한 프로세스 존재 확인 |
$ lsof -i <포트번호> |
비정상 종료 시 공유 메모리, 세마포어 일괄 정리 |
$ ipcs -m | grep tibero6 | awk '{print $2}' | while read line ; do ipcrm -m $line; done $ ipcs -s | grep tibero6 | awk '{print $2}' | while read line ; do ipcrm -s $line; done |
DB 차원이 아닌 OS 차원에서 DB에 연결된 TCP 접속 확인 |
$ netstat -antp | grep <리스너포트> | grep LISTEN |
|
Created By
Metadata
Comments
No comments yet. Add yours below!
Add a Comment
Related Cheat Sheets