OracleDB

[오라클 Admin] Oracle 초기 설정 (테이블스페이스 기본 설정) 본문

Oracle/Oracle Admin

[오라클 Admin] Oracle 초기 설정 (테이블스페이스 기본 설정)

마포김선생 2023. 12. 15. 17:10

Oracle 19c  테이블스페이스 초기 설정

 

작업 환경:
OS: Oracle Linux 8.9
DB: Oracle 19c

 

Oracle Tablespace 기초 설정 간단하게!

- Oracle 기본 설치로 진행하면 테이블스페이스 사이즈 1G 이하로 설정된다.

- SYSAUX, UNDO, TEMP 사이즈는 최소 1G 이상 변경 필요

- 업무에 따라 다르지만 UNDO, TEMP 200~300G 이상 사용하기도 한다.

- DATAFILE은 가능하면 최대 20~30G 사이즈 설정 권장

- 자동 사이즈 증가는 복구, 데이터 이관할 때 문제가 발생될 수 있어 가능하면  OFF 설정

- ADD DATAFILE 추가하는 방법이 가장 좋다.

   기본: AUTOEXTEND ON 

   권장: AUTOEXTEND OFF

 

 

 

Tablespace Datafile, Tempfile 사이즈 확인

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
SELECT
    TABLESPACE_NAME,
    FILE_NAME,
    AUTOEXTENSIBLE,
    ROUND(BYTES/1024/1024) AS "SIZE(MB)"
FROM DBA_DATA_FILES
UNION ALL
SELECT
    TABLESPACE_NAME,
    FILE_NAME,
    AUTOEXTENSIBLE,
    ROUND(BYTES/1024/1024)
FROM DBA_TEMP_FILES;
 
 
<SQL 실행 결과>
TABLESPACE_NAME    FILE_NAME                                          AUTOEXTENSIBLE    SIZE(MB)
------------------ -------------------------------------------------- --------------- ----------
SYSTEM             /oracle/app/oracle/oradata/TEST/system01.dbf       YES                    910
SYSAUX             /oracle/app/oracle/oradata/TEST/sysaux01.dbf       YES                    670
USERS              /oracle/app/oracle/oradata/TEST/users01.dbf        YES                      5
UNDOTBS1           /oracle/app/oracle/oradata/TEST/undotbs01.dbf      YES                    340
TEMP               /oracle/app/oracle/oradata/TEST/temp01.dbf         YES                    129
 
 
 
 
-- DATAFILE 사이즈 변경 스크립트
-- SCRIPT 컬럼 복사 & 실행
SELECT
    TABLESPACE_NAME,
    AUTOEXTENSIBLE,
    ROUND(BYTES/1024/1024) AS "SIZE_MB",
    CASE 
      WHEN TABLESPACE_NAME = 'USERS'
       THEN'ALTER DATABASE DATAFILE '''||FILE_NAME||''' RESIZE 500M;'
      WHEN TABLESPACE_NAME IN ('SYSAUX','SYSTEM','UNDOTBS1')
       THEN'ALTER DATABASE DATAFILE '''||FILE_NAME||''' RESIZE 1G;'
    END AS "SCRIPT"
FROM DBA_DATA_FILES
UNION ALL
SELECT
    TABLESPACE_NAME,
    AUTOEXTENSIBLE,
    ROUND(BYTES/1024/1024),
    'ALTER DATABASE TEMPFILE '''||FILE_NAME||''' RESIZE 1G;'
FROM DBA_TEMP_FILES;
 
 
<SQL 실행 결과>
TABLESPACE_NAME    AUTOEXTENSIBLE     SIZE_MB SCRIPT                                                                                              
------------------ --------------- ---------- ----------------------------------------------------------------------------------------------------
SYSTEM             YES                    910 ALTER DATABASE DATAFILE '/oracle/app/oracle/oradata/TEST/system01.dbf' RESIZE 1G;                   
SYSAUX             YES                    670 ALTER DATABASE DATAFILE '/oracle/app/oracle/oradata/TEST/sysaux01.dbf' RESIZE 1G;                   
USERS              YES                      5 ALTER DATABASE DATAFILE '/oracle/app/oracle/oradata/TEST/users01.dbf' RESIZE 500M;                  
UNDOTBS1           YES                    340 ALTER DATABASE DATAFILE '/oracle/app/oracle/oradata/TEST/undotbs01.dbf' RESIZE 1G;                  
TEMP               YES                    129 ALTER DATABASE TEMPFILE '/oracle/app/oracle/oradata/TEST/temp01.dbf' RESIZE 1G;
 
 
 
 
-- AUTOEXTEND OFF 스크립트
-- SCRIPT 컬럼 복사 & 실행
SELECT
    'ALTER DATABASE DATAFILE '''||FILE_NAME||''' AUTOEXTEND OFF;' AS "SCRIPT"
FROM DBA_DATA_FILES
UNION ALL
SELECT
    'ALTER DATABASE TEMPFILE '''||FILE_NAME||''' AUTOEXTEND OFF;'
FROM DBA_TEMP_FILES;
 
 
<SQL 실행 결과>
SCRIPT                                                                                              
----------------------------------------------------------------------------------------------------
ALTER DATABASE DATAFILE '/oracle/app/oracle/oradata/TEST/system01.dbf' AUTOEXTEND OFF;
ALTER DATABASE DATAFILE '/oracle/app/oracle/oradata/TEST/sysaux01.dbf' AUTOEXTEND OFF;
ALTER DATABASE DATAFILE '/oracle/app/oracle/oradata/TEST/users01.dbf' AUTOEXTEND OFF;
ALTER DATABASE DATAFILE '/oracle/app/oracle/oradata/TEST/undotbs01.dbf' AUTOEXTEND OFF;
ALTER DATABASE TEMPFILE '/oracle/app/oracle/oradata/TEST/temp01.dbf' AUTOEXTEND OFF;

 

 

 

Tablespace 변경 상태 확인

- 자동 사이즈 증가(X) AUTOEXTENSIBLE (NO)

- 테이블스페이스 DATAFILE, TEMPFILE 사이즈 변경 확인

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
SELECT
    TABLESPACE_NAME,
    FILE_NAME,
    AUTOEXTENSIBLE,
    ROUND(BYTES/1024/1024) AS "SIZE_MB"
FROM DBA_DATA_FILES
UNION ALL
SELECT
    TABLESPACE_NAME,
    FILE_NAME,
    AUTOEXTENSIBLE,
    ROUND(BYTES/1024/1024)
FROM DBA_TEMP_FILES;
 
 
<SQL 실행 결과>
TABLESPACE_NAME    FILE_NAME                                          AUTOEXTENSIBLE     SIZE_MB
------------------ -------------------------------------------------- --------------- ----------
SYSTEM             /oracle/app/oracle/oradata/TEST/system01.dbf       NO                    1024
SYSAUX             /oracle/app/oracle/oradata/TEST/sysaux01.dbf       NO                    1024
USERS              /oracle/app/oracle/oradata/TEST/users01.dbf        NO                     500
UNDOTBS1           /oracle/app/oracle/oradata/TEST/undotbs01.dbf      NO                    1024
TEMP               /oracle/app/oracle/oradata/TEST/temp01.dbf         NO                    1024