< Lab >
Migrating On-premises MySQL Using a Continuous Database Migration Service Job
지속적인 데이터베이스 마이그레이션 서비스 작업을 사용하여 온프레미스 MySQL 마이그레이션
- Google Cloud Shell 활성화
- 클라우드 셸을 열고 PROJECT_ID 설정 확인
- 활성 계정 이름 나열
gcloud auth list
- 프로젝트 ID 나열
gcloud config list project
- 데이터베이스 마이그레이션 API가 활성화되어 있는지 확인
- 콘솔에서 Database Migration API 입력 후 활성화
- 서비스 네트워킹 API가 활성화되어 있는지 확인
- 콘솔에서 Service Networking API 입력 후 활성화
- MySQL 소스 인스턴스에 대한 연결 정보 가져오기
- Compute Enigne - VM 인스턴스 - dms-mysql-training-vm-v2 인스턴스를 찾아 내부 IP 주소 값 복사
+) 내부 IP 주소 : 10.128.0.2
- MySQL 소스 인스턴스에 대한 새 연결 프로필 생성
- 콘솔창에 Database Migration - Connection profiles - 프로필 만들기 클릭 - MySQL 선택 후 정보 입력
연결 프로필 이름 : mysql-vm
연결 프로필 ID : 자동 생성된 값 유지
호스트 이름 또는 IP 주소 : 10.128.0.2
포트 : 3306
사용자 이름 : admin
비밀번호 : changeme
암호화 유형 : None - mysql-vm이라는 새 연결 프로필 생성 확인
- 연속 마이그레이션 작업 생성 및 시작
- 새 마이그레이션 작업 만들기 (Get started) :
콘솔에서 Database Migration - Migration jobs - 마이그레이션 작업 만들기 - 정보 입력
마이그레이션 작업 이름 : vm-to-cloudsql
마이그레이션 작업 ID : 자동 생성된 값 유지
소스 데이터베이스 엔진 : MySQL
마이그레이션 작업 유형 : Continuous - 소스 인스턴스 정의 (Define a source) :
소스 연결 프로필로 mysql-vm 선택 - 대상 인스턴스 만들기 (Create a destination) :
Cloud SQL에서 대상 인스턴스를 만드는데 필요한 정보 입력
대상 인스턴스 ID : mysql-cloudsql
루트 비밀번호 : supersecret!
데이터베이스 버전 : Cloud SQL for MySQL 5.7
존 : Any
연결 : Private IP and Public IP 선택 후 자동 할당된 IP 범위 사용
머신 유형 : db-n1-standard-1
저장 유형 : SSD
저장 용량 : 10 - 연결 방법 정의 (Define connectivity method) :
VPC Peering 선택 - default 선택 - 지속적인 마이그레이션 작업 테스트 및 시작 :
마이그레이션 세부 정보 검토 후 테스트 작업을 클릭하여 테스트가 성공적으로 끝나면 작업 만들기 및 시작 클릭
- 지속적인 마이그레이션 작업 상태 검토
- 콘솔창에서 Database Mirgration - Migration jobs 틀릭 - vm-to-cloudsql을 클릭한 후 마이그레이션 작업 상태 검토
현재 Running 상태이지만
대상 데이터베이스가 데이터 읽기 및 쓰기를 위한 독립 실행형 데이터베이스로 승격된 후 Completed 상태가 될 것
- MySQL용 Cloud SQL에서 데이터 확인
- Cloud SQL에서 MySQL 데이터베이스 확인 :
콘솔에서 SQL 클릭 후 mysql-cloudsql 인스턴스 ID 클릭 - Replica 인스턴스 메뉴에서 데이터베이스 클릭
- customer_data 및 sales_data라는 데이터베이스가 Cloud SQL로 마이그레이션된 것 확인
- MySQL 데이터베이스에 연결 :
Replica 인스턴스 메뉴에서 Overview 클릭
- 이 인스턴스에 연결 패널에서 클라우드 셸 열기 버튼 클릭 후 암호를 입력해 MySQL 대화형 콘솔 활성화
gcloud sql connect mysql-cloudsql --user=root --quiet supersecret!
- MySQL용 Cloud SQL 데이터베이스의 데이터 검토 :
데이터베이스를 선택한 후 customer 테이블의 레코드 수를 쿼리한 후
MySQL용 Amazon RDS 인스턴스에서 마이그레이션된 customer 테이블에서 5030개의 레코드가 있는 것 확인
use customers_data; select count(*) from customers;
- 고객 테이블의 레코드를 성을 기준으로 정렬하고 처음 10개의 레코드를 검토
첫 번째 레코드의 성은 Accumsan
select * from customers order by lastName limit 10;
- MySQL 대화형 콘솔 종료
exit
- 소스에서 대상 인스턴스로 데이터의 지속적인 마이그레이션 테스트
- 소스 인스턴스에 새 데이터 추가 :
Compute Engine - VM 인스턴스에서 dms-mysql-trainning-vm-v2 인스턴스를 찾은 후 SSH를 클릭
MySQL 대화형 콘솔에 연결 및 암호 입력
데이터베이스 선택 및 두 개의 새 데이터 레코드를 customer 테이블에 추가 후 새 레코드 수를 쿼리mysql -u admin -p changeme
customer 테이블에 5032개의 레코드가 있는 것 확인 (5030 + 2)
use customers_data; INSERT INTO customers (customerKey, addressKey, title, firstName, lastName, birthdate, gender, maritalStatus, email, creationDate) VALUES ('9365552000000-999', '9999999', 'Ms', 'Magna', 'Ablorem', '1953-07-28 00:00:00', 'FEMALE', 'MARRIED', 'magna.lorem@gmail.com', CURRENT_TIMESTAMP), ('9965552000000-9999', '99999999', 'Mr', 'Arcu', 'Abrisus', '1959-07-28 00:00:00', 'MALE', 'MARRIED', 'arcu.risus@gmail.com', CURRENT_TIMESTAMP); select count(*) from customers;
customer 테이블의 레코드를 성을 기준으로 정렬하고 처음 10개의 레코드를 검토
첫 번째 레코드의 성은 Ablorem으로 변경된 것 확인
select * from customers order by lastName limit 10;
MySQL 대화형 콘솔와 터미널 세션 종료
exit exit
- MySQL용 Cloud SQL 인스턴스에 연결 :
콘솔에서 SQL 클릭 후 mysql-cloudsql 인스턴스 ID 클릭 - Replica 메뉴에서 Overview 클릭
- 이 인스턴스에 연결 패널에서 클라우드 셸 열기 버튼 클릭 후 암호를 입력해 MySQL 대화형 콘솔 활성화
gcloud sql connect mysql-cloudsql --user=root --quiet supersecret!
- MySQL용 Cloud SQL 인스턴스에 데이터 업데이트가 적용되었는지 확인 :
데이터베이스 선택 후 customer 테이블의 레코드 수를 쿼리
customer 테이블에 5032개의 레코드 수 확인
customer 테이블의 레코드를 성을 기준으로 정렬하고 처음 10개의 레코드를 검토use customers_data; select count(*) from customers;
첫 번째 레코드의 성은 Cloud SQL 대상 인스턴스와 MySQL 소스 인스턴스와 동일하게 Ablorem
select * from customers order by lastName limit 10;
MySQL 대화형 콘솔 종료
exit
- Cloud SQL을 데이터 읽기 및 쓰기를 위한 독립 실행형 인스턴스로 승격
- 콘솔에서 Database Migration - Mirgraion jobs 클릭 후 vm-to-cloudsql 클릭 후 Promote 클릭
- 승격이 완료되면 SQL을 클릭해 mysql-cloudsql이 데이터 읽기 및 쓰기를 위한 독립 실행형 인스턴스가 됨