본문 바로가기

Oracle/admin

export & import


 

scott계정의 테이블과 데이터를 다른 사용자에게 복사하는 방법

scott 계정의 테이블과 데이터를 다른 사용자에 복사는 방법은 exp/imp를 사용하면 된다.

다음과 같은 순서대로 명령한다.

1.scott schema export
exp scott/tiger<enter>

위의 명령으로 scott 계정에서 데이터를 expdat.dmp 파일로 export 할 수 있다.

2. export 된 데이터(expdat.dmp )를 test 계정으로 import (test계정은 만들어진 상태여야 함)

imp system/oracle file=expdat.dmp fromuser=scott touser=test<enter>
참고: system/oracle 은 DBA권한의 이용자/암호
주의: system/oracle 계정이 lock 상태라서 에러가 발생하면, sqlplus 에서 /as sysdba로 접속하여 아래처럼 account unlock명령으로 잠금을 해제한 후에 위의 명령을 실행해 본다.

이렇게 하면 scott 유저의 table 및 데이터(expdat.dmp)가 test 계정으로
복사가 됩니다

참고) 사용자 추가
SQL> create user user1 identified by user1pwd;
SQL> grant connect, resource to user1;
SQL> alter user user1 account unlock;

--------------------------------------------------------------------------------------------------

Oracle 10g에서 exp/imp명령을 실행한 예

Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.

C:\Documents and Settings\Administrator>cd ..

C:\Documents and Settings>cd ..

C:\>exp scott/******<enter>

Export: Release 10.2.0.1.0 - Production on 화 11월 17 17:24:53 2009

Copyright (c) 1982, 2005, Oracle.  All rights reserved.


다음에 접속됨: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Produ
ction
With the Partitioning, OLAP and Data Mining options
배열 인출 버퍼 크기 입력: 4096 ><enter>

엑스포트 파일: EXPDAT.DMP ><enter>

(2)U(사용자), 또는 (3)T(테이블): (2)U ><enter>

권한부여 엑스포트 (yes/no): yes ><enter>

테이블 데이터 엑스포트 (yes/no): yes ><enter>

확장 영역 압축 (yes/no): yes ><enter>

KO16MSWIN949 문자 설정과 AL16UTF16 NCHAR 문자 설정에서 엑스포트가 종료되었습니다

. 스키마 이전 단계의 객체와 작업을 엑스포트합니다\r

. SCOTT 사용자를 위해 외래 함수 라이브러리 이름을 엑스포트합니다
. PUBLIC 유형 동의어 엑스포트 중
. 전용 유형 동의어 엑스포트 중
. SCOTT 사용자의 객체 유형 정의를 엑스포트 합니다 \r

SCOTT의 객체를 엑스포트하려고 합니다 ...
. 데이터베이스 링크 엑스포트 중
. 순차 번호 엑스포트 중
. 클러스터 정의 엑스포트 중
. SCOTT의 테이블을 엑스포트하려고 합니다 via 규정 경로...
. . 테이블                          BONUS(를)을 엑스포트 중          0 행이 엑스
포트됨
. . 테이블                           DEPT(를)을 엑스포트 중          4 행이 엑스
포트됨
. . 테이블                            EMP(를)을 엑스포트 중         14 행이 엑스
포트됨
. . 테이블                       SALGRADE(를)을 엑스포트 중          5 행이 엑스
포트됨
. 동의어 엑스포트 중
. 뷰 엑스포트 중
. 저장 프로시저 엑스포트 중
. 작업을 엑스포트합니다
. 참조 무결성 제약조건 엑스포트 중
. 트리거 엑스포트 중
. 인덱스유형을 엑스포팅합니다
. 비트맵, 함수, 기능과 확장 가능한 인덱스들을 엑스포트합니다
. 이후 테이블 처리를 엑스포트 중
. 구체화된 뷰 엑스포트 중
. 스냅샷 로그 엑스포트 중
. 작업 대기열을 엑스포트 중
. 리프레쉬 그룹과 자식 엑스포트 중
. 차원을 엑스포트합니다
. 스키마 이후 단계의 객체와 작업을 엑스포트합니다\r

. 통계를 엑스포트합니다
엑스포트가 경고 없이 정상적으로 종료되었습니다.

C:\>


Oracle 10g에서 imp 명령으로 scott의 테이블을 user22이용자에게 가져오는 예

C:\>imp system/****** file=expdat.dmp fromuser=scott touser=user22
위의 ******은 DBA권한을 가진 이용자의 암호를 입력한다.

Import: Release 10.2.0.1.0 - Production on 화 11월 17 18:41:24 2009

Copyright (c) 1982, 2005, Oracle.  All rights reserved.


IMP-00058: ORACLE 오류 28000이(가) 발생했습니다.
ORA-28000: the account is locked사용자 이름: user22<enter>
암호:user22pwd<enter>

다음에 접속됨: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Produ
ction
With the Partitioning, OLAP and Data Mining options

엑스포트 파일은 규정 경로를 거쳐 EXPORT:V10.02.01 에 의해 생성되었습니다

경고: 객체는 다른 사용자 SCOTT(이)가 엑스포트한 것입니다.

KO16MSWIN949 문자집합과 AL16UTF16 NCHAR 문자 집합에 임포트가 완성되었습니다
IMP-00008: 엑스포트 파일에 인식할 수 없는 명령이 있습니다:

. . 테이블                        "BONUS"(를)을 임포트 중          0 행이 임포트 되었습니다
. . 테이블                         "DEPT"(를)을 임포트 중          4 행이 임포트 되었습니다
. . 테이블                          "EMP"(를)을 임포트 중         14 행이 임포트 되었습니다
. . 테이블                     "SALGRADE"(를)을 임포트 중          5 행이 임포트 되었습니다