Dev/DBMS
오라클에서 다른 계정으로 데이터 마이그레이션 방법
newtype
2010. 2. 1. 10:58
오라클에서 다른 계정의 테이블을 Import 해오고자 한다.
테이블 이름만 동일하고 계정 및 테이블 스페이스가 다른 경우의 Import 과정이다.
oraid 계정에서 devdb 계정으로 Import 하는 과정을 설명한다.
1. Table Space 생성
SQL> CREATE TABLESPACE TS_DEV_DATA
DATAFILE '/home/dba/oradata/ts_dev_data.dbf' SIZE 2048M
AUTOEXTEND OFF;
SQL> CREATE TABLESPACE TS_DEV_IDX
DATAFILE '/home/dba/oradata/ts_dev_idx.dbf' SIZE 1024M
AUTOEXTEND OFF;
Data를 위한 TS_DEV_DATA아 Index를 위한 TS_DEV_IDX 를 생성 했다.
개발 목적의 테이블 스페이스 이므로 용량 자동 증가는 꺼두었다.
2. devdb 계정 생성
SQL> CREATE USER devdb IDENTIFIED BY devdb
DEFAULT TABLESPACE TS_DEV_DATA
TEMPORARY TABLESPACE TEMP
QUOTA UNLIMITED ON TS_DEV_DATA;
SQL> GRANT CONNECT,RESOURCE TO FRDEV;
계정을 생성하고, 필요한 권한을 부여 했다.
3. Export
$ exp oraid/orapwd file=tbl_exp_20100201.dmp tables="tbl_test1, tbl_test2, tbl_test3" ignore=y
Source DB에 접속 하여 필요한 테이블을 Export 한다.
4. Table 생성
SQL> CREATE TABLE TBL_TEST1
(
SEQ NUMBER(10) NOT NULL,
CODE VARCHAR2(10) NOT NULL,
DATA VARCHAR2(20) NOT NULL
CONSTRAINT PK_TEST1
PRIMARY KEY (SEQ) USING INDEX
TABLESPACE TS_DEV_IDX
)
TABLESPACE TS_DEV_DATA;
SQL> CREATE TABLE TBL_TEST2
- 생략 -
SQL> CREATE TABLE TBL_TEST3
- 생략 -
Export를 하게 되면 테이블 생성 정보까지 포함된다.
그대로 Import 하게 되면, 새로 생성한 테이블 스페이스에 저장되는 것이 아니고,
기존 테이블 스페이스에 저장 되므로 원하는 공간에 미리 테이블을 생성 해 둔다.
5. Import
$ imp oraid/orapwd fromuser=oraid touser=devdb file=tbl_user.dmp tables=tbl_user ignore=y
Import 받고자 하는 devdb 계정을 touser 파라미터로 지정한다.
테이블 생성시 발생하는 오류를 건너 뛰기 위해 ignore 파라미터를 추가한다.
반응형