SlideShare a Scribd company logo
Azure Database for MySQL
목차
• Azure Database for MySQL Deploy
• MySQL to Azure Database for MySQL Migration
Azure Database for MySQL Deploy
Azure Database for MySQL Deploy
1. 사전 준비
1) https://portal.azure.com에 접속 및 로그인
2) 리소스 그룹 생성 (1/3)
- 왼쪽 네비게이션의 리소스 그룹 클릭 후 리소스 그룹 추가 버튼 클릭
1. 사전 준비
2) 리소스 그룹 생성 (2/3)
- 리소스 그룹을 생성하기 위한 기본정보 입력 후 리뷰+만들기 버튼 클릭
Azure Database for MySQL Deploy
1. 사전 준비
2) 리소스 그룹 생성 (3/3)
- 리소스 그룹 내용 확인 및 만들기 버튼 클릭
Azure Database for MySQL Deploy
2. Azure Database for MySQL 서버 만들기
1) MySQL Server 생성 (1/4)
- 리소스 만들기 -> 데이터베이스 클릭-> Azure Database for MySQL 클릭 -> 만들기 버튼 클릭
Azure Database for MySQL Deploy
2. Azure Database for MySQL 서버 만들기
1) MySQL Server 생성 (1/4)
- 리소스 만들기 -> 데이터베이스 클릭-> Azure Database for MySQL 클릭 -> 만들기 버튼 클릭
Azure Database for MySQL Deploy
단일 서버 와 유연한 서버가 존재하며 현재 유
연한 서버의 경우 MySQL 5.7버전만 이용 가능
하며 preview 버전
- 최대 10개의 읽기 복제본을 사용하여 읽기
작업 확장(단일 서버의 경우 최대 5개)
- 서버를 중지/시작하여 비용 최적화(최대 7
일간 중지가능)
- 단일서버 대비 많은 서버 설정 변수
2. Azure Database for 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
2. Azure Database for MySQL 서버 만들기
1) MySQL Server 생성 (2/4)
- 3가지 유형의 가격책정 계층
Azure Database for MySQL Deploy
기본 범용 메모리 최적화
계산 세대 5세대 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
가격 책정 계층 대상 워크로드
기본
간단한 계산 및 I/O 성능이 필요한 워크로드. 예를 들어 개발 또는 시험, 또는 자주
사용하지 않는 소규모 애플리케이션에 사용되는 서버가 이에 해당
범용
확장 가능한 I/O 처리량을 갖춘 부하 분산된 컴퓨팅 및 메모리가 필요한 대부분의
비즈니스 워크로드. 예를 들어 웹 및 모바일 앱을 호스트하는 서버와
기타 엔터프라이즈 애플리케이션 해당
메모리 최적화
빠른 트랜잭션 처리와 높은 동시성을 위해 메모리 내 성능이 필요한 고성능 데이터
베이스 워크로드. 예를 들어 실시간 데이터를 처리하는 서버 및 고성능 트랜잭션
또는 분석 앱
2. Azure Database for MySQL 가격 책정 계층
1) 가격 책정 계층(2/2)
- 서버를 만든 후 vCore 수, 하드웨어 생성 및 가격 책정 계층(기본 제외)은 몇 초 이내로 늘리거나 줄일 수
있으며 또한 애플리케이션 중단 시간 없이 독립적으로 스토리지 용량을 늘리거나 백업 보존 기간을 늘리거나
줄일 수 있습니다. 서버가 만들어진 후 백업 저장소 유형은 변경할 수 없습니다.
Azure Database for MySQL Deploy
2. Azure Database for MySQL 서버 만들기
1) MySQL Server 생성 (3/4)
- 만들기 이후로 배포가 진행되며 수분 이내에 완료
Azure Database for MySQL Deploy
2. Azure Database for MySQL 서버 만들기
1) MySQL Server 생성 (4/4)
- 모든 리소스 클릭 -> 리소스 그룹 선택 ->서버 이름 선택
Azure Database for MySQL Deploy
2. Azure Database for MySQL 서버 만들기
1) MySQL Server 생성 (4/4)
- 서버 기본정보 확인 및 변수 변경, 보안, 경고 구성
Azure Database for MySQL Deploy
2. Azure Database for MySQL 서버 만들기
2) MySQL Server 방화벽 생성
- Client  MySQL 서버 접근을 위해 방화벽 설정 필요
- 생성한 MySQL 서버 리소스 선택-> 연결 보안 클릭 -> 규칙 이름, Open할 Ip 주소 입력 -> 저장
Azure Database for MySQL Deploy
3. Azure Database for 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)
서버 관리자 로그인
암호 입력
3. Azure Database for MySQL 서버 접속
1) MySQL Client 로 접속 (2/2)
- azure-test-mysql02 서비스 개요 내용 중 서버이름 , 서버 관리자 로그인 이름 확인 후 접속
Azure Database for MySQL Deploy
3. Azure Database for MySQL 서버 접속
2) MySQL Workbench GUI 접속 (1/3)
- Client 컴퓨터에서 MySQL Workbench APP을 실행
- Download URL
https://dev.mysql.com/downloads/workbench/
Azure Database for MySQL Deploy
3. Azure Database for 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
3. Azure Database for MySQL 서버 접속
2) MySQL Workbench GUI 접속 (3/3)
- 생성된 Connection 상자 클릭
Azure Database for MySQL Deploy
MySQL to Azure Database for MySQL Migration
MySQL to Azure Database 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)
MySQL to Azure Database 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)
MySQL to Azure Database for MySQL Migration
2-1. 덤프 내보내기 가져오기 방법 사용시 유의사항
- Azure Database for MySQL 은 InnoDB 엔진만 사용
- 데이터베이스를 덤프할 때 mysqldump에서 --skip-triggers or --triggers=0 옵션 사용
- single-transaction 옵션을 사용
- 여러 VALUE 목록을 포함하는 extended-insert 여러 행 구문을 사용 (Defaults to on)
- 데이터베이스를 덤프할 때 mysqldump에서 order-by-primary 옵션을 사용
- 데이터베이스를 덤프할 때 mysqldump에서 disable-keys 옵션을 사용 (Defaults to on)
- 데이터 사이즈가 큰 경우 Azure blob/저장소에 백업 파일을 복사하고, 이를 통하여 복원을 수행한다.
- 덤프 내보내기 수행시 병렬 수행을 원하는 경우 mysqlpump 툴을 사용
- 소스DB에서 external tablespace 사용시 덤프 후 덤프파일 수정필요
- 소스DB에서 event, trigger, stored procedure, stored function, view object 사용시 덤프 후 덤프파일 수정필요
- 소스와 타겟의 MySQL 버전이 8.0인 경우 기본 패스워드 인증방식 caching_sha2_password 변경
MySQL to Azure Database 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_read_io_threads-마이그레이션의 속도를 개선 하기 위해 Azure Portal의 서버 매개 변수에서 4로 변경
한다.
- 스토리지 계층 스케일 업 – 스토리지 계층이 증가함에 따라 Azure Database for MySQL 서버의 IOP가 점진적으로 증가합니다. 더 빠른 로
드를 위해 스토리지 계층을 늘려 프로비저닝된 IOP를 늘릴 수 있다. 스토리지는 축소할 수 없고 확장만 할 수 있다.
MySQL to Azure Database for MySQL Migration
2-3. Migration (mysqldump)
Azure IaaS
MySQL
Azure for
MySQL
덤프 내보내기 가져오기
① mysqldump
② replication
MySQL to Azure Database for MySQL Migration
2-3. Migration (mysqldump)
1) Source MySQL 대상 정보 확인
2) Target MySQL 대상 정보 확인
MySQL to Azure Database for MySQL Migration
2-3. Migration (mysqldump)
3) Azure for MySQL 방화벽 설정
- MySQL 서버 리소스 선택-> 연결 보안 클릭 -> 규칙 이름, Open할 Ip 주소 입력 -> 저장
MySQL to Azure Database for MySQL Migration
2-3. Migration (mysqldump)
4) Source DB 백업
- Migration 대상 Database 백업
5) Target 에 Database 생성
- 복원 대상 Database 생성
MySQL to Azure Database for MySQL Migration
2-3. Migration (mysqldump)
6) Target 복원(1/2)
- Azure for MySQL에 복원
- 복원 중 Azure for MySQL 프로세스
MySQL to Azure Database for MySQL Migration
2-3. Migration (mysqldump)
6) Target 복원(2/2)
- Azure for MySQL에 복원 확인
MySQL to Azure Database for MySQL Migration
2-3. Migration (mysqldump)
7) Source DB binary log 확인
- mysqldump 파일내의 백업 시점의 binary log 파일명과 포지션 번호를 확인
8) Source MySQL - Target MySQL replication 연결
MySQL to Azure Database for MySQL Migration
2-3. Migration (mysqldump)
9) Target DB Replication 정상 확인
MySQL to Azure Database for MySQL Migration
2-3. Migration (mysqldump)
10) 실시간 데이터 동기화 확인
Thank you

