ייבוא מקובץ dump

לפני שמייבאים נתונים, צריך:

  1. יוצרים אשכול של מסדי נתונים כדי לייבא אליו את הנתונים.

  2. מעלים את קובץ ה-dump לקטגוריית אחסון. הוראות מפורטות זמינות במאמר העלאת אובייקטים לקטגוריות אחסון.

  3. נותנים לחשבון השירות של Database Service הרשאת קריאה לקובץ ה-dump. איך נותנים ומקבלים גישה לאחסון לדוגמה, אתם יכולים להקצות את התפקיד project-bucket-object-viewer לחשבון השירות של הייבוא.

    מערכת Database Service יוצרת את חשבון השירות הזה באופן אוטומטי כשיוצרים את אשכול מסד הנתונים. הסטטוס של אשכול מסד הנתונים כולל את השם ואת מרחב השמות של חשבון השירות לייבוא.

    כדי לאחזר את השם ואת מרחב השמות של חשבון השירות לייבוא, מריצים את הפקודה הבאה:

    kubectl --kubeconfig=MGMT_API_KUBECONFIG \
      get dbcluster.postgresql -n PROJECT_ID DATABASE_CLUSTER_NAME \
      -o jsonpath='{.status.serviceAccounts.import}'
    

    הפקודה הזו מחזירה אובייקט JSON שמכיל את פרטי השם ומרחב השמות: {"name":"postgresql-import-DATABASE_CLUSTER_NAME","namespace":"SERVICE_ACCOUNT_NAMESPACE"}

אזהרה: צריך ליצור את קובץ ה-dump של מסד הנתונים באמצעות pg_dump, בפורמט ארכיון שתואם ל-pg_restore. אין תמיכה בקובצי dump בפורמט SQL רגיל (ברירת המחדל אם לא צוינה אפשרות פורמט).

אפשר לייבא קובץ dump לאשכול של מסד נתונים באמצעות מסוף GDC או Distributed Cloud CLI:

המסוף

  1. פותחים את הדף Database cluster overview במסוף GDC כדי לראות את האשכול שמכיל את מסד הנתונים שאתם מייבאים.

  2. לוחצים על Import. החלונית ייבוא נתונים לחשבונות נפתחת.

  3. בקטע Source בחלונית Import data to accounts, מציינים את המיקום של קובץ ה-SQL שהעליתם קודם.

  4. בשדה יעד, מציינים מסד נתונים קיים כיעד לייבוא.

  5. לוחצים על Import. במסוף GDC מופיע באנר עם סטטוס הייבוא.

gdcloud

  1. לפני שמשתמשים ב-Distributed Cloud CLI, צריך להתקין ולהפעיל אותו. לאחר מכן, מאמתים את הזהות מול הארגון.

  2. מריצים את הפקודה הבאה כדי לייבא קובץ dump למסד נתונים:

    gdcloud database import sql DATABASE_CLUSTER BUCKET_NAME/sample.dmp \
        --project=PROJECT_NAME
    

    מחליפים את מה שכתוב בשדות הבאים:

    • ‫DATABASE_CLUSTER בשם של אשכול מסד הנתונים שאליו רוצים לייבא את הנתונים.
    • ‫BUCKET_NAME/SAMPLE.dmp במיקום של קובץ ה-dump.
    • ‫PROJECT_NAME בשם הפרויקט שבו נמצא אשכול מסד הנתונים.
  3. מריצים את הפקודה הבאה כדי לבדוק את סטטוס הייבוא:

    gdcloud database operations list --project=PROJECT_NAME --cluster=DATABASE_CLUSTER
    

API

apiVersion: postgresql.dbadmin.gdc.goog/v1
kind: Import
metadata:
  name: IMPORT_NAME
  namespace: USER_PROJECT
spec:
  dbclusterRef: DBCLUSTER_NAME
  dumpStorage:
    s3Options:
      bucket: BUCKET_NAME
      key: DUMP_FILE_PATH
    type: S3

מחליפים את המשתנים הבאים:

  • ‫IMPORT_NAME: השם של פעולת הייבוא.
  • ‫USER_PROJECT: השם של פרויקט המשתמש שבו נוצר אשכול מסד הנתונים לייבוא.
  • ‫DBCLUSTER_NAME: השם של אשכול מסד הנתונים.
  • ‫BUCKET_NAME: השם של מאגר האובייקטים שבו מאוחסנים קובצי הייבוא.
  • ‫DUMP_FILE_PATH: השם של נתיב מאגר האובייקטים לקבצים השמורים.