dev-db

[Linux][Oracle] DB 관리자 관련

검은바람 2022. 10. 4. 14:25
반응형

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 값';
반응형