More Related Content

PDF
[Pgday.Seoul 2021] 2. Porting Oracle UDF and Optimization
PDF
[pgday.Seoul 2022] PostgreSQL구조 - 윤성재
PDF
Basics of Logical Replication,Streaming replication vs Logical Replication ,U...
PPTX
mongodb와 mysql의 CRUD 연산의 성능 비교
PDF
[215]네이버콘텐츠통계서비스소개 김기영
PPTX
MongoDB
PDF
[pgday.Seoul 2022] 서비스개편시 PostgreSQL 도입기 - 진소린 & 김태정
PDF
[NDC18] 만들고 붓고 부수고 - 〈야생의 땅: 듀랑고〉 서버 관리 배포 이야기
[Pgday.Seoul 2021] 2. Porting Oracle UDF and Optimization
[pgday.Seoul 2022] PostgreSQL구조 - 윤성재
Basics of Logical Replication,Streaming replication vs Logical Replication ,U...
mongodb와 mysql의 CRUD 연산의 성능 비교
[215]네이버콘텐츠통계서비스소개 김기영
MongoDB
[pgday.Seoul 2022] 서비스개편시 PostgreSQL 도입기 - 진소린 & 김태정
[NDC18] 만들고 붓고 부수고 - 〈야생의 땅: 듀랑고〉 서버 관리 배포 이야기

