오라클 백업 및 복구(Datapump)

1. Datapump란? 가. export의 단점인 작업수행 시간예측불가, 일시정지 불가, 느린속도를 개선하고자 등장한 백업,복구, migration 유틸 나. 10g 이상 버전에서만 사용가능하며, export로 작업한 덤프파일을 datapump에서 사용 할 수 없다.
2. Datapump 사용 전 서버 환경설정
가. O/S상에서 디렉토리 생성 나. 오라클상에서 디렉토리 객체 생성 다. 디렉토리 객체에 백업을 수행할 사용자 권한부여
$ mkdir /data/export
-- 디렉토리 객체 '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 현황보기
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;

You may also like...

1 Response

  1. 딩구르 말해보세요:

    깔끔한 정리 굿~!
    피곤하다.ㅠㅠ

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 항목은 *(으)로 표시합니다