DB/Oracle

DB export/import (tablespace가 다를경우)

JazzJeon 2011. 5. 31. 16:46
step.1
#db를 export한다.
exp userid=system/pwd file=dump.dmp owner=olduser 

step.2
#schema 추출한다.
imp userid=system/pwd file=dump.dmp fromuser=olduser touser=newuser indexfile=schema.sql constraints=n log=scheme.log
***주의***
- 옵션 constraints : 제약조건 (FK, PK) 쿼리도 가져오기때문에 데이터를 입력시 제약조건 에러가 발생할수있다.

step.3
#scheme 수정  (추출한 schema.sql을 필요없는 부분, tablespace를 편집한다.)
- REM 일괄 제거
- REM ... row n 주석처리(--) (정규식 : :1,$s/row/--row/g )

step.4
#schema.sql 이용 schema 생성 
sqlplus newuser/pwd
sql>@scheme.sql 
 
steop.5
#데이터 import 
shell> imp userid=system/pwd file=dump.dmp fromuser=olduser touser=newuser constraints=y commit=y ignore=y log=data.log 
- commit 옵션은 롤백세그먼트가 작다면 써준다.
- ignore 옵션이 가장 중요하다. (오브젝트가 존재하기 때문에 에러시 무시하고 계속 진행한다.)