반응형
sqlplus로 관리자 접속 방법
# 로그인 없이 sqlplus 실행
sqlplus /nolog
# 로그인 (아래 방법 모두 해당
SQL> conn /as sysdba
SQL> conn system/패스워드 as sysdba
SQL> connect /as sysdba
SQL> connect system/패스워드 as sysdba
Session 및 Process 확인 및 설정
-- 실시간 Process 수 확인
-- CURRENT_UTILIZATION : 현재 접속자 수
-- MAX_UTLIZATION : 오라클 기동 후 현재까지 최대접속자 수
-- INITIAL_ALLOCATION : init.ora 파라미터에서 설정한 최대값
SQL> SELECT * FROM v$resource_limit where resource_name in ('processes', 'sessions', 'transactions');
-- 설정된 최대 프로세스 값 확인
SQL> show parameter processes;
-- 설정된 최대 세션 값 확인
SQL> show parameter sessions;
-- 최대 Process/Session 변경
-- 최대 Session 수는 Sessions = (Process x 1.5) + 30 임으로 Processes 값만 변경하면 Sessions 값은 자동으로 변경됨
SQL> alter system set processes=300 scope=spfile;
SQL> shutdown immediate;
SQL> startup
Table Lock 확인 및 해제
-- Lock 확인
SELECT OBJECT_ID, SESSION_ID, ORACLE_USERNAME, OS_USER_NAME FROM V$LOCKED_OBJECT;
-- SESSION_ID, SERIAL 번호로 락걸린 개체 확인
SELECT A.SID
, A.SERIAL#
, OBJECT_NAME
, A.SID || ', ' || A.SERIAL# AS KILL_TASK
FROM V$SESSION A
INNER JOIN V$LOCK B ON A.SID = B.SID
INNER JOIN DBA_OBJECTS C ON B.ID1 = C.OBJECT_ID
WHERE B.TYPE = 'TM';
-- Lock 발생 user, object, sql 조회
SELECT DISTINCT T1.SESSION_ID
, T2.SERIAL#
, T4.OBJECT_NAME
, T2.MACHINE
, T2.TERMINAL
, T2.PROGRAM
, T3.ADDRESS
, T3.PIECE
, T3.SQL_TEXT
FROM V$LOCKED_OBJECT T1
, V$SESSION T2
, V$SQLTEXT T3
, DBA_OBJECTS T4
WHERE T1.SESSION_ID = T2.SID
AND T1.OBJECT_ID = T4.OBJECT_ID
AND T2.SQL_ADDRESS = T3.ADDRESS
ORDER BY T3.ADDRESS, T3.PIECE;
-- SID, SERIAL 값으로 Lock 해제
ALTER SYSTEM KILL SESSION 'line 8의 KILL_TASK 값';
반응형