
💡 데이터를 insert하는 프로시져를 잘못 짜서 무한 루프가 돌면서 insert가 무한발생해서
테이블스페이스가 full이 되는 장애상황을 막으려면 할당량을 제한해야함
SYS @ ORA19 > create user scott20
identified by tiger;
사용자가 생성되었습니다.
SYS @ ORA19 > grant connect to scott20;
권한이 부여되었습니다.
SYS @ ORA19 > grant create table to scott20;
권한이 부여되었습니다.
SYS @ ORA19 >
SYS @ ORA19 > alter user scott20
Quota 1m on ts7000;
사용자가 변경되었습니다.
SYS @ ORA19 > connect scott20/tiger
연결되었습니다.
SCOTT20 @ ORA19 > create table emp20
( empno number(10),
ename varchar2(20) )
tablespace ts7000;
테이블이 생성되었습니다.
SCOTT20 @ ORA19 > insert into emp20 values(1111,'aaa');
1 개의 행이 만들어졌습니다.
SCOTT20 @ ORA19 > insert into emp20
select *
from emp20;
1 개의 행이 만들어졌습니다.
SCOTT20 @ ORA19 >
SCOTT20 @ ORA19 > /
2 행이 생성되었습니다.
SCOTT20 @ ORA19 > /
4 행이 생성되었습니다.
SCOTT20 @ ORA19 > /
8 행이 생성되었습니다.
.
.
.
SCOTT20 @ ORA19 > /
32768 행이 생성되었습니다.
SCOTT20 @ ORA19 > /
insert into emp20
*
1행에 오류:
ORA-01536: 'TS7000' 테이블스페이스에 영역 할당량이 초과됐습니다
💡 Quota 를 1m 로 할당했기 때문에 ts7000 테이블스페이스를 1m이상 사용할 수 없게 됨

SYS @ ORA19 > alter user scott20
Quota unlimited on ts7000;
사용자가 변경되었습니다.
SYS @ ORA19 > grant unlimited tablespace to scott20;
권한이 부여되었습니다.
alter user king2
Quota 5m on users;
select *
from dictionary
where table_name like '%QUOTA%';
select *
from dba_ts_quotas;