본문 바로가기
정보관리(데이터베이스, DB)/오라클

오라클 DB 백업 및 복구 (Oracle DB Backup & Restoration)

by 3604 2024. 6. 8.
728x90

 

오라클 DB관련 환경설정을 하다보면 수없이 많이 해야하는 작업중 하나가 오라클 DB백업 및 복구죠.

오라클 백업&복구  주의사항

 

1. 오라클 백업&복구는 CMD(COMMEND)창에서 실행한다.

 

2. 오라클 임포트는 되지만 오류창이 뜨는 경우

 1) 유니코드가 맞지 않아서 나는 문제인 

   - 간혹 Erwin에서 DB 구성하였을 경우 INDEX명이 한글인 경우 오류가 나는  하다.

 2) CMD창에서 아래 문장을 먼저 입력  Export / Import 실행한다.

 > set NLS_LANG=AMERICAN_AMERICA.KO16MSWIN949

 3) CMD창을 닫으면 초기화 되므로 새로 열었으면 항상 위의 문장을 입력한다.

..Notice.>

  항상 Export / Import 하기전에 먼저 입력하는 습관을 들이자!

 

3. exp/imp  expdb/impdp

 1) Export / Import 하려는 오라클 버전이 같고, TABLESPACE 같으면 exp/imp 명령을 사용한다.

 2) Export / Import 하려는 오라클 버전이 같지 않거나, TABLESPACE 같지 않으면 expdp/impdp 사용한다.

 3) exp/imp/expdb/impdp 모두 USERID 명령어 첫번째 매개변수에 있어야 한다.

 

4. 오라클 11g 설치된 PC에서 네트워크로 10g 설치된 PC 데이터를 exp/expdp하려 했더니 버전 오류남

 1) 직접 10g 설치된 PC에서 백업을 하던가, 10g 설치하고 백업해야 ...

 2) 네트워크로 접속은 된다.

 

5. UNIX reserved characters( ", ', ,< .. ) 사용하는 경우에는 escape('\')  반드시 사용해야 한다.

 1) WiNDOWS

 - 참고 : 3. 스키마(유저) 특정 테이블 백업&복구 > 3-2)항목

 Ex) exp orcl/orcl file=dump.emp log=dump.log tables=orcl.test query=\"where ename like 'SCOT%'\"

 2) UNiX

 Ex) exp orcl/orcl file=dump.emp log=dump.log tables=orcl.test query=\"where ename like \'SCOT%\'\"

※ command line에서 query 내에 따옴표(') 쌍따옴표(") 사용하지 않는 다면 query option으로 따옴표(') 쌍따옴표(") 사용할수 있다.

   command line에서 query 내에 따옴표(') 쌍따옴표(") 사용한다면 무조건 query option으로 쌍따옴표(") 사용해야 한다.

   query=\'where deptno = 20\'

   query=\"where deptno = 20\"

   query=\'where deptno \< 2\' 

   ( 경우  single 이나  double quotes  둘다 사용할수 있다.)

※ command line에서 export option 사용할때는 반드시 escape 있어야 하나 parfile 사용할때는 eacape 불필요하다. 

   parfile 사용하는 경우에는 다음과 같이 단순하게  사용이 가능하다.

   query='where deptno = 20'

   query="where deptno = 20"

   query='where deptno < 20'

 

exp/imp
1. 전체 백업&복구

 > 기존의 DB 서버를 포멧하고 다시 설치 하는 경우.

 오라클 버전이 다른경우 사용할 수 없습니다.

 1) CMD 실행

 2) CMD 문자코드 변경

 > set NLS_LANG=AMERICAN_AMERICA.KO16MSWIN949

 3) 전체 백업

 > exp userid=마스터계정(대부분 system이다.)/암호 file='백업할경로\백업할덤프파일.dmp' log='로그파일을저장할경로\로그파일.log' full=y

 4) 오라클 DB 접속해  User Tablespace 확인한다.(복구  필요   있다.)

 > SELECT USERNAME, DEFAULT_TABLESPACE, TEMPORARY_TABLESPACE FROM DBA_USERS;

 5) 전체 복구

 > imp userid=마스터계정/암호 file='복구할파일경로\복구할덤프파일.dmp' log='로그파일을저장할경로\로그파일.log' full=y

 

..Example.>

 > set NLS_LANG=AMERICAN_AMERICA.KO16MSWIN949

 > exp userid=system/1234 file='D:\test\testdump.dmp' log='D:\test\testdump.log' full=y

 > SQLPLUS SYSTEM/PASSWORD AS SYSDBA;

 > SELECT USERNAME, DEFAULT_TABLESPACE, TEMPORARY_TABLESPACE FROM DBA_USERS;

 > exit;

 > set NLS_LANG=AMERICAN_AMERICA.KO16MSWIN949

 > imp system/1234 file='D:\testdump.dmp' log='D:\testdump.log' full=y

 

