데이터 마이그레이션으로 데이터베이스 주 버전 업그레이드

이 페이지에서는 이후 버전의 MySQL을 실행하는 인스턴스로 데이터를 마이그레이션하는 방법을 설명합니다. 이 방법을 수행하려면 먼저 현재의 데이터베이스 주 버전을 업그레이드하는 것이 좋습니다.

데이터를 마이그레이션하여 MySQL용 Cloud SQL 인스턴스의 데이터베이스 주 버전을 업그레이드하는 데에는 두 가지 방법이 있습니다.

  • 옵션 1. Database Migration Service(DMS)를 사용합니다. DMS는 Cloud SQL MySQL 인스턴스에서 마이그레이션을 지원합니다. 또한 MySQL 버전 업그레이드에도 사용할 수 있습니다.
  • 옵션 2. MySQL의 데이터를 다른 버전의 MySQL로 옮기려면 현재 인스턴스에서 데이터를 내보낸 후 최신 버전의 MySQL을 실행하는 새로운 인스턴스에서 해당 데이터를 가져와야 합니다. 이 과정에서 다운타임이 발생합니다. 따라서 데이터를 내보내기 전에 현재 인스턴스를 읽기 전용 모드로 전환해야 합니다.

이 페이지에서는 두 번째 옵션을 설명합니다.

주 버전 업그레이드 계획

  1. 대상 주 버전을 선택합니다.

    Cloud SQL에서 지원되는 버전 목록을 참조하세요.

  2. 각 MySQL 버전에 제공된 기능을 고려해서 비호환성 문제를 해결합니다.

    새로운 주 버전에는 데이터베이스 인스턴스를 업그레이드하기 전 애플리케이션 코드, 스키마, 데이터베이스 설정을 수정해야 할 수 있는 호환되지 않는 변경사항이 포함됩니다. 대상 주 버전의 출시 노트를 참조해서 해결해야 할 비호환성 문제를 확인해야 합니다. 주 버전을 건너뛸 경우에는 건너뛰는 각 버전에 대해 나열된 비호환성 문제를 해결해야 합니다.

  3. MySQL 8.0에서 사용자 부여 변경사항 확인

    MySQL용 Cloud SQL 버전 8.0은 partial_revokes라는 새로운 시스템 플래그를 사용하며 기본적으로 ON으로 설정됩니다. MySQL 5.7과 달리 이 플래그는 데이터베이스 GRANT 명령어에 와일드 카드 문자를 사용하는 기능을 삭제합니다. 데이터베이스 사용자가 올바른 데이터베이스 스키마에 액세스할 수 있도록 MySQL 8.0으로 업그레이드하기 전에 데이터베이스 사용자 권한을 수정합니다. 와일드 카드 문자를 사용하는 대신 필요한 데이터베이스 스키마의 전체 이름을 사용하도록 사용자 권한을 업데이트합니다.

    이 플래그가 MySQL 8.0에서 작동하는 방식에 대한 자세한 내용은 MySQL 8.0의 partial_revokes를 참조하세요.

  4. 테스트 실행을 통해 업그레이드를 테스트합니다.

    프로덕션 데이터베이스를 업그레이드하기 전 테스트 인스턴스에서 엔드 투 엔드 업그레이드 프로세스의 시험 이전을 수행합니다. 프로덕션 워크로드에 내보내기로 인한 성능 영향을 방지하기 위해 프로덕션 데이터베이스 대신 클론을 사용하여 업그레이드를 테스트할 수 있습니다.

    업그레이드가 성공적으로 완료되는지 검증하는 것 외에도 업그레이드된 데이터베이스에서 애플리케이션이 예상한 대로 작동하는지 확인하는 테스트를 실행합니다. 자동 스토리지 증가를 사용 설정하지 않았으면 업그레이드된 시험 이전 인스턴스에 사용되는 디스크 스토리지를 기록해서 업그레이드 전 프로덕션 인스턴스의 스토리지 용량을 늘려야 하는지 확인합니다.

  5. 업그레이드할 시간을 결정합니다.

데이터 마이그레이션

최신 데이터베이스 버전을 실행하는 Cloud SQL 인스턴스로 데이터를 마이그레이션하려면 다음 단계를 수행합니다.

  1. 원하는 데이터베이스 주 버전으로 대상 인스턴스를 만듭니다.

    대상 인스턴스에 필요한 항목은 다음과 같습니다.

    • 현재 인스턴스의 모든 데이터를 저장하기에 충분한 스토리지
    • 현재 인스턴스와 동일한 승인된 네트워크. 자세히 알아보기.
    • MySQL 권한과 비밀번호가 같은 동일한 사용자 계정

    자세한 내용은 인스턴스 만들기를 참조하세요.

  2. 로컬 MySQL 도구로 새 인스턴스에 연결할 수 있는지 확인하고 필요한 경우 업데이트합니다.

  3. 현재 Cloud SQL 인스턴스를 읽기 전용 모드로 설정하려면 read_only 데이터베이스 플래그를 On으로 설정합니다.

    자세한 내용은 데이터베이스 플래그 구성을 참조하세요.

  4. Cloud SQL에 가져올 데이터 내보내기 단계에 따라 현재 인스턴스의 데이터를 SQL 덤프 파일로 내보냅니다.

    mysql 시스템 데이터베이스를 내보내지 마세요.

  5. 필요한 경우 Cloud Storage 버킷을 생성한 다음 SQL 덤프 파일을 버킷에 업로드합니다.

  6. Cloud Storage에서 MySQL 데이터베이스 가져오기 단계에 따라 데이터를 대상 인스턴스로 가져옵니다.

  7. 선택사항. 업그레이드 프로세스를 완료한 후 초기 덤프가 시작된 이후 발생한 모든 변경사항으로 대상을 업데이트하도록 외부 서버를 사용해서 소스 및 대상 인스턴스 간 복제를 설정합니다. 두 인스턴스가 동기화된 다음 대상 인스턴스를 승격시킬 수 있습니다.

    외부 서버를 사용하여 연속 복제를 구현하는 방법은 외부 서버에서 복제를 참조하세요.

  8. 새로운 인스턴스에 연결할 수 있도록 애플리케이션을 업데이트합니다.

  9. 새로운 인스턴스가 잘 작동하는지 확인한 후 기존 인스턴스를 삭제합니다.

다음 단계