티스토리 뷰

반응형

 


오브젝트 레벨로 테이블 또는 유저별 오브젝트를 백업 및 복구할 수 있는 오라클에서 제공하고 있는 유틸리티가 바로 Export와 Import입니다. 이 유틸리티를 활용한 백업 및 복구방법은 변경이 적고 데이터베이스나 오브젝트 사이즈가 작은 경우 매우 유용하게 활용할 수 있습니다. 또한 테이블 Reorg작업에도 유용하게 활용할 수 있습니다.

Export는 데이터를 오라클 데이터베이스로부터 바이너리 형태의 OS Flat 파일로 만들고, Import를 이용하여 데이터베이스로 로딩합니다. 오라클 8 이상에서는 Exp/Imp시 파티션별로 받을 수도 있으나, 각 버젼별로 사용법은 비슷합니다. 특정 파티션을 Export받을 경우에는 tables라는 옵션 사항만 차이가 납니다

- 테이블을 파티션 구분 없이 Export받을 경우 : TABLES=(EMP,DEPT,MGR)
- T1테이블의 P1 파티션과 P2 파티션만 Export받을 경우 : TABLES(T1:P1,T1:P2)

Export

1) 전체 데이터베이스 (FULL 백업)
- 모든 데이터베이스를 Export 합니다.
- 만약 데이터베이스의 크기가 매우 작은 시스템(수 GB 이내)의 경우 전체 데이터베이스 Full 백업을 Export로 받아 놓는 것도 좋은 백업정책입니다.

예제)
① 전체 데이터베이스 Export (Interactive Method)
$ exp system/manager -- ①
Connected to: ORACLE7 Server Release 7.0.16.4.0 - Production
With the procedural and distributed options
PL/SQL Release 2.0.18.1.0 - Production

Enter array fetch buffer size : 4096 > (RETURN) -- ②
Export file : expdat.dmp > -- ③
(1) E(ntire database), (2) U(sers), (3) T(ables) : (2) U > e -- ④
Export grants (Y/N) : Y > y -- ⑤
Export table data (Y/N) : Y > y -- ⑥
Compress extents (Y/N) : Y > y -- ⑦
About to export the entire database.... -- ⑧
. exporting tablespace definitions
. exporting profiles
. exporting user definitions
. exporting role
. exporting rollback segment definitions
. exporting database links
. exporting sequence numbers
. exporting sequence numbers
. exporting cluster definitions
. exporting stored procedures
. about to export SYSTEM's tables ...
. about to export SCOTT's tables ...
. exporting synonyms
. exporting views
. exporting referential integrity constraints
. exporting triggers
Export terminated successfully without warnings.-- ⑨



② 전체 데이터베이스 Export(Command Line Method)

아래와 같이 명령어 한 줄에 옵션을 주어 수행할 수도 있습니다. 어떤 옵션이 있는지 확인하기 위해서는 exp help=yes라고 치면 도움말이 나옵니다.
$ exp userid=system/manager full=y compress=y grants=y rows=y

③ 전체 데이터베이스 Export(Dynamic Method)
Export 관련 옵션들을 아래와 같이 파일에 적어서 컨트롤 파일
(파일명은 test.par)로 만든 후, 컨트롤 파일을 참조하여 Export를 수행합니다.

vi test.par
system/manager
full=y -- ①
compress=y
grants=y
rows=y


$ exp parfile=test.par


2) 한 유저 Export (Users)

- 특정 유저의 오브젝트를 모두 Export 합니다.
- 시스템의 데이터베이스 유저 중 운영용 유저만 선택하여 Export 받을 경우 사용합니다.

예제)

① 한 유저만 Export (Interactive Method)
다음은 한 유저만 Export받을 경우의 대화형 모드의 예제입니다.

$ exp system/manager
Connected to: ORACLE7 Server Release 7.0.16.4.0 - Production
With the procedural and distributed options
PL/SQL Release 2.0.18.1.0 - Production
Enter array fetch buffer size : 4096 > (RETURN)
Export file : expdat.dmp >
(1) E(ntire database), (2) U(sers), (3) T(ables) : (2) U > u -- ①
Export grants (Y/N) : Y > y
Export table data (Y/N) : Y > y
Compress extents (Y/N) : Y > y

About to export specified users
User to be exported: (RETURN to quit) > scott -- ②
. exporting snapshots
. exporting snapshot log
. exporting database links
. exporting sequence numbers
. exporting sequence numbers
. exporting cluster definitions
. exporting stored procedures
. about to export SCOTT's tables ...
. exporting synonyms
. exporting views
. exporting referential integrity constraints
. exporting triggers
Export terminated successfully without warnings.

② 한 USER만 Export (Command Line Method)
$ exp userid=system/manager owner=scott compress=y grants=y rows=y
③ 한 유저만 Export (Dynamic Method)
Export 파라미터를 다음과 같이 설정하여 컨트롤 파일(파일명은 test.par)로
만든 후, Export를 수행합니다.

vi test.par
system/manager
owner=scott -- ①
compress=y
grants=y
rows=y

$ exp parfile=test.par


3) 일부 테이블(Tables)

- 특정 테이블을 Export 합니다.
- 주요 테이블만 선별하여 Export 백업 받을 경우 사용합니다.
예제)
$ exp scott/tiger tables=emp,dept compress=y grants=y rows=y



Import


테이블을 Import하는 방법은 Export와 비슷하고 항상 Export된 파일로만 Importing이 됩니다
예제)
① 전체 데이터베이스 Export 파일로부터 1개 테이블을 Import (Interactive Method)

$ imp system/manager
Connected to: ORACLE7 Server Release 7.0.16.4.0 - Production
With the procedural and distributed options
PL/SQL Release 2.0.18.1.0 - Production
 
Import file: expdat.dmp > (RETURN)
Enter insert buffer size (minimum is 4096) 30720 > (RETURN)
Export file created by EXPORT:V07.00.16
List contents of import file only (yes/no) : no > -- ①
Ignore create errors due to object existence (yes/no) : yes > -- ② [만일 데이터베이스 내에 기존 테이블이 존재하면 이 옵션이 반드시 yes로 설정하여야 합니다. no이면 이미 존재하는 오브젝트에 대해서 Import 를 하지 않습니다]
Import grants (yes/no) : yes >
Import table data (yes/no) : yes >
Import entire export file (yes/no) : yes > no
User name : SCOTT
Enter table name. Null list name all tables for user
Enter table name or . if done : TEST
importing SCOTT's objects into SCOTT
importing table TEST 900 rows imported
Import terminated successfully.

② 전체 데이터베이스 Export 파일로부터 1개 테이블을 Import (Command LineMethod)
$ imp system/manager full=n grants=y rows=y tables=test commit=y


반응형
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함