테이블 스페이스에 데이터 파일이 두개 존재하고 데이터 파일의 속성 중 자동 증가 설정이 되어 있다고 가정하자.
그 상태에서 데이터가 계속해서 들어가서 데이터 파일의 기본 설정 크기보다 커졌을 때
어느 데이터 파일이 증가할까요?
테스트를 통해 알아봅시다.
1. 테스트용 테이블 스페이스를 생성하고, 데이터 파일을 추가합니다.
SQL> create tablespace test_ts
datafile '/u01/app/oracle/oradata/ORCL/test_ts01.dbf' size 1m autoextend on;
SQL> alter tablespace test_ts
add datafile '/u01/app/oracle/oradata/ORCL/test_ts02.dbf' size 1m autoextend on;
datafile '/u01/app/oracle/oradata/ORCL/test_ts01.dbf' size 1m autoextend on;
SQL> alter tablespace test_ts
add datafile '/u01/app/oracle/oradata/ORCL/test_ts02.dbf' size 1m autoextend on;
2. 1에서 생성한 테이블 스페이스가 제대로 생성이 되었는지 확인해볼까요?
SQL> select tablespace_name, file_name, bytes/1024/1024 "Size(MB)", autoextensible
from dba_data_files
where tablespace_name = 'TEST_TS';
from dba_data_files
where tablespace_name = 'TEST_TS';
TABLESPACE_NAME FILE_NAME Size(MB) AUT
------------------------------ -------------------------------------------------- ---------- ---
TEST_TS /u01/app/oracle/oradata/ORCL/test_ts01.dbf 1 YES
TEST_TS /u01/app/oracle/oradata/ORCL/test_ts02.dbf 1 YES
3. 테스트용 유저를 생성하자. 옵션 중 디폴트 테이블 스페이스에 1.에서 생성한 테이블 스페이스를 줍니다.
그리고 테이블을 생성할 수 있도록 resource, connect role을 부여합니다.
SQL> create user testuser identified by testuser
default tablespace test_ts;
SQL> grant resource, connect to testuser;
default tablespace test_ts;
SQL> grant resource, connect to testuser;
4. 3에서 생성한 유저(testuser)로 접속하여, 데이터를 충분히 생성합니다.
SQL> conn testuser/testuser
SQL> insert into t1
select level, 'testtesttesttesttesttesttest'
from dual
connect by level <= 100000;
SQL> insert into t1
select level, 'testtesttesttesttesttesttest'
from dual
connect by level <= 100000;
5. 데이터 파일이 증가되는 것을 확인해봅니다. 일정 주기로 확인해보니 데이터 파일이 고르게 증가되는 것을 확인할 수 있습니다.
SQL> select tablespace_name, file_name, bytes/1024/1024 "Size(MB)", autoextensible
from dba_data_files
where tablespace_name = 'TEST_TS'; 2 3
TABLESPACE_NAME FILE_NAME Size(MB) AUT
------------------------------ ------------------------------------------------------------ ---------- ---
TEST_TS /u01/app/oracle/oradata/ORCL/test_ts01.dbf 1 YES
TEST_TS /u01/app/oracle/oradata/ORCL/test_ts02.dbf 1 YES
------------------------------ ------------------------------------------------------------ ---------- ---
TEST_TS /u01/app/oracle/oradata/ORCL/test_ts01.dbf 1 YES
TEST_TS /u01/app/oracle/oradata/ORCL/test_ts02.dbf 1 YES
SQL> /
TABLESPACE_NAME FILE_NAME Size(MB) AUT
------------------------------ ------------------------------------------------------------ ---------- ---
TEST_TS /u01/app/oracle/oradata/ORCL/test_ts01.dbf 4 YES
TEST_TS /u01/app/oracle/oradata/ORCL/test_ts02.dbf 5 YES
------------------------------ ------------------------------------------------------------ ---------- ---
TEST_TS /u01/app/oracle/oradata/ORCL/test_ts01.dbf 4 YES
TEST_TS /u01/app/oracle/oradata/ORCL/test_ts02.dbf 5 YES
SQL> /
TABLESPACE_NAME FILE_NAME Size(MB) AUT
------------------------------ ------------------------------------------------------------ ---------- ---
TEST_TS /u01/app/oracle/oradata/ORCL/test_ts01.dbf 5 YES
TEST_TS /u01/app/oracle/oradata/ORCL/test_ts02.dbf 5 YES
------------------------------ ------------------------------------------------------------ ---------- ---
TEST_TS /u01/app/oracle/oradata/ORCL/test_ts01.dbf 5 YES
TEST_TS /u01/app/oracle/oradata/ORCL/test_ts02.dbf 5 YES
SQL> /
TABLESPACE_NAME FILE_NAME Size(MB) AUT
------------------------------ ------------------------------------------------------------ ---------- ---
TEST_TS /u01/app/oracle/oradata/ORCL/test_ts01.dbf 5 YES
TEST_TS /u01/app/oracle/oradata/ORCL/test_ts02.dbf 6 YES
------------------------------ ------------------------------------------------------------ ---------- ---
TEST_TS /u01/app/oracle/oradata/ORCL/test_ts01.dbf 5 YES
TEST_TS /u01/app/oracle/oradata/ORCL/test_ts02.dbf 6 YES
SQL> /
TABLESPACE_NAME FILE_NAME Size(MB) AUT
------------------------------ ------------------------------------------------------------ ---------- ---
TEST_TS /u01/app/oracle/oradata/ORCL/test_ts01.dbf 10 YES
TEST_TS /u01/app/oracle/oradata/ORCL/test_ts02.dbf 10 YES
------------------------------ ------------------------------------------------------------ ---------- ---
TEST_TS /u01/app/oracle/oradata/ORCL/test_ts01.dbf 10 YES
TEST_TS /u01/app/oracle/oradata/ORCL/test_ts02.dbf 10 YES
SQL> /
TABLESPACE_NAME FILE_NAME Size(MB) AUT
------------------------------ ------------------------------------------------------------ ---------- ---
TEST_TS /u01/app/oracle/oradata/ORCL/test_ts01.dbf 10 YES
TEST_TS /u01/app/oracle/oradata/ORCL/test_ts02.dbf 11 YES
------------------------------ ------------------------------------------------------------ ---------- ---
TEST_TS /u01/app/oracle/oradata/ORCL/test_ts01.dbf 10 YES
TEST_TS /u01/app/oracle/oradata/ORCL/test_ts02.dbf 11 YES
SQL> /
TABLESPACE_NAME FILE_NAME Size(MB) AUT
------------------------------ ------------------------------------------------------------ ---------- ---
TEST_TS /u01/app/oracle/oradata/ORCL/test_ts01.dbf 16 YES
TEST_TS /u01/app/oracle/oradata/ORCL/test_ts02.dbf 16 YES
------------------------------ ------------------------------------------------------------ ---------- ---
TEST_TS /u01/app/oracle/oradata/ORCL/test_ts01.dbf 16 YES
TEST_TS /u01/app/oracle/oradata/ORCL/test_ts02.dbf 16 YES
SQL> /
TABLESPACE_NAME FILE_NAME Size(MB) AUT
------------------------------ ------------------------------------------------------------ ---------- ---
TEST_TS /u01/app/oracle/oradata/ORCL/test_ts01.dbf 17 YES
TEST_TS /u01/app/oracle/oradata/ORCL/test_ts02.dbf 18 YES
------------------------------ ------------------------------------------------------------ ---------- ---
TEST_TS /u01/app/oracle/oradata/ORCL/test_ts01.dbf 17 YES
TEST_TS /u01/app/oracle/oradata/ORCL/test_ts02.dbf 18 YES
SQL> /
TABLESPACE_NAME FILE_NAME Size(MB) AUT
------------------------------ ------------------------------------------------------------ ---------- ---
TEST_TS /u01/app/oracle/oradata/ORCL/test_ts01.dbf 18 YES
TEST_TS /u01/app/oracle/oradata/ORCL/test_ts02.dbf 19 YES
....
SQL> /
------------------------------ ------------------------------------------------------------ ---------- ---
TEST_TS /u01/app/oracle/oradata/ORCL/test_ts01.dbf 18 YES
TEST_TS /u01/app/oracle/oradata/ORCL/test_ts02.dbf 19 YES
....
SQL> /
TABLESPACE_NAME FILE_NAME Size(MB) AUT
------------------------------ ------------------------------------------------------------ ---------- ---
TEST_TS /u01/app/oracle/oradata/ORCL/test_ts01.dbf 225 YES
TEST_TS /u01/app/oracle/oradata/ORCL/test_ts02.dbf 218 YES
------------------------------ ------------------------------------------------------------ ---------- ---
TEST_TS /u01/app/oracle/oradata/ORCL/test_ts01.dbf 225 YES
TEST_TS /u01/app/oracle/oradata/ORCL/test_ts02.dbf 218 YES
번외로, 그리고 데이터 파일이 증가하면 데이터를 rollback을 해주어도 다시 원래의 데이터 파일 크기로 돌아오지 않습니다.
이때는 데이터 파일 resize를 해주면 됩니다.
SQL> alter database datafile '/u01/app/oracle/oradata/ORCL/test_ts01.dbf' resize 1m;
Database altered.
SQL> alter database datafile '/u01/app/oracle/oradata/ORCL/test_ts02.dbf' resize 1m;
Database altered.
'Oracle > Admin' 카테고리의 다른 글
index tree dump 뜨기 (0) | 2010.11.29 |
---|---|
오라클 자동 기동 (0) | 2010.11.08 |
아카이브 로그 파일 포맷변경 (0) | 2010.10.14 |
스케쥴링 하기(일주일마다 통계 정보) (0) | 2010.10.13 |
[펌]dbms_metadata 패키지 (테이블 스크립트 가져오기) (0) | 2010.09.16 |