프로그래밍

[DB] Oracle DB에서 MariaDB 로 데이터 이관하기

가시가되어 2023. 4. 17. 15:21

 

Oracle -> Maria DB 로 전환 

 

1) 비용( 비용절감, 비상 경영 등의 이유로 가장 큰 이유가 비용)

SaaS 로 기존 솔루션을 전환하려고 할 때 검토 사항 중 오픈소스를 통한 비용 절감

아래의 표(AWS RDS 기준)를 기준으로 약 2배정도의 시간 당 요금 차이가 발생함.

 

Amazon RDS for MariaDB 요금

db.t4g.large 0.406 USD
db.t4g.xlarge 0.813 USD

 

Amazon RDS for Oracle 요금

db.t3.large 0.704 USD
db.t3.xlarge 1.408 USD

 

2) 오픈 소스 및 상업용으로 이용 가능

 

MySql 과 비슷한 성능을 보이지만 상업용으로도 이용이 가능하여 채택함.

오라클을 사용할 정도의 대용량, 많은 트랜잭션이 일어나지 않는 내부 시스템으로 성능은 크게 고려하지 않음.

 

 

 

Tool

DBeaver Community : https://dbeaver.io/download/

 

Toad for Oracle

https://www.toadworld.com/downloads

 

 

 

Migration 과정

 

Toad 의 Export DDL 기능을 DDL 추출 ( Index, View 나 다른 설정 없이 스미카의  DDL 정보만 이관)

Database > Export > Export DDL

 

Sqlines 를 통해 Oracle DDL -> MariaDB DDL로 Converter

 

https://www.sqlines.com/download_signin.html

 

토드를 통해 추출한 DDL 문을 복사하여,

Source  Oracle / Target MariaDB 로 설정 후 실행

: Tool 에서 모두 변환되지 않는 구문들이 존재하는데 수기로 변경해줘야 함.

: 해당 문법은 SQLines에선 자동, 일괄로 변경하는 기능은 없는 듯 하여 수기로 MariaDb 문법에 맞추어 변경함.

ex) sysdate (오라클의 현재 시스템 시간, 날짜 반환) => now() , sysdate() / TO_DATE -> STR_TO_DATE

 

 

Dbeaver Tool 사용하여 데이터 가져오기

 

1. 컨버트 된 DDL 을 Dbeaver 에서 스크립트 실행으로 Table 생성

2. 연결된 데이터베이스 스키마의 table 에서 데이터 내보내기 혹은 이관받을 데이터베이스에서 데이터 가져오기

3. Source / Target 을 지정해준 뒤, Transfer 실행