이 페이지에서는 MySQL용 Cloud SQL의 알려진 문제와 이러한 문제를 방지하거나 복구하는 방법을 설명합니다.
인스턴스에서 문제가 발생하면 운영 가이드라인 및 문제 진단의 정보도 검토하시기 바랍니다.데이터 내구성 및 가용성 문제
생성된 열(MySQL 5.7 인스턴스만 해당)
MySQL의 문제로 인해, 생성된 열을 사용하면 데이터가 손상될 수 있습니다. 자세한 내용은 MySQL 버그 #82736을 참조하세요.
인스턴스 연결 문제
만료된 SSL/TLS 인증서
인스턴스가 SSL을 사용하도록 구성된 경우 Google Cloud 콘솔의 Cloud SQL 인스턴스 페이지로 이동하여 인스턴스를 엽니다. 인스턴스의 연결 페이지를 열고 보안 탭을 선택한 후 서버 인증서가 유효한지 확인합니다. 만료된 경우 새 인증서를 추가하고 새 인증서로 순환시켜야 합니다.
Cloud SQL 인증 프록시 버전
Cloud SQL 인증 프록시로 연결하는 경우 가장 최근 버전을 사용하고 있는지 확인합니다. 자세한 내용은 Cloud SQL 인증 프록시를 최신 상태로 유지를 참조하세요.
연결이 승인되지 않음
해당 프로젝트에 존재하지 않는 인스턴스에 연결하려고 할 경우 해당 인스턴스에 액세스할 수 있는 권한이 없다는 오류 메시지만 표시됩니다.
Cloud SQL 인스턴스를 만들 수 없음
Failed to create subnetwork. Router status is temporarily unavailable. Please try again later. Help Token: [token-ID]
오류 메시지가 표시되면 Cloud SQL 인스턴스를 다시 만들어 봅니다.
관리 문제
인스턴스에서 한 번에 하나의 장기 실행 Cloud SQL 가져오기 또는 내보내기 작업만 실행할 수 있습니다. 작업을 시작할 때 인스턴스에서 다른 작업을 수행할 필요가 없는지 확인하세요. 또한 작업을 시작할 때 취소할 수 있습니다.
MySQL은 각 DDL 문에서 자동 커밋합니다. Cloud SQL은 인스턴스 취소까지 가져오기의 모든 단계를 유지합니다. 따라서 인스턴스의 데이터를 수동으로 삭제해야 할 수 있습니다.
데이터 가져오기 및 내보내기 문제
CSV 내보내기가 NULL 및 줄바꿈 형식을 올바르게 지정하지 않습니다.
Cloud SQL 내보내기 기능을 통해 데이터를 CSV 형식으로 내보내면 NULL은
"N
으로 바뀌므로 CSV 파일에 내용과 관련 없는 물음표가 나타날 수 있습니다. 또한 텍스트 데이터에 줄바꿈 문자가 포함되어 있으면 줄 끝에 후행 인용 부호가 추가됩니다.기본 이스케이프 문자를 사용하여 내보낸 파일을 가져올 때 파일에서 값을
NULL
대신"NULL"
로 처리합니다. 파일을 내보낼 때 기본값을 재정의하려면--escape="5C"
를 사용합니다.SQL 모드 설정은 Cloud SQL이 SQL 쿼리를 해석하는 방법에 영향을 줍니다.
예를 들어 Strict SQL을 사용 설정하지 않고 데이터베이스에서 내보낸 다음 Cloud SQL(기본적으로 Strict SQL이 사용 설정됨)로 가져오기를 시도하는 경우 가져오기가 실패할 수 있습니다. 내보내기에 사용한 SQL 모드와 동일한 SQL 모드를 가져오기에 사용하는 것이 좋습니다.
DEFINER 절을 사용하면 가져오기가 실패할 수 있습니다.
DEFINER 사용자가 SUPER 또는 시스템 사용자이고 Cloud SQL로 가져오기를 수행하는 사용자가 아니면 DEFINER 절로 인해 가져오기 작업이 실패할 수 있습니다. Cloud SQL에서 DEFINER 사용 및 우회적 해결 방법에 대해 자세히 알아보세요.
대규모 데이터베이스(예: 데이터가 500GB 이상인 데이터베이스)에서 데이터를 가져오고 내보내려는 경우 가져오기 및 내보내기 작업을 완료하는 데 시간이 오래 걸릴 수 있습니다. 또한 가져오기 또는 내보내기가 진행되는 동안 다른 작업(예: 백업 작업)을 수행할 수 없습니다. 가져오기 및 내보내기 프로세스의 성능을 향상시킬 수 있는 옵션은
gcloud
또는 API를 사용하여 이전 백업을 복원하는 것입니다.
- Cloud Storage는 최대 단일 객체 크기를 5TB까지 지원합니다. 데이터베이스가 5TB보다 크면 Cloud Storage로 내보내기 작업이 실패합니다. 이 경우 내보내기 파일을 보다 작은 세그먼트로 분할해야 합니다.
트랜잭션 로그 및 디스크 증가
로그는 매일 한 번씩 영구 삭제되며, 지속적으로 진행되지 않습니다. 로그 보관 일수가 백업 수와 동일하게 구성된 경우 백업 발생 시점에 따라 1일 치의 로깅이 손실될 수 있습니다. 예를 들어 로그 보관을 7일로 설정하고 백업 보관을 7개로 설정하면 6~7일 동안의 로그가 유지됩니다.
백업 수는 로그 보관 일수보다 최소 1일 이상으로 설정해야 로그 보관 기간을 지정된 최소 일수 이상으로 유지할 수 있습니다.
MySQL 인스턴스 업그레이드 관련 문제
Database Migration Service를 사용하여 MySQL 인스턴스를 버전 5.7에서 버전 8.0으로 업그레이드하고 버전 5.7 인스턴스의 mysql
이라는 데이터베이스에 저장 프로시져를 만든 경우 업그레이드된 버전 8.0 인스턴스의 mysql
데이터베이스에 저장 프로시져가 복사되지 않을 수 있습니다. 또한 업그레이드된 인스턴스의 mysql
데이터베이스에 저장 프로시져를 만들지 못할 수도 있습니다.
InnoDB 페이지 압축 문제
InnoDB 페이지 압축은 디스크에 읽고 써야 하는 데이터 양을 줄여서 업데이트 쿼리의 성능을 향상시킬 수 있습니다. 그러나 페이지 압축은 자주 업데이트되는 테이블의 업데이트 쿼리에 대한 성능에 영향을 줄 수 있습니다. 페이지 압축이 업데이트 쿼리에 미치는 영향을 평가하려면 페이지 압축을 사용하거나 사용하지 않고 성능 테스트를 실행하면 됩니다. 이렇게 하면 페이지 압축이 워크로드 성능에 미치는 영향을 관찰할 수 있습니다.
다음과 같이 페이지 압축 성능을 최적화할 수 있습니다.
데이터 유형에 적합한 압축 알고리즘을 사용합니다. 예를 들어 텍스트 데이터에는 LZ4를, 바이너리 데이터에는 ZLIB를 사용하세요.
자주 업데이트되는 데이터에는 압축을 사용하지 마세요. 데이터를 압축하고 압축 해제하면 업데이트 쿼리 속도가 느려질 수 있습니다.
Cloud Monitoring 또는 Cloud Logging 관련 문제
다음 리전 이름의 인스턴스는 특정 컨텍스트에서 다음과 같이 잘못 표시됩니다.
us-central1
은us-central
로 표시됩니다.europe-west1
은europe
으로 표시됩니다.asia-east1
은asia
로 표시됩니다.
이 문제는 다음 상황에서 발생합니다.
- Cloud Monitoring의 알림
- 측정항목 탐색기
- Cloud Logging
리소스 메타데이터 라벨을 사용하여 Cloud Monitoring의 알림과 측정항목 탐색기의 문제를 완화할 수 있습니다.
cloudsql_database 모니터링 리소스 라벨 region
대신 시스템 메타데이터 라벨 region
을 사용합니다.