강좌
클라우드/리눅스에 관한 강좌입니다.
데이터베이스 분류

import, export사용(imp, exp)

작성자 정보

  • 웹관리자 작성
  • 작성일

컨텐츠 정보

본문

import, export사용(imp, exp)
SQL> connect linux/linux
연결되었습니다.
SQL> set pagesize 30


SQL> select * from tab;
TNAME			       TABTYPE	CLUSTERID
------------------------------ ------- ----------
S_CUSTOMER		       TABLE
S_DEPT			       TABLE
S_EMP			       TABLE
S_IMAGE 		       TABLE
S_INVENTORY		       TABLE
S_ITEM			       TABLE
S_LONGTEXT		       TABLE
S_ORD			       TABLE
S_PRODUCT		       TABLE
S_REGION		       TABLE
S_TITLE 		       TABLE
S_WAREHOUSE		       TABLE
TEST			       TABLE
13 개의 행이 선택되었습니다.
SQL> quit
Oracle8 Release 8.0.5.0.0 - Production
PL/SQL Release 8.0.5.0.0 - Production에서 분리되었습니다.
[linux@localhost db]$ ls -l /usr/local/Oracle
total 2
drwxr-xr-x   3 oracle   dba          1024 Sep 22 13:23 app
drwxr-xr-x   3 oracle   dba          1024 Sep 22 13:26 oradata
[linux@localhost db]$ ls -l /usr/local/Oracle/oradata
total 1
drwxr-xr-x   2 oracle   dba          1024 Sep 22 13:34 kang
[linux@localhost db]$ ls -l /usr/local/Oracle/oradata/kang
total 131172
-rw-r-----   1 oracle   dba       1435648 Oct  5 23:46 control01.ctl
-rw-r-----   1 oracle   dba       1435648 Oct  5 23:46 control02.ctl
-rw-r-----   1 oracle   dba       1435648 Oct  5 23:46 control03.ctl
-rw-r-----   1 oracle   dba      15730688 Oct  5 23:44 rbs01.dbf
-rw-r-----   1 oracle   dba        512512 Oct  5 23:41 redokang01.log
-rw-r-----   1 oracle   dba        512512 Oct  5 23:42 redokang02.log
-rw-r-----   1 oracle   dba        512512 Oct  5 23:44 redokang03.log
-rw-r-----   1 oracle   dba      83888128 Oct  5 23:44 system01.dbf
-rw-r-----   1 oracle   dba       1050624 Oct  5 23:42 temp01.dbf
-rw-r-----   1 oracle   dba      26216448 Oct  5 23:42 tools01.dbf
-rw-r-----   1 oracle   dba       1050624 Oct  5 23:42 users01.dbf




[linux@localhost db]$ exp linux/linux
Export: Release 8.0.5.0.0 - Production on 화 Oct 5 23:46:43 1999
(c) Copyright 1998 Oracle Corporation.  All rights reserved.

연결할 곳: Oracle8 Release 8.0.5.0.0 - Production
PL/SQL Release 8.0.5.0.0 - Production
배열 인출 버퍼 크기 입력: 4096 >
엑스포트 파일: expdat.dmp > 


