בדף הזה מוסבר איך לייצא ולייבא נתונים למכונות Cloud SQL באמצעות קובצי SQL מוכנים לשימוש.
אין תמיכה בייצוא מ-Cloud SQL לקובץ SQL מוכן לשימוש ב-SQL Server.
לפני שמתחילים
הייצוא משתמש במשאבי מסד הנתונים, אבל הוא לא מפריע לפעולות הרגילות של מסד הנתונים, אלא אם המופע לא הוקצה מספיק.
שיטות מומלצות לייבוא וייצוא נתונים
אחרי שמסיימים את פעולת הייבוא, מאמתים את התוצאות.
ייצוא נתונים מ-Cloud SQL ל-SQL Server
ב-SQL Server אי אפשר לייצא מ-Cloud SQL לקובץ SQL מוכן לשימוש.ייבוא נתונים ל-Cloud SQL ל-SQL Server
התפקידים וההרשאות שנדרשים כדי לייבא ל-Cloud SQL ל-SQL Server
כדי לייבא נתונים מ-Cloud Storage ל-Cloud SQL, למשתמש שמפעיל את הייבוא צריך להיות אחד מהתפקידים הבאים:
- התפקיד אדמין ב-Cloud SQL
- תפקיד בהתאמה אישית, שכולל את ההרשאות הבאות:
cloudsql.instances.getcloudsql.instances.import
בנוסף, לחשבון השירות של מכונת Cloud SQL צריך להיות אחד מהתפקידים הבאים:
- תפקיד IAM
storage.objectAdmin - תפקיד בהתאמה אישית, כולל ההרשאות הבאות:
storage.objects.get-
storage.objects.list(לייבוא מפוספס בלבד)
לעזרה בנושא תפקידי IAM, קראו את המאמר ניהול זהויות והרשאות גישה.
ייבוא קובץ SQL מוכן לשימוש אל Cloud SQL ל-SQL Server
קובצי SQL הם קובצי טקסט פשוט עם רצף של פקודות SQL.
בשלבים הבאים מכינים את הנתונים כדי לציין מסד נתונים קיים שממנו רוצים לייבא את קובצי ה-SQL.
המסוף
-
נכנסים לדף Cloud SQL Instances במסוף Google Cloud .
- כדי לפתוח את הדף Overview של מכונה, לוחצים על שם המכונה.
- לוחצים על Import.
- בקטע פורמט קובץ, בוחרים באפשרות SQL.
- בקטע Select source file, מזינים את הנתיב לקטגוריה ולקובץ ה-SQL dump שרוצים להשתמש בו לייבוא, מעיינים בקובץ קיים או מעלים קובץ מקומי.
אפשר לייבא קובץ דחוס (
.gz) או קובץ לא דחוס (.sql). בקטע יעד, בוחרים את מסד הנתונים שאליו רוצים לייבא את הנתונים.
כתוצאה מכך, Cloud SQL מריץ את ההצהרה
USE DATABASEלפני הייבוא.אם רוצים לציין משתמש שיבצע את הייבוא, בוחרים את המשתמש.
אם קובץ הייבוא מכיל הצהרות שמשתמש ספציפי צריך לבצע, צריך להשתמש בשדה הזה כדי לציין את המשתמש.
- לוחצים על ייבוא כדי להתחיל את הייבוא.
gcloud
- יוצרים קטגוריה של Cloud Storage.
מעלים את הקובץ לקטגוריה.
לקבלת עזרה בהעלאת קבצים לקטגוריות, אפשר לעיין במאמר העלאת אובייקטים.
- תאר את המופע שאליו אתה מייבא:
gcloud sql instances describe INSTANCE_NAME
- מעתיקים את השדה
serviceAccountEmailAddress. - משתמשים בפקודה
gcloud storage buckets add-iam-policy-bindingכדי להקצות לחשבון השירות את תפקיד IAM storage.objectAdminבדלי. במאמר שימוש בהרשאות 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
מעלים את הקובץ לקטגוריה.
לקבלת עזרה בהעלאת קבצים לקטגוריות, אפשר לעיין במאמר העלאת אובייקטים.
- נותנים למכונה את תפקידי ה-IAM
storage.objectAdminו-objectViewerלקטגוריה. במאמר שימוש בהרשאות IAM מוסבר איך מגדירים הרשאות IAM. - מייבאים את קובץ ה-dump:
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- project-id: מזהה הפרויקט
- instance-id: מזהה המכונה
- bucket_name: השם של הקטגוריה של Cloud Storage
- path_to_sql_file: הנתיב לקובץ ה-SQL
- database_name: השם של מסד נתונים בתוך המכונה של Cloud SQL
ה-method של ה-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.
מעלים את הקובץ לקטגוריה.
לקבלת עזרה בהעלאת קבצים לקטגוריות, אפשר לעיין במאמר העלאת אובייקטים.
- נותנים למכונה את תפקיד ה-IAM של הקטגוריה
storage.objectAdmin. במאמר שימוש בהרשאות IAM מוסבר איך מגדירים הרשאות IAM. - מייבאים את קובץ ה-dump:
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- project-id: מזהה הפרויקט
- instance-id: מזהה המכונה
- bucket_name: השם של הקטגוריה של Cloud Storage
- path_to_sql_file: הנתיב לקובץ ה-SQL
- database_name: השם של מסד נתונים בתוך המכונה של Cloud SQL
ה-method של ה-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
- בעיות מוכרות בייבוא ובייצוא