..Notice.>

 1) exp/imp cmd(커멘드)창에서 실행한다.

 2) export 받을  해당 경로를 자동으로 만들지 못하므로, 미리 만들어 둬야 한다. 

    위의 Example에서 D:\test\ 경로가 없으면 export 실행되지 않는다.

 3) 복구할  유용하게 쓰기 위해 (initsid.ora ,tnsname.ora ,linstner.ora ,sqlnet.ora) 등을 백업한다.

 4) export 백업을 받을때 system 권한으로 받으면 모든 정보(사용자, temp, 권한 ) 백업된다. 

    새로설치한 db system , sys 계정  테이블이 존재 하면 import 시키지 않고 , 없는 것만 import 한다.

    그러니  같은 객체(테이블,인덱스,유저 ) 이미 있다고 해서 걱정할 필요는 없다.

 5)  User 기본 Tablespace 알고 있어야 한다. import  미리 Tablespace 생성해주어야 한다.

    만약 export 때의 Tablespace 모른다면 import  로그를 분석하여 생성해 준다.

 

2. 스키마별(유저별) 백업&복구

 > 특정 User 테이블을 백업&복구한다.

 1) CMD 실행

 2) CMD 문자코드 변경

 > set NLS_LANG=AMERICAN_AMERICA.KO16MSWIN949

 3) 유저 백업

 > exp 마스터계정/암호 owner=백업할유저 file='백업파일을 저장할 경로\백업파일.dmp' log='로그파일을 저장  경로\로그파일.log'

 4) 유저의 Tablespace 확인

 - 마스터계정 로그인

 > sqlplus "/as sysdba"

 > SELECT USERNAME, DEFAULT_TABLESPACE, TEMPORARY_TABLESPACE FROM DBA_USERS WHERE USERNAME='백업할유저(대소문자구분)';

 - 사용중인 Tablespace 메모해 둔다.

 5) 유저 복구

 - TABLESPACE 생성

 - 유저 생성(생성한 TABLESPACE DEFAULT TABLESPACE 한다.)

 - 유저 권한부여

 - CMD 문자코드 변경(새로 CMD 실행  경우)

 > set NLS_LANG=AMERICAN_AMERICA.KO16MSWIN949

 - 복구 명령

 > imp system/암호 file='백업파일을 불러올 경로\백업파일.dmp' log='로그파일을 저장  경로\로그파일.log' fromuser='백업한(owner)유저' 

    tosuer='복구할유저' ignore=yes

 

..Example.> 

 - D드라이브에 exp_user테이블을 userbackup.dmp 파일로 백업한다.

 > exp system/password owner=exp_user file='D:\userbackup.dmp' log='D:\userbackup.log'

 - sampleTable이라는 Tablespace 생성한다.

 > create tablespace sampleTable datafile 'D:\oracle\...\sampleTable.dmp' size 100M autoextend on next 10M;

 - user1 생성한다.

 > create user user1 identified by password default TABLESPACE sampleTable;

 - user1 권한을 부여한다.

 > grant connect, resource to user1;

 - 기존 user 테이블들을 user1 복사한다.

 > imp system/password file='D:\userbackup.dmp' log='d:\log\userimport.log' fromuser='exp_user' touser='user1' ignore=yes

 

..Notice.>

 1) export User 특정 Tablespace 사용하지 않는 경우 만들필요없이 기본 Tablespace 사용해도 된다.

 2) Default Tablespace USERS이다. (10g, 11g 기준)

 4) 스키마 백업 옵션 : GRANTS, INDEXES, COMPRESS, CONSTRAINTS, ROWS, TRIGGERS, DIRECT, CONSISTENT ...

 5) 스키마 복구 옵션 : GRANTS, INDEXES, ROWS, CONSTRAINTS, IGNORE, SHOW, DESTROY, ANALYZE, COMMIT, SKIP_UNUSABLE_INDEXES, RECALCULATE_STATISTICS ...

 

3. 스키마(유저)의 특정 테이블 백업&복구

 > 유저의 특정 테이블만 백업&복구한다.

 1) CMD 실행

 2) CMD 문자코드 변경

 > set NLS_LANG=AMERICAN_AMERICA.KO16MSWIN949

 3-1) 테이블 백업

 > exp 백업할테이블이있는유저/패스워드 file='백업파일을 저장할 경로\백업파일.dmp' log='로그를저장할경로\로그파일.log'

    tables=백업할 테이블, 백업할 테이블...

 3-2) 테이블의 원하는 데이터만 쿼리문을 사용하여 백업

 > exp 백업할테이블이있는유저/패스워드 file='백업파일을 저장할 경로\백업파일.dmp' log='로그를저장할경로\로그파일.log'

    tables=백업할 테이블 query=\"where 조건='조건값'\"

 - 위의 명령과 같은 결과가 나옴

 > exp 마스터계정/패스워드  file='백업파일을 저장할 경로\백업파일.dmp' log='로그를저장할경로\로그파일.log'

    tables=백업할테이블이있는유저.백업할 테이블 query=\"where 조건='조건값'\"

 4) 테이블 복구

 > imp 테이블을 import  유저/패스워드 tables=백업한 테이블, 백업한 테이블.. file='백업한파일경로\백업파일.dmp'

    log='로그를저장할경로\로그파일.log'

 

