데이터 가져오기 및 내보내기 권장사항

이 페이지에서는 Cloud SQL에서 데이터를 가져오고 내보낼 때의 권장사항을 제공합니다. Cloud SQL로 데이터를 가져오는 방법에 대한 단계별 안내는 데이터 가져오기를 참조하세요. Cloud SQL에 있는 데이터나 관리하고 있는 인스턴스에 있는 데이터 등 데이터 내보내기에 관한 단계별 안내는 데이터 내보내기를 참조하세요.

가져오기 및 내보내기 권장사항

다음은 데이터를 가져오고 내보낼 때 고려해야 할 권장사항입니다.

Cloud Storage 요청자 지불 버킷 사용 금지

Cloud SQL에서 가져오기와 내보내기에 요청자 지불이 사용 설정된 Cloud Storage 버킷을 사용할 수 없습니다.

데이터를 압축하여 비용 절감

Cloud SQL에서는 압축된 파일과 압축되지 않은 파일을 모두 가져오고 내보낼 수 있습니다. 특히 대규모 인스턴스를 내보낼 때 파일을 압축하면 Cloud Storage에서 차지하는 저장공간 및 스토리지 비용을 상당 부분 절약할 수 있습니다.

BAK 파일을 내보낼 때 .gz 파일 확장자를 사용하여 데이터를 압축하세요. 파일 확장자가 .gz인 파일을 가져오면 자동으로 압축이 해제됩니다.

가져오기 및 내보내기 장기 실행 작업에 대한 팁

Cloud Storage 버킷을 통해 가져오기 기능을 사용하여 Cloud SQL로 가져오기 및 내보내기 작업은 데이터베이스 크기에 따라 완료하는 데 오랜 시간이 걸릴 수 있습니다. 이에 따른 영향은 다음과 같습니다.

  • 장기 실행 작업을 중지할 수 없습니다.
  • 인스턴스마다 한 번에 가져오기 또는 내보내기 작업 하나만 수행할 수 있습니다.

데이터 배치 크기를 더 작게 만들고 Cloud SQL 가져오기 또는 내보내기 기능을 사용하면 각 작업을 완료하는 데 걸리는 시간을 줄일 수 있습니다.

문제 해결

자세한 내용을 보려면 표의 링크를 클릭하세요.

문제 설명 문제 원인 해결 방법
작업 상태를 볼 수 없음 사용자 인터페이스에 성공 또는 실패만 표시됩니다. 이 데이터베이스 명령어를 사용하여 자세히 알아보세요.
내보내는 데 시간이 너무 오래 걸림 Cloud SQL은 동시 동기 작업을 지원하지 않습니다. 내보내기 오프로딩을 사용합니다. 자세히 알아보기
가져오는 데 시간이 너무 오래 걸림 활성 연결이 너무 많으면 가져오기 작업을 방해할 수 있습니다. 사용하지 않는 연결을 끊거나 Cloud SQL 인스턴스를 다시 시작한 후 가져오기 작업을 시작합니다.
가져오기 실패 내보낸 파일에 아직 존재하지 않는 데이터베이스 사용자가 포함되어 있을 수 있습니다. 가져오기 전에 데이터베이스 사용자를 만듭니다.
내보내기 작업 중에 연결이 종료되었습니다. 쿼리는 처음 7분 이내에 데이터를 생성해야 합니다. 쿼리를 수동으로 테스트합니다. 자세히 알아보기
내보내는 중에 알 수 없는 오류 발생 대역폭 문제일 수 있습니다. 인스턴스와 Cloud Storage 버킷이 동일한 리전에 있는지 확인합니다.
내보내기를 자동화하려고 합니다. Cloud SQL은 내보내기를 자동화하는 방법을 제공하지 않습니다. 이 기능을 수행하려면 자체 파이프라인을 빌드하세요. 자세히 알아보기
ERROR_RDBMS: system error occurred Cloud Storage 권한 또는 존재하지 않는 테이블 문제입니다. 권한을 확인하거나 테이블이 존재하는지 확인합니다.

작업 상태를 볼 수 없음

진행 중인 작업의 상태를 볼 수 없습니다.

문제 원인

Google Cloud Console은 완료 시에만 성공 또는 실패를 보고하며, 경고를 반환하도록 설계되지 않았습니다.

해결 방법

데이터베이스에 연결하고 SHOW WARNINGS를 실행합니다.


내보내는 데 시간이 너무 오래 걸림

내보내기 시간이 너무 오래 걸려 다른 작업이 차단됩니다.

문제 원인

Cloud SQL은 동시 동기 작업을 지원하지 않습니다.