What's hot (20)

PDF
이무림, Enum의 Boxing을 어찌할꼬? 편리하고 성능좋게 Enum 사용하기, NDC2019
PPTX
Maxscale 소개 1.1.1
PDF
MariaDB MaxScale monitor 매뉴얼
PDF
AWS를 활용하여 Daily Report 만들기 : 로그 수집부터 자동화된 분석까지
PDF
7. 게임 스트리밍 서비스를 위한 아키텍처 - 언리얼 엔진을 중심으로! [레벨 300] - 발표자: 하흥수, 솔루션즈 아키텍트, AWS :...
PDF
파이썬 생존 안내서 (자막)
PPTX
Next-generation MMORPG service architecture
PPTX
[NDC17] Kubernetes로 개발서버 간단히 찍어내기
PDF
MySQL Backup & Recovery
PDF
Mvcc in postgreSQL 권건우
PDF
서버 성능에 대한 정의와 이해
PDF
[Pgday.Seoul 2018] 이기종 DB에서 PostgreSQL로의 Migration을 위한 DB2PG
PPTX
Ansible MySQL MHA
PDF
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
PDF
1.mysql disk io 모니터링 및 분석사례
PDF
超実践 Cloud Spanner 設計講座
PPT
Shell Scripting
PPTX
Aggregate Function - Database
ODP
Logical replication with pglogical
PPTX
Maria db 이중화구성_고민하기
이무림, Enum의 Boxing을 어찌할꼬? 편리하고 성능좋게 Enum 사용하기, NDC2019
Maxscale 소개 1.1.1
MariaDB MaxScale monitor 매뉴얼
AWS를 활용하여 Daily Report 만들기 : 로그 수집부터 자동화된 분석까지
7. 게임 스트리밍 서비스를 위한 아키텍처 - 언리얼 엔진을 중심으로! [레벨 300] - 발표자: 하흥수, 솔루션즈 아키텍트, AWS :...
파이썬 생존 안내서 (자막)
Next-generation MMORPG service architecture
[NDC17] Kubernetes로 개발서버 간단히 찍어내기
MySQL Backup & Recovery
Mvcc in postgreSQL 권건우
서버 성능에 대한 정의와 이해
[Pgday.Seoul 2018] 이기종 DB에서 PostgreSQL로의 Migration을 위한 DB2PG
Ansible MySQL MHA
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
1.mysql disk io 모니터링 및 분석사례
超実践 Cloud Spanner 設計講座
Shell Scripting
Aggregate Function - Database
Logical replication with pglogical
Maria db 이중화구성_고민하기
Ad

Similar to Azure Database for MySQL (20)

