DB Migration 방법은 크게 On-line 과 Off-line 으로 구별되며 좀 더 세분하면 Direct/Indirect 및 Change Data Capture/Log Apply 등의 방법으로 나눌 수 있습니다.
Migration 방법 선택 시 에는 안정성과 정확성을 높이기 위해 Off-line 방식을 선 고려 하여야 하며 Service 의 Down-Time 이 중요한 결정 요인이 됩니다.
이번 테크 블로그에서는 On Premise – Amazon RDS Migration에 대해 알아봅니다.
뉴스레터 가입
클라우드 관련 최신 소식을 업데이트 받으실 수 있습니다.
MS-SQL To AWS RDS MS-SQL – Offline Migration Process Step
Direct Transfer : CTAS with DB Link
Step 1: Migration Prerequisite (Data Freezing and All Schedule Stop)
Step 2: Create a database link on Target and execution CTAS SQL
Step 3: Verification and Drop database link
Indirect Transfer : Data Freezing and Unload & Load by SSMS Backup Data
Step 1: Migration Prerequisite (Data Freezing and All Schedule Stop)
Step 2: Use SSMS Backup Command for creating a dump file
Step 3: Create AWS S3 Folder
Step 4: Add RDS Option Group
Step 5: Connecting RDS Option Group by SSMS
Step 6: Use SSMS Restore Command for DB Migration
Step 7: Verification
CASE) MS-SQL to AWS RDS MS-SQL – Offline Indirect Migration
Source DataBase Backup.
– onpremise_db 라는 별도 Database를 SSMS 를 통해 Backup 수행
Backup Database.
– Backup File 이 저장 될 위치 지정
Migration 용 S3 Folder 생성 후 Backup File 을 Upload.
RDS for MS-SQL 에 Option Group (SQLSERVER_BACKUP_RESTORE) 추가.
IAM Role을 신규 생성하고 미리 만들었던 S3 Bucket 을 등록.
SSMS에서 RDS for MS-SQL 에 접속 후 복구 프로시져 를 수행.
– restore 할 DB 이름과 백업 파일이 존재하는 S3 경로를 입력
RDS For MS-SQL 에 onpremise_db 가 복구 되었고 sp_help 명령어로 복구된 디비를 확인 할 수 있습니다.
On Premise To AWS RDS – Heterogenius Migration Flow
해당 도표는 Oracle 에서 AWS RDS PostgreSQL 로 Migration 하기 위한 과정입니다.
이기종 DB 간의 Migration 을 수행 하기 위해서는 AWS SCT 를 이용한 Schema Conversion 이 필요하며, AWS DMS 를 이용한 Data Migration 이 별도로 필요합니다. 추가로 Conversion 과정에서는 이기종 DB 간 Objects 조율 , SQL에 대한 Ansi 표준 및 DB간 인식률을 확인, 변환 하는 과정 및 검토가 필요로 하게 됩니다.
CASE) Oracle to AWS RDS PostgreSQL Migration – Schema Conversion
AWS SCT 실행 첫 단계(New Projects Wizard)에 프로젝트를 생성하고 Source Database Engine을 “Oracle”로 선택합니다.
Source Database 접속 정보를 기술합니다.
변환 대상 중 Assessment 하고자 하는 대상 Schema 를 선택 합니다.
AWS SCT 의 Data Migration Assessment Report 중 To PostgreSQL 에 해당하는 Report 를 확인 할 수 있습니다.
일반적인 경우에 Automatically Conversion Ratio 는 50~70% 정도 이고, 나머지 대상은 Manually Conversion이 필요할 수 있습니다.
As-Is Schema List와 To-Be 기본 접속 화면을 확인 할 수 있습니다.
SCT 는 Oracle To PostgreSQL Project의 경우 aws_oracle_ext 라는 변환 전용 Schema 를 기본 생성 합니다.
변환 하고자 하는 As-Is Schema 를 우클릭 후 “Convert Schema” 메뉴 선택.
오른쪽 창 To-Be Schema 에 신규 Schema가 생성 되었으며 “Apply to database” 수행하면 PostgreSQL 에 호환 될 수 있도록 변환 된 Schema가 To-Be DB에 생성 됩니다.
Migration 대상 Object Schema 를 선택하면 As-Is 와 To-Be 각각에 Properties, SQL Source 등을 확인 할 수 있습니다.
SCT 에서 변환이 불가한 Case는 As-Is 와 동일한 Source 를 To-Be 쪽에 Copy 하고 주석처리를 한 상태로 보여지게 됩니다.
이상 SCT로 To-Be 환경에 맞게 변환된 Schema 까지 생성 완료 되었고, 다음 작업으로 실 Data를 Migration 해야 합니다.
CASE) Oracle to AWS RDS PostgreSQL Migration – Data Migration
PostgreSQL DB 로 Oracle Data 를 Migration 하기 위하여 ASW DMS Service를 이용합니다.
먼저 DMS replication instance 를 생성합니다.
먼저 Source 쪽 Endpoint 를 생성합니다.
생성 시 DB 접속 정보 및 접속 가능 유무 테스트를 진행 하여야 합니다.
그 다음 Target Endpoint 를 생성합니다.
생성 시 “Select RDS DB Instance” 를 선택하면 해당 VPC 내에 접속 가능한 RDS Instance List 가 나오고 선택시 기본 정보가 자동 입력 됩니다.
접속 정보 패스워드 및 접속 하고 자 하는 DB 를 명기 후 접속 가능 유무 테스트를 진행 하여야 합니다.
다음으로 Task 를 등록하게 되며 Replication Instance 와 Endpoint 정보를 입력하고 Migration type 을 선택 합니다.
Migration Type 의 경우 “1회성 Migration작업“,”1회성 Migration + CDC Sync”, “CDC Sync” 세가지 모드를 선택 할 수 있습니다.
Validation 과 Logging 기능을 활성화 하면 데이터 Migration 작업 전에 테이블 Type Mapping 등 내부 점검 테스트를 진행하며, 전 과정에 대한 Logging 을 실시 합니다.
Table Mappings 에서는 “Selection rules”을 통해 Migration 대상 선정(최소 Table 단위)이 가능하며 선정 대상 Data 를 조건절 형태로 정의가 가능합니다.
“Transformation rules” 에서는 Object 이름의 대소문자 변환 및 Pre/Post Fix 등의 가공 작업들이 가능합니다.
참고로 Oracle To PG Migration 의 경우 Schema,Table,Column 단위로 소문자 치환의 작업이 필요합니다.
Task 생성 후 화면에서 등록된 Task를 접속,수정,시작/정지/재시작,삭제 할 수 있으며 이관 대상 테이블의 진행상태를 항목별 Count 및 Progress Bar 형태로 확인할 수 있습니다.
하단 상세 메뉴에서는 Task Overview/Monitoring/Log 등의 정보도 확인 가능합니다.
Start Button 으로 Task 를 시작 합니다.
Task 가 정상 완료되면 전체 진행 성공 여부와 Load 된 Table 개수를 확인할 수 있습니다.
하단 상세 메뉴중 “Table statistics” 에서 각 Table 별 Migration 진행 내역 또한 확인 가능합니다.
PostgreSQL DB 로 접속 후 이관 된 Schema 와 테이블의 Data 를 확인 할 수 있습니다.
AWS에 대해 더 알고 싶으세요?
베스핀글로벌의 AWS 전문 엔지니어가 답해드립니다.