DMS 를 이용하여 Oracle to MySQL 마이그레이션 시, 아래의 데이터 타입을 고려하여 테이블을 정의하거나 Task 작업 설정에서 자동으로 테이블을 생성하여 마이그레이션 하도록 할 수 있다. 저자는 정확한 테이블 설계를 통한 마이그레이션을 선호하는 편이라 아래의 데이터 타입을 참고하여 MySQL 테이블을 정의하고 Data Only 진행 방식으로 마이그레이션을 진행하였다.
Oracle VS Mysql Data Type
▷ Oracle Number 타입으로만 선언한 경우 소수점이 포함이 될 수 있으므로 MySQL 에서는 정수형(Numeric) 이 아닌 이상 Double 타입으로 생성하여야 한다.
Oracle | MySQL |
BFILE | VARCHAR(255) |
CHAR(n), CHARACTER(n), n < 256 | CHAR(n), CHARACTER(n) |
CHAR(n), CHARACTER(n), n > 255 | VARCHAR(n) |
CLOB | LONGTEXT |
DATE | DATETIME |
DECIMAL(p,s), DEC(p,s) | DECIMAL(p,s), DEC(p,s) |
DOUBLE PRECISION | DOUBLE PRECISION |
FLOAT(p) | DOUBLE |
INTEGER, INT | INT |
INTERVAL YEAR(p) TO MONTH | VARCHAR(30) |
INTERVAL DAY(p) TO SECOND(s) | VARCHAR(30) |
LONG | LONGTEXT |
LONG RAW | LONGBLOB |
NCHAR(n) | n < 256 | NCHAR(n) |
NCHAR(n) | n > 255 | NVARCHAR(n) |
NCHAR VARYING(n) | NCHAR VARYING(n) |
NCLOB | NVARCHAR(max) |
NUMBER(p,0), NUMBER(p) | 1 <= p < 3 | TINYINT |
NUMBER(p,0), NUMBER(p) | 3 <= p < 5 | SMALLINT |
NUMBER(p,0), NUMBER(p) | 5 <= p < 9 | INT |
NUMBER(p,0), NUMBER(p) | 9 <= p < 19 | BIGINT |
NUMBER(p,0), NUMBER(p) | 19 <= p <= 38 | DECIMAL(p) |
NUMBER(p,s) | s > 0 | DECIMAL(p,s) |
NUMBER, NUMBER(*) | DOUBLE |
NUMERIC(p,s) | NUMERIC(p,s) |
NVARCHAR2(n) | NVARCHAR(n) |
RAW(n) | n < 256 | BINARY(n) |
RAW(n) | n > 255 | VARBINARY(n) |
REAL | DOUBLE |
ROWID | CHAR(10) |
SMALLINT | DECIMAL(38) |
TIMESTAMP(p) | DATETIME(p) |
TIMESTAMP(p) WITH TIME ZONE | DATETIME(p) |
UROWID(n) | VARCHAR(n) |
VARCHAR(n),VARCHAR2(n) | VARCHAR(n) |
XMLTYPE | LONGTEXT |
반응형
'AWS > DMS (Database Migration Service)' 카테고리의 다른 글
DMS(Database Migration Service) 구성 가이드 (0) | 2022.08.24 |
---|
댓글