1. tablespace 이름으로 관련 data file 찾기
2. tablespace 크기 늘리기
(1) data file 추가(가장 많이 쓰는 방법)
(2) 기존의 data file 크기 변경
(3) datafiledml size를 자동으로 늘어나게 하는 명령
남아 있는 디스크 용량을 먼저 확인해야 한다. 무턱대고 늘리면 용량을 오바할 수 있기 때문이다.
한도 내에서 테이블 스페이스를 늘려야 하겠다.
아래를 보면 user01 마운트에 63.18 GB 가 남아 있으니 이 한도내에서 늘려줘야 한다.
SELECT file_name, tablespace_name, bytes FROM dba_data_files WHERE tablespace_name = '<tablespace name>'
2. tablespace 크기 늘리기
(1) data file 추가(가장 많이 쓰는 방법)
ALTER TABLESPACE <tablespace name> ADD DATAFILE '<full path and file
name>' SIZE <integer> <k|m>;
name>' SIZE <integer> <k|m>;
(2) 기존의 data file 크기 변경
ALTER DATABASE DATAFILE '<full path and file name>' RESIZE <integer> <k|m>;
예제) 20GB 로 늘림. alter DATABASE datafile '/user01/oradata/hera/users01.dbf' resize 20000M (3) datafiledml size를 자동으로 늘어나게 하는 명령
ALTER DATABASE DATAFILE ‘<full path and file name>’ AUTOEXTEND ON
MAXSIZE UNLIMITED;
MAXSIZE UNLIMITED;
남아 있는 디스크 용량을 먼저 확인해야 한다. 무턱대고 늘리면 용량을 오바할 수 있기 때문이다.
한도 내에서 테이블 스페이스를 늘려야 하겠다.
아래를 보면 user01 마운트에 63.18 GB 가 남아 있으니 이 한도내에서 늘려줘야 한다.
#:]df -g
파일 시스템 GB 블록 사용가능 %사용 Iused %Iused 마운트 위치
/dev/hd4 5.00 4.57 9% 12019 2% /
/dev/hd2 10.00 3.15 69% 67594 9% /usr
/dev/hd9var 3.00 2.66 12% 7477 2% /var
/dev/hd3 3.00 2.00 34% 267 1% /tmp
/dev/hd1 3.00 3.00 1% 59 1% /home
/dev/hd11admin 0.25 0.25 1% 5 1% /admin
/proc - - - - - /proc
/dev/hd10opt 3.00 2.28 25% 20329 4% /opt
/dev/livedump 0.25 0.25 1% 4 1% /var/livedump
/dev/fslv00 50.00 1.16 98% 8 1% /tsmdiskpool
/dev/tsmlv 24.00 4.46 82% 6 1% /tsmdb
/dev/lv_user01 200.00 63.18 69% 351218 3% /user01
/dev/oraclelv 20.00 12.45 38% 41317 2% /oracle
#:]
파일 시스템 GB 블록 사용가능 %사용 Iused %Iused 마운트 위치
/dev/hd4 5.00 4.57 9% 12019 2% /
/dev/hd2 10.00 3.15 69% 67594 9% /usr
/dev/hd9var 3.00 2.66 12% 7477 2% /var
/dev/hd3 3.00 2.00 34% 267 1% /tmp
/dev/hd1 3.00 3.00 1% 59 1% /home
/dev/hd11admin 0.25 0.25 1% 5 1% /admin
/proc - - - - - /proc
/dev/hd10opt 3.00 2.28 25% 20329 4% /opt
/dev/livedump 0.25 0.25 1% 4 1% /var/livedump
/dev/fslv00 50.00 1.16 98% 8 1% /tsmdiskpool
/dev/tsmlv 24.00 4.46 82% 6 1% /tsmdb
/dev/lv_user01 200.00 63.18 69% 351218 3% /user01
/dev/oraclelv 20.00 12.45 38% 41317 2% /oracle
#:]
SELECT TO_CHAR(SYSDATE,'YYYYMMDD') , t.tn, t.sizes Tot, (t.sizes-f.sizes) Used, ROUND((t.sizes-f.sizes)/t.sizes*100,2) UsePct,
NVL(TO_NUMBER(f.sizes),0) Free, 100-ROUND((t.sizes-f.sizes)/t.sizes*100,2) FreePct
FROM (SELECT tablespace_name tn, SUM(bytes)/1024/1024 Sizes
FROM dba_data_files
GROUP BY tablespace_name) t,
(SELECT tablespace_name tn, SUM(bytes)/1024/1024 Sizes
FROM SYS.dba_free_space
GROUP BY tablespace_name) f
WHERE t.tn = f.tn(+)
ORDER BY t.tn;
select owner,segment_name,segment_type,sum(bytes)/1024/1024 as MB
from dba_segments
where owner='test'
GROUP BY owner,segment_name,segment_type;
select * from dba_tablespaces;
select table_name,tablespace_name from dba_tables where owner = 'test'; --해당 테이블이 어떤 tablespace를 사용하는지 보여줌;
select * from dba_data_files; --해당 파일과 tablespace를 보여줌.
alter database datafile '/oracle/app/oracle/oradata/orcl/test.dbf' resize 20000M; -- 해당 파일의 tablespace를 늘려줌.
주의 사항
현상 : ORA-01237 cannot extend datafile %s
원인 : O/S 레벨에서는 file size를 1TB 이상 지원한다고 하는데, oracle datafile을 2G 이상으로 resize하려고 한다거나 tablespace에 datafile을 추가하거나 생성할 때, 2G 이상 주면 file size limit에 걸리는 현상 발생
조치 : 화일 시스템에서 large file을 사용하기 위해서는 화일 시스템을 'largefiles' option으로 mount해야 한다.
'oracle' 카테고리의 다른 글
oracle redo log file (0) | 2017.01.13 |
---|---|
tablespace에 대한 고찰!! (0) | 2017.01.10 |
parallel 테스트. cpu 멀티코어일때 유용?? (0) | 2016.10.20 |
create table as select 다시 한번 상기하자!! (0) | 2016.10.20 |
pl/sql 프로그램에서 사용할 수 있는 문자 집합 (0) | 2016.10.14 |