이 페이지에는 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에서 가져오기의 데이터가 유지되지 않습니다.
데이터 가져오기 및 내보내기 문제
Cloud SQL 인스턴스에서 PostgreSQL 17을 사용하지만 데이터베이스에서 PostgreSQL 16 이하를 사용하는 경우 Cloud SQL을 사용하여 이러한 데이터베이스를 인스턴스로 가져올 수 없습니다. 이렇게 하려면 Database Migration Service를 사용하세요.
Database Migration Service를 사용하여 PostgreSQL 17 데이터베이스를 Cloud SQL로 가져오면 PostgreSQL 16 데이터베이스로 가져옵니다.
PostgreSQL 버전 15 이상에서는 대상 데이터베이스가
template0
에서 생성되면 데이터를 가져올 수 없고permission denied for schema public
오류 메시지가 표시될 수 있습니다. 이 문제를 해결하려면GRANT ALL ON SCHEMA public TO cloudsqlsuperuser
SQL 명령어를 실행하여cloudsqlsuperuser
사용자에게 공개 스키마 권한을 제공합니다.많은 대형 객체를 내보내면 인스턴스가 응답하지 않음
데이터베이스에 대형 객체(blob)가 많이 포함되어 있을 때 데이터베이스를 내보내면 너무 많은 메모리가 소비되어 인스턴스가 응답하지 않습니다. 이러한 문제는 blob이 비어 있어도 발생합니다.
Cloud SQL은 맞춤설정된 테이블스페이스를 지원하지 않지만 대상 인스턴스에서 맞춤설정된 테이블 스페이스에서 기본 테이블스페이스인
pg_default
로의 데이터 마이그레이션을 지원합니다. 예를 들어/home/data
에dbspace
라는 테이블스페이스가 있는 경우 마이그레이션 후에dbspace
내의 모든 데이터는pg_default
로 마이그레이션됩니다. 하지만 Cloud SQL은 디스크에 'dbspace'라는 테이블스페이스를 만들지 않습니다.대규모 데이터베이스(예: 데이터가 500GB 이상인 데이터베이스)에서 데이터를 가져오고 내보내려는 경우 가져오기 및 내보내기 작업을 완료하는 데 시간이 오래 걸릴 수 있습니다. 또한 가져오기 또는 내보내기가 진행되는 동안 다른 작업(예: 백업 작업)을 수행할 수 없습니다. 가져오기 및 내보내기 프로세스의 성능을 향상시킬 수 있는 옵션은
gcloud
또는 API를 사용하여 이전 백업을 복원하는 것입니다.
- Cloud Storage는 최대 단일 객체 크기를 5TB까지 지원합니다. 데이터베이스가 5TB보다 크면 Cloud Storage로 내보내기 작업이 실패합니다. 이 경우 내보내기 파일을 보다 작은 세그먼트로 분할해야 합니다.
트랜잭션 로그 및 디스크 증가
로그는 매일 한 번씩 영구 삭제되며, 지속적으로 진행되지 않습니다. 로그 보관 일수가 백업 수와 동일하게 구성된 경우 백업 발생 시점에 따라 1일 치의 로깅이 손실될 수 있습니다. 예를 들어 로그 보관을 7일로 설정하고 백업 보관을 7개로 설정하면 6~7일 동안의 로그가 유지됩니다.
백업 수는 로그 보관 일수보다 최소 1일 이상으로 설정해야 로그 보관 기간을 지정된 최소 일수 이상으로 유지할 수 있습니다.
Cloud Monitoring 또는 Cloud Logging 관련 문제
다음 리전 이름의 인스턴스는 특정 컨텍스트에서 다음과 같이 잘못 표시됩니다.
us-central1
은us-central
로 표시됩니다.europe-west1
은europe
으로 표시됩니다.asia-east1
은asia
로 표시됩니다.
이 문제는 다음 상황에서 발생합니다.
- Cloud Monitoring의 알림
- 측정항목 탐색기
- Cloud Logging
리소스 메타데이터 라벨을 사용하여 Cloud Monitoring의 알림과 측정항목 탐색기의 문제를 완화할 수 있습니다. cloudsql_database 모니터링 리소스 라벨
region
대신 시스템 메타데이터 라벨region
을 사용합니다.