프린트 하기

내맘대로긍정이 알려주는

Oracle 23ai 신기능
무료 세미나 발표자료

다운로드 trending_flat

OS환경 : Oracle Linux 7.3 (64bit)


DB 환경 : Oracle Database 12.2.0.1


방법 : 오라클 undo tablespace 재생성, 언두 재생성

undo tablespace 의 크기가 너무 커져서 줄여야 겠다고 생각이 들 때가 있는데

undo tablespace는 특성상 사이즈를 줄일 수 는 없고 삭제 후 재생성만 가능하다


undo tablespace 를 재생성 하는 방법을 설명함



undo 파라미터 조회

1
2
3
4
5
6
7
8
SQL> show parameter undo
 
NAME                     TYPE     VALUE
------------------------------------ ----------- ------------------------------
temp_undo_enabled             boolean     FALSE
undo_management              string     AUTO
undo_retention                 integer     900
undo_tablespace              string     UNDOTBS1

undo tablespace 는 UNDOTBS1을 사용중임



undo tablespace 사용량 조회

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
SQL>
set lines 200
set pages 1000
col tablespace_name for a10
col file_name for a60
select tablespace_name, file_name, bytes/1024/1024 MB
from dba_data_files;
 
TABLESPACE FILE_NAME                                MB
---------- ------------------------------------------------------------ ----------
SYSTEM       /oracle/app/oracle/oradata/ORCL12/system01.dbf            700
SYSAUX       /oracle/app/oracle/oradata/ORCL12/sysaux01.dbf           1580
UNDOTBS1   /oracle/app/oracle/oradata/ORCL12/undotbs01.dbf         30050
USERS       /oracle/app/oracle/oradata/ORCL12/users01.dbf               7.5
 

현재 약 30GB를 사용중임



새로운 undo tablespace UNDOTBS2를 생성

1
2
3
SQL> create undo tablespace undotbs2 datafile '/oracle/app/oracle/oradata/ORCL12/undotbs02.dbf' size 1g autoextend on;
 
Tablespace created.



default undo tablespace 를 UNDOTBS2 로 변경

1
2
3
SQL> alter system set undo_tablespace='UNDOTBS2';
 
System altered.



기존 undo tablespace UNDOTBS1를 삭제

1
2
3
SQL> drop tablespace undotbs1 including contents and datafiles;
 
Tablespace dropped.



변경 후 undo 파라미터 조회

1
2
3
4
5
6
7
8
SQL> show parameter undo
 
NAME                     TYPE     VALUE
------------------------------------ ----------- ------------------------------
temp_undo_enabled             boolean     FALSE
undo_management              string     AUTO
undo_retention                 integer     900
undo_tablespace              string     UNDOTBS2

undo tablespace 는 UNDOTBS2을 사용중임



undo tablespace 사용량 조회

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
SQL>
set lines 200
set pages 1000
col tablespace_name for a10
col file_name for a60
select tablespace_name, file_name, bytes/1024/1024 MB
from dba_data_files;
 
TABLESPACE FILE_NAME                                MB
---------- ------------------------------------------------------------ ----------
SYSTEM       /oracle/app/oracle/oradata/ORCL12/system01.dbf            700
SYSAUX       /oracle/app/oracle/oradata/ORCL12/sysaux01.dbf           1580
UNDOTBS2   /oracle/app/oracle/oradata/ORCL12/undotbs02.dbf            1024
USERS       /oracle/app/oracle/oradata/ORCL12/users01.dbf               7.5
 

1024MB(1G) 로 재생성됨



undo tablespace를 누군가 사용중이라면 아래 쿼리 확인

https://positivemh.tistory.com/181




참조 : 

https://positivemh.tistory.com/181

https://positivemh.tistory.com/182