이 페이지에서는 SQL 덤프 파일을 사용하여 Cloud SQL 인스턴스로 데이터를 내보내고 가져오는 방법을 설명합니다.
SQL Server에서는 Cloud SQL에서 SQL 덤프 파일로 내보낼 수 없습니다.
시작하기 전에
내보내기는 데이터베이스 리소스를 사용하지만 인스턴스가 프로비저닝되지 않는 한 일반적인 데이터베이스 작업에 지장을 주지 않습니다.
권장사항은 데이터 가져오기 및 내보내기 권장사항을 참조하세요.
가져오기 작업을 완료한 후 결과를 확인합니다.
SQL Server용 Cloud SQL에서 데이터 내보내기
SQL Server에서는 Cloud SQL에서 SQL 덤프 파일로 내보낼 수 없습니다.SQL Server용 Cloud SQL로 데이터 가져오기
SQL Server용 Cloud SQL로 가져오기에 필요한 역할 및 권한
데이터를 Cloud Storage에서 Cloud SQL로 가져오려면 가져오기를 시작하는 사용자에게 다음 역할 중 하나가 있어야 합니다.
- Cloud SQL 관리자 역할
- 다음 권한이 포함된 맞춤 역할:
cloudsql.instances.get
cloudsql.instances.import
또한 Cloud SQL 인스턴스의 서비스 계정에는 다음 역할 중 하나가 있어야 합니다.
storage.objectAdmin
IAM 역할- 다음 권한이 포함된 커스텀 역할:
storage.objects.get
storage.objects.list
(스트라이핑된 가져오기만 해당)
IAM 역할에 대한 도움말은 Identity and Access Management를 참조하세요.
SQL Server용 Cloud SQL로 SQL 덤프 파일 가져오기
SQL 파일은 일련의 SQL 명령어가 포함된 일반 텍스트 파일입니다.
다음 절차에서는 SQL 파일을 가져올 기존 데이터베이스를 지정할 준비를 합니다.
콘솔
-
Google Cloud 콘솔에서 Cloud SQL 인스턴스 페이지로 이동합니다.
- 인스턴스의 개요 페이지를 열려면 인스턴스 이름을 클릭합니다.
- 가져오기를 클릭합니다.
- 데이터를 가져오려는 파일 선택 섹션에서 가져오기에 사용할 버킷과 SQL 덤프 파일의 경로를 입력하거나 기존 파일을 찾습니다.
압축된 파일(
.gz
) 또는 압축되지 않은 파일(.sql
)을 가져올 수 있습니다. - 형식에 SQL을 선택합니다.
데이터를 가져올 데이터베이스를 선택합니다.
이렇게 하면 가져오기 전에 Cloud SQL이
USE DATABASE
문을 실행합니다.가져오기를 수행할 사용자를 지정하려면 사용자를 선택합니다.
가져오기 파일에 특정 사용자가 수행해야 하는 문이 포함되어 있다면, 이 필드를 사용하여 해당 사용자를 지정합니다.
- 가져오기를 클릭하여 가져오기를 시작합니다.
gcloud
- Cloud Storage 버킷을 만듭니다.
파일을 버킷에 업로드합니다.
버킷에 파일 업로드하기에 대한 도움말은 객체 업로드를 참조하세요.
- 가져오기의 대상 인스턴스를 설명합니다.
gcloud sql instances describe INSTANCE_NAME
serviceAccountEmailAddress
필드를 복사합니다.gcloud storage buckets add-iam-policy-binding
을 사용하여 버킷의 서비스 계정에storage.objectAdmin
IAM 역할을 부여합니다. IAM 권한 설정에 대한 도움말은 IAM 권한 사용을 참고하세요.gcloud storage buckets add-iam-policy-binding gs://BUCKET_NAME \ --member=serviceAccount:SERVICE-ACCOUNT \ --role=roles/storage.objectAdmin
- 데이터베이스를 가져옵니다.
gcloud sql import sql INSTANCE_NAME gs://BUCKET_NAME/IMPORT_FILE_NAME \ --database=DATABASE_NAME
import sql
명령어 사용에 대한 자세한 내용은sql import sql
명령어 참조 페이지를 확인하세요.명령어가
ERROR_RDBMS
와 같은 오류를 반환할 경우 권한을 검토하세요. 이 오류는 권한 문제로 인해 발생하는 경우가 자주 있습니다. - 이전에 설정한 IAM 권한을 유지할 필요가 없으면
gcloud storage buckets remove-iam-policy-binding
을 사용하여 삭제합니다.
REST v1
- Cloud Storage 버킷을 만듭니다.
파일을 버킷에 업로드합니다.
버킷에 파일 업로드하기에 대한 도움말은 객체 업로드를 참조하세요.
- 인스턴스에 버킷의
legacyBucketWriter
및objectViewer
IAM 역할을 제공합니다. IAM 권한 설정에 대한 도움말은 IAM 권한 사용을 참조하세요. - 덤프 파일을 가져옵니다.
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- project-id: 프로젝트 ID
- instance-id: 인스턴스 ID
- bucket_name: Cloud Storage 버킷 이름
- path_to_sql_file: SQL 파일 경로
- database_name: Cloud SQL 인스턴스 내 데이터베이스의 이름
HTTP 메서드 및 URL:
POST https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/import
JSON 요청 본문:
{ "importContext": { "fileType": "SQL", "uri": "gs://bucket_name/path_to_sql_file", "database": "database_name" } }
요청을 보내려면 다음 옵션 중 하나를 펼칩니다.
다음과 비슷한 JSON 응답이 표시됩니다.
이 요청을 위한 매개변수의 전체 목록은 instances:import 페이지를 참조하세요. - 이전에 설정한 IAM 권한을 유지할 필요가 없으면 지금 삭제합니다.
REST v1beta4
- Cloud Storage 버킷을 만듭니다.
파일을 버킷에 업로드합니다.
버킷에 파일 업로드하기에 대한 도움말은 객체 업로드를 참조하세요.
- 인스턴스에 버킷의
storage.objectAdmin
IAM 역할을 제공합니다. IAM 권한 설정에 대한 도움말은 IAM 권한 사용을 참조하세요. - 덤프 파일을 가져옵니다.
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- project-id: 프로젝트 ID
- instance-id: 인스턴스 ID
- bucket_name: Cloud Storage 버킷 이름
- path_to_sql_file: SQL 파일 경로
- database_name: Cloud SQL 인스턴스 내 데이터베이스의 이름
HTTP 메서드 및 URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/import
JSON 요청 본문:
{ "importContext": { "fileType": "SQL", "uri": "gs://bucket_name/path_to_sql_file", "database": "database_name" } }
요청을 보내려면 다음 옵션 중 하나를 펼칩니다.
다음과 비슷한 JSON 응답이 표시됩니다.
이 요청을 위한 매개변수의 전체 목록은 instances:import 페이지를 참조하세요. - 이전에 설정한 IAM 권한을 유지할 필요가 없으면 지금 삭제합니다.
다음 단계
- 가져오기 및 내보내기 작업 상태 확인 방법 알아보기
- 데이터 가져오기 및 내보내기 권장사항 자세히 알아보기
- Cloud Storage 자세히 알아보기
- 가져오기 및 내보내기에 대해 알려진 문제