..Example.> 

 - user1 table1, table2 export한다.

 > exp user1/password tables=table1, table2 file='d:\tablebackup.dmp' log='d:\tablebackup.log'

 - user2 table2 import한다.

 > imp user2/pass tables=table2 file='d:\tablebackup.dmp'

 

..Notice.>

 1) 유저로 백업한 덤프파일에서 특정 테이블만 import   없다.

 2) 테이블백업파일에 있는 테이블  일부만 선택하여 복구   있다.

 3) 테이블을 DROP하지 않고 DELETE 경우 ignore=y 사용하면 데이터만 넣을  있다.

 4) ignore옵션은 중복 데이터를 덮어 쓰는게 아니다.

   - 14 데이터가 있는 테이블에 ignore 옵션으로 14 데이터를 가진(중복데이터 포함) 테이블을 import하면  28 데이터테이블이 .

 5) export 쿼리 문을 사용하여 해당 table 원하는 데이터만 추출할수 있다.

  - 테이블 레벨의 export 명령어에서만 가능하다.

  - Direct 옵션과 함께 사용될  없다.

  - Nested 테이블을 갖는 테이블에는 적용할  없다.

  - Partition 테이블에 대한 export에도 적용가능하다.

  - Import 명령에는 적용되지 않는다. 

     테이블 단위로 export하고 query 뽑아서 import 불가능 하나는 얘기

    LRM-00101:   없는 'query' 매개변수 이름. 이런 메세지 .

 

4. TableSpace 백업&복구

..Explain.>

 같은 환경을 가진 두개 이상의 분산 DB 환경에서 어떤 DB 가진 여러개의 데이터 파일을 다른 DB 이동 시키는 기능.

 테이블스페이스의 데이터 위치를 옮기려고 하는  인듯..

..Method.>

 1) 오라클 마스터계정 접속

 > sqlplus "/as sysdba"

 2) 백업하려는 tableSpace 상태를 Read Only 변경

 > ALTER TABLESPACE 테이블스페이스명 READ ONLY;

 3) 오라클 접속 종료

 > EXIT

 4) TableSpace Export

 > EXP 마스터계정/암호 FILE='저장경로/파일이름.DMP' TRANSPORT_TABLESPACE=Y TABLESPACES = 테이블스페이스명

 5) TableSpace import

 > imp 마스터계정/암호 FILE='저장경로/파일이름.DMP' TRANSPORT_TABLESPACE=Y TABLESPACES = 테이블스페이스명 DATAFILES=경로

 6) 복구하려는 tableSpace 상태를 Read Write 변경

 > 마스터계정 접속

 > ALTER TABLESPACE 테이블스페이스명 READ WRITE;

 

..Notice.>

※ transport_tablespace 사용하려면 해당 tablespace read only 시켜야 한다.

※ tablespace 하나의 특정 데이터 파일만 이동 할수 없다.

 같은 환경을 가진 OS에서만 가능함.

 오라클 8i 이상 사용 가능.

※ DB_BLOCK_SIZE 파라메터의 값이 같아야 .

 같은 언어타입을 사용해야함.

※ VARRAY 타입과 중첩 테이블 컬럼이 있는 테이블은 사용할수 없음.

※ bit-map-index 사용할수 없음.

※ LOB 타입을 가진 테이블 또는 분할 테이블은 사용할수 있음.

 

5. exp/imp parfile 방식

※ parfile 안에 해당 exp/imp 설정을 작성한후 parfile 이용해서 exp/imp 할수있다.

 1) parfile 생성

 - 메모장을 연다. (윈도우 이기 때문에 노트 패드로 .par 파일을 작성)

 - exp 혹은 imp 조건절을 입력한다.

 Ex)

  file=f:\test.dmp

  log=f:\test.log

  onwer=user1

 - 확장자를 .par 저장한다.

 2) par 파일 CMD에서 확인

 > more 파일명.par 입력

 - 출력

    file=f:\test.dmp

    log=f:\test.log

    onwer=user1

 3) exp/imp 실행

 Ex) 

 > exp 마스터계정/암호 parfile=pa.par

 -  내용은 실제로는

 > exp 마스터계정/암호 file=f:\test.dmp log=f:\test.log owner=user1

 

