SQL Server용 Cloud SQL 인스턴스에서 마이그레이션

이 페이지에서는 Database Migration Service를 사용하여 SQL Server용 Cloud SQL 데이터베이스를 SQL Server용 Cloud SQL 인스턴스로 마이그레이션하는 방법을 설명합니다. 이 마이그레이션 흐름을 사용하면 동일한 Google Cloud 프로젝트 또는 다른 Google Cloud 프로젝트의 다른 SQL Server용 Cloud SQL로 데이터베이스를 이동할 수 있습니다. 자체 관리형 또는 Amazon RDS 소스에서 마이그레이션하는 방법은 자체 호스팅 및 Amazon RDS 소스 마이그레이션 가이드를 참고하세요.

SQL Server용 Cloud SQL 소스의 마이그레이션 프로세스에는 다음 작업이 포함됩니다.

  1. Database Migration Service가 백업 파일을 Cloud Storage 버킷으로 자동 내보낼 수 있도록 소스 SQL Server용 Cloud SQL 인스턴스를 구성합니다.

  2. Google Cloud CLI를 사용하여 소스 연결 프로필을 만듭니다.

  3. 대상 SQL Server용 Cloud SQL 인스턴스를 만드는 중입니다.

  4. Google Cloud CLI를 사용하여 Database Migration Service에서 마이그레이션 작업을 만들고 실행합니다.

  5. Database Migration Service 관측 가능성 기능으로 마이그레이션 작업 진행 상황을 모니터링합니다.

  6. 데이터가 완전히 마이그레이션된 후에 마이그레이션 작업을 승격합니다.

비용

Cloud SQL로의 동종 마이그레이션의 경우 Database Migration Service가 추가 비용 없이 제공됩니다. 하지만 마이그레이션 목적으로 생성된 Cloud SQL 및 Cloud Storage 엔터티뿐만 아니라 네트워크 요금에도 Cloud SQL 및 Cloud Storage 가격 책정이 적용됩니다.

이 문서에서는 비용이 청구될 수 있는 다음과 같은Google Cloud구성요소를 사용합니다.

  • Cloud Storage
  • Cloud SQL

프로젝트 사용량을 기준으로 예상 비용을 산출하려면 가격 계산기를 사용하세요.

시작하기 전에

  1. 이 이전 경로가 시나리오를 완전히 지원할 수 있는지 확인합니다. SQL Server 알려진 제한사항을 참고하세요.
  2. 대상 데이터베이스를 만들 리전을 고려합니다. Database Migration Service는 완전한 리전 제품입니다. 즉, 마이그레이션과 관련된 모든 항목 (소스 및 대상 연결 프로필, 마이그레이션 작업, 대상 데이터베이스, 스토리지 버킷)은 단일 리전에 저장해야 합니다.
  3. Google Cloud 콘솔의 프로젝트 선택기 페이지에서 Google Cloud 프로젝트를 선택하거나 만듭니다.

    프로젝트 선택기로 이동

  4. Database Migration Service, Compute Engine, Cloud Storage, Cloud SQL Admin API를 사용 설정합니다.

    API 사용 설정

필요한 역할

Database Migration Service를 사용하여 두 SQL Server용 Cloud SQL 인스턴스 간에 동종 이전을 실행하는 데 필요한 권한을 얻으려면 관리자에게 관련 프로젝트의 이전 프로세스에 참여하는 계정에 필요한 IAM 역할을 부여해 달라고 요청하세요.

이 시나리오를 사용하면 서로 다른 Google Cloud 프로젝트에 있는 두 개의 SQL Server용 Cloud SQL 인스턴스 간에 마이그레이션할 수 있습니다. 동일한 프로젝트의 인스턴스 간에 이전하려면 동일한 프로젝트의 모든 권한을 부여하세요. 역할 부여에 대한 자세한 내용은 액세스 관리를 참고하세요.

소스 프로젝트의 역할 및 권한

소스 SQL Server용 Cloud SQL 인스턴스가 있는 Google Cloud 프로젝트의 특정 계정에 다음 역할을 부여합니다.

이러한 사전 정의된 역할에는 Database Migration Service를 사용하여 동종 SQL Server 마이그레이션을 수행하는 데 필요한 권한이 포함되어 있습니다. 정확히 필요한 권한을 보려면 필수 권한 (소스 프로젝트) 섹션을 펼치세요.

필수 권한 (소스 프로젝트)

Database Migration Service로 동종 SQL Server 마이그레이션을 실행하려면 다음 권한이 필요합니다.

  • 이전을 실행하는 사용자 계정:
    • resourcemanager.projects.get
    • resourcemanager.projects.list
    • cloudsql.operations.get
    • cloudsql.instances.create
    • cloudsql.instances.get
    • cloudsql.instances.list
    • cloudsql.instances.import
    • cloudsql.databases.get
    • cloudsql.databases.list
    • cloudsql.databases.delete
    • compute.machineTypes.list
    • compute.machineTypes.get
    • compute.projects.get
    • storage.buckets.create
    • storage.buckets.list
  • 대상 프로젝트 Database Migration Service 서비스 계정:
    • cloudsql.instances.export
    • cloudsql.instances.get
    • cloudsql.instances.list
    • cloudsql.instances.executeSql

