Azure Database forMySQL Deploy
1. 사전 준비
1) https://portal.azure.com에 접속 및 로그인
2) 리소스 그룹 생성 (1/3)
- 왼쪽 네비게이션의 리소스 그룹 클릭 후 리소스 그룹 추가 버튼 클릭
5.
1. 사전 준비
2)리소스 그룹 생성 (2/3)
- 리소스 그룹을 생성하기 위한 기본정보 입력 후 리뷰+만들기 버튼 클릭
Azure Database for MySQL Deploy
6.
1. 사전 준비
2)리소스 그룹 생성 (3/3)
- 리소스 그룹 내용 확인 및 만들기 버튼 클릭
Azure Database for MySQL Deploy
7.
2. Azure Databasefor MySQL 서버 만들기
1) MySQL Server 생성 (1/4)
- 리소스 만들기 -> 데이터베이스 클릭-> Azure Database for MySQL 클릭 -> 만들기 버튼 클릭
Azure Database for MySQL Deploy
8.
2. Azure Databasefor MySQL 서버 만들기
1) MySQL Server 생성 (1/4)
- 리소스 만들기 -> 데이터베이스 클릭-> Azure Database for MySQL 클릭 -> 만들기 버튼 클릭
Azure Database for MySQL Deploy
단일 서버 와 유연한 서버가 존재하며 현재 유연한 서버의
경우 MySQL 5.7버전만 이용 가능하며 preview 버전
- 네트워크 격리(퍼블릭 액세스 + 프라이빗(Vnet) 액세스)
다음과 같은 기능을 원하는 경우 VNet 통합 옵션을 선택
• 개인 IP 주소를 사용하여 동일한 가상 네트워크의 Azure 리소스
에서 유연한 서버에 연결
• VPN 또는 ExpressRoute를 사용하여 비 Azure 리소스에서 유연
한 서버에 연결
• 비 퍼블릭 엔드포인트
- 최대 10개의 읽기 복제본을 사용하여 읽기 작업 확장(단일
서버의 경우 최대 5개)
- 서버를 중지/시작하여 비용 최적화(최대 7일간 중지가능)
9.
2. Azure Databasefor MySQL 서버 만들기
1) MySQL Server 생성 (2/4)
- MySQL 서버 정보 입력 후 만들기 버튼 클릭
Parameter Name Description etc
서버 이름
Azure Database for MySQL 서버를 식별하
는 고유한 이름
소문자, 숫자 및 - 만 사용가능
구독 서버에 사용할 Azure 구독
리소스 그룹 종속될 리소스 그룹
소스 선택 신규 또는 기존 백업을 통한 서버구성
비어 있음 : 신규 서버
백업 : 기존 백업을 통한 서버구성
서버 관리자 로그인 이름 서버에 연결시 사용 할 로그인 계정
azure_superuser, admin, administrator,
root, guest 또는 public 사용 불가
암호 서버 관리자 계정의 암호
8-128자 / 다음 범주 중 세 개의 문자를 포
함해야 한다. 영문 대문자, 영문 소문자, 숫
자(0-9) 및 영숫자가 아닌 문자(!, $, #, % 등)
암호 확인 서버 관리자 계정의 암호 확인
위치 서버가 설치될 위치
버전 MySQL 버전 선택 5.6 , 5.7 , 8.0 지원하며 하위 버전 선택불가
가격 책정 계층 서버 스펙에 따른 책정 계층 선택
Azure Database for MySQL Deploy
10.
2. Azure Databasefor MySQL 서버 만들기
1) MySQL Server 생성 (2/4)
- 3가지 유형의 가격책정 계층
Azure Database for MySQL Deploy
11.
기본 범용 메모리최적화
계산 세대 4세대, 5세대 4세대, 5세대 5세대
vCore 수 1, 2 2, 4, 8, 16, 32, 64 2, 4, 8, 16, 32
vCore 메모리 2GB 5GB 10 GB
저장소 크기 5GB-1TB 5GB-16TB 5GB-16TB
데이터베이스 백업 보존
기간
7-35일 7-35일 7-35일
2. Azure Database for MySQL 가격 책정 계층
1) 가격 책정 계층(1/2)
- Azure Database for MySQL 서버는 기본, 범용 및 메모리 최적화의 세 가지 가격 책정 계층 중 하나에서
만들 수 있습니다.
Azure Database for MySQL Deploy
12.
가격 책정 계층대상 워크로드
기본
간단한 계산 및 I/O 성능이 필요한 워크로드. 예를 들어 개발 또는 시험, 또는 자주
사용하지 않는 소규모 애플리케이션에 사용되는 서버가 이에 해당
범용
확장 가능한 I/O 처리량을 갖춘 부하 분산된 컴퓨팅 및 메모리가 필요한 대부분의
비즈니스 워크로드. 예를 들어 웹 및 모바일 앱을 호스트하는 서버와
기타 엔터프라이즈 애플리케이션 해당
메모리 최적화
빠른 트랜잭션 처리와 높은 동시성을 위해 메모리 내 성능이 필요한 고성능 데이터
베이스 워크로드. 예를 들어 실시간 데이터를 처리하는 서버 및 고성능 트랜잭션
또는 분석 앱
2. Azure Database for MySQL 가격 책정 계층
1) 가격 책정 계층(2/2)
- 서버를 만든 후 vCore 수, 하드웨어 생성 및 가격 책정 계층(기본 제외)은 몇 초 이내로 늘리거나 줄일 수
있으며 또한 애플리케이션 중단 시간 없이 독립적으로 스토리지 용량을 늘리거나 백업 보존 기간을 늘리거나
줄일 수 있습니다. 서버가 만들어진 후 백업 저장소 유형은 변경할 수 없습니다.
Azure Database for MySQL Deploy
13.
2. Azure Databasefor MySQL 서버 만들기
1) MySQL Server 생성 (3/4)
- 만들기 이후로 배포가 진행되며 수분 이내에 완료
Azure Database for MySQL Deploy
14.
2. Azure Databasefor MySQL 서버 만들기
1) MySQL Server 생성 (4/4)
- 모든 리소스 클릭 -> 리소스 그룹 선택 ->서버 이름 선택
Azure Database for MySQL Deploy
15.
2. Azure Databasefor MySQL 서버 만들기
1) MySQL Server 생성 (4/4)
- 서버 기본정보 확인 및 변수 변경, 보안, 경고 구성
Azure Database for MySQL Deploy
16.
2. Azure Databasefor MySQL 서버 만들기
2) MySQL Server 방화벽 생성
- Client MySQL 서버 접근을 위해 방화벽 설정 필요
- 생성한 MySQL 서버 리소스 선택-> 연결 보안 클릭 -> 규칙 이름, Open할 Ip 주소 입력 -> 저장
Azure Database for MySQL Deploy
17.
3. Azure Databasefor MySQL 서버 접속
1) MySQL Client 로 접속 (1/2)
- MySQL Client 사용을 위해서는 MySQL Client 프로그램이 설치되어 있어야 한다.
- Download URL
https://dev.mysql.com/downloads/
- 접속 명령어
Azure Database for MySQL Deploy
Parameter
Name
Description 대상
--host(-h) 서버 이름 입력 azure-test-mysql02.mysql.database.azure.com
--user(-u)
서버 관리자 로그인
이름 입력
myadmin@azure-test-mysql02
--password(-p)
서버 관리자 로그인
암호 입력
18.
3. Azure Databasefor MySQL 서버 접속
1) MySQL Client 로 접속 (2/2)
- azure-test-mysql02 서비스 개요 내용 중 서버이름 , 서버 관리자 로그인 이름 확인 후 접속
Azure Database for MySQL Deploy
19.
3. Azure Databasefor MySQL 서버 접속
2) MySQL Workbench GUI 접속 (1/3)
- Client 컴퓨터에서 MySQL Workbench APP을 실행
- Download URL
https://dev.mysql.com/downloads/workbench/
Azure Database for MySQL Deploy
20.
3. Azure Databasefor MySQL 서버 접속
2) MySQL Workbench GUI 접속 (2/3)
- 클릭 -> Connection 정보 입력 -> Test Connection 클릭 -> Successfully made the MySQL
Connection 팝업 출력시 연결 정상 -> OK 클릭
Azure Database for MySQL Deploy
Parameter
Name
Description 대상
Connection Name 연결 이름 사용자 임의로 정의
Connection
Method
연결 방법 TCP/IP
Hostname 서버 이름 입력 azure-test-mysql02.mysql.database.azure.com
Port 포트 3306
Username
서버 관리자 로그인
이름 입력
myadmin@azure-test-mysql02
password
서버 관리자 로그인
암호 입력
Default Schema
접속시 기본 select될
Database
21.
3. Azure Databasefor MySQL 서버 접속
2) MySQL Workbench GUI 접속 (3/3)
- 생성된 Connection 상자 클릭
Azure Database for MySQL Deploy
MySQL to AzureDatabase for MySQL Migration
1. Migration 방법론
덤프 내보내기 가져오기 Azure Database Migration Service
- On-premise와 Azure의 DB를 동기화
- 가동 중지 시간의 최소화
- As-is 와 To-be의 상위 버전은 동일해야함
- MySQL 8.0으로의 마이그레이션은 지원하지 않음
1. mysqldump(mysqlpump)를 이용한 on-
premise db백업
2. mysql를 이용한 Azure로 복원
1. Azure DMS 인스턴스 생성
2. Azure DMS 프로젝트 생성
3. 마이그레이션 실행
4. 마이그레이션 중단
- DB 정합성을 위해 서비스 중지 필요
(복제 구성으로 가동 중지 시간 최소화 가능)
- 대용량 Database의 경우 성능상 지양
On-premise
MySQL
Azure for
MySQL
특징 및 주의사항특징 및 주의사항
- Azure Database for MySQL 은 InnoDB, Memory 엔진 지원
- Azure Database for MySQL 지원버전(5.6, 5.7, 8.0)
24.
MySQL to AzureDatabase for MySQL Migration
1. Migration 방법론
Load Data Infile
1. Select into outfile ~ 명령을 통한 data export(이기종
DB의 경우 각 Database의 csv export명령어 사용)
2. Load Data Local Infile ~ 명령을 통한 data import
- MySQL 이외의 이기종 Database 마이그레이션 가능
- 오프라인 마이그레이션만 가능
- Import 성능은 가장 우수
- 테이블 단위로만 마이그레이션 가능
On-premise
Database
Azure for
MySQL
특징 및 주의사항
- Azure Database for MySQL 은 InnoDB, Memory 엔진 지원
- Azure Database for MySQL 지원버전(5.6, 5.7, 8.0)
25.
MySQL to AzureDatabase for MySQL Migration
2-1. 덤프 내보내기 가져오기 방법 사용시 유의사항
- Azure Database for MySQL 은 InnoDB 엔진만 사용 가능하므로 소스 database에서 다른 엔진을 사용하는지 확인 후 타 엔진 사용시 먼저
소스DB에서 InnoDB 엔진으로 변환한다.
타 엔진 사용여부 확인 쿼리
mysql>select table_schema,table_name,engine from information_schema.tables where engine <> 'innodb' and table_schema
not in('mysql','sys','information_schema','performance_schema');
타 엔진 사용시 아래의 쿼리로 InnoDB 엔진으로 변환
mysql>alter table [TABLE_NAME] engine=innodb;
※ 수행시 테이블 리빌딩을 하므로 사이즈에 따라 시간소요가 되며 오프라인에서 수행한다.
- 데이터베이스를 덤프할 때 mysqldump에서 --skip-triggers 옵션을 사용한다. 데이터 복원 중 발생하는 트리거 명령을 방지하기 위해 덤프
파일에서 트리거를 제외한다. 마이그레이션 완료 후 서비스 시작 전 트리거를 import 시켜준다.
- single-transaction 옵션을 사용하여 트랜잭션 격리 모드를 REPEATABLE READ로 설정하고 데이터를 덤프하기 전에 START
TRANSACTION SQL 문을 서버로 보낸다. 이 옵션 사용으로 InnoDB 엔진에 한하여 lock이 발생되지 않도록 한다.
- 여러 VALUE 목록을 포함하는 extended-insert 여러 행 구문을 사용한다. 그러면 덤프 파일이 작아지고 파일을 다시 로드할 때 삽입 속도
가 빨라진다. ((Defaults to on)
26.
MySQL to AzureDatabase for MySQL Migration
2-1. 덤프 내보내기 가져오기 방법 사용시 유의사항
- 데이터가 기본 키 순서로 스크립팅 되도록 데이터베이스를 덤프할 때 mysqldump에서 order-by-primary 옵션을 사용한다.
- 로드 전에 외래 키 제약 조건을 비활성화하려면 데이터를 덤프할 때 mysqldump에서 disable-keys 옵션을 사용한다. 외래 키 검사 비활성
화는 성능 향상을 제공한다. 제약 조건을 활성화하고 참조 무결성을 확인하도록 로드 후 데이터를 확인한다. (Defaults to on)
- Azure blob/저장소에 백업 파일을 복사하고, 인터넷을 통해 복원을 수행할 때보다 훨씬 더 빨리 수행할 수 있는 위치에서 복원을 수행한
다.
- 덤프 내보내기 수행시 병렬 수행을 원하는 경우 mysqlpump 툴을 사용한다. 기본적인 방법은 mysqldump와 유사하며 옵션에 약간의 차
이가 있다. (복원시는 mysqldump와 동일하게 1 thread)
- 소스DB에서 external tablespace 사용 case의 경우 복원시 error 발생. 이 경우 해당 테이블 재구성 필요.
Ex> mysql> CREATE TABLE t1 (c1 INT PRIMARY KEY) DATA DIRECTORY = '/external/directory’;
- mysqldump 툴 사용시 event, trigger, stored procedure, stored function, view object의 경우 definer가 dump 파일에 기록되므로 해당
object는 툴이 아닌 매뉴얼 하게 하드카피하여 타겟 DB에 이관시킨다.
mysqlpump 툴 사용시 mysqlpump의 skip-definer 옵션을 사용하여 뷰 및 저장 프로시저에 대한 create 문에서 definer 및 SQL SECURITY
절을 생략한다. 덤프 파일을 다시 로드하면 기본 DEFINER 및 SQL SECURITY 값을 사용하는 개체가 생성된다.
- 소스와 타겟의 MySQL 버전이 8.0인 경우 기본 패스워드 인증방식이 caching_sha2_password 로 변경 되었으나 Azure database for
MySQL은 이 인증방식을 지원하지 않고 이전 인증방식인 native password 만 지원하므로 계정에 대한 이관은 AS-IS 에서 native
password 로 변경 후 덤프 내보내기&가져오기로 이관 또는 매뉴얼 작업한다.
mysqldump -uroot -p --single-transaction --routines=0 --triggers=0 --events=0 --max_allowed_packet=1024M --skip-triggers --order-
by-primary --master-data=2 employees > /tmp/employees_new.dmp
27.
MySQL to AzureDatabase for MySQL Migration
2-2. 빠른 데이터 로드를 위한 유의사항
- max_allowed_packet – 긴 행으로 인한 오버플로 문제를 방지하기 위해 1073741824(예: 1GB)로 설정한다.
- Slow_query_log – 저속 쿼리 로그를 해제하려면 OFF로 설정한다. 이렇게 하면 데이터 로드 중 느린 쿼리 로깅으로 인한 오버헤드가 제거
된다.
- Query_store_capture_mode – 쿼리 저장소 해제 하려면 없음으로 설정 한다. 이렇게 하면 쿼리 저장소의 샘플링 작업으로 인한 오버헤드
가 제거된다.
- Innodb_buffer_pool_size – 마이그레이션 중에 포털의 가격 책정 계층에서 서버를 32개의 vCore 메모리 최적화 SKU로 확장하여
innodb_buffer_pool_size를 늘립니다. Innodb_buffer_pool_size는 Azure Database for MySQL 서버에 대한 컴퓨팅을 확장해야만 늘릴 수
있다.
- innodb_io_capacity & innodb_io_capacity_max-Azure Portal의 서버 매개 변수에서 9000로 변경 하 여 마이그레이션 속도를 최적화 하기
위해 IO 사용률을 향상 시킨다.
- innodb_write_io_threads & innodb_write_io_threads-마이그레이션의 속도를 개선 하기 위해 Azure Portal의 서버 매개 변수에서 4로 변
경 한다.
- 스토리지 계층 스케일 업 – 스토리지 계층이 증가함에 따라 Azure Database for MySQL 서버의 IOP가 점진적으로 증가합니다. 더 빠른 로
드를 위해 스토리지 계층을 늘려 프로비저닝된 IOP를 늘릴 수 있다. 스토리지는 축소할 수 없고 확장만 할 수 있다.
28.
MySQL to AzureDatabase for MySQL Migration
2-3. Migration (mysqldump)
Azure IaaS
MySQL
Azure for
MySQL
덤프 내보내기 가져오기
① mysqldump
② replication
29.
MySQL to AzureDatabase for MySQL Migration
2-3. Migration (mysqldump)
1) Source MySQL 대상 정보 확인
2) Target MySQL 대상 정보 확인
30.
MySQL to AzureDatabase for MySQL Migration
2-3. Migration (mysqldump)
3) Azure for MySQL 방화벽 설정
- MySQL 서버 리소스 선택-> 연결 보안 클릭 -> 규칙 이름, Open할 Ip 주소 입력 -> 저장
31.
MySQL to AzureDatabase for MySQL Migration
2-3. Migration (mysqldump)
4) Source DB 백업
- Migration 대상 Database 백업
5) Target 에 Database 생성
- 복원 대상 Database 생성
32.
MySQL to AzureDatabase for MySQL Migration
2-3. Migration (mysqldump)
6) Target 복원(1/2)
- Azure for MySQL에 복원
- 복원 중 Azure for MySQL 프로세스
33.
MySQL to AzureDatabase for MySQL Migration
2-3. Migration (mysqldump)
6) Target 복원(2/2)
- Azure for MySQL에 복원 확인
34.
MySQL to AzureDatabase for MySQL Migration
2-3. Migration (mysqldump)
7) Source DB binary log 확인
- mysqldump 파일내의 백업 시점의 binary log 파일명과 포지션 번호를 확인
8) Source MySQL - Target MySQL replication 연결
35.
MySQL to AzureDatabase for MySQL Migration
2-3. Migration (mysqldump)
9) Target DB Replication 정상 확인
36.
MySQL to AzureDatabase for MySQL Migration
2-3. Migration (mysqldump)
10) 실시간 데이터 동기화 확인
37.
MySQL to AzureDatabase for MySQL Migration
3-1. DMS 사용시 유의사항
- 소스DB와 타겟DB의 버전은 동일해야 한다. 예를들어 5.6->5.6 / 5.7->5.7
- MySQL 8.0으로의 마이그레이션은 지원되지 않는다.
- 원본 MySQL 버전은 5.6.35, 5.7.18 이상이어야 한다.
- Azure Database for MySQL은 다음을 지원한다.
MySQL 커뮤니티 버전
InnoDB 엔진
- 원본 MySQL my.ini(Windows) 또는 my.cnf(Unix)로 이진 로깅을 사용
Server_id를 1 이상의 숫자로 설정(예: Server_id=1(MySQL 5.6에만 해당))
log-bin = <path>로 설정(MySQL 5.6에만 해당)
binlog_format = row로 설정
Expire_logs_days = 5(권장됨 - MySQL 5.6에만 해당)
- 스키마 마이그레이션 전 대상 Azure Database for MySQL 에 아래 설정 추가
log_bin_trust_function_creators = 1
This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled (you
*might* want to use the less safe log_bin_trust_function_creators variable) 에러방지
super 권한이 없는 사용자로 routine 생성 시 발생
38.
MySQL to AzureDatabase for MySQL Migration
3-1. DMS 사용시 유의사항
- 대상 Azure Database for MySQL의 스키마에는 트리거가 없어야 한다.
대상 데이터베이스에서 트리거를 삭제하려면:
SELECT Concat('DROP TRIGGER ', Trigger_Name, ';') FROM information_schema.TRIGGERS WHERE TRIGGER_SCHEMA =
'your_schema';
- 대상 Azure Database for MySQL의 스키마에는 외래 키가 없어야 한다.
외래 키를 삭제하려면 다음 쿼리를 사용합니다.
SET group_concat_max_len = 8192;
SELECT SchemaName, GROUP_CONCAT(DropQuery SEPARATOR ';n') as DropQuery, GROUP_CONCAT(AddQuery SEPARATOR
';n') as AddQuery
FROM
(SELECT
KCU.REFERENCED_TABLE_SCHEMA as SchemaName, KCU.TABLE_NAME, KCU.COLUMN_NAME,
CONCAT('ALTER TABLE ', KCU.TABLE_NAME, ' DROP FOREIGN KEY ', KCU.CONSTRAINT_NAME) AS DropQuery,
CONCAT('ALTER TABLE ', KCU.TABLE_NAME, ' ADD CONSTRAINT ', KCU.CONSTRAINT_NAME, ' FOREIGN KEY (`',
KCU.COLUMN_NAME, '`) REFERENCES `', KCU.REFERENCED_TABLE_NAME, '` (`', KCU.REFERENCED_COLUMN_NAME, '`) ON
UPDATE ',RC.UPDATE_RULE, ' ON DELETE ',RC.DELETE_RULE) AS AddQuery
FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE KCU, information_schema.REFERENTIAL_CONSTRAINTS RC
WHERE
KCU.CONSTRAINT_NAME = RC.CONSTRAINT_NAME
AND KCU.REFERENCED_TABLE_SCHEMA = RC.UNIQUE_CONSTRAINT_SCHEMA
AND KCU.REFERENCED_TABLE_SCHEMA = 'schema_name') Queries
GROUP BY SchemaName;
39.
MySQL to AzureDatabase for MySQL Migration
3-1. DMS 사용시 유의사항
- 스키마 migration시 event, stored procedure, stored function object의 경우 definer가 dump 파일에 기록되므로 Source MySQL에서
mysqldump 백업이후 dump파일내의 definer 부분을 삭제한 후 schema migration을 수행한다.
- 원본 MySQL 데이터베이스에서 JSON 데이터 형식이 있는 경우 지속적인 동기화를 수행하는 동안 마이그레이션이 실패한다.
JSON 데이터 형식을 원본 MySQL 데이터베이스의 medium text 또는 Longtext로 수정한다.
- 테이블에 기본 키가 없는 경우 지속적인 동기화가 실패한다.
마이그레이션을 계속할 수 있도록 일시적으로 테이블에 대한 기본 키를 설정한다. 데이터 마이그레이션이 완료된 후 기본 키를
제거할 수 있다.
- LOB 데이터 형식이 기본 키로 사용되는 경우 마이그레이션이 실패한다.
기본 키를 다른 데이터 형식 또는 LOB가 아닌 열로 바꾼다.
- Lob (Large Object) 열의 길이가 "제한 LOB size" 매개 변수 (64 KB 보다 크지 않아야 함) 보다 큰 경우 데이터가 대상에서 잘릴 수 있다.
이 쿼리를 사용하여 LOB 열의 길이를 확인할 수 있다.
SELECT max(length(description)) as LEN from catalog;
lob 개체가 64 KB 보다 큰 경우 "무제한 Lob 크기 허용" 매개 변수를 사용 한다. "무제한 LOB 크기 허용" 매개 변수를 사용
하는 마이그레이션은 "LOB 크기 제한" 매개 변수를 사용 하는 마이그레이션 보다 속도가 느리다.
- Azure Database Migration Service의 각 인스턴스는 동시 마이그레이션을 위해 최대 4개의 데이터베이스를 지원한다. 또한 구독에서 지
역당 두 개의 Azure Database Migration Service 인스턴스로 제한된다. 예를 들어 마이그레이션할 40개의 데이터베이스가 있는 경우 그
중 8개만 동시에 마이그레이션할 수 있으며, 두 개의 Azure Database Migration Service 인스턴스를 만든 경우에만 마이그레이션할 수 있
다.
40.
MySQL to AzureDatabase for MySQL Migration
3-2. Migration (DMS)
Azure Database Migration Service
41.
MySQL to AzureDatabase for MySQL Migration
2-2. Migration (DMS)
1) Source MySQL 대상 정보 확인 2) Target MySQL 대상 정보 확인
42.
MySQL to AzureDatabase for MySQL Migration
2-2. Migration (DMS)
3) Target MySQL 에 이관 대상 database 생성
4) Source MySQL 에서 이관대상인 employees database의 테이블 schema migration
Source 백업
43.
MySQL to AzureDatabase for MySQL Migration
2-2. Migration (DMS)
4) Source MySQL 에서 이관대상인 employees database의 테이블 schema migration
Dump파일 수정
44.
MySQL to AzureDatabase for MySQL Migration
2-2. Migration (DMS)
4) Source MySQL 에서 이관대상인 employees database의 테이블 schema migration
Target MySQL log_bin_trust_function_creators OFF -> ON 변경
45.
MySQL to AzureDatabase for MySQL Migration
2-2. Migration (DMS)
4) Source MySQL 에서 이관대상인 employees database의 테이블 schema migration
Target 복원
46.
MySQL to AzureDatabase for MySQL Migration
2-2. Migration (DMS)
5) Target MySQL 사전 유효성 검사
Trigger 유무 확인
출력 결과가 없을시 Trigger가 없는 상태
출력결과 존재 시 Trigger를 별도 백업을 받은 후 마이그레이션 시작전 출력된 SQL을 통하여 삭제한다.
외래키 유무 확인
출력 결과가 없을시 외래키가 없는 상태
출력 결과 존재 시 출력결과의 DropQuery 구문을 사
용하여 외래키를 삭제한다.
47.
MySQL to AzureDatabase for MySQL Migration
2-2. Migration (DMS)
6) Source MySQL DMS 용 계정 생성
48.
MySQL to AzureDatabase for MySQL Migration
2-2. Migration (DMS)
7) DMS 인스턴스 만들기
- 리소스 만들기 -> Azure Database Migration Service를 검색
49.
MySQL to AzureDatabase for MySQL Migration
2-2. Migration (DMS)
7) DMS 인스턴스 만들기
- Azure Database Migration Service 화면에서 만들기 선택
50.
MySQL to AzureDatabase for MySQL Migration
2-2. Migration (DMS)
7) DMS 인스턴스 만들기
- 구독, 리소스 그룹, 서비스 이름, 위치 지정 - 가격 책정 계층
온라인 마이그레이션을 위해 프리미엄 선택 -> 적용
51.
MySQL to AzureDatabase for MySQL Migration
2-2. Migration (DMS)
7) DMS 인스턴스 만들기
- 다음: 네트워킹 클릭 - 가상 네트워크 이름 작성 -> 검토+만들기 클릭
52.
MySQL to AzureDatabase for MySQL Migration
2-2. Migration (DMS)
7) DMS 인스턴스 만들기
- 만들기 클릭
53.
MySQL to AzureDatabase for MySQL Migration
2-2. Migration (DMS)
8) 마이그레이션 프로젝트 만들기
- 모든 리소스 클릭 - 앞전에 생성한 DMS 인스턴스 클릭
54.
MySQL to AzureDatabase for MySQL Migration
2-2. Migration (DMS)
8) 마이그레이션 프로젝트 만들기
- 새 마이그레이션 프로젝트 클릭
55.
MySQL to AzureDatabase for MySQL Migration
2-2. Migration (DMS)
8) 마이그레이션 프로젝트 만들기
- 프로젝트 이름 : 임의 작성
원본 서버 유형 : MySQL 선택
대상 서버 유형 : Azure Database for MySQL 선택
활동 유형 선택 : 온라인 데이터 마이그레이션 선택
-> 저장 클릭 -> 활동 만들기 및 실행 클릭
56.
MySQL to AzureDatabase for MySQL Migration
2-2. Migration (DMS)
8) 마이그레이션 프로젝트 만들기
- 원본 세부 정보 입력 -> 다음:대상선택 클릭
원본 서버 이름 : 원본 MySQL ip 주소 입력
서버 포트 : 원본 MySQL 포트번호 입력
사용자 이름 : 원본 MySQL로 접근할 사용자
이름 입력
암호 : 설정된 사용자에 대한 암호 입력
57.
MySQL to AzureDatabase for MySQL Migration
2-2. Migration (DMS)
8) 마이그레이션 프로젝트 만들기
- 대상 세부 정보 입력 -> 다음: 데이터베이스 선택 클릭
대상 서버 이름 : Azure MySQL 서버이름 입력
사용자 이름 : Azure MySQL 사용자 이름 입력
암호 : 설정된 Azure MySQL 사용자에 대한 암
호 입력
58.
MySQL to AzureDatabase for MySQL Migration
2-2. Migration (DMS)
8) 마이그레이션 프로젝트 만들기
- 대상 데이터베이스명 선택-> 다음 : 마이그레이션 설정 구성 선택
59.
MySQL to AzureDatabase for MySQL Migration
2-2. Migration (DMS)
8) 마이그레이션 프로젝트 만들기
- LOB 데이터 크기 설정 -> 다음: 요약 클릭
LOB 개체가 64 KB 보다 큰 경우 “무제한 LOB 크기
허용" 매개 변수를 사용.
“무제한 LOB 크기 허용" 매개 변수를 사용 하는 마
이그레이션은 "LOB 크기 제한" 매개 변수를 사용
하는 마이그레이션 보다 속도가 느리므로 사전에
LOB 개체 사용여부 및 크기를 확인하여 선택한다.
60.
MySQL to AzureDatabase for MySQL Migration
2-2. Migration (DMS)
8) 마이그레이션 프로젝트 만들기
- 작업 이름 작성 -> Start migration클릭
61.
MySQL to AzureDatabase for MySQL Migration
2-2. Migration(DMS)
9) 마이그레이션 실행
- 수행 중 DMS web화면
62.
MySQL to AzureDatabase for MySQL Migration
2-2. Migration (DMS)
9) 마이그레이션 실행
- 전체 로드 완료 후 DMS web화면
- database명 클릭 ->
증분 데이터 동기화 클릭
63.
MySQL to AzureDatabase for MySQL Migration
2-2. Migration (DMS)
9) 마이그레이션 실행
- 동기화 정상 확인 -> API 중지 -> 중단 시작 클릭 -> 보류중인 변경내용 0 확인 -> 확인 클릭 -> 적용 클
릭