(2)U(사용자), 또는 (3)T(테이블): (2)U > 
권한부여 엑스포트 (yes/no): yes > 
테이블 데이터 엑스포트 (yes/no): yes > 
확장 영역 압축 (yes/no): yes > 
KO16KSC5601 문자 설정과 KO16KSC5601 NCHAR 문자 설정에서 엑스포트가 종료되었습니다
. LINUX 사용자를 위해 외래 함수 라이브러리 이름을 엑스포트합니다
. LINUX 사용자에 대한 개체 유형 정의를 엑스포트 합니다
LINUX의 개체를 엑스포트하려고 합니다 ...
. 데이터베이스 링크 엑스포트 중
. 순차 번호 엑스포트 중
. 클러스터 정의 엑스포트 중
. LINUX의 테이블을 엑스포트하려고 합니다 via 규정 경로...
. . 테이블                     S_CUSTOMER(를)을 엑스포트 중         15 행이 엑스포트됨
. . 테이블                         S_DEPT(를)을 엑스포트 중         12 행이 엑스포트됨
. . 테이블                          S_EMP(를)을 엑스포트 중         25 행이 엑스포트됨
. . 테이블                        S_IMAGE(를)을 엑스포트 중         19 행이 엑스포트됨
. . 테이블                    S_INVENTORY(를)을 엑스포트 중        114 행이 엑스포트됨
. . 테이블                         S_ITEM(를)을 엑스포트 중         62 행이 엑스포트됨
. . 테이블                     S_LONGTEXT(를)을 엑스포트 중         33 행이 엑스포트됨
. . 테이블                          S_ORD(를)을 엑스포트 중         16 행이 엑스포트됨
. . 테이블                      S_PRODUCT(를)을 엑스포트 중         33 행이 엑스포트됨
. . 테이블                       S_REGION(를)을 엑스포트 중          5 행이 엑스포트됨
. . 테이블                        S_TITLE(를)을 엑스포트 중          8 행이 엑스포트됨
. . 테이블                    S_WAREHOUSE(를)을 엑스포트 중          5 행이 엑스포트됨
. . 테이블                           TEST(를)을 엑스포트 중         16 행이 엑스포트됨
. 동의어 엑스포트 중
. 뷰 엑스포트 중
. 저장 프로시저 엑스포트 중
. 참조 무결성 제약조건 엑스포트 중
. 트리거 엑스포트 중
. 이후 테이블 처리를 엑스포트 중
. 스냅샷 엑스포트 중
. 스냅샷 로그 엑스포트 중
. 작업 대기열을 엑스포트 중
. 리프레쉬 그룹과 자식 엑스포트 중
엑스포트가 경고 없이 정상적으로 종료되었습니다.
[linux@localhost db]$ ls -l
total 96
-rw-rw-r--   1 linux    linux        3340 Aug 15 22:30 JdbcTest.class
-rw-r--r--   1 linux    linux        3112 Aug 15 22:43 JdbcTest.java
drwxrwxr-x   2 linux    linux        1024 Oct  1 01:10 db_ex
-rw-rw-r--   1 linux    linux       40960 Oct  5 23:46 expdat.dmp
-rw-r--r--   1 linux    linux       41841 Jun 30 11:59 summit.sql
-rw-rw-r--   1 linux    linux        4096 Oct  5 23:46 사용자관리-백업_리스토어.txt


[linux@localhost db]$ imp kang/kang
Import: Release 8.0.5.0.0 - Production on 화 Oct 5 23:48:1 1999
(c) Copyright 1998 Oracle Corporation.  All rights reserved.

연결할곳: Oracle8 Release 8.0.5.0.0 - Production
PL/SQL Release 8.0.5.0.0 - Production
임포트 파일: expdat.dmp >
삽입 버퍼 크기를 입력하십시오 (최소치는 4096) 30720>
엑스포트 파일은 규정 경로를 거쳐 EXPORT:V08.00.05 에 의해 생성되었습니다
경고: 개체는 다른 사용자 LINUX(이)가 엑스포트한 것입니다.
임포트 파일의 내용만 표시합니다. (yes/no): no >
개체 존재로 인해 발생한 생성 오류는 무시합니다. (yes/no): no >
권한부여 임포트 (yes/no): yes >
테이블 데이터 임포트 (yes/no): yes >
엑스포트 파일 전체를 임포트합니다. (yes/no): no >
사용자명:linux 여기서 
테이블(T) 또는 분할(T:P)명을 입력하십시오. 널 목록은 사용자의 모든 테이블을 의미합니다.
테이블(T) 또는 분할(T:P)명을 입력하거나 완료 시에는 .을 입력하십시오.
. LINUX 개체를 KANG(으)로 임포트하는 중입니다.
. . 테이블                   "S_CUSTOMER"(를)을 임포트 중         15 행이 임포트되었습니다
. . 테이블                       "S_DEPT"(를)을 임포트 중         12 행이 임포트되었습니다
. . 테이블                        "S_EMP"(를)을 임포트 중         25 행이 임포트되었습니다
. . 테이블                      "S_IMAGE"(를)을 임포트 중         19 행이 임포트되었습니다
. . 테이블                  "S_INVENTORY"(를)을 임포트 중        114 행이 임포트되었습니다
. . 테이블                       "S_ITEM"(를)을 임포트 중         62 행이 임포트되었습니다
. . 테이블                   "S_LONGTEXT"(를)을 임포트 중         33 행이 임포트되었습니다
. . 테이블                        "S_ORD"(를)을 임포트 중         16 행이 임포트되었습니다
. . 테이블                    "S_PRODUCT"(를)을 임포트 중         33 행이 임포트되었습니다
. . 테이블                     "S_REGION"(를)을 임포트 중          5 행이 임포트되었습니다
. . 테이블                      "S_TITLE"(를)을 임포트 중          8 행이 임포트되었습니다
. . 테이블                  "S_WAREHOUSE"(를)을 임포트 중          5 행이 임포트되었습니다
. . 테이블                         "TEST"(를)을 임포트 중         16 행이 임포트되었습니다
사용 가능한 제약 조건에 관해서...
임포트가 경고 없이 정상적으로 종료되었습니다.
[linux@localhost db]$ sqlplus
SQL*Plus: Release 8.0.5.0.0 - Production on 화 Oct 5 23:48:37 1999
(c) Copyright 1998 Oracle Corporation.  All rights reserved.
사용자명 입력: kang
암호 입력:
Connected to:
Oracle8 Release 8.0.5.0.0 - Production
PL/SQL Release 8.0.5.0.0 - Production


