본문 바로가기

DataBase/Oracle SQL

[Oracle] import/ export


Export


1. 테이블 스페이스 데이터 위치 확인합니다. (tablespace)

sql>
SELECT T.NAME, D.STATUS, D.NAME
  FROM V$TABLESPACE T, V$DATAFILE D
 WHERE T.TS# = D.TS#

2. 사용자 확인 (user)

sql>SELECT tablespace_name FROM dba_tablespaces

3. export 백업

D:\>EXP 아이디/패스워드@SID file='백업받을파일명'.dmp


Import


1. 사용자 및 테이블 스페이스 확인. ( 있으면 삭제 )

* User 접속으로 인하여 삭제 안될때 확인 :

SELECT sid, serial#
  FROM v$session
 WHERE username = '사용자'

sql> DROP USER 사용자 CASCADE
sql> DROP TABLESPACE 사용자테이블스페이스데이터 INCLUDING CONTENTS
sql > DROP TABLESPACE 사용자테이블스페이스인덱스 INCLUDING CONTENTS
sql> DROP TABLESPACE 사용자테이블스페이스temp저장소 INCLUDING CONTENTS

2. 테이블스페이스 dbf 확인 ( 있으면 삭제 )

sql> SELECT T.NAME, D.STATUS, D.NAME
  FROM V$TABLESPACE T, V$DATAFILE D
 WHERE T.TS# = D.TS#


3. 테이블스페이스 생성

sql> CREATE TABLESPACE 사용자테이블스페이스데이터 DATAFILE '경로/파일이름.dbf' SIZE 300 AUTOEXTEND ON
sql > CREATE TABLESPACE 사용자테이블스페이스인덱스 DATAFILE '경로/파일이름.dbf' SIZE 300 AUTOEXTEND ON
sql> CREATE TABLESPACE 사용자테이블스페이스temp저장소 DATAFILE '경로/파일이름.dbf' SIZE 300 AUTOEXTEND ON

4. 사용자 생성

sql> CREATE USER 사용자 IDENTIFIED BY 패스워드 DEFAULT TABLESPACE 사용자테이블스페이스데이터 TEMPORARY TABLESPACE 사용자테이블스페이스temp저장소


5. 사용자 권한

sql> GRANT CONNECT, RESOURCE, EXP_FULL_DATABASE, IMP_FULL_DATABASE TO 사용자

6. import

D:\> imp 사용자/패스워드@SID file='데이터올릴파일명'.dmp full=y ignore=y


다음과 같이 사용자 권한을 주어야 만이 imp/exp 할 수 있습니다.

( import 시에 옵션 ignore = y 속성은 imp 시에

IMP-00003 : ORALCE error 959 encountered
ORA-00959 : tablespace 테이블스페이스명 does not exist

하는 에러를 무시한다는 옵션이다.

기존의 테이블스페이스가 없어 발생하는 문제이기 떄문에 그냥 어차피 무시해 버리자는 ignore 옵션 -ㅅ-;;;)