메뉴 여닫기
개인 메뉴 토글
로그인하지 않음
만약 지금 편집한다면 당신의 IP 주소가 공개될 수 있습니다.

데이터 Export 와 Import

DB CAFE
Dbcafe (토론 | 기여)님의 2024년 9월 30일 (월) 22:02 판 (새 문서: = EXPORT = == EXPORT 옵션 == {{틀:고지상자2 |제목=데이터 EXPORT 옵션 |내용=<pre> * userid * buffer * file * grants * indexes * rows * constraints * compress * full * owner * tables * tablespaces * recordlength * inctype * record * parfile </pre> |제목배경색=#708090 |제목색상=#FFFFFF |아이콘색= |아이콘이름=build }} == DB전체 백업 == * conventional Path 로 받기 <source lang=sql > exp system/oracle full=y log=full_log.log file=/home/oracl...)
(차이) ← 이전 판 | 최신판 (차이) | 다음 판 → (차이)

EXPORT

EXPORT 옵션

틀:고지상자2

DB전체 백업

  • conventional Path 로 받기
exp system/oracle full=y log=full_log.log file=/home/oracle/full_test001.dmp
  • Direct Path 로 받기
exp system/oracle 
full=y 
log=full_log.log 
file=/home/oracle/full_test001.dmp 
direct=y

파일 분할 백업

exp system/oracle full=y 

file=(
/backup/test_001.dmp,\
/backup/test_002.dmp,\
/backup/test_003.dmp,\
/backup/test_004.dmp)\'''

filesize=100M 
log=full_log.log direct=y

해당 테이블 스페이스만 백업

exp system/oracle 
full=y 
log=full_log.log 
file=/home/oracle/full_test001.dmp 

tablespaces=(example,undotbsl)

여러 사용자 백업

exp system/oracle 
file=/home/oracle/full_test001.dmp 
owner=(scott,tiger)

일부 테이블 백업

  • 버퍼 10메가
  • Direct Path
exp system/oracle 
full=y 
log=full_log.log 
file=/home/oracle/full_test001.dmp 
buffer=20140000 
direct=y 
tables=(example,undotbsl)

일반사용자로 Full Backup

    1. 권한확인
 SELECT * 
  FROM DBA_ROLE_PRIVS 
 WHERE GRANTEE = 'SCOTT';
    1. 권한부여
 GRANT EXP_FULL_DATABASE 
    TO SCOTT;
  • DBA권한을 부여 해도 됨(권장하지 않음)

파라메터를 이용하여 백업

exp system/oracle 
parfile=para_file.txt

- para_file.txt file=/data/test09.dmp full=y direct=y query="where job='xxx' and ... " ....

SQL적용하여 일부데이터만 백업

  • parfile 옵션을 사용하여 파라메터로 사용하면 편리
exp scott/tiger 
query=\"where ename like \'F%\'\"
tables=emp file =/data/emp.dmp

DBMS_DATAPUMP 패키지/프로시져 이용 EXPORT 백업

-- 1.테이블 DUMP EXPORT 스크립트
DECLARE
hdnl NUMBER;
v_open_date VARCHAR2(50) := '20200102'; -- 백업시간
v_job_name  VARCHAR2(50) := 'EXP_XXXWEB_OPEN'; -- 잡이름 

BEGIN

hdnl := DBMS_DATAPUMP.OPEN( operation => 'EXPORT', job_mode => 'SCHEMA', job_name=>v_job_name||'_'||v_open_date);

DBMS_DATAPUMP.ADD_FILE( handle => hdnl, filename => v_job_name||'_'||v_open_date||'_01.EXP', directory => 'DATA_PUMP_DIR2', filetype => dbms_datapump.ku$_file_type_dump_file ,reusefile=>1);
DBMS_DATAPUMP.ADD_FILE( handle => hdnl, filename => v_job_name||'_'||v_open_date||'_01.LOG', directory => 'DATA_PUMP_DIR2', filetype => dbms_datapump.ku$_file_type_log_file  ,reusefile=>1);

-- 스키마 정보
 DBMS_DATAPUMP.METADATA_FILTER(handle => hdnl,
                               name   => 'SCHEMA_EXPR',
                               value  => ' IN (''XXX'',''WEB'')'
                               );

DBMS_DATAPUMP.START_JOB(hdnl);
END;

IMPORT

틀:Note

IMPORT 옵션

틀:고지상자2

DB전체 입력

imp system/oracle 
full=y
log=full_log.log 
file=/home/oracle/full_test001.dmp

일부 사용자만 입력

imp system/oracle 
file=/home/oracle/full_test001.dmp 
fromuser=(scott,tiger) 
tables=test01 ignore=y

테이블 소유자를 변경하여 입력

imp system/oracle 
file=/home/oracle/full_test001.dmp 
fromuser=scott
touser=tiger 
ignore=y

DDL만 추출하기

  • show=y 옵션사용 방법 - 로그에 저장하여 ddl 편집
  • indexfile 옵션을 사용하는 방법
imp system/oracle 
file=/data/test02.dmp 
full=y 
show=y 
log=scott_ddl.sql

import 시 테이블과 index 분리

  • import시 indexes=n 옵션으로 import후 인덱스 별도 생성

인덱스 파일만 별도 추출

imp system/oracle 
file=/data/test02.dmp indexfile=scott_index.sql 
full=y

DB_LINK를 이용한 IMPORT

데이터펌프 IMPORT API