6. DIALOG 방식

※ exp 혹은 imp 입력하고  다음은 나오는 옵션을 선택하면서 수행하는 방법

Ex)

 > exp

Export: Release 11.2.0.1.0 - Production on  4 8 17:01:42 2015

Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.

사용자명: user1

암호:

다음에 접속됨: Oracle Database 11g Release 11.2.0.1.0 - Production

배열 인출 버퍼 크기 입력: 4096 > 409

엑스포트 파일: EXPDAT.DMP > f:\test2

(1)E(전체 데이터베이스), (2)U(사용자), 또는 (3)T(테이블): (2)U > 2

권한부여 엑스포트 (yes/no): yes > yes

테이블 데이터 엑스포트 (yes/no): yes > yes

확장 영역 압축 (yes/no): yes > yes

KO16MSWIN949 문자 설정과 AL16UTF16 NCHAR 문자 설정에서 엑스포트가 종료되었습니다

 

전체 데이터베이스를 엑스포트하려고 합니다 ...

테이블 정의 엑스포트 

프로파일 엑스포트 

사용자 정의 엑스포트 

...

익스포트가 경고 없이 정상적으로 종료되었습니다.

 

7. exp 정보

 1) Option

 > exp help=y

 키워드 설명(기본값)      

 --------------------------------------------------------------------------

 BUFFER 데이터 버퍼 크기

 COMPRESS 하나의 확장 영역으로 임포트(Y)

- COMPRESS 옵션을 Y 설정 하여 사용하면 여러개의 익스텐트가 하나의  익스텐트로 통합된다.

  실제 운영에서는 익스텐트를 통합하는것은 좋지 않으므로 반드시 COMPRESS 옵션을 N 설정 한다.

 CONSISTENT 테이블간 일관성(N)

- CONSISTENT옵션을 Y 설정하면 export 수행한 시점의 데이터를 추출한다.

  export  변경된 데이터는 언두 데이터를 이용해서 이전 값을 추출한다.

  따라서 'snap shot too old' 에러가 발생하기 쉽다.

 CONSTRAINTS 제약 조건 익스포트(Y)

 DIRECT 직접 경로(N)

- DIRECT 옵션을 사용하면 SGA 사용하지 않고 export/import 하게 되며 추출  적재 작업시 보다 빠른 속도를 보장 받는다.

 FEEDBACK  x행마다 진행 상황 표시(0)

 FILE 출력 파일(EXPDAT.DMP)

 FILESIZE  덤프 파일의 최대 크기

 FLASHBACK_SCN 세션 스냅샷을 되돌리는 설정에 사용된 SCN

 FLASHBACK_TIME 지정된 시간에 가장 가까운 SCN 가져오는  사용된 시간

 FULL 전체 파일 익스포트(N)

 GRANTS 권한 부여 익스포트(Y)

 INCTYPE 증분 익스포트 유형

 INDEXES 인덱스 익스포트(Y)

 LOG 화면 출력의 로그 파일

 OBJECT_CONSISTENT 객체 익스포트 동안 읽기 전용으로 설정된 트랜잭션(N)

 OWNER 소유자 사용자 이름 목록

 PARFILE 매개변수 파일 이름

 QUERY 테이블의 부분 집합을 엑스포트하는  사용하는 select 

 RECORD 증분 익스포트 추적(Y)

 RECORDLENGTH IO 레코드 길이

 RESUMABLE 공간 관련 오류가 발생하면 일시 중지됨(N)

 RESUMABLE_NAME 재개 가능한 명령문을 식별하는  사용된 텍스트 문자열

 RESUMABLE_TIMEOUT RESUMABLE 대기 시간

 ROWS 데이터  익스포트(Y)

 STATISTICS 객체 분석(ESTIMATE)

 TABLES 테이블 이름 목록

 TABLESPACES 익스포트할 테이블스페이스 목록

 TEMPLATE iAS 모드 익스포트를 호출하는 템플리트 이름

 TRANSPORT_TABLESPACE 이동 가능한 테이블스페이스 메타 데이터 익스포트(N)

 TRIGGERS 트리거 익스포트(Y)

 TTS_FULL_CHECK TTS 대한 전체 또는 부분 종속성 검사 수행

 USERID 사용자 이름/비밀번호

 

 ※ FULL, OWNER  TABLE 옵션은 동시 사용 불가

 ※ DIRECT=Y 경우 CONSISTENT=Y 설정 불가

 ※ FULL=Y export 수행하기 위해서는 exp_full_database 권한 필요함

 

 2) 추출 파일의 크기를 확인하는 SQL

 > SELECT SUM(BYTES)/1024/1024 FROM DBA_SEGMENTS WHERE OWNER = '스키마명' AND SEGMENT_NAME = '테이블명';

 

 ※ export 작업을 수행 하면 실제 테이블의 크기보다 작게 생성된다.

     SQL 수행하여 나온 크기만큼 디스크의 크기를 확보하면 export 작업을 수행하는데 충분하다.

    또한 추출 파일에는 해당 테이블의 인덱스를 생성할  있는 정의만 저장하므로 별도의 디스크공간은 필요하지 않다.

    하지만 import 시에는 실제 인덱스를 생성하므로 인덱스 테이블스페이스에 여유 공간을 확보해야한다.

 

