Oracle 에서 데이터파일(datafile)을 크게 새로 만들려고 하거나, 기존 데이터파일의 크기를 변경(resize) 하려고 할때, ORA-01144 에러를 만날 수 있습니다.
Oracle 에서 데이터는 블록(block) 단위로 저장됩니다.
하나의 데이터파일이 가질 수 있는 최대 블록의 갯수 제한이 있는데, 이게 2^22-1 입니다. 즉, 4,194,303 개.
오라클DB에서 블록크기를 보통 8k (8,192) 를 많이 사용합니다.
8k * 4,194,303 = 32GB
16k * 4,194,303 = 64GB
32k * 4,194,303 = 128GB
8k 짜리 블록 4백만개는 32GB 크기가 됩니다. 그래서 datafile 최대크기는 32GB 로 제한됩니다.
이런 제한때문에 ORA-01144 에러를 만나는 경우, datafile resize 를 하지말고 추가로 datafile 을 add 하면 됩니다.
1) alter tablespace USERS add datafile size 10G;
2) alter tablespace USERS add datafile '/u02/oradata/datafile/USERS_02.dbf' size 10G;
OMF 방식으로 datafile 명이 자동으로 관리되는 경우는 1)과 같이 하고, OMF 가 아닌 경우는 2) 처럼 datafile 명을 기술해주면 됩니다.
하나의 Tablespace 에 여러개의 Datafile 을 두지않고, 하나의 큰 데이타파일을 두는 경우도 가능한데,
이때는 처음 Tablespace 를 만들때부터 Bigfile 을 지정해서 만들어야 합니다.
SQL>
create bigfile tablespace TS_TEST
datafile '/u02/oradata/datafile/TS_TEST_01.dbf' size 40G
extent management local;
위와같이 테이블스페이스를 처음 만들때 bigfile 키워드를 지정해서 만드는 경우, 32GB 제한을 넘어서 크게 만드는 것이 가능합니다.
'IT관련' 카테고리의 다른 글
(솔라리스 19c DB 설치시 에러) pkg list: no packages matching 'oracle-database-preinstall-19c' known (0) | 2020.11.28 |
---|---|
오라클 병렬처리(Parallel Processing)관련 주의사항 (의도하지 않은 병렬수행, default degree) (0) | 2020.11.16 |
오라클 테이블, 인덱스 압축 OLTP Compress 테스트 (ACO 옵션) (0) | 2020.10.26 |
ASM 구성시 LUN 크기, 갯수가 성능에 미치는 영향 (0) | 2020.10.21 |
오라클 에러 정보 (ORA-01110) - 데이타파일 관련된 에러시 부가정보를 제공하는 (0) | 2020.10.05 |