PDF
Migration to Azure Database for MySQL
PDF
DB Migration to Azure Database for PostgreSQL
PDF
[오픈소스컨설팅]Day #1 MySQL 엔진소개, 튜닝, 백업 및 복구, 업그레이드방법
PDF
빠르고 안전하게 간편한 AWS로 데이터 마이그레이션 하기::최유정 (AWS 솔루션즈아키텍트)
PDF
AWS DMS를 통한 오라클 DB 마이그레이션 방법 - AWS Summit Seoul 2017
PDF
SQL Azure 실무 도입하기
PDF
DB Azure 서비스 클라우드 플랫폼 및 인프라
PDF
관계형 데이터베이스의 새로운 패러다임 Amazon Aurora :: 김상필 :: AWS Summit Seoul 2016
PDF
스푼라디오 일본에서 한국으로 이전하기 - 최상기 (마이쿤) :: AWS Community Day 2020
PPTX
AWS 6월 웨비나 | AWS에서 MS SQL 서버 운영하기 (김민성 솔루션즈아키텍트)
PPTX
DB Migration to Azure Database for PostgreSQL
PDF
AWS 9월 웨비나 | AWS 데이터베이스 마이그레이션 서비스 활용하기
PDF
SQL Server to Azure SQL Database Migration
PDF
나에게 맞는 AWS 데이터베이스 서비스 선택하기 :: 양승도 :: AWS Summit Seoul 2016
PPTX
Azure를 이용한 Join 없는 글로벌 분산 시스템 설계하기
PDF
AWS 환경에서 MySQL Infra 설계하기-2본론
PDF
AWS 환경에서 MySQL Infra 설계하기-2부.본론
PDF
Amazon Aurora Deep Dive (김기완) - AWS DB Day
PPTX
1711 azure-live
PDF
All about Data Center Migration Session 2. EOS에 대처하는 완벽한 해답, Azure
Migration to Azure Database for MySQL
DB Migration to Azure Database for PostgreSQL
[오픈소스컨설팅]Day #1 MySQL 엔진소개, 튜닝, 백업 및 복구, 업그레이드방법
빠르고 안전하게 간편한 AWS로 데이터 마이그레이션 하기::최유정 (AWS 솔루션즈아키텍트)
AWS DMS를 통한 오라클 DB 마이그레이션 방법 - AWS Summit Seoul 2017
SQL Azure 실무 도입하기
DB Azure 서비스 클라우드 플랫폼 및 인프라
관계형 데이터베이스의 새로운 패러다임 Amazon Aurora :: 김상필 :: AWS Summit Seoul 2016
스푼라디오 일본에서 한국으로 이전하기 - 최상기 (마이쿤) :: AWS Community Day 2020
AWS 6월 웨비나 | AWS에서 MS SQL 서버 운영하기 (김민성 솔루션즈아키텍트)
DB Migration to Azure Database for PostgreSQL
AWS 9월 웨비나 | AWS 데이터베이스 마이그레이션 서비스 활용하기
SQL Server to Azure SQL Database Migration
나에게 맞는 AWS 데이터베이스 서비스 선택하기 :: 양승도 :: AWS Summit Seoul 2016
Azure를 이용한 Join 없는 글로벌 분산 시스템 설계하기
AWS 환경에서 MySQL Infra 설계하기-2본론
AWS 환경에서 MySQL Infra 설계하기-2부.본론
Amazon Aurora Deep Dive (김기완) - AWS DB Day
1711 azure-live
All about Data Center Migration Session 2. EOS에 대처하는 완벽한 해답, Azure
Ad

More from rockplace (20)

