
💡 테이블이나 인덱스와 같은 논리적 저장소
SQL> connect scott/tiger
연결되었습니다.
SQL>
SQL> create table emp999
2 tablespace ts02
3 as
4 select *
5 from emp;
테이블이 생성되었습니다.
SQL> col segment_name for a10
SQL> select segment_name, extent_id, bytes/1024
from user_extents
where segment_name='EMP999';
SEGMENT_NA EXTENT_ID BYTES/1024/1024
---------- ---------- ---------------
EMP999 0 .0625
SQL> !cat seg.sql
col segment_name for a10
select segment_name, extent_id, bytes/1024
from user_extents
where segment_name='EMP999';
SQL> insert into emp999
select *
from emp999;
224 행이 생성되었습니다.
SQL> /
448 행이 생성되었습니다.
SQL> /
896 행이 생성되었습니다.
SQL> /
1792 행이 생성되었습니다.
SQL> @seg
SEGMENT_NA EXTENT_ID BYTES/1024
---------- ---------- ----------
EMP999 0 64
EMP999 1 64
EMP999 2 64
EMP999 3 64
SQL> /
insert into emp999
*
1행에 오류:
ORA-01653: SCOTT.EMP999 테이블을 128(으)로 TS02 테이블스페이스에서 확장할 수
없습니다
💡 tablespace가 data로 꽉차서 insert가 안되는 현상이 일어나지 않도록 dba가 신경을 쓰고 있어야합니다.
select t.tablespace_name, free_size,
round( ((t.total_size - f.free_size) / t.total_size) * 100) usedspace
from (select tablespace_name, sum(bytes)/1024/1024 total_size
from dba_data_files
group by tablespace_name) t,
(select tablespace_name, sum(bytes)/1024/1024 free_size
from dba_free_space
group by tablespace_name) f
where t.tablespace_name = f.tablespace_name(+);
SQL> alter tablespace ts02
add datafile '/u01/app/oracle/oradata/ORA19/ts02b.dbf' size 20m;
테이블스페이스가 변경되었습니다.
SQL> alter tablespace ts01
add datafile '/u01/app/oracle/oradata/ORA19/ts01b.dbf' size 30m;
테이블스페이스가 변경되었습니다.
SQL> create tablespace ts03
datafile '/u01/app/oracle/oradata/ORA19/ts03.dbf' size 10m;
테이블스페이스가 생성되었습니다.
SQL> @ts
TABLESPACE FILE_NAME MB_SIZE
---------- ------------------------------------------------------- -------
SYSTEM /u01/app/oracle/oradata/ORA19/system01.dbf 1330
SYSAUX /u01/app/oracle/oradata/ORA19/sysaux01.dbf 640
TS01 /u01/app/oracle/oradata/ORA19/ts01.dbf 10
USERS /u01/app/oracle/oradata/ORA19/users01.dbf 110
TS02 /u01/app/oracle/oradata/ORA19/ts02.dbf 20
UNDOTBS1 /u01/app/oracle/oradata/ORA19/undotbs01.dbf 410
TS02 /u01/app/oracle/oradata/ORA19/ts02b.dbf 20
TS01 /u01/app/oracle/oradata/ORA19/ts01b.dbf 30
TS03 /u01/app/oracle/oradata/ORA19/ts03.dbf 10
SQL> alter database datafile
'/u01/app/oracle/oradata/ORA19/ts03.dbf' resize 20m;
데이타베이스가 변경되었습니다.
SQL> show parameter db_block_size
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_block_size integer 8192
SQL>