알려진 문제

이 페이지에는 PostgreSQL용 Cloud SQL의 알려진 문제와 이러한 문제를 피하거나 복구하는 방법이 나와 있습니다.

인스턴스에서 문제가 발생하는 경우 문제 진단의 정보도 검토해야 합니다.

인스턴스 연결 문제

  • 만료된 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 인스턴스를 다시 만들어 봅니다.

  • 다음이 기본 사용자('postgres')에서만 작동함. gcloud sql connect --user

    이 명령어를 다른 사용자와 연결하려는 경우 FATAL: database 'user' does not exist라는 오류 메시지가 표시됩니다. 해결 방법은 기본 사용자('postgres')를 사용하여 연결한 다음 "\c" psql 명령어를 사용하여 다른 사용자로 다시 연결하는 것입니다.

  • IAM db 프록시 인증이 사용 설정되면 PostgreSQL 연결이 중단됨.

    Cloud SQL Auth 프록시가 TCP 소켓을 사용하여 시작되고 -enable_iam_login 플래그가 포함된 경우 TCP 연결이 진행되는 동안 PostgreSQL 클라이언트가 중단됩니다. 한 가지 해결 방법은 PostgreSQL 연결 문자열에 sslmode=disable을 사용하는 것입니다. 예를 들면 다음과 같습니다.

    psql "host=127.0.0.1 dbname=postgres user=me@google.com sslmode=disable"
    

    또 다른 해결 방법은 Unix 소켓을 사용하여 Cloud SQL 인증 프록시를 시작하는 것입니다. 그러면 PostgreSQL SSL 암호화가 사용 중지되고 대신 Cloud SQL 인증 프록시가 SSL 암호화를 수행합니다.

관리 문제

  • 인스턴스에서 한 번에 하나의 장기 실행 Cloud SQL 가져오기 또는 내보내기 작업만 실행할 수 있습니다. 작업을 시작할 때 인스턴스에서 다른 작업을 수행할 필요가 없는지 확인하세요. 또한 작업을 시작할 때 취소할 수 있습니다.

    PostgreSQL은 단일 트랜잭션으로 데이터를 가져옵니다. 따라서 가져오기 작업을 취소하면 Cloud SQL에서 가져오기의 데이터가 유지되지 않습니다.

    데이터 가져오기 및 내보내기 문제

    • PostgreSQL 버전 15 이상에서는 대상 데이터베이스가 template0에서 생성되면 데이터를 가져올 수 없고 permission denied for schema public 오류 메시지가 표시될 수 있습니다. 이 문제를 해결하려면 GRANT ALL ON SCHEMA public TO cloudsqlsuperuser SQL 명령어를 실행하여 cloudsqlsuperuser 사용자에게 공개 스키마 권한을 제공합니다.

    • 많은 대형 객체를 내보내면 인스턴스가 응답하지 않음

      데이터베이스에 대형 객체(blob)가 많이 포함되어 있을 때 데이터베이스를 내보내면 너무 많은 메모리가 소비되어 인스턴스가 응답하지 않습니다. 이러한 문제는 blob이 비어 있어도 발생합니다.

    • Cloud SQL은 맞춤설정된 테이블스페이스를 지원하지 않지만 대상 인스턴스에서 맞춤설정된 테이블 스페이스에서 기본 테이블스페이스인 pg_default로의 데이터 마이그레이션을 지원합니다. 예를 들어 /home/datadbspace라는 테이블스페이스가 있는 경우 마이그레이션 후에 dbspace 내의 모든 데이터는 pg_default로 마이그레이션됩니다. 하지만 Cloud SQL은 디스크에 'dbspace'라는 테이블스페이스를 만들지 않습니다.

    • 대규모 데이터베이스(예: 데이터가 500GB 이상인 데이터베이스)에서 데이터를 가져오고 내보내려는 경우 가져오기 및 내보내기 작업을 완료하는 데 시간이 오래 걸릴 수 있습니다. 또한 가져오기 또는 내보내기가 진행되는 동안 다른 작업(예: 백업 작업)을 수행할 수 없습니다. 가져오기 및 내보내기 프로세스의 성능을 향상시킬 수 있는 옵션은 gcloud 또는 API를 사용하여 이전 백업을 복원하는 것입니다.

    • Cloud Storage는 최대 단일 객체 크기를 5TB까지 지원합니다. 데이터베이스가 5TB보다 크면 Cloud Storage로 내보내기 작업이 실패합니다. 이 경우 내보내기 파일을 보다 작은 세그먼트로 분할해야 합니다.

    트랜잭션 로그 및 디스크 증가

    로그는 매일 한 번씩 영구 삭제되며, 지속적으로 진행되지 않습니다. 로그 보관 일수가 백업 수와 동일하게 구성된 경우 백업 발생 시점에 따라 1일 치의 로깅이 손실될 수 있습니다. 예를 들어 로그 보관을 7일로 설정하고 백업 보관을 7개로 설정하면 6~7일 동안의 로그가 유지됩니다.

    백업 수는 로그 보관 일수보다 최소 1일 이상으로 설정해야 로그 보관 기간을 지정된 최소 일수 이상으로 유지할 수 있습니다.

    다음 리전 이름의 인스턴스는 특정 컨텍스트에서 다음과 같이 잘못 표시됩니다.

    • us-central1us-central로 표시됩니다.
    • europe-west1europe으로 표시됩니다.
    • asia-east1asia로 표시됩니다.

    이 문제는 다음 상황에서 발생합니다.

    • Cloud Monitoring의 알림
    • 측정항목 탐색기
    • Cloud Logging

    리소스 메타데이터 라벨을 사용하여 Cloud Monitoring의 알림과 측정항목 탐색기의 문제를 완화할 수 있습니다. cloudsql_database 모니터링 리소스 라벨 region 대신 시스템 메타데이터 라벨 region을 사용합니다.