업무 중에 과거 데이터를 복구하는 작업이 있었다.
자그마치 16년도 부터 18년도 까지의 작업이력을 복구하는 작업이었다.
SQL 로더를 사용해 백업서버의 데이터를 개발 디비로 끌어오는 도중...
어느순간부터 카운트가 올라가지 않는 현상이 발생하였다.
처음에 나는 CTL 과 DAT 파일 과의 컬럼이 안맞나...?
라고 생각하였지만 마침 추가된 컬럼이 있었지만 NOTNULL이기에 상관이 없었다.
고심끝에 선임 개발자 분께 물어본결과
"용량 풀찬거 아니야?" 라는 답변을 들었다.
확인을 해보니 현재 사용률이 100%로 이더라...
디비 사용률이 100% 일지는 정말로 몰랐다.. 이걸 내눈으로 확인하다니!!!
다음부터는 데이터가 들어가지 않을때 우선적으로 현재 용량을 확인해보자~!
[용량확인쿼리]
SELECT
DECODE(GROUPING(TABLESPACE_NAME), 1, 'TOTAL', TABLESPACE_NAME) AS TABLESPACE_NAME
, SUM(TOTAL_MB) AS "TOTAL(GB)"
, SUM(USED_MB) AS "USED(GB)"
, SUM(FREE_MB) AS "FREE(GB)"
, ROUND(SUM(USED_MB) / SUM(TOTAL_MB) * 100, 2) AS "USAGE"
FROM (
SELECT
SUBSTR(TABLESPACE_NAME, 1, 30) AS TABLESPACE_NAME
, ROUND(SUM(TOTAL) / 1024 / 1024 /1024) AS TOTAL_MB
, ROUND(SUM(TOTAL) / 1024 / 1024 /1024) - ROUND(SUM(SUM_BYTES) / 1024 / 1024 /1024) AS USED_MB
, ROUND(SUM(SUM_BYTES) / 1024 / 1024/ 1024) AS FREE_MB
FROM (
SELECT
TABLESPACE_NAME
, 0 AS TOTAL
, SUM(BYTES) AS SUM_BYTES
FROM DBA_FREE_SPACE
GROUP BY TABLESPACE_NAME
UNION
SELECT
TABLESPACE_NAME
, SUM(BYTES) AS TOTAL
, 0 AS SUM_BYTES
FROM DBA_DATA_FILES
GROUP BY TABLESPACE_NAME
)
GROUP BY TABLESPACE_NAME
)
GROUP BY ROLLUP (TABLESPACE_NAME)
ORDER BY TABLESPACE_NAME;
'CS > DataBase' 카테고리의 다른 글
(ORACLE) PARTITION BY 의 활용 (0) | 2019.12.04 |
---|---|
(ORACLE) 다중 LIKE 검색 (0) | 2019.12.03 |
(ORACLE) 캐시와 공유 메모리 (0) | 2019.11.26 |
(ORACLE) 오라클의 여러 프로세스 (0) | 2019.11.26 |
(ORACLE) I/O 와 디스크 관계 (0) | 2019.11.26 |