Database Migration Service는 마이그레이션 작업을 사용하여 소스 데이터베이스에서 Cloud SQL 대상 인스턴스로 데이터를 마이그레이션합니다. 마이그레이션 작업을 사용하면 소스 및 대상 연결 프로필을 구성하고, 마이그레이션 프로세스에 관한 설정을 정의하고, 진행 상황을 모니터링하고, 전체 작업을 안전하게 완료할 수 있습니다.
이전 작업을 만들려면 다음 작업을 실행해야 합니다.
소스 및 대상 연결 프로필 선택
소스 인스턴스에서 감지된 데이터베이스 중 마이그레이션할 데이터베이스를 선택합니다.
마이그레이션 작업 테스트를 실행하여 Database Migration Service가 데이터 소스 및 대상에 연결할 수 있는지 확인합니다.
마이그레이션 작업을 시작하고 진행 상황을 모니터링합니다.
애플리케이션을 새 인스턴스로 전환하려는 경우 마이그레이션 작업을 승격합니다.
시작하기 전에
- 다음 요구사항을 충족해야 합니다.
- SQL Server 백업 파일용 Cloud Storage 버킷이 있습니다.
- 전체 백업 및 트랜잭션 로그 파일이 Cloud Storage 버킷에 업로드됩니다.
- Cloud Storage 버킷의 소스 연결 프로필이 있습니다.
- 대상 SQL Server용 Cloud SQL 인스턴스를 만들고 구성했으며 인스턴스의 대상 연결 프로필이 있습니다.
- Google Cloud 콘솔의 프로젝트 선택기 페이지에서 Google Cloud 프로젝트를 만들거나 선택합니다.
- Database Migration Service, Compute Engine, Cloud Storage, Cloud SQL Admin API를 사용 설정합니다.
필요한 역할
Database Migration Service에서 이전 작업을 만드는 데 필요한 권한을 얻으려면 관리자에게 프로젝트에 대한 다음 IAM 역할을 부여해 달라고 요청하세요.
-
데이터베이스 마이그레이션 관리자 (
roles/datamigration.admin
) -
스토리지 관리자 (
roles/storage.admin
) -
Cloud SQL 편집기 (
roles/cloudsql.editor
)
역할 부여에 대한 자세한 내용은 액세스 관리를 참고하세요.
이러한 사전 정의된 역할에는 Database Migration Service로 동질적인 SQL Server 이전을 실행하는 데 필요한 권한이 포함되어 있습니다. 필요한 정확한 권한을 보려면 필수 권한 섹션을 확장하세요.
필수 권한
Database Migration Service로 동종 SQL Server 마이그레이션을 실행하려면 다음 권한이 필요합니다.
datamigration.*
resourcemanager.projects.get
resourcemanager.projects.list
cloudsql.instances.create
cloudsql.instances.get
cloudsql.instances.list
cloudsql.databases.get
cloudsql.databases.delete
cloudsql.operations.get
compute.machineTypes.list
compute.machineTypes.get
compute.projects.get
storage.buckets.create
storage.buckets.list
storage.objects.list
커스텀 역할이나 다른 사전 정의된 역할을 사용하여 이 권한을 부여받을 수도 있습니다.
설정 정의 및 마이그레이션 작업 만들기
이전 작업을 만들려면 다음 단계를 따르세요.
콘솔
- Google Cloud 콘솔에서 마이그레이션 작업 페이지로 이동합니다.
- 마이그레이션 작업 만들기를 클릭합니다.
이전 작업 구성 마법사 페이지가 열립니다. 이 마법사에는 각 구성 단계를 안내하는 여러 패널이 포함되어 있습니다.
저장 및 종료를 클릭하면 언제든지 마이그레이션 작업 만들기를 일시중지할 수 있습니다. 이 시점까지 입력한 모든 데이터는 마이그레이션 작업 초안에 저장됩니다. 나중에 초안 마이그레이션 작업을 완료할 수 있습니다. 마이그레이션 작업 초안 업데이트를 참고하세요.
- 시작하기 페이지에서 다음 정보를 입력합니다.
- 마이그레이션 작업 이름
사람이 읽을 수 있는 마이그레이션 작업 이름입니다. 이 값은 Google Cloud 콘솔에 표시됩니다.
- 마이그레이션 작업 ID
이는 마이그레이션 작업을 기계에서 읽을 수 있는 식별자입니다. 이 값은 Database Migration Service Google Cloud CLI 명령어 또는 API를 사용하여 마이그레이션 작업을 처리하는 데 사용됩니다.
- 소스 데이터베이스 엔진 목록에서 SQL Server 또는 SQL Server용 Amazon RDS를 선택합니다.
대상 데이터베이스 엔진 및 이전 작업 유형 필드는 자동으로 채워지며 변경할 수 없습니다.
- 마이그레이션 작업 이름
- 저장 후 계속을 클릭합니다.
- 소스 정의 페이지에서 다음을 수행합니다.
- 드롭다운 메뉴를 사용하여 소스 연결 프로필을 선택합니다.
아직 소스 연결 프로필이 없는 경우 드롭다운 메뉴에서 직접 연결 프로필 만들기를 클릭할 수 있습니다. 연결 프로필 만들기에 관한 자세한 내용은 소스 연결 프로필 만들기를 참고하세요.
- 이전에 차등 백업 파일을 사용하려면 소스 구성 맞춤설정 섹션에서 차등 백업 사용 체크박스를 선택합니다.
차등 백업은 전체 백업 이후 데이터베이스에 표시된 많은 데이터를 복제해야 하며 여러 트랜잭션 로그 파일을 업로드하는 대신 일괄 처리하려는 경우에 유용합니다. 지원되는 백업 유형에 관한 자세한 내용은 지원되는 백업 파일 형식을 참고하세요.
차등 백업을 사용하는 경우 Cloud Storage 버킷에
diff
폴더를 만들어야 합니다. Cloud Storage 버킷에 백업 파일 저장을 참고하세요. - 저장 후 계속을 클릭합니다.
- 드롭다운 메뉴를 사용하여 소스 연결 프로필을 선택합니다.
- 대상 정의 페이지에서 드롭다운 메뉴를 사용하여 대상 연결 프로필을 선택합니다.
아직 대상 연결 프로필이 없는 경우 드롭다운 메뉴에서 직접 연결 프로필 만들기를 클릭할 수 있습니다. 연결 프로필 만들기에 관한 자세한 내용은 대상 연결 프로필 만들기를 참고하세요.
- 저장 후 계속을 클릭합니다.
- 이전 데이터베이스 구성 페이지에서 다음 작업을 수행합니다.
- 마이그레이션할 데이터베이스 선택 섹션에서 체크박스를 사용하여 이 마이그레이션 작업에 포함할 데이터베이스를 선택합니다. 이 목록은 백업 파일의 Cloud Storage 버킷에 만든 폴더를 기반으로 채워집니다.
나중에 마이그레이션 작업에서 데이터베이스를 추가 및 삭제할 수 있습니다. 마이그레이션 작업에서 데이터베이스 추가 또는 삭제를 참고하세요.
- (선택사항) 암호화된 백업을 사용하는 경우 백업의 암호화 키를 제공합니다. 암호화된 백업 사용에 관한 자세한 내용은
암호화된 백업 사용을 참고하세요.
다음 작업을 실행합니다.
- 이전할 데이터베이스 옆에 있는 세부정보 수정을 클릭합니다.
암호화 측면 패널이 열립니다.
- 암호화 키 드롭다운 메뉴를 사용하여 키를 선택합니다.
- 비밀번호 입력란에 암호화 키 비밀번호를 입력합니다.
- 저장 및 종료를 클릭합니다.
- 이전할 데이터베이스 옆에 있는 세부정보 수정을 클릭합니다.
- 마이그레이션할 데이터베이스 선택 섹션에서 체크박스를 사용하여 이 마이그레이션 작업에 포함할 데이터베이스를 선택합니다. 이 목록은 백업 파일의 Cloud Storage 버킷에 만든 폴더를 기반으로 채워집니다.
- 저장 후 계속을 클릭합니다.
- 마이그레이션 작업 테스트 및 만들기에서 다음 작업을 실행합니다.
- (선택사항) 작업 테스트를 클릭하여 Database Migration Service가 모든 백업 파일을 성공적으로 식별하고 필요한 네트워크 연결을 설정할 수 있는지 확인합니다.
테스트에 실패하면 오류 메시지를 참고하여 문제를 해결하고 테스트를 다시 실행할 수 있습니다. 발생 가능한 오류에 관한 자세한 내용은 문제 진단을 참고하세요.
- 작업 만들기 및 시작을 클릭하여 이전을 시작합니다.
다른 시간에 이전 작업을 실행하려면 저장을 클릭하고 나중에 돌아와 작업을 실행합니다. 마이그레이션 작업 시작을 참고하세요.
- (선택사항) 작업 테스트를 클릭하여 Database Migration Service가 모든 백업 파일을 성공적으로 식별하고 필요한 네트워크 연결을 설정할 수 있는지 확인합니다.
gcloud
이 샘플에서는 모든 작업이 동기식으로 실행되도록 선택적 --no-async
플래그를 사용합니다. 따라서 일부 명령어는 완료하는 데 다소 시간이 걸릴 수 있습니다. --no-async
플래그를 건너뛰어 명령어를 비동기식으로 실행할 수 있습니다.
이 경우
gcloud database-migration operations describe
명령어를 사용하여 작업이 성공했는지 확인해야 합니다.
아래의 명령어 데이터를 사용하기 전에 다음을 바꿉니다.
- MIGRATION_JOB_ID을 마이그레이션 작업의 머신 판독 식별자로 바꿉니다. 이 값은 Database Migration Service Google Cloud CLI 명령어 또는 API를 사용하여 마이그레이션 작업을 처리하는 데 사용됩니다.
- REGION를 이전 작업을 저장할 리전 식별자로 바꿉니다.
- MIGRATION_JOB_NAME을 인간이 읽을 수 있는 이전 작업 이름으로 바꿉니다. 이 값은 Google Cloud 콘솔의 Database Migration Service에 표시됩니다.
- SOURCE_CONNECTION_PROFILE_ID를 소스 연결 프로필의 기계 판독식 식별자로 바꿉니다.
- DESTINATION_CONNECTION_PROFILE_ID을 대상 연결 프로필의 기계 판독식 식별자로 바꿉니다.
- COMMA_SEPARATED_DATABASE_ID_LIST를 백업 파일에서 마이그레이션하려는 SQL Server의 데이터베이스 식별자 목록으로 쉼표로 구분합니다. 이러한 식별자는
Cloud Storage의 데이터베이스 폴더 이름과 동일해야 합니다.
예:
--sqlserver-databases=my-business-database,my-other-database
- 차등 백업 구성: 이전에 차등 백업 파일을 사용하는 경우 명령어에
--sqlserver-diff-backup
플래그를 추가합니다. 기본적으로 이전 작업은 차등 백업 파일을 사용하지 않으며 Cloud Storage 버킷의diff
폴더를 무시합니다.지원되는 백업 파일에 관한 자세한 내용은 지원되는 백업 파일 형식을 참고하세요.
- (선택사항) Cloud Storage의 암호화 키 경로를 관련 데이터베이스 식별자로 매핑하는 구성 파일의 로컬 디스크 경로가 포함된 MAPPING_FILE_FOR_PATHS_TO_ENCRYPTION_KEYS 이 매핑 파일을 만드는 방법에 관한 자세한 내용은 암호화된 백업 사용을 참고하세요.
예:
--sqlserver-encrypted-databases=~/encryption-keys-mapping-file.json
다음 명령어를 실행합니다.
Linux, macOS 또는 Cloud Shell
gcloud database-migration migration-jobs \ create MIGRATION_JOB_ID \ --no-async \ --region=REGION \ --display-name=MIGRATION_JOB_NAME \ --source=SOURCE_CONNECTION_PROFILE_ID \ --destination=DESTINATION_CONNECTION_PROFILE_ID \ --sqlserver-databases=COMMA_SEPARATED_DATABASE_ID_LIST \ --sqlserver-encrypted-databases=MAPPING_FILE_FOR_PATHS_TO_ENCRYPTION_KEYS \ --type=CONTINUOUS
Windows(PowerShell)
gcloud database-migration migration-jobs ` create MIGRATION_JOB_ID ` --no-async ` --region=REGION ` --display-name=MIGRATION_JOB_NAME ` --source=SOURCE_CONNECTION_PROFILE_ID ` --destination=DESTINATION_CONNECTION_PROFILE_ID ` --sqlserver-databases=COMMA_SEPARATED_DATABASE_ID_LIST ` --sqlserver-encrypted-databases=MAPPING_FILE_FOR_PATHS_TO_ENCRYPTION_KEYS ` --type=CONTINUOUS
Windows(cmd.exe)
gcloud database-migration migration-jobs ^ create MIGRATION_JOB_ID ^ --no-async ^ --region=REGION ^ --display-name=MIGRATION_JOB_NAME ^ --source=SOURCE_CONNECTION_PROFILE_ID ^ --destination=DESTINATION_CONNECTION_PROFILE_ID ^ --sqlserver-databases=COMMA_SEPARATED_DATABASE_ID_LIST ^ --sqlserver-encrypted-databases=MAPPING_FILE_FOR_PATHS_TO_ENCRYPTION_KEYS ^ --type=CONTINUOUS
다음과 비슷한 응답이 표시됩니다.
Waiting for migration job [MIGRATION_JOB_ID] to be created with [OPERATION_ID] Waiting for operation [OPERATION_ID] to complete...done. Created migration job MIGRATION_JOB_ID [OPERATION_ID]
이제 마이그레이션 작업이 생성되었습니다. 다음과 같이 이전 프로세스를 진행할 수 있습니다.
- (선택사항) 마이그레이션 작업 테스트를 실행하여 Database Migration Service가 필요한 모든 소스 및 대상 항목에 도달할 수 있는지 확인합니다.
- 마이그레이션 작업을 시작하여 대상 인스턴스로 데이터를 이동합니다.