8. imp 정보

 1) Option

 > imp help=y

 키워드 설명(기본값)      

 --------------------------------------------------------------------------

 BUFFER 데이터 버퍼의 크기

 COMMIT 배열 삽입 커밋 (N)

- Y 지정할 경우 buffer 옵션 단위로 커밋 수행(기본값 N)

 COMPILE 프로시저, 패키지  함수 컴파일(Y)

 CONSTRAINTS 제약조건을 임포트 (Y)

 DATA_ONLY 데이터만 임포트(N)

 DESTROY 테이블스페이스 데이터 파일 겹쳐쓰기(N)

 FEEDBACK  x행마다 진행 상황 표시(0)

 FILE 입력 파일들 (EXPDAT.DMP)

 FILESIZE  덤프 파일의 최대 크기

 FROMUSER 소유 사용자명 목록

 FULL 파일 전체 임포트 (N)

 GRANTS 권한부여 임포트 (Y)

 IGNORE 생성 오류 무시 (N)

 INCTYPE 증분 임포트 유형

 INDEXES 인덱스 임포트 (Y)

 INDEXFILE 지정된 파일에 테이블/인덱스 정보 쓰기

 LOG 화면 출력의 로그 파일

 PARFILE 매개변수 파일명

 RECORDLENGTH IO 레코드의 길이

 RESUMABLE 공간 관련 오류가 발생하면 일시 중지됨(N)

 RESUMABLE_NAME 재개 가능한 명령문을 식별하는  사용되는 텍스트 문자열

 RESUMABLE_TIMEOUT RESUMABLE 대기 시간

 ROWS 데이터  임포트 (Y)

 SHOW 파일 목차만 목록 (N)

 SKIP_UNUSABLE_INDEXES 사용되지 않은 인덱스들의 유지를 건너뜁니다 (N)

 STATISTICS 미리 계산된 통계 임포트(항상)

 STREAMS_CONFIGURATION 일반 스트림 메타 데이터 임포트(Y)

 STREAMS_INSTANTIATION 스트림 인스턴스화 메타 데이터 임포트(N)

 TABLES 테이블명 목록

 TOID_NOVALIDATE 지정된 유형 ID 검증 건너뛰기

 TOUSER 사용자명의 목록

 USERID 사용자명/비밀번호

 

 ※ FULL 옵션과 TABLES 옵션은 동시 사용 불가

 ※ FULL=Y  TOUSER 옵션을 사용하기 위해서는 imp_fyll_database 권한 필요

  적은 양의 데이터 import 경우를 제외하곤 commit 옵션을 Y 설정 권장.

 ※ export 시와 동일한 tablespace 존재하지 않을 경우 유저 default tablespace import 된다.

 

 2) import 순서

 - 테이블 생성 > 데이터 적재 > B*트리 인덱스 생성 > 제약조건 > 트리거  비트맵 인덱스 생성

 - system 유저로 import 하게 되면 system tablespace 일반 유저 세그먼트가 생성 될수 있으므로

   반드시 export tablespace 동일한 이름의 tablespace 생성한  작업을 수행해야한다.

 

9. imp스크립트 만들기

 1) 데이터 export

 2) 스크립트 생성

 - imp 명령에 indexfiles라는 명령을 추가한다.

 > imp system/암호 file='백업파일을 불러올 경로\백업파일.dmp' log='로그파일을 저장  경로\로그파일.log' indexfiles=index.sql        

    fromuser='백업한(owner)유저' tosuer='복구할유저' ignore=yes

 

expdb/impdp

>> data pump 방식

1. 덤프파일 디렉토리 생성

 기본 디렉토리에서 덤프파일을 불러올 경우 간혹 유저가 권한이 없어서 실패하는 경우가 있다.

   이럴경우 기본 디렉토리 대신 다른 디렉토리를 생성해준다.

 1) 디렉토리 생성 (이미 있는 경우는 생략)

  - 폴더를 생성한다.

 2) 마스터계정 접속

 > sqlplus "/as sysdba"

 3) 디렉토리 생성

 > CREATE OR REPLACE DIRECTORY 디렉토리명 AS '/디렉토리경로';

 4) 유저에게 디렉토리 지정

 > GRANT read, write ON DIRECTORY 디렉토리명 TO 덤프받을유저명;

 Ex)

 > CREATE OR REPLACE DIRECTORY data_pump_dir AS '/home/oracle/admin/ora10/dpdump';

 > GRANT read, write ON DIRECTORY data_pump_dir TO user1; 

 기본디렉토리 경로 : 오라클데이터설치경로/컴퓨터유저명/admin/서비스명/dpdump/

 