PDF
MySQL InnoDB Cluster 소개
PDF
락플레이스 OpenShift Q&A 토크쇼 발표자료
PDF
JBoss EAP on Azure Workshop
PDF
MySQL operator for_kubernetes
PDF
JBoss EAP on Azure
PDF
[락플레이스] RHEL8.4 웨비나 발표자료
PDF
DB Migration to Azure Database for MySQL
PDF
Azure Databases for PostgreSQL MYSQL and MariaDB
PDF
Jenkins를 활용한 Openshift CI/CD 구성
PPTX
Azure databases for PostgreSQL, MySQL and MariaDB
PDF
Red Hat Openshift Container Platform
PDF
Azure Red Hat OpenShift 를 통한 더 빠르고 쉬운 애플리케이션 구축
PDF
Azure SQL Database
PDF
Azure Databases for PostgreSQL, MySQL and MariaDB
PDF
Openshift 활용을 위한 Application의 준비, Cloud Native
PPTX
애플리케이션 최적화를 위한 컨테이너 인프라 구축
PDF
RHEL8의 새로운 기술, 그리고 SQL Server 2019와 함께하는 다양한 이점
PDF
SQL Server 2019 on RHEL Overview & Case Study
PDF
OSS DB on Azure
PDF
Azure Red Hat OpenShift 4를 통한 더 빠르고 쉬운 애플리케이션 구축
MySQL InnoDB Cluster 소개
락플레이스 OpenShift Q&A 토크쇼 발표자료
JBoss EAP on Azure Workshop
MySQL operator for_kubernetes
JBoss EAP on Azure
[락플레이스] RHEL8.4 웨비나 발표자료
DB Migration to Azure Database for MySQL
Azure Databases for PostgreSQL MYSQL and MariaDB
Jenkins를 활용한 Openshift CI/CD 구성
Azure databases for PostgreSQL, MySQL and MariaDB
Red Hat Openshift Container Platform
Azure Red Hat OpenShift 를 통한 더 빠르고 쉬운 애플리케이션 구축
Azure SQL Database
Azure Databases for PostgreSQL, MySQL and MariaDB
Openshift 활용을 위한 Application의 준비, Cloud Native
애플리케이션 최적화를 위한 컨테이너 인프라 구축
RHEL8의 새로운 기술, 그리고 SQL Server 2019와 함께하는 다양한 이점
SQL Server 2019 on RHEL Overview & Case Study
OSS DB on Azure
Azure Red Hat OpenShift 4를 통한 더 빠르고 쉬운 애플리케이션 구축

