출 처 : http://blog.naver.com/0moodgirl0?Redirect=Log&logNo=109505443



○ Move Data

1) 종류

1. sql*loader

2. export/import

3. DataPump

4. External Table

 

 

 

2) SQL*Loader

1. SQL*Loader 특징

① data를 빠르게 database에 넣을 수 있다.

② database의 table안의 external file을 읽어온다.

③ 메뉴얼

http://download.oracle.com/docs/cd/B14117_01/server.101/b10825/ldr_cases.htm#i1008607

 

2. SQL*Loader 구성

① Input data files : text파일

② control file : input data file을 로딩할 수 있도록 설정하는 파일

  -> input data file + control file을 loading한다.

③ Bad file : loading시 에러난 data를 저장

④ Discard file : loading시 file에 옵션을 주면 데이터에 ','등의 옵션을 사용할 수 있다.

 

* 메모리 관리

데이터 형식

데이터에 관한 설명

 

3. Record selection에서 ORALE Server로 내려가는 방식

① conventionail 방식:느림

② Direct 방식:빠름(공간의 낭비가 있고, 테이블에 락이 걸린다.)

SQL> sqlldr에서 direct=y 추가

* 로더가 파일의 내용을 읽어서 메모리 버퍼에 블럭을 만들어 쌓은 후 디스크 블럭에 한 번에 넣는데,
direct는 메모리 버퍼를 사용하지 않고 바로 내려 쓴다.


4. Excercise 


 

 

 

 

3) Export/Import

http://blog.naver.com/0moodgirl0/108979117 여기에..

 OS> exp ocp/ocp@192.168.0.10:1521/dhdb tables=emp file=emp.dmp

** DataPump VS Export/Import

 Data Pump

Export/Import 

 - 작업 중간에 멈출 수 있다.

 - datapump는 상위 하위 버전을 따지지 않는다.
(10g부터 나왔기 때문에 10g와 11g에서만 사용 가능!!!)

 - 작업 중간에 멈출 수 없다.

 - 상위 버전의 data를 하위 버전에 넣을 수 없다.

 

 

 

4) Data Pump

1. Data Pump 정의

① Server 안에서 일어난다.

② 병렬 처리를 할 수 있다.

③ datapump는 상위 하위 버전을 따지지 않는다.
  (단, 10g부터 나왔기 때문에 10g와 11g에서만 사용 가능!!!)

 

2. Data Pump 특징

 : data를 받을 때 일시정지, 재시작 등의 기능을 수행할 수 있다.

export> stop_job                  -- 작업을 멈춘다.

export> start_job                  -- 작업을 시작한다. (진행상황은 화면에 보이지 않음)

export> continue_client         -- 작업의 진행상황을 화면에 보여준다.

: 작업 도중 Ctrl+c 눌러 작업화면에서 명령모드로 빠져나갈 수 있다.

2. Data Pump 기능

① expdp : data를 뽑아낸다.

② impdp : data를 넣는다.

③ em을 사용하여 생성

 

3. Data Pump Export Option

① Sample : data를 몇 %의 data를 뽑는다.

② Schemas : 여러 user 지정

OS> expdp system/oracle schemas=scott,hr ...

③ Query : 원하는 테이블의 원하는 값만 뽑아 올 수 있다.

 

4. Data Pump Import Option

① Remap_datafile : 다른 시스템의 플랫폼으로 datafile을 옮길때 사용

② Remap_tablespace : objct를 다른 테이블스페이스로 옮길 때 사용

③ Remap_schema : object의 user를 바꿀 때 사용

④ Transform : 사용자가 원하는 방식에 맞게 넣기위해 사용

 

* export와 import의 option은 서로 비슷하다

   하지만 export에서는 sample, import에서는 remap, transform option만 사용 가능한다.

 

5. Data Pump 성능 향상 방법

① DISK_ASYNCH_IO=TRUE, DB_BLOCK_CHECKING=FALSE, DB_BLOCK_CHECKSUM=FALSE로 설정한다.

② processes와 sessions와 parallel_max_servers를 최대한 크게 한다.

③ shared_pool_size와 undo_tablespace의 크기를 크게 한다.

 

6. Excercise

SQL> create or replace directory dir7 as '/u01/app/oracle/oradata/dhdb_dir';

 : 받드시 절대경로를 사용할 것!!! 상대경로는 error발생~!!!

SQL> grant read, write on directory dir7 to public;
SQL> exit

 

[oracle@ora10gr2 log]$ expdp system/oracle full=y directory=dir7 dumpfile=full1.dmp job_name=full1

 ... 생략 ...

Processing object type DATABASE_EXPORT/TABLESPACE
Processing object type DATABASE_EXPORT/SYS_USER/USER
Processing object type DATABASE_EXPORT/SCHEMA/USER
Processing object type DATABASE_EXPORT/ROLE
Processing object type DATABASE_EXPORT/GRANT/SYSTEM_GRANT/PROC_SYSTEM_GRANT
Processing object type DATABASE_EXPORT/SCHEMA/GRANT/SYSTEM_GRANT
Processing object type DATABASE_EXPORT/SCHEMA/ROLE_GRANT

 : 진행 도중 Ctrl+ C 누른다.

 
Export> stop_job

 Are you sure you wish to stop this job ([yes]/no): yes

 : y만 넣거나 한글로 쓰면 인식하지 못함!! 반드시 'yes'

[oracle@ora10gr2 log]$ sqlplus system/oracle

SQL> select table_name from user_tables where table_name like 'FULL%';

 TABLE_NAME
 ----------------------
 FULL1

: 작업이 있는지 확인하는 commend

SQL> exit

 

[oracle@ora10gr2 log]$ expdp system/oracle attach=full1

Export> start_job               -- 화면에 진행상황이 보이지는 않음
Export> continue_client      -- 진행상황을 보여준다.

 ... 생략 ...

 Dump file set for SYSTEM.FULL1 is:
   /u01/app/oracle/oradata/dhdb_dir/full1.dmp
 Job "SYSTEM"."FULL1" successfully completed at 09:57:17

[oracle@ora10gr2 log]$ sqlplus system/oracle
SQL> select table_name from user_tables where table_name like 'FULL%';

-- 작업이 끝났으므로 나오는 값은 없다.

 

5) External Table

1. 정의

① 쉽게 대용량의 data를 넣을 수 있다.

② 바이너리 파일로 되어 있다.

 

2. 특징

① Multiple table insert 또는 Merge를 통해서 data를 넣을 수 있다.

② 재료가 되는 파일이 있어야 한다.

③ 파일을 집어 넣어도 되고 그냥 바이너리 파일을 사용할 수도 있다.

Posted by 나른한스누피