ORA-01653

RoyBae·2022년 8월 5일
0

Exception

목록 보기
1/5

APP LOG에 ORA-01653 ORACLE ERROR가 발생하였다.

실제 발생한 TRACE LOG를 확인해보니 SELECT 쿼리를 실행하다 발생한 EXCEPTION 이다.

(INSERT, UPDATE도 아닌데.. 왜 SELECT 쿼리에 문제가 되는지 이해가 되지 않는다..)

오라클 버전은

SELECT * FROM V$VERSION;
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production

현상을 확인해보니

SYSAUX 테이블스페이스의 DATAFILE이 32G 최대치로 사이즈가 커져있었다.

아래의 조회 쿼리를 통해 원인을 확인한다.

[ 테이블스페이스 용량 조회 ]

SELECT
A.TABLESPACE_NAME AS "TABLE_SPACE_NAME",
A.BYTES / 1024 / 1024 AS "TOTAL_MB",
(A.BYTES - NVL(B.FREEBYTES, 0))/ 1024 / 1024 AS "USE_MB",
NVL(B.FREEBYTES, 0)/ 1024 / 1024 AS "FREE_MB",
CONCAT(ROUND(NVL(B.FREEBYTES, 0) * 100 / A.BYTES, 2), '%') AS "USAGE(%)"
FROM
(
SELECT
TABLESPACE_NAME, SUM(BYTES) BYTES
FROM
DBA_DATA_FILES
GROUP BY
TABLESPACE_NAME) A,
(
SELECT
TABLESPACE_NAME, SUM(NVL(BYTES, 0)) FREEBYTES
FROM
DBA_FREE_SPACE
GROUP BY
TABLESPACE_NAME) B
WHERE
A.TABLESPACE_NAME = B.TABLESPACE_NAME
ORDER BY
"USAGE(%)" DESC;

[ 테이블스페이스 위치 및 자동증가 설정 조회 ]

SELECT
TABLESPACE_NAME,
BYTES / 1024 / 1024 AS MB,
FILE_NAME,
AUTOEXTENSIBLE
FROM
DBA_DATA_FILES;

[ 특정 테이블스페이스(SYSAUX)를 사용하는 TRACLE 조회 ]

SELECT
TABLE_NAME,
TABLESPACE_NAME
FROM
DBA_TABLES
WHERE
TABLESPACE_NAME = 'SYSAUX';

[ SYSAUX 점유자 및 사용량 ]

SELECT
OCCUPANT_NAME ,
SPACE_USAGE_KBYTES / 1024 "MB"
FROM
"V$SYSAUX_OCCUPANTS"
ORDER BY
SPACE_USAGE_KBYTES;

나의 경우 "SM/ADVISOR" 가 해당 테이블스페이스의 사용량을 많이 차지하는 것으로 확인되었다.

SM/ADVISOR는 ADVISOR FRAMEWORKS 테이블을 참조하는데,
SQL TUNING ADVISOR, SQL ACCESS ADVISOR, ADDM 과 같은 ADVISOR가 이 인프라는 사용한다.
이러한 ADVISOR는 AWR의 데이터를 사용하여 ADVISE를 작성하지만 일단 생성되면 자체 테이블에 저장되고
"SM/ADVISOR"으로 분류된다.

관련하여 CLEANUP 할 수 있는 방법은 다음 블로그를 참고하여 조치하였다.

https://positivemh.tistory.com/790

오라클 19c SYSAUX 테이블스페이스 SM/ADVISOR 용량증가 시 대처방안

OS환경 : Oracle Linux 7.6 (64bit) DB 환경 : Oracle Database 19.11.0.0 에러 : 오라클 19c SYSAUX 테이블스페이스 SM/ADVISOR 용량증가 시 대처방안 SYSAUX tablespace 용량이 SM/ADVISOR으로 인해..

positivemh.tistory.com

궁극적 원인은
Oracle 19c에서 Statistics Advisor Task 실행이 더 많아지면서 그로인해 SYSAUX 테이블스페이스에서 더 많은 공간을
차지하게 된 것이 원인이다.
따라서, 보존기간을 줄이거나 수동으로 AUTO_STATS_ADVISOR_TASK를 제거해주면 된다.

profile
반도체 IT System Developer

0개의 댓글