Spanner 스키마를 최적화하고 애플리케이션을 마이그레이션하면 데이터를 빈 프로덕션 규모 Spanner 데이터베이스로 이동한 후 애플리케이션을 전환하여 Spanner 데이터베이스를 사용할 수 있습니다.
사용 사례에 따라 최소 다운타임으로 라이브 데이터 마이그레이션을 수행할 수 있습니다. 또는 데이터 마이그레이션을 수행하는 데 장시간 다운타임이 필요할 수도 있습니다.
애플리케이션에서 장기간 다운타임을 감당할 수 없으면 라이브 데이터 마이그레이션을 수행하는 것이 좋습니다. 애플리케이션에서 다운타임을 처리할 수 있으면 다운타임을 통한 마이그레이션이 좋을 수도 있습니다.
라이브 데이터 마이그레이션에서는 데이터가 소스 데이터베이스, 대상 Spanner 데이터베이스, 데이터 마이그레이션을 수행하는 데 사용하는 도구 간에 흐르도록 하는 데 필요한 네트워크 인프라를 구성해야 합니다. 조직의 규정 준수 요구사항에 따라 비공개 또는 공개 네트워크 연결을 결정해야 합니다. 인프라를 설정하려면 조직의 네트워크 관리자의 도움이 필요할 수 있습니다.
라이브 데이터 마이그레이션
라이브 데이터 마이그레이션은 다음 두 가지 구성요소로 구성됩니다.
- 소스 데이터베이스의 일관된 스냅샷에서 데이터 마이그레이션
- 변경 데이터 캡처(CDC)로 참조되는 해당 스냅샷 이후의 변경 내역(삽입, 업데이트, 삭제) 마이그레이션
라이브 데이터 마이그레이션은 데이터 보호에 도움이 되지만 프로세스에는 다음을 포함한 문제가 발생합니다.
- 스냅샷이 마이그레이션되는 동안 CDC 데이터 저장
- 들어오는 CDC 스트림을 캡처하는 동안 CDC 데이터를 Spanner에 작성
- CDC 데이터를 Spanner로 마이그레이션하는 작업이 들어오는 CDC 스트림보다 빠르도록 보장
다운타임을 통한 마이그레이션
소스 데이터베이스를 CSV 또는 Avro로 내보낼 수 있으면 다운타임을 통해 Spanner로 마이그레이션할 수 있습니다. 자세한 내용은 Spanner 가져오기 및 내보내기 개요를 참조하세요.
다운타임을 통한 마이그레이션은 몇 시간의 다운타임을 허용할 수 있는 테스트 환경이나 애플리케이션에 사용될 수 있습니다. 라이브 데이터베이스에서는 다운타임을 통한 마이그레이션으로 인해 데이터가 손실될 수 있습니다.
다운타임 마이그레이션을 수행하려면 다음과 같은 대략적인 방식을 사용하는 것이 좋습니다.
- 애플리케이션을 중지하고 소스 데이터베이스에서 데이터 덤프 파일을 생성합니다.
- 덤프 파일을 MySQL, PostgreSQL, Avro 또는 CSV 덤프 형식으로 Cloud Storage에 업로드합니다.
- Dataflow 또는 Spanner 마이그레이션 도구를 사용하여 덤프 파일을 Spanner에 로드합니다.
Spanner는 여러 덤프 파일을 동시에 읽을 수 있으므로 작은 덤프 파일을 여러 개 생성하면 Spanner에 더 빠르게 쓸 수 있습니다.
소스 데이터베이스에서 덤프 파일을 생성할 때 일관된 데이터 스냅샷을 생성하려면 다음 사항을 고려하세요.
- 덤프를 수행하기 전에 소스 데이터베이스에 읽기 잠금을 적용하여 덤프 파일 생성 중에 데이터가 변경되지 않도록 합니다.
- 또는 복제가 사용 중지된 소스 데이터베이스에서 읽기 복제본을 사용하여 덤프 파일을 생성합니다.
소스별 가이드
- MySQL: MySQL 라이브 데이터 마이그레이션