SQL> select * from tab;
TNAME			       TABTYPE	CLUSTERID
------------------------------ ------- ----------
S_CUSTOMER		       TABLE
S_DEPT			       TABLE
S_EMP			       TABLE
S_IMAGE 		       TABLE
S_INVENTORY		       TABLE
S_ITEM			       TABLE
S_LONGTEXT		       TABLE
S_ORD			       TABLE
S_PRODUCT		       TABLE
S_REGION		       TABLE
S_TITLE 		       TABLE
S_WAREHOUSE		       TABLE
TEST			       TABLE
13 개의 행이 선택되었습니다.


SQL> connect system
암호 입력:
연결되었습니다.
SQL> drop user kang;
drop user kang
*
1행에 오류:
ORA-01922: 'KANG'(을)를 삭제하려면 CASCADE를 지정하여야 합니다

SQL> drop user kang cascade;
사용자가 삭제되었습니다.

추가: 2001-12-20
imp에서 show패러미터는 export파일의 내용을 보여주고, 실제 import는 수행하지 않는다.
보여주는 내용이 SQL문으로 되어 있으므로 어떤 경우, 유용하게 사용될 수 있다.

imp system/xxxxxx full=y show=y file=full_20011220.dmp log=exp_content.sql


복구과정
1. 가장 최근의 exp파일에서 full=y inctype=으로 imp를 수행하여 data dictionary와 DB구조들을 재생성
   (이때 적용될 exp파일은 complete, cumulative, incremental의 종류에 관계없이 가장 최근의 exp파일이다.)
2. 가장 최근의 complete exp파일에서 full=y inctype=로 import한다.
   (나머지 exp파일들에 대해 full=y와 inctype=restore로 계속 수행한다)
3. 가장 최근의 complete exp파일 이후로 수행된 cumulative exp파일들을 처리
4. 가장 최근의 cumulative exp파일 이후로 수행된 incremental exp파일들을 처리

export시 DB를 restricted session에 두고,(alter system enable restricted session) 
exp 패러미터중 consistent를 Y에 두면 최소한의 읽기일관성 보장한다.
단, consistent패러미터는 complete, cumulative에서만 사용할 수 있다.
consistent패러미터는 incremental에서는 사용될 수 없으므로, incremental수행시에는
DB를 restricted session에 두고 수행하는 것이 좋다.


-- 읽기일관성 문제 예
테이블 데이터가 먼저 export되고, index는 그 다음에 수행된다.
따라서, 테이블데이터에 있지 않으나, 인덱스에는 해당 데이터가 있을 수도 있다.
export수행중, 변경된 데이터는 export파일에 저장되지 않는다.


conventional Vs direct
디폴트는 conventional path를 이용해 export된다.
conventional path는 SQL을 SQL*PLUS에서 수행하는 것과 동일한 방식으로 실행된다.
direct패러미터는 디폴트가 N이므로 명시적으로 Y값으로 설정해야 한다.
direct는 데이터 정의와 몇몇 SQL을 skip하여 수행되므로 백업의 속도가 빠르다.
direct path를 사용할 때는 buffer패러미터가 사용되지 않는다.


full=y로 수행된 export파일은 import시 user,table,full 모두에 사용될 수 있다



 

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,039 명
  • 현재 강좌수 :  35,848 개
  • 현재 접속자 :  83 명