本頁說明如何使用 SQL 傾印檔案,將資料匯出及匯入 Cloud SQL 執行個體。
系統不支援將 SQL Server 資料從 Cloud SQL 匯出至 SQL 傾印檔案。
事前準備
匯出作業會使用資料庫資源,但除非執行個體資源不足,否則不會干擾正常的資料庫作業。
如需最佳做法,請參閱匯入及匯出資料的最佳做法。
完成匯入作業後,請驗證結果。
從 Cloud SQL for SQL Server 匯出資料
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 角色的相關說明,請參閱「身分與存取權管理」。
將 SQL 傾印檔案匯入 Cloud SQL for SQL Server
SQL 檔案是含有一系列 SQL 指令的純文字檔案。
在下列程序中,請準備指定現有資料庫,從中匯入 SQL 檔案。
控制台
-
前往 Google Cloud 控制台的「Cloud SQL Instances」頁面。
- 如要開啟執行個體的「總覽」頁面,請按一下執行個體名稱。
- 按一下「匯入」。
- 在「選擇要從哪個檔案匯入資料」部分,輸入要用於匯入作業的 bucket 和 SQL 傾印檔案路徑,或瀏覽至現有檔案。
您可以匯入壓縮 (
.gz
) 或未壓縮 (.sql
) 的檔案。 - 針對 [Format] (格式),選取 [SQL]。
選取您要匯入資料的目標資料庫。
這樣會使 Cloud SQL 在匯入之前執行
USE DATABASE
陳述式。如要指定使用者執行匯入作業,請選取使用者。
如果匯入檔案包含必須由特定使用者執行的陳述式,請使用此欄位指定該使用者。
- 按一下 [Import] (匯入) 即可開始匯入。
gcloud
- 建立 Cloud Storage 值區。
上傳檔案至值區。
如需將檔案上傳至值區的說明,請參閱上傳物件。
- 說明您要匯入的目標執行個體:
gcloud sql instances describe INSTANCE_NAME
- 複製
serviceAccountEmailAddress
欄位。 - 使用
gcloud storage buckets add-iam-policy-binding
將storage.objectAdmin
IAM 角色授予 bucket 的服務帳戶。 如需設定 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 權限一文。 - 匯入傾印檔案:
<0x0A
使用任何要求資料之前,請先替換以下項目:
- project-id:專案 ID
- instance-id:執行個體 ID
- bucket_name:Cloud Storage 值區名稱
- path_to_sql_file:SQL 檔案的路徑
- database_name:Cloud SQL 執行個體內的資料庫名稱
HTTP 方法和網址:
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 權限一文。 - 匯入傾印檔案:
<0x0A
使用任何要求資料之前,請先替換以下項目:
- project-id:專案 ID
- instance-id:執行個體 ID
- bucket_name:Cloud Storage 值區名稱
- path_to_sql_file:SQL 檔案的路徑
- database_name:Cloud SQL 執行個體內的資料庫名稱
HTTP 方法和網址:
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。
- 匯入及匯出作業的已知問題。