Notice
Recent Posts
Recent Comments
Link
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

DBDBDEEP

Oracle Data Pump, 데이터 이동 본문

Oracle ADMIN

Oracle Data Pump, 데이터 이동

Kihwane 2022. 7. 24. 19:42

• Oracle Data Pump

 개요

 

- 대량의 데이터/메타 데이터 이동을 위한 고속 export import 유틸리티용 API 포함

- DBMS_DATAPUMP 통해 호출 할 수 있다.

- 데이터 파일이 서버 측에 생성된다. Original Export/importcilent 쪽에 생성

  ㄴ---> 서버측에 생성되기 때문에 directory object를 만들어서 관리해야 한다.

 

Datapump export/import

10.1 이후 사용

 - Original과 비교했을때

   1. 속도빠름 / 수행 시 필요한 디스크 공간 미리 알 수 있음 / 중지했다가 수행가능

   2. 병렬 수행이 가능

- dumpfilexml 형식

 

■ Directory Object

-10g 부터 유틸리티 사용시 서버쪽 경로를 지시하기 위해 반드시 정의해야 하는 object

     ㄴ---> create directory e_dir as ‘/home/oracle’;

- 사용자들이 사용할 수 있도록 read 또는 write 권한 부여

sql> grant read, write on directory e_dir to scott;

 

┏━> expdp system/oracle directory = e_dir dumpfile = expdat.dmp

┗━> impdp

 

 Export

-  데이터베이스의 object들을 외부의 덤프화일에 기록한다 (정의,데이터)(select)

 

옵션

1. Full

- 데이터베이스 전체에 데이터 펌프 적용

---> ex) Full = y

 

-sys, ORDSYS,MDSYS 스키마 및 관련 권한은 export 하지 않음 -> 나머진 전부 export

-DATAPUMP_EXMP_FULL_DATABASE 롤 필요하다.

 

2.Schemas

- 설정된 데이터 베이스 유저가 소유한 오브젝트에 대해 데이터 추출(default mode)

- DATAPUMP_EXP_FULL_DATABASE 롤을 가지고 exportcreate user 명령도 작성해줌

---> ex) Schemas = sh.hr

 

3.Tables

- 명시된 테이블에 대해서만 데이터 추출한다.

---> ex) Tables = hr.employees

 

4. Tablespaces

- 명시된 테이블스페이스에 저장된 오브젝트에 대해서만 데이터 추출

---> ex Tablespace = users, exmaple

 

5. transport_tablespace = users,example

- 메타 데이터만 export (definitionexport -> dump file size )

 

6. Full=y, Transportable = always

- DB 전체 definition export (구조만 복사, 데이터는 data file 이용 -> dump file size↓)

 

7. export시 이전 버전을 지정

- 9.2 이상부터 가능, 해당 버전에서 지원하는 기능만 export

 

Import

- export가 생성한 덤프파일의 내용으로 데이터베이스에서 수행한다.

 

 옵션

1. REMAP_SCHEMA

- 적재가 수행되는 데이터베이스에서 object 소유자 변경

ex) REMAP_SCHEMA = hr:sh

 

2. REMAP_TABLESPACE

- 적재가 수행되는 데이터베이스에서 object가 저장될 테이블 스페이스 변경

 

3. REMAP_DATAFILES

- 적재가 수행되는 데이터베이스의 테이블스페이스에서 데이터파일의 위치를 변경

 

Data Pump의 이동방법

 

1. Direct path load/unload

- 테이블 구조가 Direct path를 허용하고 최대의 단일 스트림 성능이 요구되는 경우

2. External table

- 클러스터화된 테이블, 참조 무결성 제약조건, 암호화된 열 또는 기타 여러항목 있는 경우

 

Data pump에는 장시간 실행되는 작업에서 작업에 영향을 주지 않고 불리했다가 재연결하는

기능이 있어서 작업 실행중 여러 위치에서 작업을 모니터 할 수 있음.

중단된 모든 Data Pump 작업은 메타정보가 그대로 남아있는 한 데이터 손실 없이 재시작 가능하다. 이것은 자발적으로 중단되었든, 시스템 장애로 중단되었든 관계없다.

 

Oracle Data Pump 장점

- 세분화된 객체 및 데이터 선택 // EXCLUDE, INCLUDE, CONTENT 파라미터

- 데이터베이스 버전의 명시적 지정 // VERSION 파라미터

- 병렬 실행 // PARALLEL 파라미터

- 엑스포트 작업 공간 소비량 예측 // ESTIMATE_ONLY 파라미터 

- 분산 환경의 네트워크 모드

- 재 매핑 기능

- 데이터 샘플링 및 메타 데이터 압축 // COMPRESSION 파라미터

- Data pump 엑스포트 중 데이터 압축

- 암호화를 통한 보안

- XMLType 데이터를 CLOBexport하는 기능

- 이전 import exprot 파일을 지원하는 레거시 모드

External Table

- 오라클 데이터베이스 외부의 운영 체제에 파일로 저장되는 읽기 전용 테이블이다.

- 데이터베이스 테이블과 같은 방식으로 External 소스의 데이터에 액세스 한다.

-데이터가 External 테이블에 있는 것이 아닌, 외부의 있는 자료를 보여준다.

- SQL*Loader 도 타겟DB에 따로 공간을 할당받는 테이블은 없다. 지시란 곳의 텍스트 파일을 테이블의 데이터 인 것처럼 보여준다.

- SQL*Loader를 사용하는 이유는 외부에 데이터가 있기 때문에 백업/리커버리가 용이해진다

 

<장점>

1. 병렬 수행 활용이 가능하다

- 테이블은 구조만 있을 뿐이므로 외부의 데이터 파일만 다르게 설정하면 그 테이블의 내용이 달라진다.

2. Table로 부터의 Loading이 불필요하다

- 테이블에 데이터가 존재하는 것이 아니라서 테이블로 부터의 로딩은 없다

3. Storage 절약

- 외부 데이터이기에 공간 절약

4. Virtual read-only Table

- 가상의 테이블로서 오직 읽기 만이 가능. Select, Join, sort, view, Synonym 가능

5. external table간 조인 가능

 

<단점>

1. index 생성 불가능(파일처리가 빠르기 때문에 필요없음>

2. key 생성 불가

3. join / Filter 수행 어려움

 

SQL * Loader

- 데이터를 External 파일에서 오라클 데이터베이스의 테이블로 로드한다.

- 데이터 파일의 데이터 형식을 거의 제한하지 않는 강력한 데이터 구문 분석 엔진 보유

 

SQL Loader 특징

- 하나 이상의 입력 파일을 사용할 수 있다.

- 로드할 때 여러 개의 입력 레코드를 하나의 논리적 레코드로 결합할 수 있다.

- 입력 필드는 고정 길이 또는 가변 길이가 가능하다.

- 테이블의 기존 데이터를 바꾸거나 추가하기 위해 옵션을 사용할 수 있다.

- 데이터베이스 행을 저장하기 전에 SQL 함수를 입력 데이터에 적용할 수 있다.