ORACLE/Backup & Recovery2006. 4. 5. 00:06
반응형

 

 

 

익스포트와 임포트는 exp, imp 명령으로 수행합니다. 익스포트와 임포트를 이용한 백업 방법을 보통 논리적인 백업이라고 합니다. 논리적이라는 것은 DBMS가 데이타 모델의 분류에서 실행 데이타 모델이라는 것입니다. 즉, 오라클에서 데이터 객체를 바라보는 시점인 논리적인 관점에서의 백업 (Logical Backup) 입니다. 특이한 점은 엑스포트와 임포트가 백업/복구 말고도 다른 기능을 수행한다는 것입니다.
다른 기능은 데이타베이스의 객체와 데이타를 서로 이동시키고, 또한 테이블, 인덱등을 재정장 하기 때문에 단편화(Freagmentaion)을 감소시키기에 유용하게 사용됩니다.


익스포트 옵션

USERID/PASSWORD : 사용자명과 패스워드
BUFFER            : 데이타를 읽어오는데 필요한 버퍼크기. 0으로 설정되면 한번에 한행만 읽어온다.

데이타형이 LONG인 것은 한번에 하나의 행만 읽어와야 한다.

FILE                    : 백업 파일명
GRANTS                           : 백업할 객체의 권한 백업
INDEXS               : 인덱스를 생성할 수 있는 sql문을 파일로 만들어준다.
ROWS                 : 테이블의 데이타를 백업해준다.
CONSTRAINTS    : 테이블이 가지고 잇는 제약조건 백업
COMPRESS        : 익스텐트 영역을 하나의 영역으로 압축하여 백업
FULL                   : 데이타베이스 전체 백업
OWNER               : 백업할 객체를 가지고 잇는 사용자명 정의
TABLES              : 특정 테이블을 선택하여 백업
INCTYPE             : FULL = Y일때...
COMPLETE         : 모든 테이블의 데이타를 백업

INCREMENTAL    : 최근에 백업(COMPLETE, CUMULATIVE, INCREMENTAL)한 이후의

변경된 테이블만 백업

CUMULATIVE      : 최근에 백업(COMPLETE, CUMULATIVE)한 이후의 변경된
RECORD             : SYS.INCVID, SYS.INCEXP테이블에 INCREMENTAL 익스포트 백업내용을 기록해준다.
HELP                  : 도움말
LOG                    : 지정한 파일에 로그 내용을 기록해준다.
CONSISTENT      : 백업 진행중인 테이블의 데이타가 변경중이라면 변경전의 데이타를 백업한다.
STATISTICS        : 백업하는 동안 테이블과 인덱스에 있는 통계정보를 수집해 준다.
ESTIMATE          : 전체 데이타중 일부 데이타로 통계정보를 수집
COMPUTE          : 전체 데이타로 통계 정보를 수집한다
NONE               : 통계정보를 수집하지 않는다.
DIRECT         : 데이타버퍼 캐쉬 영역을 사용하지 않고 백업하기 때문에 매우 빠르게백업할 수 있다.

객체타입, 중첩테이블, LOB, REF, VARRAY 타입에는 사용할 수 없다. 

FEEDBACK          : 백업하는 도중에 행의 수마다 점(.)을 찍는다.

익스포트에서의 백업모드는 아래의 3가지와 같으며 다음과 같은 내용이 백업됩니다..


테이블 모드
   - 테이블 생성 스크립트
   - 테이블 데이타
   - 테이블 권한
   - 인덱스
   - 제약조건
   - 트리거
(예: exp USERID = system/manager FULL = y)

 
사용자 모드
   - 테이블 생성 스크립트
   - 테이블 데이타
   - 테이블 권한
   - 인덱스
   - 제약조건
   - 트리거
   - 클러스트
   - 스냅샷
   - 저장 프로시저
   - 시노님
   - 뷰
(예: exp USERID = scott/tiger OWNER = scott)

 

 