2. 유저 Export

 > expdp system/pass@DataSource dumpfile=덤프파일.dmp directory=디렉토리명 schemas=덤프할유저 version=적용할오라클버전

※ Export 'directory=디렉토리명' 지정 안하면 기본 디렉토리경로에 덤프파일이 생성된다.

1) 유저가 같은 경우

 > impdp system/pass@DataSource schemas=유저명 dumpfile=덤프파일.dmp directory=디렉토리명

2) 유저가 다른 경우

 > impdp system/pass@DataSource dumpfile=덤프파일.dmp directory=디렉토리명 remap_schema=백업한유저:복구할유저 

3) 유저, 테이블스페이스가 다른 경우

 > impdp system/pass@DataSource dumpfile=덤프파일.dmp directory=data_pump_dir remap_schema=백업한유저:복구할유저 

    REMAP_TABLESPACE=백업한유저테이블스페이스:복구할유저테이블스페이스  

4) 유저, 테이블스페이스, 버전까지 다른 경우

 > impdp system/pass@DataSource dumpfile=덤프파일.dmp directory=data_pump_dir remap_schema=백업한유저:복구할유저 

    REMAP_TABLESPACE=백업한유저테이블스페이스:복구할유저테이블스페이스 VERSION=복구할오라클버전

 Ex)

 > impdp 10guser/password dumpfile = dump.dmp REMAP_SCHEMA = 11guser:10guser REMAP_TABLESPACE = 11g_tbs:10g_tbs    TS_IBS_IDX:TS_IBS_IDX VERSION=10.2

5) 참고사항

 1) expdp/impdp  경우 지정된 폴더에 log 파일이 자동으로 생긴다.

 2) import 유저를 미리 생성 안해도 알아서 생성해준다. (11g에서 확인)

 3) 디렉토리가 기본 디렉토리  경우 'directory=디렉토리명' 생략해도 된다.

 

expdp Option..

키워드 설명[기본값]

 --------------------------------------------------------------------------

ATTACH 기존 작업에 연결합니다. : ATTACH=job_name

COMPRESSION 덤프 파일의 크기를 줄입니다. 적합한 키워드 : ALL, DATA_ONLY, [METADATA_ONLY]  NONE

CONTENT 로드를 취소할 데이터를 지정합니다. 적합한 키워드 : [ALL], DATA_ONLY  METADATA_ONLY

DATA_OPTIONS 데이터  옵션 플래그입니다. 적합한 키워드 : XML_CLOBS

DIRECTORY 덤프  로그 파일에 사용할 디렉토리 객체입니다.

DUMPFILE 대상 덤프 파일 이름[expdat.dmp] 목록을 지정합니다. : DUMPFILE=scott1.dmp, scott2.dmp, dmpdir:scott3.dmp

ENCRYPTION 덤프 파일의 일부 또는 전체를 암호화합니다. 적합한 키워드 : ALL, DATA_ONLY, ENCRYPTED_COLUMNS_ONLY, METADATA_ONLY  NONE

ENCRYPTION_ALGORITHM 암호화 수행 방식을 지정합니다. 적합한 키워드 : [AES128], AES192  AES256

ENCRYPTION_MODE 암호화  생성 방법입니다. 적합한 키워드 : DUAL, PASSWORD  [TRANSPARENT]

ENCRYPTION_PASSWORD 덤프 파일 내에 암호화된 데이터를 생성하기 위한 비밀번호 키입니다.

ESTIMATE 작업 예측을 계산합니다. 적합한 키워드 : [BLOCKS]  STATISTICS

ESTIMATE_ONLY 익스포트를 수행하지 않은  작업 예측을 계산합니다.

EXCLUDE 특정 객체 유형을 제외합니다. : EXCLUDE=SCHEMA:"='HR'"

FILESIZE  덤프 파일의 크기를 바이트 단위로 지정합니다.

FLASHBACK_SCN 세션 스냅샷 재설정에 사용되는 SCN입니다.

FLASHBACK_TIME 가장 근접한 해당 SCN 값을 찾는  사용되는 시간입니다.

FULL 전체 데이터베이스를 익스포트합니다. [N]

HELP 도움말 메시지를 표시합니다. [N]

INCLUDE 특정 객체 유형을 포함합니다. : INCLUDE=TABLE_DATA

JOB_NAME 생성할 익스포트 작업의 이름입니다.

