질문 또는 문제가 다음 페이지 중 하나에서 이미 해결된 것인지 확인합니다.
이 페이지의 주제는 다음과 같습니다.
백업 및 복구
문제 | 문제 해결 |
---|---|
현재 작업의 상태를 볼 수 없습니다. | Google Cloud 콘솔은 작업 완료 시에만 성공 또는 실패를 보고합니다. 경고 또는 기타 업데이트를 표시하도록 설계되지 않았습니다.
|
주문형 백업 작업을 실행한 사용자를 확인하려고 합니다. | 사용자 인터페이스에 작업을 시작한 사용자가 표시되지 않습니다.
로그를 살펴보고 텍스트를 기준으로 필터링하여 사용자를 찾습니다. 비공개 정보의 경우 감사 로그를 사용해야 할 수도 있습니다. 관련 로그 파일은 다음과 같습니다.
|
인스턴스가 삭제된 후에는 인스턴스를 백업할 수 없습니다. | 인스턴스가 삭제된 후에는 데이터를 복구할 수 없습니다. 그러나 인스턴스가 복원되면 해당 백업도 복원됩니다. 삭제된 인스턴스를 복구하는 방법에 대한 자세한 내용은 복구 백업을 참조하세요. 내보내기 작업을 완료한 경우 새 인스턴스를 만든 다음 가져오기 작업을 수행하여 데이터베이스를 다시 만들 수 있습니다. 내보내기는 Cloud Storage에 쓰이고 여기에서 가져오기를 읽습니다. |
자동 백업이 장시간 중단되고 취소할 수 없습니다. | 데이터베이스 크기에 따라 백업에 오랜 시간이 걸릴 수 있습니다.
작업을 취소해야 하는 경우 고객지원에 인스턴스 |
SQL 덤프 파일에 참조된 하나 이상의 사용자가 없으면 복원 작업이 실패할 수 있습니다. | SQL 덤프를 복원하기 전에 객체를 소유하거나 덤프된 데이터베이스의 객체에 대한 권한이 부여된 모든 데이터베이스 사용자가 대상 데이터베이스에 있어야 합니다. 그렇지 않으면 복원 작업이 원래 소유권이나 권한으로 객체를 다시 만들지 못합니다.
SQL 덤프를 복원하기 전에 데이터베이스 사용자를 만듭니다. |
자동 백업 보관 일수를 7일에서 30일 이상으로 늘리려고 합니다. |
유지할 자동 백업 수를 구성할 수 있지만 기본값(7개)보다 적게 유지할 수는 없습니다. 자동 백업은 구성된 보관 값에 따라 정기적으로 프루닝됩니다. 따라서 복원할 수 있는 자동 백업은 현재 표시되는 백업뿐입니다.
백업을 무기한 보관하려면 자동 백업과 동일한 방식으로 삭제되지 않는 주문형 백업을 만들면 됩니다. 주문형 백업은 무기한 유지됩니다. 즉, 백업이나 백업이 속한 인스턴스가 삭제될 때까지 유지됩니다. 이러한 유형의 백업은 자동으로 삭제되지 않으므로 결제에 영향을 미칠 수 있습니다. |
자동 백업에 실패했으며 이메일 알림을 받지 못했습니다. | Cloud SQL에서 백업 상태를 알리도록 설정하려면 로그 기반 알림을 구성합니다. |
Transact-SQL RESTORE 명령어 또는 SQL Server Management Studio(SSMS)를 사용하여 인스턴스를 복원할 수 없습니다. |
Cloud SQL은 SSMS를 통한 인스턴스 복원을 지원하지 않습니다.
인스턴스를 복원하려면
gcloud sql import 명령어를 실행합니다.
|
클론
문제 | 문제 해결 |
---|---|
constraints/sql.restrictAuthorizedNetworks 오류와 함께 클론이 실패합니다. |
클론 작업이 Authorized Networks 구성에 의해 차단되었습니다.
Google Cloud 콘솔의 연결 섹션에서 공개 IP 주소에 Authorized Networks 가 구성되어 있으며 보안 고려사항으로 인해 클론이 허용되지 않습니다.
가능하면 Cloud SQL 인스턴스에서 모든 |
오류 메시지: Failed to create subnetwork. Couldn't find free
blocks in allocated IP ranges. Please allocate new ranges for this service
provider. Help Token: [help-token-id]. |
Google Cloud 콘솔을 사용하여 비공개 IP 주소로 인스턴스를 클론하려고 하지만 사용할 할당된 IP 범위를 지정하지 않았고 소스 인스턴스가 지정된 범위로 생성되지 않습니다. 따라서 클론된 인스턴스는 무작위 범위로 생성됩니다.
|
연결
문제 | 문제 해결 |
---|---|
Aborted connection . |
문제 원인:
애플리케이션은 네트워크 장애를 허용하고 연결 풀링 및 재시도와 같은 권장사항을 따라야 합니다. 대부분의 연결 풀러는 이러한 오류를 포착합니다(가능한 경우). 그렇지 않으면 애플리케이션이 다시 시도하거나 정상적으로 실패해야 합니다. 연결을 다시 시도하려면 다음 방법을 사용하는 것이 좋습니다.
이러한 방법을 조합하면 제한을 줄일 수 있습니다. |
인스턴스 만들기
문제 | 문제 해결 |
---|---|
오류 메시지: Failed to create subnetwork. Router status is
temporarily unavailable. Please try again later. Help Token:
[token-ID] . |
Cloud SQL 인스턴스를 다시 만들어 보세요. |
오류 메시지: Failed to create subnetwork. Required
'compute.projects.get' permission for PROJECT_ID . |
비공개 IP 주소를 사용하여 인스턴스를 만들면 Service Networking API를 사용하여 적시에 서비스 계정이 생성됩니다. 최근에 Service Networking API를 사용 설정한 경우 서비스 계정이 생성되지 않고 인스턴스 만들기가 실패할 수 있습니다. 이 경우 서비스 계정이 시스템 전체에 전파될 때까지 기다리거나 필요한 권한을 수동으로 추가해야 합니다. |
내보내기
문제 | 문제 해결 |
---|---|
HTTP Error 409: Operation failed because another operation was
already in progress. |
인스턴스에 대기 중인 작업이 이미 있습니다. 한 번에 하나의 작업만 허용됩니다. 현재 작업이 완료된 후 요청을 시도하세요. |
HTTP Error 403: The service account does not have the required
permissions for the bucket. |
버킷이 있고 내보내기를 수행하는 Cloud SQL 인스턴스의 서비스 계정에 버킷으로 내보낼 수 있는 Storage Object Creator 역할(roles/storage.objectCreator )이 있는지 확인합니다. Cloud Storage에 대한 IAM 역할을 참조하세요. |
내보내기를 자동화하려고 합니다. | Cloud SQL은 내보내기를 자동화하는 방법을 제공하지 않습니다.
백업 자동화에 대한 이 문서와 마찬가지로 Cloud Scheduler, Pub/Sub, Cloud Functions와 같은 Google Cloud 제품을 사용하여 자체 자동 내보내기 시스템을 빌드할 수 있습니다. |
플래그
문제 | 문제 해결 |
---|---|
SQL Server용 Cloud SQL에서는 기존 인스턴스의 시간대를 수정할 수 없습니다. |
Cloud SQL에서 SQL Server는 새 인스턴스의 시간대를 설정할 수 있지만 기존 인스턴스의 시간대를 설정할 수 없습니다. SQL Server용 Cloud SQL에서는 시간 변환 등에 |
고가용성
문제 | 문제 해결 |
---|---|
수동 장애 조치에 대한 측정항목을 찾을 수 없습니다. | 자동 장애 조치만 측정항목에 포함됩니다. |
Cloud SQL 인스턴스 리소스(CPU 및 RAM) 사용량이 거의 100%여서 고가용성 인스턴스가 다운됩니다. | 인스턴스 머신 크기가 부하에 비해 너무 작습니다.
인스턴스를 수정하여 더 큰 머신 크기로 업그레이드하면 CPU와 메모리가 늘어납니다. |
가져오기
문제 | 문제 해결 |
---|---|
HTTP Error 409: Operation failed because another operation was already in progress . |
인스턴스에 대기 중인 작업이 이미 있습니다. 한 번에 하나의 작업만 허용됩니다. 현재 작업이 완료된 후 요청을 시도하세요. |
가져오기 작업이 너무 오래 걸립니다. | 활성 연결이 너무 많으면 가져오기 작업을 방해할 수 있습니다.
사용하지 않는 작업을 종료합니다. Cloud SQL 인스턴스의 CPU 및 메모리 사용량을 확인하여 사용 가능한 리소스가 충분한지 확인합니다. 가져오기에 최대 리소스를 보장하는 가장 좋은 방법은 작업을 시작하기 전에 인스턴스를 다시 시작하는 것입니다. 다시 시작하면 다음과 같은 결과가 발생합니다.
|
덤프 파일에 참조된 하나 이상의 사용자가 없으면 가져오기 작업이 실패할 수 있습니다. | 덤프 파일을 가져오기 전에 객체를 소유하거나 덤프된 데이터베이스의 객체에 대한 권한이 부여된 모든 데이터베이스 사용자가 대상 데이터베이스에 있어야 합니다. 그렇지 않으면 가져오기 작업이 원래 소유권이나 권한으로 객체를 다시 만들지 못합니다.
가져오기 전에 데이터베이스 사용자를 만듭니다. |
LSN 불일치 | 트랜잭션 로그 백업 가져오기 순서가 잘못되었거나 트랜잭션 로그 체인이 손상되었습니다. 백업 세트 테이블과 동일한 순서로 트랜잭션 로그 백업을 가져옵니다. |
너무 빠르게 중지 | 이 오류는 트랜잭션 로그 파일의 첫 번째 로그가 StopAt 타임스탬프 이후임을 나타냅니다. 예를 들어 트랜잭션 로그 파일의 첫 번째 로그가 2023-09-01T12:00:00이고 StopAt 필드 값이 2023-09-01T11:00:00이면 Cloud SQL에서 이 오류를 반환합니다.올바른 StopAt 타임스탬프와 올바른 트랜잭션 로그 파일을 사용하고 있는지 확인합니다. |
연결된 서버
오류 메시지 | 문제 해결 |
---|---|
Msg 7411, Level 16, State 1, Line 25
|
DataAccess 옵션이 사용 중지되었습니다. 다음 명령어를 실행하여 데이터 액세스를 사용 설정합니다.EXEC sp_serveroption @server='LINKED_SERVER_NAME', @optname='data access', @optvalue='TRUE' LINKED_SERVER_NAME을 연결된 서버의 이름으로 바꿉니다. |
Access to the remote server is denied because no
login-mapping exists. (Microsoft SQL Server, Error: 7416)
|
암호화된 연결을 설정하는 동안 이 문제가 발생하면 연결된 서버에 액세스할 때 사용자 ID를 제공하는 다른 방법을 시도해야 합니다. 이렇게 하려면 다음 명령을 실행합니다.
EXEC master.dbo.sp_addlinkedserver @server = N'LINKED_SERVER_NAME', @srvproduct= N'', @provider= N'SQLNCLI', @datasrc= N'TARGET_SERVER_ID', @provstr= N'Encrypt=yes;TrustServerCertificate=yes;User ID=USER_ID' 다음을 바꿉니다.
|
로깅
문제 | 문제 해결 |
---|---|
감사 로그를 찾을 수 없음 | 데이터 액세스 로그는 작업이 사용자가 만든 데이터를 생성 또는 수정하거나 읽는 인증된 사용자 주도 API 호출인 경우 또는 작업이 리소스의 구성 파일 또는 메타데이터에 액세스하는 경우에만 작성됩니다. |
로그에 작업 정보가 없음 | 작업에 대한 자세한 정보를 찾으려 합니다.
예를 들어 사용자가 삭제되었는데 누가 삭제했는지 알 수 없습니다. 로그는 작업이 시작되었음을 표시하지만 그 이상의 정보를 제공하지 않습니다. 이와 같은 자세한 개인 식별 정보(PII)를 로깅하려면 감사 로깅을 사용 설정해야 합니다. |
일부 로그는 SQL Server용 Cloud SQL 인스턴스의 error.log 로그에서 필터링됩니다.
|
필터링된 로그는 타임스탬프가 없는 AD 로그를 포함하며 다음을 포함합니다. Login failed for user 'x'. Reason: Token-based server access
validation failed with an infrastructure error. Login lacks connect endpoint
permission. [CLIENT: 127.0.0.1] 이러한 로그는 잠재적으로 혼란을 야기할 수 있으므로 필터링됩니다.
|
로그 파일을 읽기 어려움 | 로그를 json 또는 텍스트로 보는 것이 좋습니다.gcloud logging read 명령어를 Linux 후처리 명령어와 함께 사용하여 로그를 다운로드할 수 있습니다.
로그를 JSON으로 다운로드하려면 다음 명령어를 실행합니다. gcloud logging read \ "resource.type=cloudsql_database \ AND logName=projects/PROJECT_ID \ /logs/cloudsql.googleapis.com%2FLOG_NAME" \ --format json \ --project=PROJECT_ID \ --freshness="1d" \ > downloaded-log.json 로그를 TEXT로 다운로드하려면 다음 명령어를 실행합니다. gcloud logging read \ "resource.type=cloudsql_database \ AND logName=projects/PROJECT_ID \ /logs/cloudsql.googleapis.com%2FLOG_NAME" \ --format json \ --project=PROJECT_ID \ --freshness="1d"| jq -rnc --stream 'fromstream(1|truncate_stream(inputs)) \ | .textPayload' \ --order=asc > downloaded-log.txt |
인스턴스 관리
문제 | 문제 해결 |
---|---|
임시 스토리지가 자동 스토리지를 늘림 | 자동 스토리지가 사용 설정되었습니다.
다시 시작하면 임시 파일은 삭제되지만 스토리지는 줄어들지 않습니다. 인스턴스 크기는 고객지원에서만 재설정할 수 있습니다. |
데이터가 자동으로 삭제됨 | 환경에서 스크립트가 실행되고 있을 가능성이 높습니다.
삭제 시점의 로그를 살펴보고 대시보드 또는 다른 자동화된 프로세스에서 실행 중인 악성 스크립트가 있는지 확인합니다. |
인스턴스를 삭제할 수 없음 | ERROR: (gcloud.sql.instances.delete) HTTP Error
409: The instance or operation is not in an appropriate state to handle the
request 오류 메시지가 표시되거나 인스턴스의 플래그 상태가 INSTANCE_RISKY_FLAG_CONFIG 일 수 있습니다.다음과 같이 설명할 수 있습니다.
|
큰 임시 데이터 크기로 인해 인스턴스가 중단됨 | 시스템은 쿼리와 부하에 따라 한 번에 여러 개의 임시 테이블을 만들 수 있습니다.
서비스 다시 시작 이외의 방법으로는 한 가지 완화 옵션은 |
업그레이드 중 치명적인 오류 발생 | 로그에 더 많은 정보가 표시될 수 있지만 어떤 경우에도 인스턴스를 강제로 다시 만들려면 고객지원이 필요할 수 있습니다. |
디스크 공간 부족 후 다시 시작할 때 인스턴스가 중단됨 | 스토리지 자동 증가 기능이 사용 설정되지 않았습니다.
인스턴스의 스토리지가 부족하고 스토리지 자동 증가 기능이 사용 설정되지 않은 경우 인스턴스가 오프라인 상태가 됩니다. 이 문제를 방지하려면 인스턴스를 수정하여 스토리지 자동 증가를 사용 설정하면 됩니다. |
온프레미스 기본 인스턴스가 멈췄습니다. | Google Cloud는 Cloud SQL에 없는 인스턴스를 지원할 수 없습니다. |
다시 시작 시 종료가 느림 | 인스턴스가 종료될 때 60초 이내에 종료되지 않는 연결로 인해 비정상 종료가 발생합니다.
60초 미만 지속되는 연결을 유지하면 데이터베이스 명령 프롬프트의 연결을 포함한 대부분의 비정상 종료를 방지할 수 있습니다. 이러한 연결을 몇 시간 또는 며칠 동안 열어두면 종료가 비정상적으로 될 수 있습니다. |
사용자를 삭제할 수 없음 | 사용자에게 종속된 객체가 데이터베이스에 있을 수 있습니다. 이러한 객체를 삭제하거나 다른 사용자에게 다시 할당해야 합니다.
사용자에게 종속된 객체를 찾은 후 이 객체를 삭제하거나 다른 사용자에게 다시 할당합니다. Stack Exchange의 이 스레드에서는 사용자가 소유한 객체를 찾는 방법을 설명합니다. |
특정 쿼리가 느리게 실행됨 | 쿼리는 여러 가지 이유로 느려질 수 있지만 주로 데이터베이스의 특정 부분이 원인입니다. Cloud SQL과 관련될 수 있는 한 가지 이유는 소스(작성자 또는 리더) 리소스와 대상(Cloud SQL) 리소스가 서로 다른 리전에 있는 경우의 네트워크 지연 시간입니다.
특히 일반 성능 팁을 참조하세요. 데이터베이스 삽입, 업데이트 또는 삭제 속도가 느리다면 다음과 같은 조치를 취하는 것이 좋습니다.
지연 시간을 줄이려면 소스 리소스와 대상 리소스를 동일한 리전에 두는 것이 좋습니다. |
메모리 부족이라고 표시되지만 모니터링 차트에는 표시되지 않음 | 인스턴스가 실패하고 Out of memory 를 보고하지만 Google Cloud 콘솔이나 Cloud Monitoring 차트에는 여전히 메모리가 남아 있는 것으로 표시됩니다.
워크로드 외에도 활성 연결 수 및 내부 오버헤드 프로세스와 같이 메모리 사용량에 영향을 줄 수 있는 다른 요소가 있습니다. 이러한 요소가 항상 모니터링 차트에 반영되는 것은 아닙니다. 인스턴스에 워크로드와 일부 추가 오버헤드를 처리할 수 있는 오버헤드가 충분한지 확인합니다. |
삭제된 인스턴스 복구 | 인스턴스를 삭제하면 백업을 포함한 인스턴스의 모든 데이터가 영구 삭제됩니다.
데이터를 보존하려면 인스턴스를 삭제하기 전에 Cloud Storage로 내보내기를 수행합니다. Cloud SQL 관리자 역할은 인스턴스를 삭제할 수 있는 권한을 포함합니다. 실수로 삭제하지 않도록 방지하려면 필요한 경우에만 이 역할을 부여하세요. |
기존 Cloud SQL 인스턴스의 이름을 바꾸려는 경우 | 기존 인스턴스의 이름 변경은 지원되지 않습니다.
새 인스턴스를 만들면 목표를 달성할 수 있습니다.
두 경우 모두 작업이 완료되면 기존 인스턴스를 삭제하시면 됩니다. 성능에 영향을 미치지 않고 플래그, 머신 유형, 스토리지 크기, 메모리와 같은 인스턴스 구성 설정을 다시 실행할 필요가 없으므로 클론 경로를 사용하는 것을 권장합니다. |
인스턴스를 삭제하는 중에 오류 발생 | 인스턴스에 삭제 보호가 사용 설정된 경우 인스턴스 삭제 계획을 확인합니다. 그런 다음 인스턴스를 삭제하기 전에 삭제 보호를 사용 중지합니다. |
복제
문제 | 문제 해결 |
---|---|
생성 시 읽기 복제본이 복제를 시작하지 않음 | 로그 파일에 더 구체적인 오류가 있을 수 있습니다. Cloud Logging의 로그를 검사하여 실제 오류를 찾으세요. |
읽기 복제본을 만들 수 없음 - invalidFlagValue 오류 | 요청의 플래그 중 하나가 잘못되었습니다. 명시적으로 제공한 플래그 또는 기본값으로 설정된 플래그일 수 있습니다.
먼저
|
읽기 복제본을 만들 수 없음 - 알 수 없는 오류 | 로그 파일에 더 구체적인 오류가 있을 수 있습니다.
Cloud Logging의 로그를 검사하여 실제 오류를 찾으세요.
오류가 |
디스크가 가득 참 | 복제본을 만드는 동안 기본 인스턴스 디스크 크기가 가득 찰 수 있습니다. 기본 인스턴스를 수정하여 더 큰 디스크 크기로 업그레이드합니다. |
복제본 인스턴스가 너무 많은 메모리를 사용하고 있습니다. | 복제본은 임시 메모리를 사용하여 자주 요청되는 읽기 작업을 캐시하므로 기본 인스턴스보다 더 많은 메모리를 사용할 수 있습니다.
복제본 인스턴스를 다시 시작하여 임시 메모리 공간을 회수합니다. |
복제가 중지됨 | 최대 스토리지 한도에 도달했고 스토리지 자동 증가가 사용 설정되지 않았습니다.
인스턴스를 수정하여 |
긴 복제 지연 시간이 지속적으로 발생함 | 쓰기 부하가 너무 높아 복제본이 처리할 수 없습니다. 복제본의 SQL 스레드가 IO 스레드를 따라잡을 수 없는 경우 복제 지연이 발생합니다. 일부 쿼리 또는 워크로드로 인해 특정 스키마에서 일시적이거나 영구적인 복제 지연이 발생할 수 있습니다. 복제 지연이 발생하는 일반적인 원인은 다음과 같습니다.
가능한 솔루션은 다음과 같습니다.
|
제한 시간으로 인해 복제본을 만들지 못했습니다. | 기본 인스턴스에서 커밋되지 않은 장기 실행 트랜잭션으로 인해 읽기 복제본을 만들지 못할 수 있습니다.
실행 중인 모든 쿼리를 중지한 후 복제본을 다시 만듭니다. |