[Oracle] 테이블스페이스의 상태를 read only로 변경

·2025년 9월 1일

오라클 관리

목록 보기
70/163

[이론1] 테이블 스페이스를 read only 로 변경해야하는 테이블 스페이스는 무엇인가요?

💡 절대로 수정하면 안되고 읽기만 해야하는 테이블들을 저장하는 테이블 스페이스를 생성할 때


[실습1] ts100 테이블 스페이스를 사이즈 2m 로 생성하시오

create  tablespace  ts100
  datafile  '/home/oracle/ts100.dbf' size 2m;

[실습2] scott 유져에서 ts100 테이블 스페이스에 emp 테이블과 똑같은 테이블을 emp105로 생성하시오

SCOTT @ ora19dw > create  table emp105
                  tablespace  ts100
                as
                  select *
                   from  scott.emp;

테이블이 생성되었습니다.

[실습3] sys 유져에서 ts100 테이블 스페이스를 read only 로 변경하시오

alter  tablespace  ts100 read only;

select tablespace_name, status from dba_tablespaces;

[실습4] scott 유져에서 emp105의 월급을 모두 0으로 변경하시오

SCOTT @ ora19dw > update emp105
  2                set sal = 0;
update emp105
       *
1행에 오류:
ORA-00372: 파일 12는 지금 수정될 수 없습니다 ORA-01110: 12
데이터 파일: '/home/oracle/ts100.dbf'

[실습5] scott 유져에서 emp105를 drop 하시오

SCOTT @ ora19dw > drop table emp105;

테이블이 삭제되었습니다

💡 read only지만 되는 이유
: drop은 데이터 사전에서만 지우기 때문에 가능한 것

데이터 사전이 있는 테이블스페이스는 system 테이블스페이스에 있기 때문에 가능


[실습6] flashback 으로 복구하시오

SCOTT @ ora19dw > flashback  table  emp105 to before drop;

플래시백이 완료되었습니다.

[실습7] ts100 테이블 스페이스를 다시 read write 로 변경하시오

alter  tablespace  ts100 read write;

select tablespace_name, status from dba_tablespaces;

0개의 댓글