LOGFILE 로그 파일 이름[export.log] 지정합니다.

NETWORK_LINK 소스 시스템에 대한 원격 데이터베이스 링크 이름입니다.

NOLOGFILE 로그 파일을 쓰지 않습니다. [N]

PARALLEL 현재 작업에 대한 활성 작업자 수를 변경합니다.

PARFILE 매개변수 파일 이름을 지정합니다.

QUERY 테이블의 부분 집합을 익스포트하는  사용되는 술어 절입니다. : QUERY=employees:"WHERE department_id > 10"

REMAP_DATA 데이터 변환 함수를 지정합니다. : REMAP_DATA=EMP.EMPNO:REMAPPKG.EMPNO

REUSE_DUMPFILES 대상 덤프 파일이 존재하면 겹쳐 씁니다. [N]

SAMPLE 익스포트할 데이터의 백분율입니다.

SCHEMAS 익스포트할 스키마[로그인 스키마] 목록입니다.

SOURCE_EDITION 메타 데이터 추출에 사용할 버전입니다.

STATUS 작업 상태가 모니터되는 빈도()입니다. 기본값[0] 사용 가능할   상태를 표시합니다.

TABLES 익스포트할 테이블 목록을 식별합니다. : TABLES=HR.EMPLOYEES,SH.SALES:SALES_1995

TABLESPACES 익스포트할 테이블스페이스 목록을 식별합니다.

TRANSPORTABLE 전송 가능한 방식을 사용할  있는지 여부를 지정합니다. 적합한 키워드 : ALWAYS  [NEVER]

TRANSPORT_FULL_CHECK 모든 테이블의 저장 영역 세그먼트를 확인합니다. [N]

TRANSPORT_TABLESPACES 메타 데이터의 로드가 취소될 테이블스페이스 목록입니다.

VERSION 익스포트할 객체의 버전입니다. 적합한 키워드 : [COMPATIBLE], LATEST 또는 적합한 데이터베이스 버전

------------------------------------------------------------------------------

다음 명령은 대화식 모드에서 적합합니다.

참고: 약어도 허용됩니다.

ADD_FILE 덤프 파일 집합에 덤프 파일을 추가합니다.

CONTINUE_CLIENT 로깅 모드로 돌아옵니다. 유휴 상태인 경우 작업이 재시작됩니다.

EXIT_CLIENT 클라이언트 세션을 종료하고 작업은 실행되도록 둡니다.

FILESIZE 이후의 ADD_FILE 명령에 대한 기본 파일 크기(바이트)입니다.

HELP 대화형 명령을 요약합니다.

KILL_JOB 작업을 분리하고 삭제합니다.

PARALLEL 현재 작업에 대한 활성 작업자 수를 변경합니다.

REUSE_DUMPFILES 대상 덤프 파일이 존재하면 겹쳐 씁니다. [N]

START_JOB 현재 작업을 시작하거나 재개합니다. 적합한 키워드 : SKIP_CURRENT

STATUS 작업 상태가 모니터되는 빈도()입니다. 기본값 [0] 사용 가능할   상태를 표시합니다.

STOP_JOB 작업 실행을 순서대로 종료하고 클라이언트를 종료합니다. 적합한 키워드 : IMMEDIATE

 

impdp Option

키워드 설명[기본값]

-----------------------------------------------

ATTACH 기존 작업에 연결합니다. : ATTACH=job_name

CONTENT 로드할 데이터를 지정합니다. 적합한 키워드: [ALL], DATA_ONLY  METADATA_ONLY

DATA_OPTIONS 데이터  옵션 플래그입니다. 적합한 키워드: SKIP_CONSTRAINT_ERRORS

DIRECTORY 덤프, 로그  SQL 파일에 사용할 디렉토리 객체입니다.

DUMPFILE 임포트할 덤프 파일[expdat.dmp] 목록입니다. : DUMPFILE=scott1.dmp, scott2.dmp, dmpdir:scott3.dmp

ENCRYPTION_PASSWORD 덤프 파일 내의 암호화된 데이터에 액세스하기 위한 비밀번호 키입니다. 네트워크 임포트 작업에 부적합합니다.

ESTIMATE 작업 예측을 계산합니다. 적합한 키워드: [BLOCKS]  STATISTICS

EXCLUDE 특정 객체 유형을 제외합니다. : EXCLUDE=SCHEMA:"='HR'"

FLASHBACK_SCN 세션 스냅샷 재설정에 사용되는 SCN입니다.

FLASHBACK_TIME 가장 근접한 해당 SCN 값을 찾는  사용되는 시간입니다.

FULL 소스에서 모든 항목을 임포트합니다. [Y]

HELP 도움말 메시지를 표시합니다. [N]

