Before Using Export
Export 유틸리티를 사용하기 전에 다음을 명심하십시요.
- catexp.sql 혹은 catalog.sql 스크립트를 수행하십시요.
- export 된 파일이 저장될 공간이 충분히 확보되어 있는지 확인하십시요.
- 적당한 권한이 있는지 확인하십시요.
Running catexp.sql or catalog.sql
Export 를 사용하기 위해 catexp.sql 혹은 catalog.sql 을 데이터베이스 생성후 수행해 주어야 합니다.
catexp.sql 혹은 catalog.sql 은 데이터베이스에서 한차레만 수행해 주면 됩니다. export 를 수행할때마다 이 스크립트를 수행할 필요는 없습니다.
Ensuring Sufficient Disk Space
Export를 수행하기전, 충분한 공간이 확보되어 있는지 확인합니다. 공간이 부족하면 쓰기 실패 에러와 함께 Export 유틸리티는 작동을 멈추게 됩니다.
최대 공간을 계산하기 위해 테이블 크기를 사용할 수 있습니다. USER_SEGMENT 뷰를 이용하여 각 테이블의 크기를 확인할 수 있습니다. 다음 쿼리를 이용하면 테이블이 차지하는 총 용량을 확인할 수 있습니다.
SQL>SELECT SUM(BYTES) FROM USER_SEGMENTS WHERE SEGMENT_TYPE = 'TABLE';
쿼리의 결과는 LOB 혹은 VARRAY 열 혹은 파티션 테이블에 대한 디스크 공간은 포함하지 않습니다.
Invoking Export
다음 방법중 하나를 통해 특정 파라메터를 정의하고 Export 를 수행할 수 있습니다.
- Command-Line entries
- Interactive Export prompts
- Parameter files
Export를 수행하기 위해 위 방법중 하나를 수행하기 전에, 사용가능한 파라메터에 대한 설명을 확인하십시요.
Command-Line Entries
다음 형식으로 명령행에 올바른 파라메터와 값을 정할 수 있습니다.
exp username/password PARAMETER=value
또는
exp username/password PARAMETER=(value1,value2,...,valueN)
Interactive Export Prompts
Export 유틸리티 파라메터 정의를 Export 유틸리티의 프롬프트를 통해 하고자 한다면 다음 방법으로 인터렉티브 모드로 수행할 수 있습니다.
exp username/password
Parameter Files
모든 파라메터에 대한 정의값을 파라메터 파일로 만들어 사용할 수 있습니다. 파라메터를 파일로 관리하면 재사용하거나 파라메터 값을 수정하는데 편리함을 제공합니다. 각각의 데이터베이스에 각각의 다른 파라메터를 사용한다면 여러개의 파라메터 파일을 만들어 사용할 수 있습니다.
어떤 플렛폼에서든지 지원하는 텍스트 편집기로 파라메터 파일을 만들 수 있습니다. 명령행에 PARFILE=filename 옵션을 이용하여 Export 를 수행할 수 있습니다.
exp PARFILE=filename
exp username/password PARFILE=filename
파라메터 파일에서 파라메터를 정의하는 방법은 다음과 같은 형식입니다.
PARAMETER1=value
PARAMETER2=value
PARAMETER3=value
파라메터 파일의 내용에 코맨트를 추가하고 싶다면 # 기호를 사용합니다.
파라메터 파일에 있는 파라메터일 지라도 명령행에서 오버라이드 하여 사용할 수 있습니다. exparam.dat 라는 파라메터 파일이 있다고 가정해 봅시다. 파라메터 파일의 내용에는 INDEXES=y 가 포함되어 있습니다. 그리고 다음 명령을 수행합니다.
exp username/password PARFILE=exparam.dat INDEXES=n
이 경우에 INDEXES=n 옵션이 PARFILE 옵션 뒤에 오게 되므로 INDEXES=y 를 오버라이드 하여 INDEXES=n으로 Export 를 수행하게 됩니다.
Invoking Export As SYSDBA
SYSDBA 는 특별한 기능을 가지고 있습니다. 일반적인 사용자와는 다른 행동을 하기 때문에 일반적으로 SYSDBA로 Export 는 하지 않습니다.
SYSDBA로 Export 를 수행하기 위해 다음 명령을 수행합니다.
exp \'username/password AS SYSDBA\'
선택사항으로 인스턴스명을 지정할 수 있습니다.
exp \'username/password@instance AS SYSDBA\'
Exports Modes
Export 유틸리티는 다음 네가지의 모드를 제공합니다.
- Full
- User(Owner)
- Table
- Tablespace
모든 사용자는 테이블 모드(Table Mode)와 사용자 모드(User Mode)에서 Export 를 수행할 수 있습니다. EXP_FULL_DATABASE 롤을 가진 사용자는 모든 모드에서 Export를 수행할 수 있습니다. 각 모드에 따라 Export 되는 오브젝트들이 다릅니다.
파라메터를 붙여주면 네가지 모드중 하나의 모드를 사용할 수 있습니다. (full, owner, tables, tablespaces) 앞의 세 모드는 컨벤셔널 패스(conventional path)와 다이렉트 패스(Direct path)를 사용할 수 있습니다. 컨벤셔널 패스와 다이렉트 패스의 차이는 추후 포스팅 하도록 하겠습니다.
Object exported and imported in each mode (Open
1 Nonprivileged users can export and import only indexes they own on tables they own. They cannot export indexes they own that are on tables owned by other users, nor can they export indexes owned by other users on their own tables. Privileged users can export and import indexes on the specified users' tables, even if the indexes are owned by other users. Indexes owned by the specified user on other users' tables are not included, unless those other users are included in the list of users to export.
2 Nonprivileged and privileged users can export and import all triggers owned by the user, even if they are on tables owned by other users.
3 A full export does not export triggers owned by schema SYS. You must manually re-create SYS triggers either before or after the full import. Oracle Corporation recommends that you re-create them after the import in case they define actions that would impede progress of the import.
Table Level and Partition Level
다음의 방법을 이용하여 테이블, 파티션, 서브파티션을 Export 할 수 있습니다.
- Table_Level Export : 특정 테이블의 모든 데이터를 익스포트 합니다.
- Partition-Level Export : 특정 파티션이나 서브 파티션의 자료만 가져 옵니다.
모든 모드에서 파티션, 혹은 서브파티션의 포맷대로 선택적으로 데이터를 Export 할 수 있습니다.
Table-Level Export
테이블 레벨 익스포트 (Table-Level Export)에서는 모든 테이블(파티션 혹은 파티션 되지 않은 테이블 포함)과 인덱스, 그리고 해당 테이블에 종속적인 여타 오브젝트들을 익스포트 할 수 있습니다. 파티션 테이블일 경우 테이블의 파티션과 서브 파티션 모두 익스포트 할 수 있습니다. 이는 다이렉트 패스와 컨벤셔널 패스 둘다 사용이 가능합니다. 테이블 레벨의 익스포트는 모든 모드에서 사용이 가능합니다.
Partion-Level Export
파티션 레벨 익스포트에서는 특정 파티션 혹은 서브 파티션을 선택적으로 익스포트 할 수 있습니다. 파티션 레벨 익스포트는 테이블 모드에서만 가능합니다.
Export Parameters
다음 다이어그램들은 파라메터 파일이나 커맨드 라인에서 정의할 수 있는 파라메터 형식입니다.
Export_start
ExpModes
ExpTSOpts (Tablespaces_spec)
ExpOpts
ExpOpts_continued
ExpFileOpts
BUFFER
기본값은 운영체제 값을 따릅니다.
행을 페치(fetch)하기 위한 버퍼 사이즈를 바이트 단위로 정의할 수 있습니다. 결론적으로 이 파라메터의 값은 익스포트에 의해 페치되는 행의 최대값이 됩니다. 다음 공식을 이용하여 버퍼의 크기를 계산할 수 있습니다.
buffer_size = rows_in_array * maximum_row_size
이 값을 0으로 설정하게되면, 익스포트 유틸리티는 한번에 하나의 행만 가져옵니다.
LONG, LOB, BFILE, REF, ROWID, LOGICAL ROWID, 또는 DATE 형식의 컬럼을 가진 테이블은 한번에 하나의 행만 페치됩니다.
Example : Calculating Buffer Size
다음 테이블이 만들어 졌습니다.
CREATE TABLE sample (name varchar(30), weight number);
name 컬럼의 최대값은 30바이트이고 2바이트가 인디케이터(Indicator)로 추가됩니다. weight 컬럼은 같은 방식으로 22+2 바이트가 됩니다. 그러므로 1행의 최대 값은 56 (30+2+22+2) 바이트가 됩니다.
100개의 행에 대해 수행하기 위해서는 버퍼 크기는 5600바이트가 될 것 입니다.
COMPRESS
기본값은 y 입니다.
y 로 값을 설정하면 플래그 테이블(flag table)을 병합하여 하나의 익스텐트로 익스포트를 합니다. 익스텐트 사이즈가 크다면 (예를들어 PCTINCREASE에 의해 늘어난 경우) 실 데이터를 가지고 있는 크기보다 더 많은 공간을 할당하게 됩니다.
compress=n 으로 설정을 하게될 경우 초기 익스텐트 사이즈와 다음 익스텐트 사이즈의 값을 현 스토리지의 파라메터 값을 가지고 갑니다. 파라메터 값은 CREATE TABLE 혹은 ALTER TABLE 에 정의한 값이나 데이터베이스 시스템에 의해 변경된 값을 참조합니다. 예를들면 NEXT 익스텐트 크기는 PCTINCREASE 파라메터가 0이 아닐경우 변경되어 집니다.
CONSISTENT
기본값은 n 입니다.
익스포트 유틸리티가 SET TRANSACTION READ ONLY 구문을 활성화 할지 안할지를 정합니다. 데이터가 한 시점에서 정합성을 유지하고 exp 명령이 수행되는 동안 데이터가 변경되지 않을 경우에 사용합니다. 다른 어플리케이션들이 Export 가 수행된 후 데이터를 변경해야 할 일이 있을거라 예상된다면 CONSISTENT=y 로 정할 수 있습니다.
CONSISTENT=n 을 사용하면 각각의 테이블은 하나의 트렌젝션에서 익스포트가 수행됩니다. 하지만, 테이블이 Nested Table을 가지고 있으면 Outer table 그리고 각 Inner table 들은 각각의 트랜젝션에서 수행되게 됩니다. 테이블이 파티션 되어 있으면 역시 각각의 파티션은 각각의 트랜젝션으로 처리하게 됩니다.
그러므로 Nested table 과 Partitioned table 이 다른 어플리케이션에서 업데이트를 수행하면 익스포트 된 데이터는 정합성을 유지하지 못하게 됩니다. 이러한 문제를 최소화 하기 위해 데이터의 변경이 없을때 익스포트를 수행하도록 하십시요.
Time Sequence 1
사용자 1이 테이블 P1을 Export 수행
Time Sequence 2
사용자 2가 테이블 P2의 데이터를 업데이트
사용자 2가 테이블 P1의 데이터를 업데이트
트렌젝션 Commit
Time Sequence 3
테이블 P1 익스포트 종료
Time Sequence 4
테이블 P2 익스포트 수행
CONSISTENT=y 를 설정할 경우 사용자2가 수행한 업데이트는 익스포트 파일에 기록되지 않습니다.
이 값을 n으로 설정했다면 테이블 P1의 업데이트는 익스포트 파일에 기록되지 않습니다. 하지만 테이블 P2의 없데이트는 익스포트 파일에 기록되는데 이는 테이블 P2가 익스포트 되기 전에 이미 트렌젝션이 완료되었기 때문입니다. 결과적으로 사용자2의 트랜젝션은 정합성을 유지하지 못하고 익스포트 파일에 기록됩니다.
CONSISTENT=y 그리고 다량의 업데이트가 일어나면 롤백 세그먼트 매우 커질 것 입니다. 게다가 각 테이블의 익스포트는 매우 느려질 수 있는데 이는 롤백 세그먼트는 아직 Commit 되지 않은 트랜젝션도 읽어 드려야 하기 때문입니다.
CONSISTENT=y 로 설정할땐 다음을 명심하십시요.
- CONSISTENT=y 는 SYS 혹은 AS SYSDBA 로 접속해 있을때는 지원하지 않습니다.
- 특정 미디어에 익스포트를 받기 위해서는 SYS 스키마를 이용해야 할 수도 있습니다. 이러한 상황에서는 CONSISTENT=y 명령은 무시되어 집니다. CONSISTENT=y 로 익스포트를 수행하는 중에는 메타데이터를 절대 변경하지 말기를 권고합니다.
- "Snapshot too old" 에러는 롤백 세그먼트가 오래되고 Commit 된 트랜젝션이 사용하던 공간이 새로운 트랜젝션에 의해 사용될 경우 발생합니다. 롤백 세그먼트를 재사용 하는 것은 최소한의 공간을 사용하기 위함이지만 읽기 일관성을 유지할 수 있는 시간을 제한하는 일도 합니다.
Commit 된 트랜젝션이 새 트랜젝션에 의해 덮어 쓰여지고 기존 정보가 읽기 일관성을 위해 필요하게 되면 "Snapshot too old" 메세지를 보여줍니다.
이 에러를 방지하기 위해 읽기 일관성 유지 Export 에 의해 소요되는 시간을 최소화 해야 합니다. (이는 한번에 익스포트 하는 오브젝트의 수를 제한하거나 혹은 데이터베이스의 트랜젝션 비율을 감소시키는 방식으로 수행하도록 합니다.) 또한 가능한한 롤백 세그먼트의 크기를 크게 정합니다.
CONSTRAINT
기본값은 y 입니다.
Export 유틸리티를 수행시 테이블의 제약조건을 같이 익스포트 할지 여부를 결정합니다.
DIRECT
기본값은 n 입니다.
다이렉트 패스를 사용할지 컨벤셔널 패스를 사용할지 결정합니다.
DIRECT=y 로 설정할 경우 Export 유틸리티는 데이터를 SQL Command-Processing Layer를 패스하고 바로 데이터를 읽어드립니다. 이 방법은 컨벤셔널 패스 방식보다 굉장히 빠른 속도를 보여줍니다.
FEEDBACK
기본값은 0 (Zero) 입니다.
n개의 행을 익스포트 할 때마다 진행 상황을 출력합니다. 예를들어 FEEDBACK=10 으로 설정했을 경우 10개의 행이 익스포트 될 때마다 화면에 진행상황을 표시합니다. 테이블 단위로 설정할 수 없습니다. (오직 행 단위 입니다.)
FILE
기본값은 expdat.dmp 입니다.
익스포트 파일의 이름을 정합니다. 기본 확장자는 dmp 이지만 자유롭게 확장자를 정할 수 있습니다. 익스포트 유틸리티는 여러개의 파일로 익스포트 하는 것을 지원하기에 여러개의 파일 이름을 정해줄 수 있습니다. 다음을 참고하세요.
exp scott/tiger FILE = dat1.dmp, dat2.dmp, dat3,dmp FILESIZE=2048
FILESIZE에 정의된 크기만큼 파일이 가득 찰 경우 현재 파일에 쓰는 것을 중단하고 다음 정의된 파일 이름명으로 익스포트를 재개하며, 역시 이 파일이 가득 찰 동안 익스포트를 수행합니다. 다음 익스포트 파일명을 지정해 주지 않았을 경우 익스포트 유틸리티는 다음 파일 명을 입력해 주길 바라는 프롬프트를 보여줄 것 입니다.
FILESIZE
기본값은 밑의 표에 정의된 값을 이용합니다.
기본값 보기
FILESIZE 값은 KB단위로 재설정 할 수 있습니다. 즉 FILESIZE=2K 는 FILESIZE=2048 과 같은 의미입니다. 비슷하게 MB, GB 역시 사용할 수 있습니다.
FLASHBACK_SCN
기본으로 주어지는 값은 없습니다.
익스포트가 플레시백에 사용할 System Change Number(SCN)을 정의합니다.
FLASHBACK_TIME
기본으로 주어지는 값은 없습니다.
시간을 결정합니다. 익스포트는 지정된 시간과 가장 가까운 SCN번호를 찾아냅니다. 이 SCN 번호는 플래시백을 수행하는데 사용합니다.
FULL
기본값은 n 입니다.
익스포트 유틸리티가 Full 모드로 수행할지 여부를 결정합니다. (풀 모드는 모든 데이타베이스를 익스포트 합니다.) FULL=y 로 지정하면 풀 모드로 전환됩니다. EXP_FULL_DATABASE 롤이 요구됩니다.
GRANTS
기본값은 y 입니다.
익스포트 할시 오브젝트에 관한 권한을 같이 익스포트 할지 여부를 결정합니다.
HELP
기본으로 주어지는 값은 없습니다.
파라메터에 관한 도움말을 보여줍니다. exp help=y 를 커맨드 라인에 입력하십시요.
INDEX
기본값은 y 입니다.
인덱스를 익스포트 할지의 여부를 결정합니다.
LOG
기본으로 주어지는 값은 없습니다.
정보와 에러메세지를 받을 파일명을 지정합니다. 다음 예제를 참고합니다.
exp SYSTEM/password LOG=export.log
이 값을 설저하면 메세지들이 로그파일에 기록됨과 동시에 화면에 출력해 줍니다.
OBJECT_CONSISTENT
기본값은 n입니다.
익스포트 유틸리티가 SET TRANSACTION READ ONLY 구문을 이용할지 안할지를 정합니다. 이 값이 y로 되어 있을 경우 각각의 오브젝트들은 자신들의 Read-Only 트랜젝션을 포함하여 익스포트 합니다. 위의 CONSISTENT 파라메터를 참조하십시요.
OWNER
기본으로 주어지는 값은 없습니다.
사용자 모드(user-mode)로 익스포트가 수행되게 정의하며 이 옵션을 주게되면 익스포트할 사용자의 리스트가 출력됩니다. 사용자가 DBA일 경우 다수의 사용자 리스트가 출력될 것 입니다.
PARFILE
기본으로 주어지는 값은 없습니다.
익스포트에 사용될 파라메터가 나열된 파라메터 파일을 정의합니다.
QUERY
기본으로 주어지는 값은 없습니다.
테이블 모드로 익스포트를 수행시 SQL쿼리를 이용하여 원하는 행만 익스포트 할 수 있습니다. 예를들어 사용자 scott가 직책이 SALESMAN이고 연봉이 1600 이하인 임직원만 익스포트 받기를 원한다면 다음과 같이 익스포트를 수행할 수 있을 것 입니다.
exp scott/tiger TABLES=emp QUERY=\"WHERE job=\'SALESMAN\' and sal \<1600\"
이 파라메터가 요구하는 값은 where 절 이하입니다. 요구되는 테이블은 TABLES 파라메터에서 정의되어 집니다. 이 쿼리를 수행하면 다음과 같은 SQL select 쿼리가 수행됩니다.
SELECT * FROM emp WHERE job='SALESMAN' AND sal<1600
QUERY 파라메터에 나오는 값은 TABLES에 정의된 모든 테이블에 적용됩니다.
exp scott/tiger TABLES=emp,bonus QUERY=\"WHERE job=\'SALESMAN\' and sal \<1600\"
위 쿼리를 수행하면 다음과 같은 SQL이 순차적으로 수행됩니다.
SELECT * FROM emp WHERE job='SALESMAN' AND sal<1600
SELECT * FROM bonus WHERE job='SALESMAN' AND sal<1600
만약 QUERY 파라메터에서 준 값의 컬럼이 존재하지 않으면 에러 메세지를 보여주며 어떠한 행도 익스포트 되지 않습니다.
Restrictions
- QUERY 파라메터는 full, user, 혹은 tablespace 모드에서 정의할 수 없습니다.
- QUERY 파라메터는 정의된 테이블에 모두 적용될 수 있어야 합니다.
- QUERY 파라메터는 다이렉트 패스 익스포트에서 사용할 수 없습니다. (export=y)
- QUERY 파라메터는 Inner nested table 에 사용할 수 없습니다.
RECORDLENGTH
기본값은 운영체제의 값에 의존합니다.
바이트로 파일 레코드의 길이를 정의합니다. RECORDLENGTH 파라메터는 익스포트 된 데이터 파일을 다른 기본값을 가지고 있는 운영체제 시스템에 전송할때 사용합니다.
이 값은 시스템의 버퍼 크기보다 더 크게 설정할 수 있습니다.( 최대값은 64KB입니다.) RECORDLENGTH 파라메터를 변경하면 단지 디스크에 기록하기 전 데이터 크기의 계산 결과에만 영향을 미칩니다. 운영체제의 블럭 사이즈에는 영향을 미치지 않습니다.
RESUMABLE
기본값은 n 입니다.
RESUMABLE 파라메터는 Resumable space 를 할당할지 안할지를 결정합니다. 기본값은 disable 이기 때문에 이 파라메터와 연관된 파라메터인 RESUMABLE_NAME, RESUMABLE_TIMEOUT 파라메터를 사용하기 위해서는 이 값은 반드시 y 로 설정해야 합니다.
(Resumable space 에 관한 자세한 정보는 Oracle 9i Database Conceps, Oracle 9i Database Administrtor's Guide 를 참고하십시요.)
RESUMABLE_NAME
기본값은 'User USERNAME (USERID), Session SESSIONID, Instance INSTANCEID' 입니다.
이 파라메터의 값은 이 구문이 재시작 할 수 있음을 나타냅니다. 이 값은 사용자가 직접 지정하는 것 이며 USER_RESUMABLE 혹은 DBA_RESUMABLE 뷰를 통해 멈춰있는 재시작 가능한 구문이 어떤 것인지 파악하는데 도움을 줄 수 있습니다.
이 파라메터는 RESUMABLE 파라메터가 n 값이면 무시하게 됩니다.
RESUMABLE_TIMEOUT
기본값은 7200 초(2시간) 입니다.
이 값은 반드시 수정되어야 할 에러의 시간 주기를 정의합니다. 이 시간내에 에러가 수정되지 않으면 익스포트 명령은 취소(ABORT) 됩니다.
이 파라메터는 RESUMABLE 파라메터가 n일 경우 무시됩니다.
ROWS
기본값은 y 입니다.
행을 익스포트 할지 말지의 여부를 결정합니다.
TABLES
기본값은 n 입니다.
익스포트 유틸리티를 테이블 모드로 수행합니다. 테이블 이름을 지정했을 경우 다음을 정의할 수 있습니다.
- schemaname은 익스포트 될 테이블이나 파티션의 사용자 스키마를 정합니다. ORDSYS, MDSYS, CTXSYS 그리고 ORDPLUGINS 스키마는 익스포트에 의해 예약된 스키마 명 입니다.
- tablename 은 테이블의 이름 혹은 익스포트 될 테이블의 이름을 정의합니다. 테이블 레벨 익스포트는 모든 파티션 혹은 파티션 되지 않은 테이블을 익스포트 받을 수 있게 합니다. 리스트의 테이블이 파티션이라면 파티션 이름을 정하지 마십시요. 모든 파티션과 서브 파티션이 같이 익스포트 됩니다.
- partition_name 은 익스포트가 파티션 레벨에서 익스포트를 수행할 수 있게 합니다.
형식은 다음과 같습니다.
schemaname.tablename:partition_name
schemaname.tablename:subpartition_name
tablename:partition_name 을 사용할 경우 대상 테이블은 반드시 파티션 테이블이어야 하며 partition_name 은 해당 테이블의 파티션, 혹은 서브 파티션이어야 합니다. 해당 테이블이 파티션 테이블이 아니라면 partition_name 부분은 무시하게 되고 전체 테이블을 익스포트 받습니다.
Table Name Restrictions
- 기본적으로 데이터베이스의 테이블이름은 대문자로 저장됩니다. 하지만 소문자를 섞어서 테이블 이름을 만들고 싶다면 따옴표(")로 묶어 대소문자를 구분할 수 있습니다. 데이터베이스에 저장된 테이블명과 정확히 일치해야 합니다.
몇몇 운영체제는 명령행의 따옴표를 처리하기 위에 탈출문자(Escape Character)를 필요로 합니다. 다음 예제들은 각각의 익스포트 모드에서 대소문자를 구분하는지 보여줍니다.
- In Command line mode :
TABLES = '\"Emp\"'
- In interactive mode :
Table(T) to be exported : "Emp"
- In parameter file mode :
TABLES = '"Emp"'
- 명령행에서 테이블이름을 정할땐 따옴표를 사용한다고 하여도 파운드 기호 (#)를 사용할 수 없습니다. 파라메터 파일에서 # 표시를 사용할때 따옴표로 묶지 않게 되면 나머지 줄은 주석으로 간주하게 됩니다.
예를들어 파라메터 파일이 다음과 같은 행을 포함한다고 가정합니다. 익스포트는 emp#이후는 주석으로 간주하고 dept 와 mydata 테이블은 익스포트 하지 않습니다.
TABLES = (emp#, dept, mydata)
하지만 따옴표를 사용하게 되면 정상적으로 익스포트 하고자 했던 테이블들을 모두 익스포트 합니다.
TABLES =("exp#", dept, mydata)
TABLESPACES
기본으로 주어지는 값은 없습니다.
TABLESPACES 파라메터는 테이블스페이스 내에 있는 모든 테이블들을 익스포트 하게 됩니다. 테이블스페이스에 포함되어 있는 파티션 테이블 역시 포함되며 테이블들과 연관된 인덱스들도 역시 익스포트 됩니다.(인덱스가 저장되어 있는 위치는 고려하지 않고 해당 테이블과 연관된 인덱스는 모두 익스포트 합니다.)
TABLESPACES 파라메터를 사용하기 위해선 EXP_FULL_DATABASE롤이 요구됩니다.
TRANSPORT_TABLESPACE
기본값은 n 입니다.
값을 y로 설정할 경우 Transportable tablespace metadata 를 익스포트 할 수 있습니다.
Transportable tablespace 는 추후 포스팅 하는것으로 하겠습니다.
TRIGGERS
기본값은 y 입니다.
익스포트 유틸리티가 triggers를 익스포트 할지 안할지의 여부를 결정합니다.
TTS_FULL_CHECK
기본값은 false 입니다.
TTS_FULL_CHECK를 true로 설정할시 익스포트는 복구 셋(테이블스페이스 복구셋)이 복구 셋의 외부에 의존성을 가지고 있는지 검사하며 반대의 경우도 마찬가지 입니다.
USERID
기본적으로 정해진 값은 없습니다.
익스포트를 수행할 사용자의 username/password 를 정의합니다. 이 값을 정해주지 않을경우 값을 요구하는 프롬프트를 띄울것 입니다. USERID 는 다음과 같이도 사용할 수 있습니다.
userid/password AS SYSDBA
혹은
userid/password@instance AS SYSDBA
SYS 로 접속할 경우에는 반드시 AS SYSDBA 접속 식별자를 선언해 주어야 합니다.
VOLSIZE
각각의 테잎 볼륨에 익스포트할 파일의 최대값을 바이트 단위로 선언합니다.
VOLSIZE 파라메터의 최대값은 64Bit 에서 저장될 수 있는 최대용량과 같습니다. 용량은 위에서 설명한 FILESIZE 파라메터 부분을 참고하십시요.
VOLSIZE 파라메터의 값은 KB를 붙여 사용할 수 있습니다. 예를들어 VOLSIZE=2048 은 VOLSIZE=2KB 와 같습니다. 같은 방법으로 MB,GB 단위를 사용할 수 있습니다.
Parameter Interactions
몇몇 파라메터들은 다른 파라메터들과 충돌을 일으킵니다. 예를들어 TABLES 파라메터는 OWNER 파라메터와 충돌을 일으킵니다. 다음 명령구문은 에러와 함께 익스포트가 수행되지 않습니다.
exp SYSTEM/password OWNER=jones TABLES=scott.emp
마찬가지로, TABLES와 OWNER 는 FULL=y 와 충돌을 일으킵니다.
--> Continue~