본문 바로가기
학습장/ETC

Oracle DBA성 쿼리

by daedoo_ 2022. 9. 25.

오라클 기준으로 DBA 도움 없이도 업무상 필요시 종종 사용하게 되는 DBA성 쿼리를 기록해두려고 합니다. 추가로 업데이트 예정입니다.

 

Lock 확인 쿼리

테이블명을 안다면 아래와 같이 조회

SELECT A.SID
	   ,A.SERIAL#
       ,A.USER_NAME
FROM V$SESSION A
   , V$LOCK B
   , DBA_OBJECTS
WHERE A.SID = B.SID
  and A.SID = B.SID
  and B.ID1 = C.OBJECT_ID
  and B.TYPE = 'TM'
  and C.OBJECT_NAME = '테이블명'

위 결과에서 확인된 SID, A.SERIAL# 확인하여 해당 SESSION kill

ALTER SYSTEM KILL SESSION 'SID, SERIAL#;

 

Tablespace 사용량 조회

SELECT A.TABLESPACE_NAME, A.FILE_ID, 
       ROUND(A.BYTES/1024/1024/1024, 2) AS USABLE, -- GB
       ROUND( B.BYTES/1024/1024/1024,2) AS FREE, 
       TRUNC(100-(B.BYTES/A.BYTES*100),2) AS USED_RATE, 
       TRUNC(B.BYTES/A.BYTES*100,2) AS FREE_RATE 
FROM  (SELECT TABLESPACE_NAME, FILE_ID, SUM(BYTES) BYTES 
       FROM DBA_DATA_FILES 
       GROUP BY TABLESPACE_NAME, FILE_ID ) A, 
      (SELECT TABLESPACE_NAME, FILE_ID, SUM(BYTES) BYTES 
       FROM DBA_FREE_SPACE 
       GROUP BY TABLESPACE_NAME, FILE_ID ) B 
WHERE A.TABLESPACE_NAME = B.TABLESPACE_NAME 
  AND A.FILE_ID = B.FILE_ID(+) 
ORDER BY USED_RATE DESC;

default Tablespace 확인

select username, default_tablespace from dba_users where username = 'user1';

 

Table 권한 확인

-- USER1에 부여된 테이블 권한 확인
select * from dba_tab_privs where grantee = 'USER1';

 

DBlink 확인

DBLink명, 목적지 HOST명, 계정명 등 확인 가능

Private DBlink는 계정당 하나만 생성 가능함, DBlink 하나로 목적지 DB서버의 두 개 이상의 계정에 대한 할당 불가함.

이처럼 DBLink 자체에 권한을 추가하는 것은 안되지만

기존에 생성 되어 있는 DBLink로 별도 계정에 존재하는 테이블 접근하려면 기존 계정에 테이블 별로 권한을 부여하는 방법으로 가능

-- 해당 DB에 생성되어 있는 DBlink 정보
select * from dba_db_links;

ex) LK_TGT_DB1 이라는 DBLink는 USER1 에 대한 권한을 갖고 있고, USER2에 존재하는 테이블에 접근하려면 USER2의 해당 테이블에 대해 USER1에 권한을 부여하면 기존 LK_TGT_DB1 이라는 DBLink 활용 가능

 


DDL 스크립트 추출

- TABLE, INDEX, Procedure 등 OBJECT

-- 파라미터로 OBJECT TYPE, OBJECT명 
select dbms_metadata.get_ddl('TABLE', 'USER1') from dual;
select dbms_metadata.get_ddl('INDEX', 'PK_TABLE1') from dual;

'학습장 > ETC' 카테고리의 다른 글

UTC, 시간표기 관련  (2) 2022.12.13
M1 Mac anaconda 설치  (4) 2022.10.20
M1 Mac 윈도우10 설치  (2) 2021.07.14
python 외부 스크립트 import  (0) 2021.04.12
Bash shell date 반복문  (0) 2021.04.05

댓글