[Oracle] 데이터베이스의 논리적 · 물리적 구조

·2025년 9월 1일
0

오라클 관리

목록 보기
66/163


[이론1] 테이블 스페이스 생성시 고려사항 2가지

  1.  extent 관리 방법
           ① dictionary 관리 방식 : 데이터를 입력할 때 비어있는 공간에 대한 정보를 
                                   SYSTEM 테이블 스페이스에 있는 data dictionary 에서
                                   관리하는 방식
           ② local 관리 방식 :   로컬 테이블 스페이스에 데이터를 입력할 때
                                비어있는 공간에 대한 정보를 내가 가지고 있는 관리 방식

  2.  저장되는 data의 성격 
           ①  permanent 
           ②  temporary 
           ③  undo 

[실습1] 현재 테이블 스페이스의 extent 관리 방식이 어떻게 되어있는지 확인하시오

SELECT tablespace_name, extent_management
 from dba_tablespaces;

[실습2] dictionary 관리방식 테이블스페이스와 local 관리방식 테이블스페이스를 생성하는 문법을 써서 2개 테이블 스페이스를 생성하시오

select tablespace_name, file_name
 from dba_data_files;

-- 생성 안되면 한줄로 써보기
create tablespace ts07
  datafile '/u01/app/oracle/oradata/ORA19/ts07.dbf' size 10m
  extent management local;


-- system tablespace의 extent 관리방식이 이미 local로 되어있으면
-- 일반 테이블 스페이스 만들 때 무조건 local로만 생성할 수 있음
create tablespace ts08
  datafile '/u01/app/oracle/oradata/ORA19/ts08.dbf' size 10m
  extent management dictionary;
  
create  table  emp07
tablespace ts07
as
 select *
  from scott.emp;

select * from emp07;

insert into emp07(empno, ename, sal) 
  values(1111,'aaa', 3000);
  

SELECT tablespace_name, extent_management
 from dba_tablespaces;

문제1. (데이터 이행 프로젝트1) oltp에는 있는데 dw 쪽에는 없는 테이블 스페이스를 dw 쪽에 위치에 맞춰서 이름을 동일하게 해서 생성하시오

1. 먼저 윈도우 클라이언트 tnsnames.ora 에 dw 로 접속하기위한 tns정보를 넣습니다.

kbm_dw =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.13.69)(PORT =21533 ))
    (CONNECT_DATA =
      (SERVER = dedicated)
      (SERVICE_NAME = ora19dw)
    )
  )

2. dw쪽에서 oltp 쪽으로 디비링크를 생성합니다.

create database link  oltp_link
connect to system
identified by oracle_4U
using '192.168.13.69:21533/ORA19';

select tablespace_name from dba_tablespaces@oltp_link;

3. oltp 쪽 테이블 스페이스와 dw 쪽 테이블 스페이스의 차이가 있는지 확인하시오

select tablespace_name from dba_tablespaces@oltp_link
minus 
select tablespace_name from dba_tablespaces;


select tablespace_name from dba_tablespaces
minus 
select tablespace_name from dba_tablespaces@oltp_link;

4. 차이가 있는 테이블 스페이스의 크기도 같이 확인하시오


select tablespace_name, sum(bytes/1024/1024)
 from dba_data_files@oltp_link
 where  tablespace_name in ( 
            select tablespace_name from dba_data_files@oltp_link
            minus 
            select tablespace_name from dba_data_files )
group by tablespace_name;

5. 차이가 나는 테이블 스페이스를 생성합니다.

create tablespace ts02
  datafile '/u01/app/oracle/oradata/ORA19DW/ts02.dbf' size 40m;
  
create tablespace test_big
  datafile '/u01/app/oracle/oradata/ORA19DW/test_big01.dbf' size 20m;
  
create tablespace ts03
  datafile '/u01/app/oracle/oradata/ORA19DW/ts03.dbf' size 20m;
  
create tablespace ts04
  datafile '/u01/app/oracle/oradata/ORA19DW/ts04.dbf' size 30m;
  
create tablespace ts07
  datafile '/u01/app/oracle/oradata/ORA19DW/ts07.dbf' size 1024m;

0개의 댓글