Diese Präsentation wurde erfolgreich gemeldet.
Die SlideShare-Präsentation wird heruntergeladen. ×

DB Migration to Azure Database for MySQL

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Wird geladen in …3
×

Hier ansehen

1 von 36 Anzeige

Weitere Verwandte Inhalte

Diashows für Sie (20)

Ähnlich wie DB Migration to Azure Database for MySQL (20)

Anzeige

Weitere von rockplace (17)

Aktuellste (20)

Anzeige

DB Migration to Azure Database for MySQL

  1. 1. Azure Database for MySQL
  2. 2. 목차 • Azure Database for MySQL Deploy • MySQL to Azure Database for MySQL Migration
  3. 3. Azure Database for MySQL Deploy
  4. 4. Azure Database for MySQL Deploy 1. 사전 준비 1) https://portal.azure.com에 접속 및 로그인 2) 리소스 그룹 생성 (1/3) - 왼쪽 네비게이션의 리소스 그룹 클릭 후 리소스 그룹 추가 버튼 클릭
  5. 5. 1. 사전 준비 2) 리소스 그룹 생성 (2/3) - 리소스 그룹을 생성하기 위한 기본정보 입력 후 리뷰+만들기 버튼 클릭 Azure Database for MySQL Deploy
  6. 6. 1. 사전 준비 2) 리소스 그룹 생성 (3/3) - 리소스 그룹 내용 확인 및 만들기 버튼 클릭 Azure Database for MySQL Deploy
  7. 7. 2. Azure Database for MySQL 서버 만들기 1) MySQL Server 생성 (1/4) - 리소스 만들기 -> 데이터베이스 클릭-> Azure Database for MySQL 클릭 -> 만들기 버튼 클릭 Azure Database for MySQL Deploy
  8. 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. 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. 10. 2. Azure Database for MySQL 서버 만들기 1) MySQL Server 생성 (2/4) - 3가지 유형의 가격책정 계층 Azure Database for MySQL Deploy
  11. 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. 12. 가격 책정 계층 대상 워크로드 기본 간단한 계산 및 I/O 성능이 필요한 워크로드. 예를 들어 개발 또는 시험, 또는 자주 사용하지 않는 소규모 애플리케이션에 사용되는 서버가 이에 해당 범용 확장 가능한 I/O 처리량을 갖춘 부하 분산된 컴퓨팅 및 메모리가 필요한 대부분의 비즈니스 워크로드. 예를 들어 웹 및 모바일 앱을 호스트하는 서버와 기타 엔터프라이즈 애플리케이션 해당 메모리 최적화 빠른 트랜잭션 처리와 높은 동시성을 위해 메모리 내 성능이 필요한 고성능 데이터 베이스 워크로드. 예를 들어 실시간 데이터를 처리하는 서버 및 고성능 트랜잭션 또는 분석 앱 2. Azure Database for MySQL 가격 책정 계층 1) 가격 책정 계층(2/2) - 서버를 만든 후 vCore 수, 하드웨어 생성 및 가격 책정 계층(기본 제외)은 몇 초 이내로 늘리거나 줄일 수 있으며 또한 애플리케이션 중단 시간 없이 독립적으로 스토리지 용량을 늘리거나 백업 보존 기간을 늘리거나 줄일 수 있습니다. 서버가 만들어진 후 백업 저장소 유형은 변경할 수 없습니다. Azure Database for MySQL Deploy
  13. 13. 2. Azure Database for MySQL 서버 만들기 1) MySQL Server 생성 (3/4) - 만들기 이후로 배포가 진행되며 수분 이내에 완료 Azure Database for MySQL Deploy
  14. 14. 2. Azure Database for MySQL 서버 만들기 1) MySQL Server 생성 (4/4) - 모든 리소스 클릭 -> 리소스 그룹 선택 ->서버 이름 선택 Azure Database for MySQL Deploy
  15. 15. 2. Azure Database for MySQL 서버 만들기 1) MySQL Server 생성 (4/4) - 서버 기본정보 확인 및 변수 변경, 보안, 경고 구성 Azure Database for MySQL Deploy
  16. 16. 2. Azure Database for MySQL 서버 만들기 2) MySQL Server 방화벽 생성 - Client → MySQL 서버 접근을 위해 방화벽 설정 필요 - 생성한 MySQL 서버 리소스 선택-> 연결 보안 클릭 -> 규칙 이름, Open할 Ip 주소 입력 -> 저장 Azure Database for MySQL Deploy
  17. 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. 18. 3. Azure Database for MySQL 서버 접속 1) MySQL Client 로 접속 (2/2) - azure-test-mysql02 서비스 개요 내용 중 서버이름 , 서버 관리자 로그인 이름 확인 후 접속 Azure Database for MySQL Deploy
  19. 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. 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. 21. 3. Azure Database for MySQL 서버 접속 2) MySQL Workbench GUI 접속 (3/3) - 생성된 Connection 상자 클릭 Azure Database for MySQL Deploy
  22. 22. MySQL to Azure Database for MySQL Migration
  23. 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. 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. 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. 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. 27. MySQL to Azure Database for MySQL Migration 2-3. Migration (mysqldump) Azure IaaS MySQL Azure for MySQL 덤프 내보내기 가져오기 ① mysqldump ② replication
  28. 28. MySQL to Azure Database for MySQL Migration 2-3. Migration (mysqldump) 1) Source MySQL 대상 정보 확인 2) Target MySQL 대상 정보 확인
  29. 29. MySQL to Azure Database for MySQL Migration 2-3. Migration (mysqldump) 3) Azure for MySQL 방화벽 설정 - MySQL 서버 리소스 선택-> 연결 보안 클릭 -> 규칙 이름, Open할 Ip 주소 입력 -> 저장
  30. 30. MySQL to Azure Database for MySQL Migration 2-3. Migration (mysqldump) 4) Source DB 백업 - Migration 대상 Database 백업 5) Target 에 Database 생성 - 복원 대상 Database 생성
  31. 31. MySQL to Azure Database for MySQL Migration 2-3. Migration (mysqldump) 6) Target 복원(1/2) - Azure for MySQL에 복원 - 복원 중 Azure for MySQL 프로세스
  32. 32. MySQL to Azure Database for MySQL Migration 2-3. Migration (mysqldump) 6) Target 복원(2/2) - Azure for MySQL에 복원 확인
  33. 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. 34. MySQL to Azure Database for MySQL Migration 2-3. Migration (mysqldump) 9) Target DB Replication 정상 확인
  35. 35. MySQL to Azure Database for MySQL Migration 2-3. Migration (mysqldump) 10) 실시간 데이터 동기화 확인
  36. 36. Thank you

×