Azure Database for MySQL

  • 2. 목차 • Azure Database for MySQL Deploy • MySQL to Azure Database for MySQL Migration
  • 3. Azure Database for MySQL Deploy
  • 4. Azure Database for MySQL 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 Database for MySQL 서버 만들기 1) MySQL Server 생성 (1/4) - 리소스 만들기 -> 데이터베이스 클릭-> Azure Database for MySQL 클릭 -> 만들기 버튼 클릭 Azure Database for MySQL Deploy
  • 8. 2. Azure Database for MySQL 서버 만들기 1) MySQL Server 생성 (1/4) - 리소스 만들기 -> 데이터베이스 클릭-> Azure Database for MySQL 클릭 -> 만들기 버튼 클릭 Azure Database for MySQL Deploy 단일 서버 와 유연한 서버가 존재하며 현재 유 연한 서버의 경우 MySQL 5.7버전만 이용 가능 하며 preview 버전 - 최대 10개의 읽기 복제본을 사용하여 읽기 작업 확장(단일 서버의 경우 최대 5개) - 서버를 중지/시작하여 비용 최적화(최대 7 일간 중지가능) - 단일서버 대비 많은 서버 설정 변수
  • 9. 2. Azure Database for 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 Database for MySQL 서버 만들기 1) MySQL Server 생성 (2/4) - 3가지 유형의 가격책정 계층 Azure Database for MySQL Deploy
  • 11. 기본 범용 메모리 최적화 계산 세대 5세대 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 Database for MySQL 서버 만들기 1) MySQL Server 생성 (3/4) - 만들기 이후로 배포가 진행되며 수분 이내에 완료 Azure Database for MySQL Deploy
  • 14. 2. Azure Database for MySQL 서버 만들기 1) MySQL Server 생성 (4/4) - 모든 리소스 클릭 -> 리소스 그룹 선택 ->서버 이름 선택 Azure Database for MySQL Deploy
  • 15. 2. Azure Database for MySQL 서버 만들기 1) MySQL Server 생성 (4/4) - 서버 기본정보 확인 및 변수 변경, 보안, 경고 구성 Azure Database for MySQL Deploy
  • 16. 2. Azure Database for MySQL 서버 만들기 2) MySQL Server 방화벽 생성 - Client  MySQL 서버 접근을 위해 방화벽 설정 필요 - 생성한 MySQL 서버 리소스 선택-> 연결 보안 클릭 -> 규칙 이름, Open할 Ip 주소 입력 -> 저장 Azure Database for MySQL Deploy
  • 17. 3. Azure Database for 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 Database for MySQL 서버 접속 1) MySQL Client 로 접속 (2/2) - azure-test-mysql02 서비스 개요 내용 중 서버이름 , 서버 관리자 로그인 이름 확인 후 접속 Azure Database for MySQL Deploy
  • 19. 3. Azure Database for 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 Database for 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 Database for MySQL 서버 접속 2) MySQL Workbench GUI 접속 (3/3) - 생성된 Connection 상자 클릭 Azure Database for MySQL Deploy
  • 22. MySQL to Azure Database for MySQL Migration
  • 23. MySQL to Azure Database 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 Azure Database 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 Azure Database for MySQL Migration 2-1. 덤프 내보내기 가져오기 방법 사용시 유의사항 - Azure Database for MySQL 은 InnoDB 엔진만 사용 - 데이터베이스를 덤프할 때 mysqldump에서 --skip-triggers or --triggers=0 옵션 사용 - single-transaction 옵션을 사용 - 여러 VALUE 목록을 포함하는 extended-insert 여러 행 구문을 사용 (Defaults to on) - 데이터베이스를 덤프할 때 mysqldump에서 order-by-primary 옵션을 사용 - 데이터베이스를 덤프할 때 mysqldump에서 disable-keys 옵션을 사용 (Defaults to on) - 데이터 사이즈가 큰 경우 Azure blob/저장소에 백업 파일을 복사하고, 이를 통하여 복원을 수행한다. - 덤프 내보내기 수행시 병렬 수행을 원하는 경우 mysqlpump 툴을 사용 - 소스DB에서 external tablespace 사용시 덤프 후 덤프파일 수정필요 - 소스DB에서 event, trigger, stored procedure, stored function, view object 사용시 덤프 후 덤프파일 수정필요 - 소스와 타겟의 MySQL 버전이 8.0인 경우 기본 패스워드 인증방식 caching_sha2_password 변경
  • 26. MySQL to Azure Database 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_read_io_threads-마이그레이션의 속도를 개선 하기 위해 Azure Portal의 서버 매개 변수에서 4로 변경 한다. - 스토리지 계층 스케일 업 – 스토리지 계층이 증가함에 따라 Azure Database for MySQL 서버의 IOP가 점진적으로 증가합니다. 더 빠른 로 드를 위해 스토리지 계층을 늘려 프로비저닝된 IOP를 늘릴 수 있다. 스토리지는 축소할 수 없고 확장만 할 수 있다.
  • 27. MySQL to Azure Database for MySQL Migration 2-3. Migration (mysqldump) Azure IaaS MySQL Azure for MySQL 덤프 내보내기 가져오기 ① mysqldump ② replication
  • 28. MySQL to Azure Database for MySQL Migration 2-3. Migration (mysqldump) 1) Source MySQL 대상 정보 확인 2) Target MySQL 대상 정보 확인
  • 29. MySQL to Azure Database for MySQL Migration 2-3. Migration (mysqldump) 3) Azure for MySQL 방화벽 설정 - MySQL 서버 리소스 선택-> 연결 보안 클릭 -> 규칙 이름, Open할 Ip 주소 입력 -> 저장
  • 30. MySQL to Azure Database for MySQL Migration 2-3. Migration (mysqldump) 4) Source DB 백업 - Migration 대상 Database 백업 5) Target 에 Database 생성 - 복원 대상 Database 생성
  • 31. MySQL to Azure Database for MySQL Migration 2-3. Migration (mysqldump) 6) Target 복원(1/2) - Azure for MySQL에 복원 - 복원 중 Azure for MySQL 프로세스
  • 32. MySQL to Azure Database for MySQL Migration 2-3. Migration (mysqldump) 6) Target 복원(2/2) - Azure for MySQL에 복원 확인
  • 33. MySQL to Azure Database for MySQL Migration 2-3. Migration (mysqldump) 7) Source DB binary log 확인 - mysqldump 파일내의 백업 시점의 binary log 파일명과 포지션 번호를 확인 8) Source MySQL - Target MySQL replication 연결
  • 34. MySQL to Azure Database for MySQL Migration 2-3. Migration (mysqldump) 9) Target DB Replication 정상 확인
  • 35. MySQL to Azure Database for MySQL Migration 2-3. Migration (mysqldump) 10) 실시간 데이터 동기화 확인