해결 방법

한 번에 내보내는 데이터 세트 크기를 줄여보세요.


가져오는 데 시간이 너무 오래 걸림

가져오는 데 시간이 너무 오래 걸려 다른 작업이 차단됩니다.

문제 원인

활성 연결이 너무 많으면 가져오기 작업을 방해할 수 있습니다. 연결은 CPU와 메모리를 소비하므로 사용 가능한 리소스가 제한됩니다.

해결 방법

사용하지 않는 작업을 종료합니다. CPU와 메모리 사용량을 확인하여 사용 가능한 리소스가 충분한지 확인합니다. 가져오기 작업에 최대 리소스를 보장하는 가장 좋은 방법은 작업을 시작하기 전에 인스턴스를 다시 시작하는 것입니다. 다시 시작하면 다음과 같은 결과가 발생합니다.

  • 모든 연결이 끊깁니다.
  • 리소스를 소비할 수 있는 모든 태스크가 종료됩니다.


가져오기 실패

내보낸 SQL 덤프 파일에 참조된 하나 이상의 사용자가 없으면 가져오기가 실패합니다.

문제 원인

SQL 덤프를 가져오기 전에 객체를 소유하거나 덤프된 데이터베이스의 객체에 대한 권한이 부여된 모든 데이터베이스 사용자가 있어야 합니다. 그렇지 않으면 복원에서 원래 소유권이나 권한으로 객체를 다시 만들지 못합니다.

해결 방법

SQL 덤프를 가져오기 전에 데이터베이스 사용자를 만듭니다.


내보내기 작업 중에 연결이 종료됨

내보내기 작업 중에 연결이 종료되었습니다.

문제 원인

내보내기에서 실행되는 쿼리가 내보내기 시작 후 처음 7분 이내에 데이터를 생성하지 않아서 Cloud Storage 연결이 시간 초과될 수 있습니다.

해결 방법

클라이언트에서 연결하고 아래 명령어로 쿼리 출력을 STDOUT에 전송하여 쿼리를 수동으로 테스트합니다.

COPY (INSERT_YOUR_QUERY_HERE) TO STDOUT WITH ( FORMAT csv, DELIMITER ',', ENCODING 'UTF8', QUOTE '"', ESCAPE '"' )

내보내기가 시작되면 클라이언트가 즉시 데이터 전송을 시작할 것으로 예상되므로 이는 예상된 문제입니다. 전송 데이터가 없는 연결을 유지하면 연결이 끊기고 결국 내보내기에 실패하여 작업이 불확실한 상태가 됩니다. gcloud의 오류 메시지 또한 다음 메시지를 통해 이런 내용을 전달하고자 합니다.

operation is taking longer than expected


내보내는 중에 알 수 없는 오류 발생

데이터베이스를 Cloud Storage 버킷으로 내보내려고 할 때 Unknown error 오류 메시지가 표시됩니다.

문제 원인

대역폭 문제로 인해 전송이 실패할 수 있습니다.

해결 방법

Cloud SQL 인스턴스가 Cloud Storage 버킷과 다른 리전에 있을 수 있습니다. 한 대륙에서 데이터를 읽어 다른 대륙에 쓰려면 많은 네트워크 사용량이 필요하며, 이러한 간헐적인 문제를 일으킬 수 있습니다. 인스턴스와 버킷의 리전을 확인합니다.


내보내기를 자동화하려는 경우

내보내기를 자동화하려고 합니다.

문제 원인

Cloud SQL은 내보내기를 자동화하는 방법을 제공하지 않습니다.

해결 방법

여기에 설명된 대로 Google Cloud 제품(Cloud Scheduler, Pub/Sub, Cloud Functions)을 사용하여 자체 자동 내보내기 시스템을 빌드할 수 있습니다.


ERROR_RDBMS 시스템 오류 발생

[ERROR_RDBMS] system error occurred 오류 메시지가 표시됩니다.

문제 원인

  • 사용자에게 필요한 일부 Cloud Storage 권한이 없을 수 있습니다.
  • 데이터베이스 테이블이 없을 수 있습니다.

해결 방법

  1. 최소한 버킷에 대한 WRITER 권한과 내보내기 파일에 대한 READER 권한이 있는지 확인합니다. Cloud Storage에서 액세스 제어를 구성하는 방법에 대한 자세한 내용은 액세스제어 목록 만들기 및 관리를 참조하세요.
  2. 테이블이 있는지 확인합니다. 테이블이 있으면 버킷에 대한 올바른 권한이 있는지 확인합니다.

다음 단계