Example Export Sessions
- Example Export Session in Full Database Mode
- Example Export Session in User Mode
- Example Export Session in Table Mode
- Example Export Session Using Partition-Level Export
Example Export Session in Full Database Mode
DBA Role 혹은 EXP_FULL_DATABASE 롤을 가진 사용자만이 Full Database Mode를 사용할 수 있습니다. 이 예제에서 익스포트되어 생성된 파일인 dba.dmp 는 모든 권한과 모든 데이터가 포함됩니다.
Parameter File Method
> exp SYSTEM/password PARFILE=params.dat
params.dat 파일의 내용은 다음과 같습니다.
FILE=dba.dmp
GRANTS=y
FULL=y
ROWS=y
Command Line Method
> exp SYSTEM/password FULL=y FILE=dba.dmp GRANTS=y ROWS=y
Example Export Session in User Mode
User Mode 는 하나 혹은 그 이상의 데이터베이스 사용자를 백업하는데 사용할 수 있습니다. 예를들어 DBA는 삭제된 사용자의 테이블을 백업해 놓길 원할 수 있습니다. User Mode는 또한 개별 사용자의 데이터를 백업하거나 오브젝트들을 다른 사람에게 옮길 수 있습니다.
Parameter File Method
> exp scott/tiger PARFILE=params.dat
params.dat 파일의 내용은 다음과 같습니다.
FILE=scott.dmp
OWNER=scott
GRANTS=y
ROWS=y
COMPRESS=y
Command-Line Method
> exp scott/tiger FILE=scott.dmp OWNER=scott GRANTS=y ROWS=Y COMPRESS=y
Example Export Sessions in Table Mode
테이블 모드에서 테이블의 데이터를 익스포트하거나 또는 테이블 정의를 익스포트 할 수 있습니다. (행이 익스포트 되지 않을경우 CREATE TABLE 구문이 익스포트 파일에 저장됩니다. INDEX, GRANTS가 정의되어 있으면 이들도 함께 저장됩니다.)
EXP_FULL_DATABASE 롤을 가진 사용자는 TABLES=schemaname.tablename 파라메터를 이용하여 어떠한 사용자의 테이블도 익스포트 할 수 있습니다.
schemaname이 정의됮 않으면 익스포트는 기본적으로 현 사용자의 스키마명으으로 된 오브젝트를 익스포트 합니다.
> exp SYSTEM/password TABLES=(a, scott.b, c, mary.d)
EXP_FULL_DATABASE 롤을 가진 사용자는 다른 사용자의 오브젝트에 의존적인 오브젝트도 같이 익스포트 합니다. 권한이 없는 사용자는 오직 자신이 가지고 있는 의존적 테이블만 익스포트 할 수 있습니다.
테이블 모드에서의 익스포트는 클러스터 정의는 익스포트 하지 않습니다. 따라서 데이타는 비클러스터 테이블로 익스포트 됩니다. 따라서 테이블을 언클러스터 테이블로 바꿀때 테이블 모드를 사용할 수 있습니다.
Example 1 : DBA Exporting Tables for Two Users
이 예제에서, DBA는 두 사용자의 테이블을 익스포트 합니다.
Parameter File Method
> exp SYSTEM/password PARFILE=params.dat
params.dat 파일은 다음과 같습니다.
FILE=expdat.dmp
TABLES=(scott.emp,blake.dept)
GRANTS=y
INDEXES=y
Command-Line Method
> exp SYSTEM/password FILE=expdat.dmp TABLES=(scott.emp,blake.dept) GRANTS=y INDEXES=y
Example 2 : User Exports Tables That He Owns
blake 라는 사용자가 자신이 가지고 있는 테이블을 선택적으로 익스포트 하는 방법입니다.
Parameter File Method
> exp blake/paper PARFILE=params.dat
params.dat 파일의 내용은 다음과 같습니다.
FILE=blake.dmp
TABLES=(dept,manager)
ROWS=y
COMPRESS=y
Command-Line Method
> exp blake/paper FILE=blake.dmp TABLES=(dept, manager) ROWS=y COMPRESS=y
Example 3 : Using Patter Matching to Export Various Tables
이번 예제에서는 패턴을 이용하여 scott와 blake 의 다양한 테이블들을 익스포트 합니다.
Parameter File Method
> exp SYSTEM/password PARFILE=params.dat
params.dat 파일에는 다음과 같은 내용을 포함하고 있습니다.
FILE=misc.dmp
TABLE=(scott.%P%,blake.%, scott.%S%)
Command-Line Method
> exp SYSTEM/password FILE=misc.dmp TABLES=(scott.%P%,blake.%, scott.%S%)
Example Export Session Using Partition-Level Export
파티션-레벨모드에서 특정 파티션이나 서브 파티션을 익스포트 할 수 있습니다.
Example 1 : Exporting a Table Without Specifying a Partition
emp 테이블이 employee name으로 파티션 되어 있는 테이블이라고 가정합니다. 두 파티션이 있는데 m 과 z로 나뉘어져 있습니다. 예제에서 보이는 것처럼 특정한 파티션을 지정하지 않는다면 모든 파티션이 익스포트 됩니다.
Parameter File Method
> exp scott/tiger PARFILE=params.dat
params.dat 파일은 다음을 포함합니다.
TABLES=(emp)
ROWS=y
Command-Line Method
> exp scott/tiger TABLES=emp ROWS=y
Example 2 : Exporting a Table with a Specified Partition
예제에서 보이는 것처럼 테이블의 한 파티션만 익스포트 하기 위해 익스포트할 파티션을 정합니다.
Parameter File Method
> exp scott/tiger PARFILE=params.dat
params.dat 파일은 다음을 포함합니다.
TABLES=(emp:m)
ROWS=y
Command-Line Method
> exp scott/tigher TABLES=emp:m ROWS=y
Example 3 : Exporting a Composite Partition
emp 테이블이 m과 z로 파티션이 나뉘어져 있고 m은 서브파티션 sp1과 sp2로 나뉘어 있습니다. z파티션은 서브파티션 sp3 그리고 sp4로 나뉘어져 있다고 가정합니다. 다음 예제는 파티션 m과 m의 모든 파티션을 익스포트하고 z파티션의 sp4 파티션만 익스포트 하는 방법입니다.
Parameter File Method
> exp scott/tiger PARFILE=params.dat
params.dat 파일은 다음의 내용을 포함합니다.
TABLES=(emp:m,emp:sp4)
ROWS=y
Command-Line Method
> exp scott/tiger TABLES=(emp:m, emp:sp4) ROWS=y
Warning, Error, and Completion Messages
Log File
로그파일에 모든 익스포트 메세지를 담을 수 있습니다. LOG 파라메터를 사용하지 않고 운영체제가 허용하나면 익스포트의 출력 메세지를 파일로 리다이렉트 할 수도 있습니다. 익스포트 유틸리티는 성공적인 언로드 내용과 발생한 에러에 대한 자세한 정보를 로그에 기록합니다.
Warning Messages
복구가 가능한 에러가 발생시 익스포트는 종료되지 않습니다. 예를들어 테이블이 익스포팅될때 에러가 발생하면 이 에러 메세지를 출력하고 다음 테이블로 넘어갑니다. 그리고 계속해서 익스포트를 수행합니다. 이러한 복구 가능한 에러를 경고(Warning)라 합니다.
또한 잘못된 오브젝트에 대해서도 경고를 보여줍니다.
예를들어 테이블모드에서 존재하지 않는 테이블 이름을 파라메터에서 정의했을 경우 익스포트 유틸리티는 다른 모든 테이블들을 익스포트 합니다. 그리고나서 경고를 보여주며 성공적으로 종료합니다.
Nonrecoverable Error Messages
몇몇 에러는 복구가 불가능하며 익스포트 세션이 그 즉시 종료됩니다. 이러한 문제는 종종 내부적인 문제,메모리같은 자원 문제, 로 인해 발생합니다. 예를들어 catexp.sql 스크립트를 수행하지 않으면 익스포트는 다음과 같은 에러 메세지를 보여주며 종료됩니다.
EXP-00024: Export views not installed, please notify your DBA
Completion Messages
익스포트가 에러없이 종료되면 익스포트는 다음과 같은 메세지를 보여줍니다.
Export terminated successfully without warnings
하나 혹은 그 이상의 복구가능 에러가 발생하더라도 익스포트는 수행을 완료하고 다음과 같은 메세지를 출력합니다.
Export terminated successfully with warnings
복구불가능 에러가 발생하면 익스포트는 다음과 같은 메세지를 출력하고 즉시 종료됩니다.
Export terminated unsuccessfully
Exit Codes for Inspection and Display
익스포트는 완료여부에 따라 즉시 익스포트에 대한 결과를 제공합니다. 플래폼에 따라 로그파일에 종료코드를 기록합니다.
EX_SUCC (In Unix, It is '0 (Zero)')
Export terminated successfully without Warnings
EX_OKWARN (In Unix, It is '0 (Zero)')
Export terminated successfully with warnings
EX_FAIL (In Unix, it is '1')
Export terminated unsuccessfullly
Conventional Path Export Versus Direct Path Export
익스포트는 데이타를 추출하는 두가지 방법을 제공합니다.
- Conventional path Export
- Direct path Export
컨벤셔널 패스(Conventional path)는 SQL select 문을 사용하여 테이블에서 데이터를 추출합니다. 데이타는 디스크에서 읽혀 버퍼 캐쉬로 올려지고 Evaluating buffer로 옮겨집니다. 그후 데이타는 익스포트 클라이언트에 의해 익스포트 파일에 기록되게 됩니다.
다이렉트 패스(Direct path)는 컨벤셔널 패스보다 굉장이 빠른 속도를 제공합니다. 이는 데이타가 디스크에서 읽혀 버퍼 캐시로 옮겨지고 거기서 직접(directly) 익스포트 클라이언트로 보내지기 때문입니다. 데이타는 이미 익스포트가 예상할 수 있는 형식으로 되어 있으므로 불필요한 데이터 컨버전이 일어나지 않습니다. 익스포트 유틸리티로 전송된 데이타는 그즉시 익스포트 파일에 기록됩니다.
Invoking a Direct Path Export
다이렉트 패스 익스포트를 사용하려면 명령행 방법이나 파라메터 파일을 이용하면 됩니다. 인터렉티브 방식에서는 다엙트 패스를 사용할 수 없습니다.
다이렉트 패스를 사용하기 위해 DIRECT=y 파라메터를 사용합니다. 기본값은 n 입니다.
추가로 명심해야 할 것은 BUFFER 파라메터는 컨벤셔널 패스에서만 사용됩니다. 다이렉트 패스에서는 RECORDLENGTH 파라메터를 사용합니다.
익스포트 버전 8.1.5 이전에선 LOB 와 오브젝트를 가지고 있는 테이블들은 다이렉트 패스를 사용해 익스포트 할 수 없었습니다. 만약 이들에게 다이렉트 패스를 시도하면 어떤 행도 익스포트 되지 않습니다. 하지만 이제는 이 방식이 바뀌어 이들에 대해 다이렉트 패스를 사용하면 스스로 컨벤셔널 패스로 익스포트를 받게 됩니다.
Performance Issue for Direct Path Exports
다이렉트 패스를 사용할때 RECORDLENGTH 파라메터의 값을 올려줌으로 해서 성능상의 향상을 기대할 수 있습니다. 성능향상은 다음의 요소에 의해 결정됩니다.
- DB_BLOCK_SIZE
- 테이블에 있는 컬럼의 타입
- I/O Layout
다음 값들은 일반적으로 RECORDLENGTH 에 요구되는 값 입니다.
- Multiples of the file system I/O block size
- Multiples of DB_BLOCK_SIZE
Fin.
REF) Oracle Documents. server.920/a96652 "EXPORT"
댓글 없음:
댓글 쓰기