DB/Oracle Administrator

오라클 백업 및 복구(Datapump)

soccerda 2012. 7. 6. 01:21
반응형
 
1. Datapump란?
가. export의 단점인 작업수행 시간예측불가, 일시정지 불가, 느린속도를 개선하고자 등장한 백업,복구, migration 유틸
나. 10g 이상 버전에서만 사용가능하며, export로 작업한 덤프파일을 datapump에서 사용 할 수 없다.

2. Datapump 사용 전 서버 환경설정

가. O/S상에서 디렉토리 생성
나. 오라클상에서 디렉토리 객체 생성
다. 디렉토리 객체에 백업을 수행할 사용자 권한부여

$ mkdir /data/export

1
2
3
4
5
6
7
8
9
10
11
-- 디렉토리 객체 'dp' 생성
create or replace directory dp as '/data/export';
-- scott 사용자에게 권한 부여
grant read, write on directory dp to scott;
-- 전체 사용자에게 권한 부여할 때
-- grant read, write on directory dp to public;
-- 디렉토리 생성 권한 부여
grant create any directory to scott;


3. expdp
가. 실행모드
- full : 전체 데이터베이스 export
- schemas : 특정 스키마 전체 export
- tablespaces : 특정 테이블스페이스 전체 export
- talbes : 특정 테이블 export
나. 파라미터
- directory : 오라클상에서 만든 디렉토리 객체 지정
- dumpfile : 덤프파일명 지정
- filesize : export 받은 파일의 최대크기 지정
- parfile : 미리 작성된 파라미터 파일이름 지정
- logfile / nologfile : 작업내용을 저장 할 로그파일 지정
- exclude / include : export 작업수행 중 제외하거나 포함시킬 객체 지정
- query : 특정 조건에 맞는 데이터만 export 할 경우 조건문 지정
- job_name : export 작업수행 중 해당 작업프로세스에 job 이름 지정
- parallel : 작업수행 중 병렬 수행 시 몇개의 프로세서를 사용할 것인지 지정(많이 지정할 수록 속도 향상)
- attach : 일시 중단된 작업에 다시 접속 시 해당 job_name 지정

$ expdp system/oracle directory=dp dumpfile=test01.dmp full=y

$ expdp system/oracle directory=dp dumpfile=test01.dmp schemas=scott exclude=table:\"=\'EMP\'\"

$ expdp system/oracle directory=dp dumpfile=test02.dmp schemas=scott \
exclude=table:\"IN \(\'EMP\', \'DEPT\'\)\"

$ expdp system/oracle directory=dp dumpfile=test03.dmp schemas=scott \
exclude=index:\"\=\'idx_emp_ename\'\"

$ expdp system/oracle directory=dp dumpfile=test04.dmp schemas=scott \
query=emp:\"\'where sal \> 1000\'\"

$ expdp system/oracle directory=dp dumpfile=test_p_%U.dmp schemas=scott \
job_name=dp_t1 parallel=4

$ expdp system/oracle attach=dp_t1



참고 : attach 모드 옵션
- add_file : 덤프파일 추가
- exit : attach 모드 빠져나감
- kill_job : 해당 작업 종료(작업중인 파일도 삭제 됨)
- parallel : 병렬수행 프로세스 조정
- start_job : 중단되었던 job 재실행
- status : 현재 작업상태 보기
- stop_job : 해당 작업 일시중지


4. impdp
가. 파라미터
- table_exists_action : import 대상 서버에 같은 이름의 테이블이 존재할 때 처리방법 지정
(skip : 건너뜀, append : 기존데이터 뒤에 추가, truncate : 기존 데이터 truncate 후 추가, drop : 테이블을 삭제 및 재생성 후 데이터 추가)
- remap_schema : export 한 사용자와 다른 사용자로 import 할 때 사용, 소유자 변경
- remap_tablespace : 소속 테이블스페이스를 변경할 때 사용

$ impdp system/oracle directory=dp dumpfile=test01.dmp table_exists_action=truncate schemas=scott

$ impdp system/oracle directory=dp dumpfile=test02.dmp schemas=scott \
remap_schema=scott:hr

$ impdp system/oracle directory=dp dumpfile=test02.dmp schemas=scott \
remap_tablespace='users':'example' table_exists_action=truncate



5. 현재 datapump의 job 현황보기
1
2
3
4
5
6
col owner_name for a10
col job_name for a20
col operation for a10
col job_mode for a10
select owner_name, job_name, operation, job_mode, state
from dba_datapump_jobs;

반응형