커스텀 역할이나 다른 사전 정의된 역할을 사용하여 이 권한을 부여받을 수도 있습니다.

대상 프로젝트의 역할 및 권한

대상 SQL Server용 Cloud SQL 인스턴스가 있는 Google Cloud 프로젝트의 특정 계정에 다음 역할을 부여합니다.

이러한 사전 정의된 역할에는 Database Migration Service를 사용하여 동종 SQL Server 마이그레이션을 수행하는 데 필요한 권한이 포함되어 있습니다. 정확히 필요한 권한을 보려면 필수 권한 (대상 프로젝트) 섹션을 펼치세요.

필수 권한 (대상 프로젝트)

Database Migration Service로 동종 SQL Server 마이그레이션을 실행하려면 다음 권한이 필요합니다.

  • 이전을 실행하는 사용자 계정:
    • datamigration.*
    • resourcemanager.projects.get
    • resourcemanager.projects.list
    • cloudsql.operations.get
    • cloudsql.instances.create
    • cloudsql.instances.get
    • cloudsql.instances.list
    • cloudsql.instances.import
    • cloudsql.databases.get
    • cloudsql.databases.list
    • cloudsql.databases.delete
    • compute.machineTypes.list
    • compute.machineTypes.get
    • compute.projects.get
    • storage.buckets.create
    • storage.buckets.list
  • Database Migration Service 서비스 계정:
    • datamigration.*
    • resourcemanager.projects.get
    • resourcemanager.projects.list
    • cloudsql.instances.create
    • cloudsql.instances.get
    • cloudsql.instances.list
    • cloudsql.instances.executeSql
    • storage.objects.create
    • storage.objects.list
  • 소스 인스턴스와 연결된 Cloud SQL 서비스 계정:
    • storage.objects.create
    • storage.objects.list
    • storage.objects.get

커스텀 역할이나 다른 사전 정의된 역할을 사용하여 이 권한을 부여받을 수도 있습니다.

소스 Cloud SQL 인스턴스 준비

  1. 대상 Google Cloud 프로젝트에 Cloud Storage 버킷을 만듭니다. 이 버킷은 소스 SQL Server용 Cloud SQL 인스턴스에서 내보낸 백업 로그 파일을 저장하는 데 사용됩니다.

    • 이러한 백업 파일의 데이터 보관 기간을 14~30일로 구성하는 것이 좋습니다.
    • 소스 인스턴스와 연결된 Cloud SQL 서비스 계정에는 이 버킷에 백업 파일을 쓸 수 있는 스토리지 객체 사용자 (roles/storage.objectUser) IAM 역할이 필요합니다. 이 이전 흐름의 권한에 대한 자세한 내용은 필요한 역할 섹션을 참고하세요.
  2. 소스 SQL Server용 Cloud SQL 인스턴스를 구성합니다.

  3. SQL Server용 Cloud SQL 소스 인스턴스의 소스 연결 프로필을 만듭니다.

SQL Server용 Cloud SQL 대상 인스턴스 준비

대상 Cloud SQL 인스턴스를 구성하려면 다음 단계를 수행하세요.

  1. SQL Server용 Cloud SQL 대상 인스턴스를 만들고 구성합니다. 마이그레이션 요구사항을 충족할 수 있는 충분한 컴퓨팅 및 메모리 리소스를 사용해야 합니다.

  2. Cloud SQL 인스턴스의 대상 연결 프로필을 만듭니다.

마이그레이션 작업 만들기 및 실행

  1. SQL Server용 Cloud SQL 소스의 마이그레이션 작업 만들기 및 실행

마이그레이션 작업을 시작하면 대상 SQL Server용 Cloud SQL 데이터베이스가 복구 모드로 전환되어 Database Migration Service에서 완전히 관리합니다. 데이터가 완전히 마이그레이션되면 대상 인스턴스를 승격할 수 있습니다. 대상 인스턴스가 승격되면 해당 인스턴스의 모든 데이터베이스가 완전히 작동합니다. 또한 이러한 데이터베이스에 대한 전체 쓰기 액세스 권한도 얻게 됩니다.

마이그레이션 완료

애플리케이션을 새 SQL Server용 Cloud SQL 인스턴스로 전환하기로 결정한 경우 다음 단계에 따라 마이그레이션을 완료하세요.

  1. 소스 데이터베이스에 대한 모든 쓰기 작업을 중지합니다. 작동 기능을 유지하기 위해 읽기 전용 모드로 전환할 수 있습니다.
  2. 마이그레이션 작업을 승격합니다.
  3. (선택사항) 완전성을 위해 마이그레이션 데이터 확인