Export 유틸리티는 오라클 데이터베이스가 서로 다른 하드웨어 및 소프트웨어 구성을 사용하는 플랫폼에 상주하더라도 이러한 데이터베이스간에 데이터 객체를 이동할 수 있는 방법을 제공한다.
Export를 실행하면 테이블 등의 객체가 추출된 다음 인덱스, 주석, 권한 부여 등의 관련 객체가 추출됩니다. 추출된 데이터는 일반적으로 oracle binary 형식 덤프 파일로 생성된다.
Import 유틸리티는 Export 덤프 파일에서 객체 정의와 테이블 데이터를 읽어서 데이터 객체를 오라클 데이터베이스에 입력한다.
exp userid=system/oracle file=hr_emp.dmp tables=employees direct=y
exp useridsystem/oracle file=hr.dmp owner=hr
exp useridsystem/oracle file=users_tbs.dmp tablespaces=users
exp useridsystem/oracle full=y file=ora19c_full.dmp direct=y
데이터베이스 모드로 export 받은 dmp 파일에서 hr 유저의 테이블만 import
imp userid=system/oracle file=ora19c_full.dmp fromuser=hr tables=employees
실제 데이터는 import 하지 않고 DDL문장만 추출
imp useurid=system/oracle file=hr.emp.dmp full=y show=y log=test.log
테이블스페이스 레벨로 import
imp userid=system/oracle file=insa_tbs.dmp tablespaces=insa_tbs full=y
- 신규 테이블 생성

- system 계정 비밀번호 변경

- 생성한 테이블의 제약조건 확인
select constraint_name, constraint_type, search_condition, status, index_name
from dba_constraints
where owner = 'HR'
and table_name = 'EMP';

- 테이블 모드로 export
exp userid=system/oracle tables=hr.emp file=hr_emp.dmp direct=y
direct=y를 사용하지 않을 경우 기본값으로는 conventional 방식으로 데이터를 추출하는데 습관적으로 direct=y를 해서 직접적 데이터를 추출할 수 있게 하자.

- export 한 테이블 삭제

- dmp파일로 데이터 import 작업

- 제약조건도 import 되었는지 확인

- 테이블 truncate

- 테이블에 데이터만 import
imp userid=system/oracle file=hr_emp.dmp fromuser=hr tables=emp data_only=y

- 실제 import는 하지 않고 DDL문장을 log 파일로만 받기
imp userid=system/oracle file=hr_emp.dmp full=y show=y log=test.log

유저 생성 구조를 확인
SET long 1000000 -- meta 데이터의 타입은 long 타입이다.
SELECT dbms_metadata.get_ddl('USER','HR') from dual;

유저에게 부여된 시스템 권한 확인
select dbms_metadata.get_granted_ddl('SYSTEM_GRANT','HR') from dual;

유저에게 부여된 객체 권한 확인
select dbms_metadata.get_granted_ddl('OBJECT_GRANT','HR') from dual;

유저에게 부여된 쿼터값 확인
select dbms_metadata.get_granted_ddl('TABLESPACE_QUOTA','HR') from dual;

유저에게 부여된 ROLE 확인
select dbms_metadata.get_granted_ddl('ROLE_GRANT','HR') from dual;