INCLUDE 특정 객체 유형을 포함합니다. : INCLUDE=TABLE_DATA

JOB_NAME 생성할 임포트 작업의 이름입니다.

LOGFILE 로그 파일 이름[import.log]입니다.

NETWORK_LINK 소스 시스템에 대한 원격 데이터베이스 링크 이름입니다.

NOLOGFILE 로그 파일을 쓰지 않습니다. [N]

PARALLEL 현재 작업에 대한 활성 작업자 수를 변경합니다.

PARFILE 매개변수 파일을 지정합니다.

PARTITION_OPTIONS 분할 영역을 변환할 방법을 지정합니다. 적합한 키워드: DEPARTITION, MERGE  [NONE]

QUERY 테이블의 부분 집합을 임포트하는  사용되는 술어 절입니다. : QUERY=employees:"WHERE department_id > 10"

REMAP_DATA 데이터 변환 함수를 지정합니다. : REMAP_DATA=EMP.EMPNO:REMAPPKG.EMPNO

REMAP_DATAFILE 모든 DDL 문의 데이터 파일 참조를 재정의합니다.

REMAP_SCHEMA  스키마의 객체를 다른 스키마에 로드합니다.

REMAP_TABLE 테이블 이름이 다른 테이블에 재매핑됩니다. : REMAP_TABLE=EMP.EMPNO:REMAPPKG.EMPNO

REMAP_TABLESPACE 테이블스페이스 객체가 다른 테이블스페이스에 재매핑됩니다.

REUSE_DATAFILES 테이블스페이스가 존재하는 경우 초기화됩니다. [N]

SCHEMAS 임포트할 스키마 목록입니다.

SKIP_UNUSABLE_INDEXES 사용할  없는 인덱스 상태로 설정된 인덱스를 건너 뜁니다.

SOURCE_EDITION 메타 데이터 추출에 사용할 버전입니다.

SQLFILE 모든 SQL DDL 지정된 파일에 씁니다.

STATUS 작업 상태가 모니터되는 빈도()입니다.기본값 [0] 사용 가능할   상태를 표시합니다.

STREAMS_CONFIGURATION Streams 메타 데이터의 로드를 사용으로 설정합니다.

TABLE_EXISTS_ACTION 임포트된 객체가 존재하는 경우 수행할 작업입니다. 적합한 키워드: APPEND, REPLACE, [SKIP]  TRUNCATE

TABLES 임포트할 테이블 목록을 식별합니다. : TABLES=HR.EMPLOYEES,SH.SALES:SALES_1995

TABLESPACES 임포트할 테이블스페이스 목록을 식별합니다.

TARGET_EDITION 메타 데이터 로드에 사용할 버전입니다.

TRANSFORM 해당 객체에 적용할 메타 데이터 변환입니다. 적합한 키워드: OID, PCTSPACE, SEGMENT_ATTRIBUTES  STORAGE

TRANSPORTABLE 전송 가능한 데이터 이동을 선택하기 위한 옵션입니다. 적합한 키워드: ALWAYS  [NEVER]

NETWORK_LINK 모드 임포트 작업에서만 적합합니다.

TRANSPORT_DATAFILES 전송 가능 모드로 임포트할 데이터 파일 목록입니다.

TRANSPORT_FULL_CHECK 모든 테이블의 저장 영역 세그먼트를 확인합니다. [N]

TRANSPORT_TABLESPACES 메타 데이터가 로드될 테이블스페이스 목록입니다. NETWORK_LINK 모드 임포트 작업에서만 적합합니다.

VERSION 임포트할 객체의 버전입니다. 적합한 키워드: [COMPATIBLE], LATEST 또는 적합한 데이터베이스 버전

NETWORK_LINK  SQLFILE 대해서만 적합합니다.

------------------------------------------------------------------------------

다음 명령은 대화형 모드에서 적합합니다.

참고: 약어도 허용됩니다.

CONTINUE_CLIENT 로깅 모드로 돌아옵니다. 유휴 상태인 경우 작업이 재시작됩니다.

EXIT_CLIENT 클라이언트 세션을 종료하고 작업은 실행되도록 둡니다.

HELP 대화형 명령을 요약합니다.

KILL_JOB 작업을 분리하고 삭제합니다.

PARALLEL 현재 작업에 대한 활성 작업자 수를 변경합니다.

START_JOB 현재 작업을 시작하거나 재개합니다. 적합한 키워드: SKIP_CURRENT

STATUS 작업 상태가 모니터되는 빈도()입니다. 기본값 [0] 사용 가능할   상태를 표시합니다.

STOP_JOB 작업 실행을 순서대로 종료하고 클라이언트를 종료합니다. 적합한 키워드: IMMEDIATE

출처: https://taicorn.tistory.com/entry/Oracle-DB-BackupRestoration

 

728x90
반응형