Editor's Notes

  • #11: Azure Database for MySQL은 추가 비용 없이 최대 100%의 프로비전된 서버 스토리지를 백업 스토리지로 제공합니다. 이 용량을 초과 하 여 사용 하는 백업 저장소는 매달 GB 단위로 요금이 청구 됩니다. 예를 들어 250 GB의 저장소를 사용 하 여 서버를 프로 비전 하는 경우 무료로 서버를 백업 하는 데 250 GB의 추가 저장소를 사용할 수 있습니다. 250 GB를 초과 하는 백업용 저장소는 가격 책정 모델에 따라 요금이 청구 됩니다. 
  • #12: 최대 16TB 및 2만 IOPS의 지원 기본 가격 책정 계층에서 만든 서버는 나중에 범용으로 또는 메모리 최적화되도록 확장할 수 없습니다. 기본 계층에서는 IOPS 보장을 제공하지 않습니다. 범용 및 메모리 최적화 가격 책정 계층에서 IOPS의 크기는 프로비전된 스토리지 크기와 3:1 비율로 조정됩니다.
  • #13: 서버를 만든 후 vCore 수, 하드웨어 생성, 가격 책정 계층(기본 제외), 스토리지 크기 및 백업 보존 기간을 독립적으로 변경할 수 있습니다. 서버가 만들어진 후 백업 스토리지 유형은 변경할 수 없습니다. vCore 수는 늘리거나 줄일 수 있습니다. 백업 보존 기간은 7~35일 범위에서 늘리거나 줄일 수 있습니다. 스토리지 크기는 늘릴 수 있습니다.  vCore 수, 하드웨어 생성 또는 가격 책정 계층을 변경하면 새 컴퓨팅 할당을 사용하여 원본 서버의 복사본이 만들어집니다. 새 서버가 시작되고 실행된 후 새 서버에 대한 연결로 전환됩니다. 시스템이 새 서버로 전환되면 잠시 동안 새 연결을 설정할 수 없으며, 커밋되지 않은 모든 트랜잭션이 롤백됩니다. 이 기간은 다양하지만, 대부분의 경우 1분 미만입니다. 스토리지 크기 조정 및 백업 보존 기간 변경은 온라인 작업입니다. 가동 중지 시간이 없으며 애플리케이션은 영향을 받지 않습니다. IOPS가 프로비전된 스토리지 크기로 조정되면 스토리지를 확장하여 서버에서 사용할 수 있는 IOPS를 늘릴 수 있습니다.
  • #31: # 데이터 확인 select table_name,table_rows,engine from information_schema.tables where table_schema='employees’; # 2/18 employees 전체 이관 Bin/mysqldump –uroot –p –single-transaction –routines=0 –triggers=0 –events=0 –master-data=2 employees > /tmp/employees.dmp # 스키마 이관 (dump) bin/mysqldump -uroot -p --single-transaction --max_allowed_packet=1024M --no-data --events=1 --routines=1 --triggers=0 employees > /tmp/employees_schema.dmp bin/mysql -uazureadmin@azure-mysql-jmlim -p -h azure-mysql-jmlim.mysql.database.azure.com employees < /tmp/employees_schema.dmp (pump) bin/mysqlpump -uroot -p --skip-dump-rows --skip-definer employees > /tmp/pump.dmp # 이관 후 편집기로 SET SQL_LOG_BIN=0; 삭제 & 저장 # azure MySQL에서 log_bin_trust_function_creators = ON 설정 # 이관 후 편집기로 DEFINER 삭제 & 저장 # 데이터 이관 bin/mysqldump -uroot -p --single-transaction --routines=0 --triggers=0 --events=0 --max_allowed_packet=1024M --skip-triggers --order-by-primary --no-create-info --master-data=2 employees > /tmp/employees_data.dmp bin/mysql -uazureadmin@azure-mysql-jmlim -p -hazure-mysql-jmlim.mysql.database.azure.com employees < /tmp/employees_data.dmp
  • #34: # 복제 계정 생성 create user ‘repl’@’%’ identified by ‘123’; grant replication slave on *.* to’repl’@’%’; # 복제 설정 cat /tmp/employees_new.dmp | grep “CHANGE MASTER TO” CALL mysql.az_replication_change_master('52.188.20.215', 'repl', '123', 3306, 'mysql-bin.000006', 1512, ‘’); CALL mysql.az_replication_start; CALL mysql.az_replication_stop; CALL mysql.az_replication_remove_master; CALL mysql.az_replication_skip_counter;