전체 모드
   - 테이블 생성 스크립트
   - 테이블 데이타
   - 테이블 권한
   - 인덱스
   - 제약조건
   - 트리거
   - 클러스트
   - 스냅샷
   - 저장 프로시저
   - 시노님
   - 뷰
   - 프로파일
   - 롤
   - 롤백 세그먼트
   - 감사
   - 테이블스페이스 데이타
(예: exp USERID = scott/tiger TABLES = (scott.emp, yasi.test) )
  
  
임포트 옵션

USERID               : 접속할 오라클의 사용자명/패스워드 
BUFFER              : 엑스포트와 같다
FILE                    : 엑스포트와 같다
SHOW                 : Y값으로 설정되면 실제 복구 작업은 실행되지 않고 복구해야할 내역만 화면에 출력
IGONRE              : 이미 존재하는 테이블에 대해 복구작업을 실행하면 'Object already exists'라는

에러가 발생하는데 이 에러를 무시하고 계속 복구작업 수행

INDEXES             : 인덱스를 별도로 생성할 것인지 표시
ROWS                 : 테이블의 데이타를 복구할 것인지 표시
FULL                   : 백업된 모든 데이타를 복구
FROMUSER         : 여기에 정의된 사용자가 가지고 있는 모든 객체를 복구
TOUSER                           : 여기에 정의된 사용자가 FROMUSER 리스트에 정의되어 있는 사용자의

모든 객체를 복구

TABLES              : 복구할 테이블을 지정하여 복구 TABLES = (emp, dept)
RECORDLENGTH : 한번에 임포트할 수 있는 파일의 레코드 길이를 정의
INCTYPE             : 복구할 파일의 COMPLETE, CUMULATIVE, INCREMENTAL 유형을 정의
COMMIT                           : Y를 설정하면 각 배열을 입력한후 commit문을 실행
HELP                  : 도움말
PARFIL                : 임포트 파라미터를 외부 파일에 정의하여 사용하는 경우 파일명 표시

imp USERID = scott/tiger PARFILE = test.par

LOG                    : 모든 에러 메세지를 기록하는 파일명을 표시
DESTORY           : 데이타베이스에 이미 존재하는 객체를 삭제후 재생성해주며

FROMUSER, TOUSER 옵션과 같이 사용한다.

INDEXFILE           : 엑스포트 파일에 있는 모든 객체를 재생성 할 수 있는 CREATE문과

ALTER문을 외부 파일로 생성해 줍니다.

 

 

 

LAB: Export & Import 


1. SQL> host exp userid = scott/tiger file = $ORACLE_HOME/oradata/scott.dmp owner = scott

2. SQL> drop user scott cascade;
3. SQL> create user scott identified by tiger
     2  default tablespace users;
4. SQL> grant connect, resource to scott;
5. SQL> host imp userid=scott/tiger file=$ORACLE_HOME/oradata/scott.dmp full=y
6. SQL> connect scott/tiger
7. SQL> select * from dept;


 

LAB: EXPORT 와 IMPORT 만을 가능하게 할 유저 생성 및 설정

 

1. SQL> create tablespace expimp_ts

      2  datafile ‘x:\oracle\oradata\simondb\expimp_ts01.dbf’ size 100m

 

2. SQL> create user expimp

      2  identified by manager

      3  default tablespace expimp_ts

      4  quota unlimited on expimp_ts

      5  temporary tablespace temp

      6  quota unlimited on temp

 

3. SQL> grant connect, exp_full_database, imp_full_database to expimp

 

 

 

LAB: 해당 객체의 생성 DDL만을 보기

c:\scripts> exp userid=expimp/manager tables=scott.emp

c:\scripts> imp userid=expimp/manager full=y indexfile=emp.sql

c:\scripts> type emp.sql

 

 

샘플: 테이블 내의 특정 부분만을 exp.

 

### MS ONLY

HOST> exp userid=expimp/manager tables=simon.employees query=”””where object_id < 20”””

 

### UNIX ONLY

HOST> exp userid=expimp/manager tables=simon.employees query=\”where object_id \< 20\”

 

-         이와 같은 경우 exp.par 라는

반응형
Posted by [PineTree]