透過 gcloud 直接倒出 GCP Cloud Database 資料

透過 gcloud 直接倒出 GCP Cloud Database 資料

透過 gcloud 直接倒出 GCP Cloud Database 資料

指令很簡單,匯入跟匯出,只要從下面的指令即可

gcloud sql export sql old-instance gs://YOUR_BUCKET/backup.sql
gcloud sql import sql new-instance gs://YOUR_BUCKET/backup.sql

但可能會遇到一些權限問題,所以要先開啟相關權限

gcloud services enable compute.googleapis.com
gcloud services enable servicenetworking.googleapis.com
gcloud services enable sqladmin.googleapis.com

然後可能會遇到沒有權限寫入的問題,首先要查到是哪個帳號

gcloud sql instances describe instance –format=”value(serviceAccountEmailAddress)”

你會得到類似這樣

service-123456789012@gcp-sa-cloud-sql.iam.gserviceaccount.com

然後就要給他權限

gsutil iam ch serviceAccount:service-123456789012@gcp-sa-cloud-sql.iam.gserviceaccount.com:roles/storage.objectAdmin gs://YOUR_BUCKET

然後就可以匯出啦

gcloud sql export sql old-instance gs://YOUR_BUCKET/sql/database.sql –database=YOUR_DATABASE