이 페이지에서는 Cloud SQL에서 직접 만든 기존 Cloud SQL 인스턴스로 데이터베이스를 마이그레이션하는 방법을 설명합니다.
이 경로는 대상 인스턴스가 다른 팀에서 관리하거나 Database Migration Service 외부에서 인스턴스를 만들어야 하는 경우(예: Terraform을 사용하는 경우)에 유용합니다. 마이그레이션에 다른 요구사항이 있는 경우 다른 마이그레이션 흐름을 따르는 것이 좋습니다. 자세한 내용은 MySQL 마이그레이션 시작하기를 참조하세요.
마이그레이션은 대략 다음 단계를 따릅니다.
- Database Migration Service가 데이터를 새 데이터베이스로 이동할 수 있도록 소스 데이터베이스를 구성합니다.
- 소스 MySQL 인스턴스에 대한 네트워크 연결을 설정합니다.
- 연결 프로필 및 마이그레이션 작업을 만듭니다.
- 마이그레이션 작업을 시작하고 모니터링합니다.
- 마이그레이션 작업을 승격하고 애플리케이션을 이동하여 새 데이터베이스를 사용합니다.
비용
이 문서에서는 비용이 청구될 수 있는 구성요소를 사용합니다. Google Cloud
- Cloud SQL ( Cloud SQL 가격 책정 참고)
- 고객 관리 암호화 키 (CMEK)를 저장하는 데 사용되는 경우: Cloud Storage ( Cloud Storage 가격 책정 참고)
프로젝트 사용량을 기준으로 예상 비용을 산출하려면 가격 계산기를 사용하세요.
시작하기 전에
- 이 마이그레이션 경로가 시나리오를 완전히 지원할 수 있는지 확인합니다.
다음 페이지를 참고하세요.
- 지원되는 소스 및 연결 대상은 시나리오 개요 페이지에서 지원되는 모든 소스 및 대상 버전을 나열합니다.
- 알려진 제한사항에서는 지원되는 데이터 유형, 데이터베이스 크기, 기타 제한사항을 설명합니다.
- 일회성 마이그레이션: 마이그레이션 일정을 고려합니다. 일회성 마이그레이션은 후속 변경사항 데이터 캡처 없이 전체 덤프 및 로드 작업만 수행합니다. 데이터 손실을 방지하려면 마이그레이션 프로세스 중에 소스 데이터베이스에 대한 쓰기를 사용 중지하는 것이 좋습니다.
- 대상 데이터베이스를 만들 리전을 고려합니다. Database Migration Service는 완전한 리전 제품입니다. 즉, 마이그레이션과 관련된 모든 항목 (소스 및 대상 연결 프로필, 마이그레이션 작업, 대상 데이터베이스, 변환 작업공간)은 단일 리전에 저장해야 합니다.
- Google Cloud 콘솔의 프로젝트 선택기 페이지에서 Google Cloud 프로젝트를 선택하거나 만듭니다.
- Database Migration Service 및 Cloud SQL Admin API를 사용 설정합니다.
필요한 역할
Database Migration Service를 사용하여 동종 MySQL 마이그레이션을 수행하는 데 필요한 권한을 얻으려면 관리자에게 프로젝트에 필요한 IAM 역할을 부여해 달라고 요청하세요.
-
Database Migration 관리자 (
roles/datamigration.admin) - Database Migration Service 외부에서 대상 인스턴스를 만들어야 하는 경우
Cloud SQL 관리자 (
roles/cloudsql.admin) 도 필요합니다.
역할 부여에 대한 자세한 내용은 Identity and Access Management 문서의 액세스 관리를 참고하세요.
이러한 사전 정의된 역할에는 Database Migration Service를 사용하여 동종 MySQL 마이그레이션을 수행하는 데 필요한 권한이 포함되어 있습니다. 필요한 정확한 권한을 보려면 필수 권한 섹션을 확장하세요.
필수 권한
Database Migration Service를 사용하여 동종 MySQL 마이그레이션을 수행하려면 다음 권한이 필요합니다.
datamigration.*cloudsql.instances.createcloudsql.instances.getcloudsql.instances.listcloudsql.instances.updatecloudsql.instances.deletecloudsql.operations.getcloudsql.users.listcloudsql.users.getcloudsql.users.createcloudsql.users.updatecloudsql.users.delete
커스텀 역할이나 다른 사전 정의된 역할을 사용하여 이 권한을 부여받을 수도 있습니다.
소스 데이터베이스 준비
마이그레이션을 위해 소스 데이터를 준비하려면 다음 단계를 따르세요.
- 자체 덤프 파일을 제공할지 아니면 Database Migration Service
에서 전체 덤프를 자동으로 수행하도록 할지 고려합니다.
- 자동 덤프 (기본값): 마이그레이션 작업이 시작되면 Database Migration Service가 소스 데이터베이스에 연결하고 초기 스키마 및 데이터 덤프를 자동으로 수행합니다. 마이그레이션을 시작하기 전에 아무것도 준비할 필요가 없습니다.
- 수동 덤프: 자체 덤프 파일을 생성하고
Cloud Storage 버킷에 업로드할 수 있습니다. 이 방법은 기본 인스턴스의 초기 로드를 줄이고 복제본에서 전체 덤프를 가져오거나, 특정 유지보수 기간 동안 덤프를 실행하거나, 커스텀 내보내기 플래그를 전달하려는 경우에 유용할 수 있습니다.
`mysqldump`로 MySQL 데이터베이스 내보내기
mysqldump를 참고하세요.
- 소스 네트워크 연결 방법을 선택하고 구성합니다.
- 소스 데이터베이스 인스턴스를 구성합니다.
- 연속 마이그레이션의 경우 연속 마이그레이션을 위한 소스 데이터베이스 구성을 참고하세요.
- 일회성 마이그레이션의 경우 일회성 마이그레이션을 위한 소스 데이터베이스 구성을 참고하세요.
- 소스 연결 프로필을 만듭니다..
대상 인스턴스 만들기 및 구성
일부 시나리오에서는 사용 가능한 모든 구성 옵션을 활용하기 위해 Cloud SQL에서 직접 대상 인스턴스를 미리 만들 수 있습니다.
Cloud SQL에서 직접 대상을 만들려면 대상 머신의 네트워크 유형을 신중하게 고려하세요.
- Private Service Connect 인터페이스 연결을 사용하려면 대상 인스턴스를 PSC 지원 인스턴스로 만듭니다. PSC 지원 인스턴스 만들기를 참고하세요.
- 가상 프라이빗 클라우드(VPC) 피어링 연결을 사용하려면 대상 인스턴스를 PSA 인스턴스로 만듭니다. 데이터베이스 인스턴스 만들기를 참고하세요.
- 공개 IP 허용 목록 연결을 사용하려면 공개 IP가 사용 설정된 대상 인스턴스를 만듭니다. 데이터베이스 인스턴스 만들기를 참고하세요.
기존 대상 Cloud SQL 인스턴스가 이미 있는 경우 다음 섹션으로 진행할 수 있습니다.
마이그레이션 작업 만들기 및 실행
마이그레이션을 구성하고 실행하려면 다음 단계를 수행하세요.
- 선택사항: 마이그레이션 작업의 자체 인증서를 관리하려면 필요한 암호화 키를 준비합니다.
-
마이그레이션 작업을 만들고 실행합니다.
Database Migration Service 관측 가능성 기능 을 사용하여 마이그레이션 진행 상황과 대상 인스턴스 상태를 모니터링할 수 있습니다. 마이그레이션 작업 측정항목을 참고하세요.
마이그레이션 완료
애플리케이션을 새 MySQL용 Cloud SQL 인스턴스로 전환하기로 결정한 경우 다음 단계에 따라 마이그레이션을 완료하세요.
연속 마이그레이션
- 선택 사항: 연쇄 읽기 복제본을 설정합니다. 연쇄 읽기 복제본을 사용하려면 마이그레이션 작업이 CDC 단계로 전환될 때 이를 구성할 수 있습니다.
- 소스 데이터베이스의 모든 쓰기 작업을 중지합니다. 작업 기능을 유지하기 위해 읽기 전용 모드로 전환할 수 있습니다.
- 마이그레이션 작업을 승격합니다..
- 선택사항: 마이그레이션 데이터가 완전한지 확인합니다.
일회성 마이그레이션
Database Migration Service가 전체 덤프 단계를 완료하면 대상 인스턴스가 자동으로 독립형 인스턴스로 승격됩니다. 마이그레이션을 완료하려면 다음 단계를 수행하세요.
- 선택사항: 마이그레이션 데이터가 완전한지 확인합니다.
- 애플리케이션을 전환하여 새 MySQL용 Cloud SQL 인스턴스에 연결합니다.
다음 단계
MySQL용 Cloud SQL의 기능 Google Cloud 에 대해 자세히 알아보세요. MySQL용 Cloud SQL 기능을 참고하세요.