שימוש בהעברות מהירות עם Database Migration Service

בדף הזה מוסבר איך לבצע העברות מהירות של נתוני PostgreSQL הומוגניים אל AlloyDB ל-PostgreSQL.

סקירה כללית

מיגרציות מהירות הן תהליך מיגרציה רציף וקל משקל לתרחישי PostgreSQL הומוגניים. באמצעות העברות מהירות, Database Migration Service יכול להגדיר באופן אוטומטי את כל מה שצריך כדי להעביר את מסדי הנתונים: רכיבי רשת (קבצים מצורפים לרשת, רשתות משנה, הגדרות קישוריות פרטית), פרופילי חיבור ועבודות העברה.

בעזרת העברות מהירות, אתם יכולים להעביר את הנתונים שלכם לאשכול קיים של AlloyDB ל-PostgreSQL, או ליצור אשכול חדש תוך כדי הגדרת ההעברה. העברות מהירות מתאימות במיוחד ל:

  • העברות בסיסיות, שבהן לא צריך שליטה מדויקת בהגדרות של מקביליות של dump נתונים.
  • העברת מסד הנתונים מפרויקט Google Cloud אחד לפרויקט אחר. כשמגדירים העברה מהירה, אפשר ליצור את אשכול היעד בפרויקט אחר מזה של המקור, ולהגדיר את Database Migration Service כך שיצור את מחבר הרשת ואת רשת המשנה ברשת הענן הווירטואלי הפרטי (VPC) של פרויקט אחר.
  • העברה ממקורות עם כתובת IP פרטית ברשת הענן הווירטואלי הפרטי (VPC) שלכם Google Cloud, כמו מסדי נתונים בניהול עצמי ב-Compute Engine, או ממופעים של Cloud SQL ל-PostgreSQL שמופעלת בהם רשת פרטית.

    יכול להיות שיהיה צורך ברכיבי רשת נוספים (כמו חיבור Cloud VPN) כדי להגיע למקורות שמארחים מחוץ ל- Google Cloud בכתובת IP פרטית ברשת ה-VPC.

  • למסד הנתונים של המקור צריכה להיות מוקצית כתובת IP פרטית ברשת ה-VPC. Database Migration Service מתחבר למסד הנתונים של המקור באמצעות ממשקי Private Service Connect (מחברי רשת). אין תמיכה בקישוריות של כתובות IP ציבוריות בהעברות מהירות.

מידע נוסף על העברות מהירות זמין במאמר בנושא העברות מהירות במסמכי התיעוד של Database Migration Service.

לפני שמתחילים

  1. בודקים אם העברות מהירות יכולות לתמוך באופן מלא בתרחיש שלכם. מידע נוסף זמין במאמר בנושא מגבלות של העברה מהירה במסמכי העזרה של Database Migration Service.
  2. נכנסים לחשבון Google.

    אם עדיין אין חשבון, יוצרים חשבון חדש.

  3. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  4. Verify that billing is enabled for your Google Cloud project.

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  6. Verify that billing is enabled for your Google Cloud project.

  7. מפעילים את ממשקי ה-API של Database Migration Service,‏ Compute Engine,‏ Network Connectivity Center ו-AlloyDB ל-PostgreSQL Admin.

    הפעלת ממשקי ה-API

התפקידים הנדרשים

כדי לקבל את ההרשאות שנדרשות להפעלת העברות מהירות ל-AlloyDB ל-PostgreSQL באמצעות Database Migration Service, צריך לבקש מהאדמין להקצות את תפקידי Identity and Access Management ‏ (IAM) הנדרשים לחשבונות שמשתתפים בהעברה בפרויקטים הרלוונטיים. מידע נוסף על מתן תפקידים זמין במאמר ניהול גישה במסמכי ה-IAM.

תפקידים והרשאות בפרויקט המקור

מקצים לחשבונות ספציפיים ב Google Cloud פרויקט שבו נמצא מסד הנתונים של המקור את התפקידים הבאים:

  • לחשבון המשתמש שמבצע את ההעברה: Compute Network Admin (roles/compute.networkAdmin)
  • עבור חשבון השירות של Database Migration Service בפרויקט היעד: צפייה ברשת Compute (roles/compute.networkViewer)

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

    service-DESTINATION_PROJECT_NUMBERservice-DESTINATION_PROJECT_NUMBER@gcp-sa-datamigration.iam.gserviceaccount.com

התפקידים המוגדרים מראש האלה מכילים את ההרשאות שנדרשות להגדרת קישוריות במסגרת פרויקט מסד הנתונים של המקור, כחלק מהעברה מהירה באמצעות Database Migration Service. כדי לראות בדיוק אילו הרשאות נדרשות, אפשר להרחיב את הקטע ההרשאות הנדרשות (מקור):

הרשאות נדרשות (מקור)

כדי לבצע העברות מהירות הומוגניות באמצעות Database Migration Service, נדרשות ההרשאות הבאות:

עבור חשבון המשתמש שמבצע את ההעברה:

  • compute.networks.*
  • compute.subnetworks.*
  • compute.networkAttachments.*

בחשבון השירות של Database Migration Service בפרויקט היעד: ‫compute.networkAttachments.get.

תפקידים והרשאות בפרויקט היעד

מקצים את התפקידים הבאים לחשבון המשתמש שמבצע את ההעברה בפרויקט ב- Google Cloud שבו נמצא מסד הנתונים של היעד:

התפקידים המוגדרים מראש האלה מכילים את ההרשאות שנדרשות כדי להגדיר את רכיבי ההעברה הנדרשים בפרויקט מסד הנתונים של יעד כחלק מהעברה מהירה באמצעות Database Migration Service. כדי לראות בדיוק אילו הרשאות נדרשות, אפשר להרחיב את הקטע ההרשאות הנדרשות (יעד):

הרשאות נדרשות (יעד)

כדי לבצע העברות מהירות הומוגניות באמצעות Database Migration Service, נדרשות ההרשאות הבאות:

  • datamigration.*
  • alloydb.clusters.create
  • alloydb.clusters.get
  • alloydb.clusters.list
  • alloydb.clusters.update
  • alloydb.clusters.delete
  • alloydb.instances.create
  • alloydb.instances.get
  • alloydb.instances.list
  • alloydb.instances.update
  • alloydb.instances.delete
  • alloydb.instances.executeSql
  • alloydb.operations.get
  • alloydb.users.list
  • alloydb.users.get
  • alloydb.users.create
  • alloydb.users.update
  • alloydb.users.delete

הגדרת מסד הנתונים של המקור

כדי להגדיר את מסד הנתונים של PostgreSQL כמקור:

  1. יוצרים בחשבון משתמש ייעודי להעברה.
    • למקורות Cloud SQL ל-PostgreSQL, אפשר לעיין במאמר יצירת משתמש בתיעוד של Cloud SQL.
    • למקורות אחרים, אפשר לעיין במסמכי התיעוד של ספק מסד הנתונים או ליצור ולנהל משתמשים במסמכי התיעוד של PostgreSQL.
  2. מקצים את ההרשאות הנדרשות לחשבון המשתמש הייעודי להעברה. מריצים את הפקודות הבאות לכל מסד נתונים שרוצים להעביר:
    -- Grant the REPLICATION attribute
    ALTER ROLE MIGRATION_USER REPLICATION;
    
    -- Grant database-level permissions.
    -- Repeat for each database you want to migrate.
    GRANT CONNECT, CREATE ON DATABASE DATABASE_NAME TO MIGRATION_USER;
    
    -- Grant schema-level usage.
    -- Repeat for each schema in each database you want to migrate.
    GRANT USAGE ON SCHEMA SCHEMA_NAME TO MIGRATION_USER;

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

    • MIGRATION_USER בשם של חשבון המשתמש להעברה.
    • ‫DATABASE_NAME בשם של מסד הנתונים שרוצים להעביר.
    • ‫SCHEMA_NAME בשם הסכימה במסד הנתונים שרוצים להעביר.
  3. למשתמש בחשבון ההעברה צריכה להיות גישת בעלות לטבלאות שאתם מעבירים. כדי להעניק את רמת הגישה הזו, מבצעים אחת מהפעולות הבאות:
    • רק למקורות שאינם Cloud SQL ל-PostgreSQL: מקצים את SUPERUSER תפקיד PostgreSQL לחשבון ההעברה.
    • לכל המקורות: מוסיפים את חשבון המשתמש של ההעברה לקבוצת המשתמשים שבבעלותה הטבלאות. מריצים את הפקודה הבאה:
      -- Grant table ownership.
      GRANT TABLE_OWNER_GROUP_NAME TO MIGRATION_USER;

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

      • ‫TABLE_OWNER_GROUP_NAME עם השם של קבוצת המשתמשים שהיא הבעלים של כל טבלה שרוצים להעביר.
      • MIGRATION_USER בשם של חשבון המשתמש להעברה.
  4. בטבלאות שאין להן מפתחות ראשיים: כברירת מחדל, רק פעולות INSERT משוכפלות בטבלאות ללא מפתחות ראשיים במהלך השלב של סימון נתונים שהשתנו (CDC). כדי לשכפל פעולות של UPDATE ו-DELETE, צריך להגדיר את REPLICA IDENTITY של הטבלה ל-FULL או ל-USING INDEX:
    ALTER TABLE TABLE_NAME REPLICA IDENTITY FULL;
    ALTER TABLE TABLE_NAME REPLICA IDENTITY USING INDEX INDEX_NAME;

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

    • ‫TABLE_NAME הוא שם הטבלה שלא כוללת מפתחות ראשיים.
    • ‫INDEX_NAME הוא האינדקס הייחודי שאפשר לעקוב אחרי שורות מטבלאות בלי מפתחות ראשיים.
  5. מגדירים את הגדרות השכפול באמצעות דגלים של מסד הנתונים.

    מקורות בניהול עצמי

    כדי לשמור שינויים בדגלים של מסד הנתונים, צריך להפעיל מחדש את מסד הנתונים. בדוגמאות הבאות נעשה שימוש בשאילתות SQL כדי לשנות ערכי דגלים. אם אי אפשר להריץ שאילתות SQL ישירות, כדאי לעיין במסמכי התיעוד של הספק כדי לקבל הוראות לשינוי הדגלים האלה.

    1. מגדירים את הפרמטר wal_level לערך logical. מריצים את הפקודה הבאה:
      ALTER SYSTEM SET wal_level = 'logical';
    2. מגדירים את הפרמטר wal_sender_timeout לערך 0. הערך הזה משבית את מנגנון פסק הזמן שמשמש לסיום חיבורי שכפול לא פעילים. מריצים את הפקודה הבאה:
      ALTER SYSTEM SET wal_sender_timeout = 0;
          
    3. מגדירים את המספר המקסימלי של משבצות השכפול באמצעות הפרמטר max_replication_slots. הפרמטר הזה צריך להיות מוגדר לפחות למספר מסדי הנתונים שמעבירים בכל משימת העברה, בתוספת כמה עתודות לסינכרון הטבלאות.

      לדוגמה, אם מעבירים 5 מסדי נתונים ונוצרו 2 משימות העברה עבור מופע המקור, מספר משבצות השכפול צריך להיות לפחות 5 * 2 = 10, ועוד מספר משבצות השכפול שכבר נמצאות בשימוש.

      כדי להגדיר את הפרמטר הזה, מריצים את הפקודה הבאה:

      ‫
      ALTER SYSTEM SET max_replication_slots = NUMBER_OF_SLOTS;
          
      כאשר NUMBER_OF_SLOTS מייצג את המספר המקסימלי של משבצות שכפול.
    4. מגדירים את הפרמטר max_wal_senders לערך שהוא לפחות כמו max_replication_slots, ועוד מספר השולחים שכבר נמצאים בשימוש במופע.

      לדוגמה, אם הפרמטר max_replication_slots מוגדר לערך 10, ואתם כבר משתמשים ב-2 תהליכי שליחה, מספר תהליכי השליחה של WAL שפועלים בו-זמנית יהיה 10 + 2 = 12.

      כדי להגדיר את הפרמטר הזה, מריצים את הפקודה הבאה:

      ‫
      ALTER SYSTEM SET max_wal_senders = NUMBER_OF_SENDERS;
          
      כאשר NUMBER_OF_SENDERS מייצג את מספר התהליכים של WAL sender שפועלים בו-זמנית.
    5. מגדירים את הערך של max_worker_processes למספר מסדי הנתונים שרוצים להעביר לפחות, ועוד מספר max_worker_processes שכבר נמצא בשימוש במופע. כדי להגדיר את הפרמטר הזה, מריצים את הפקודה הבאה:
      ALTER SYSTEM SET max_worker_processes = NUMBER_OF_PROCESSES;
          
      כאשר NUMBER_OF_PROCESSES מייצג את מספר מסדי הנתונים שיועברו.

    מקורות Cloud SQL ל-PostgreSQL

    למקורות Cloud SQL, מגדירים את הדגלים של מסד הנתונים במסוף Google Cloud . כדי שהשינוי בהגדרה ייכנס לתוקף, צריך להפעיל מחדש את המופע אחרי שמשנים את הדגלים של מסד הנתונים. מידע נוסף על הגדרת דגלים של מסד נתונים ב-Cloud SQL זמין במאמר הגדרת דגלים של מסד נתונים במסמכי Cloud SQL.

    1. מגדירים את הדגל cloudsql.logical_decoding לערך on.
    2. מגדירים את הפרמטר wal_sender_timeout לערך 0. הערך הזה משבית את מנגנון פסק הזמן שמשמש לסיום חיבורי שכפול לא פעילים.
    3. מגדירים את המספר המקסימלי של משבצות השכפול באמצעות הפרמטר max_replication_slots. הפרמטר הזה צריך להיות מוגדר לפחות כמספר מסדי הנתונים שמעבירים בכל משימת העברה, בתוספת כמה עתודות לסנכרון טבלאות.

      לדוגמה, אם מעבירים 5 מסדי נתונים ונוצרו 2 משימות העברה עבור מופע המקור, מספר משבצות השכפול צריך להיות לפחות 5 * 2 = 10, ועוד מספר משבצות השכפול שכבר נמצאות בשימוש.

    4. מגדירים את הפרמטר max_wal_senders לערך שהוא לפחות כמו max_replication_slots, בתוספת מספר השולחים שכבר נמצאים בשימוש במופע.

      לדוגמה, אם הפרמטר max_replication_slots מוגדר לערך 10, ואתם כבר משתמשים ב-2 תהליכי שליחה, מספר תהליכי השליחה של WAL שפועלים בו-זמנית יהיה 10 + 2 = 12.

    5. מגדירים את max_worker_processes למספר שהוא לפחות מספר מסדי הנתונים שרוצים להעביר, ועוד מספר max_worker_processes שכבר נמצא בשימוש במופע.

יצירה והרצה של מיגרציה מהירה

כשמשתמשים בהעברות מהירות, אפשר ליצור קלאסטר חדש של AlloyDB ל-PostgreSQL ולהעביר אליו את מסדי הנתונים, או להעביר מסדי נתונים לקלאסטר שכבר קיים.

העברות מהירות של אשכולות חדשים

כדי ליצור אשכול חדש של AlloyDB ל-PostgreSQL ולהעביר אליו את מסדי הנתונים באופן מיידי, פועלים לפי השלבים הבאים:

המסוף

  1. עוברים לדף Clusters.

    מעבר אל Clusters

  2. לוחצים על יצירת אשכול > ממסד נתונים קיים.

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

  3. בקטע Configure migration (הגדרת ההעברה), מבצעים את הפעולות הבאות:
    1. בתפריט אזור היעד, בוחרים את האזור של אשכול היעד של AlloyDB ל-PostgreSQL.
    2. בתיבה Migration prefix (קידומת להעברה), מזינים מחרוזת שתתווסף לשמות של כל ישויות ההעברה שנוצרו להעברה המהירה: פרופילי חיבור, הגדרת קישוריות פרטית, צירוף רשת ורשת המשנה שלה ועבודת ההעברה.
    3. בתפריט סוג ההגדרה, בוחרים באחת מהאפשרויות הבאות:
      1. הגדרת קישוריות קיימת: בוחרים באפשרות הזו אם כבר יש לכם קובץ מצורף עם הרשת והגדרת קישוריות פרטית שמשתמשת בשיטת הממשקים של Private Service Connect. האפשרות הזו מתאימה במיוחד אם השתמשתם בעבר בהעברות מהירות ואתם רוצים להשתמש מחדש באותם משאבי רשת.
      2. הגדרת קישוריות חדשה: בוחרים באפשרות הזו כדי ליצור צירוף רשת חדש ואת רשת המשנה של צירוף הרשת ברשת ה-VPC של מסד הנתונים של המקור. הגדרת הקישוריות הפרטית תיצור באותו פרויקט כמו אשכול היעד.
    4. לוחצים על Continue.
  4. בקטע Connect source (חיבור מקור), מבצעים את הפעולות הבאות:
    1. מזינים שם מארח או כתובת IP פרטית של מסד הנתונים של המקור. צריכה להיות אפשרות להגיע לכתובת של מסד הנתונים של המקור מרשת ה-VPC של המקור.
    2. מזינים את היציאה שמשמשת לגישה למארח. מספר היציאה של PostgreSQL שמוגדר כברירת מחדל הוא 5432.
    3. מזינים את שם המשתמש והסיסמה של חשבון ההעברה הייעודי במסד הנתונים של המקור.
    4. בתפריט סוג ההצפנה, בוחרים באחת מהאפשרויות הבאות:
      • ללא: אם מסד הנתונים של המקור לא דורש חיבורים מוצפנים באמצעות SSL/TLS.
      • חובה: אם מסד הנתונים של המקור דורש חיבורים מוצפנים באמצעות SSL/TLS. באפשרות הזו לא נדרש אימות של אישורים.
    5. בתפריט Databases to migrate (מסדי נתונים להעברה), לוחצים על Customize (התאמה אישית). משתמשים בחלונית הצדדית כדי לבחור רק את מסדי הנתונים שרוצים להעביר ל-AlloyDB ל-PostgreSQL.
    6. לוחצים על Continue.
  5. בקטע Configure destination (הגדרת היעד), מבצעים את הפעולות הבאות:
    1. בתפריט סוג יעד של מופע, בוחרים באפשרות אשכול חדש.

      Database Migration Service משתמש בהגדרת ברירת המחדל של AlloyDB ל-PostgreSQL לאשכול חדש. לוחצים על Customize כדי לשנות את מאפייני האשכול, כמו סוג המכונה, הזמינות האזורית או הגדרות ההגנה על הנתונים. למידע נוסף על הגדרת אשכול, אפשר לעיין במאמר בנושא יצירה של אשכול ומופע ראשי.

    2. בשדה סיסמה, מזינים סיסמה למשתמש ברירת המחדל postgresql admin. Database Migration Service מתחבר כמשתמש הזה כדי להעביר את הנתונים.
  6. לוחצים על התחלת ההעברה.

    Database Migration Service יוצר עכשיו את משימת ההעברה ומתחיל את תהליך ההעברה. אתם יכולים לעקוב אחרי התקדמות המיגרציה וגם אחרי תקינות אשכול היעד ב-AlloyDB ל-PostgreSQL. מידע נוסף זמין במאמר בנושא הצגת מידע על אשכול.

gcloud

כדי להשתמש ב-CLI של gcloud כדי לבצע מיגרציה לאשכול AlloyDB חדש, מבצעים את השלבים הבאים:

  1. יוצרים את משאב ההצמדה לרשת.
    יוצרים את קובץ הצירוף לרשת בפרויקט וברשת הענן הווירטואלי הפרטי (VPC) שבהם נמצא מסד הנתונים של המקור:

    gcloud compute network-attachments create NETWORK_ATTACHMENT \
      --region=REGION \
      --connection-preference=ACCEPT_MANUAL \
      --producer-accept-list=DEST_PROJECT_ID \
      --subnets=default \
      --project=SOURCE_PROJECT_ID

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

    • ‫NETWORK_ATTACHMENT: השם של מחבר הרשת שרוצים ליצור.
    • ‫REGION: האזור של מחבר הרשת.
    • ‫DEST_PROJECT_ID: מזהה הפרויקט של פרויקט היעד.
    • ‫SOURCE_PROJECT_ID: מזהה הפרויקט שבו נמצאת רשת המקור.
  2. מאפשרים לפרויקט הדייר של Database Migration Service לגשת לצירוף הרשת.
    כדי לאחזר את מזהה פרויקט הדייר, מריצים בדיקת אימות ואז מעדכנים את רשימת ההיתרים של מחבר הרשת כדי לכלול אותו:

    1. כדי לאחזר את מזהה פרויקט הדייר, מבצעים בדיקת אימות:

      gcloud database-migration private-connections create PRIVATE_CONN \
        --region=REGION \
        --network-attachment=NETWORK_ATTACHMENT_URI \
        --display-name=PRIVATE_CONN \
        --format="value(metadata.metadata.tenant_project_id)" \
        --validate-only

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

      • ‫PRIVATE_CONN: השם של משאב החיבור הפרטי.
      • ‫REGION: האזור של החיבור הפרטי.
      • ‫NETWORK_ATTACHMENT_URI: ה-URI של מחבר הרשת שנוצר בשלב הקודם. לדוגמה, projects/SOURCE_PROJECT_ID/regions/REGION/networkAttachments/NETWORK_ATTACHMENT.
    2. מעדכנים את מחבר הרשת עם הערך DMS_TENANT_ID שאוחזר:

      gcloud compute network-attachments update NETWORK_ATTACHMENT \
        --region=REGION \
        --producer-accept-list=DEST_PROJECT_ID,DMS_TENANT_ID \
        --project=SOURCE_PROJECT_ID

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

      • NETWORK_ATTACHMENT: השם של רכיב הרשת המצורף.
      • ‫REGION: האזור.
      • ‫DEST_PROJECT_ID: מזהה הפרויקט של פרויקט היעד.
      • ‫DMS_TENANT_ID: מזהה פרויקט הדייר של Database Migration Service שאוחזר.
      • ‫SOURCE_PROJECT_ID: מזהה הפרויקט שבו נמצאת רשת המקור.
  3. יוצרים את ההגדרה של הקישוריות הפרטית.
    יוצרים את החיבור הפרטי בפרויקט היעד:

    gcloud database-migration private-connections create PRIVATE_CONN \
      --region=REGION \
      --network-attachment=NETWORK_ATTACHMENT_URI \
      --display-name=PRIVATE_CONN

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

    • ‫PRIVATE_CONN: השם של משאב החיבור הפרטי.
    • ‫REGION: האזור של החיבור הפרטי.
    • ‫NETWORK_ATTACHMENT_URI: ה-URI של קובץ הרשת המצורף.
  4. יוצרים את פרופיל החיבור למקור.
    יוצרים את פרופיל החיבור למסד הנתונים של PostgreSQL:

    gcloud database-migration connection-profiles create postgresql SOURCE_CONN_ID \
      --region=REGION \
      --role=SOURCE \
      --host=SOURCE_PRIVATE_IP \
      --port=SOURCE_PORT \
      --username=SOURCE_USER \
      --password=SOURCE_PASSWORD \
      --private-connection=PRIVATE_CONN \
      --no-async

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

    • ‫SOURCE_CONN_ID: המזהה של פרופיל החיבור למקור.
    • ‫REGION: האזור שבו רוצים לשמור את פרופיל החיבור.
    • ‫SOURCE_PRIVATE_IP: כתובת ה-IP הפרטית של מסד הנתונים של המקור.
    • ‫SOURCE_PORT: היציאה של מסד הנתונים של המקור (ברירת המחדל היא 5432).
    • ‫SOURCE_USER: שם המשתמש של המשתמש להעברה במסד הנתונים של המקור.
    • ‫SOURCE_PASSWORD: הסיסמה של משתמש ההעברה במסד הנתונים של המקור.
    • ‫PRIVATE_CONN: השם של משאב החיבור הפרטי.
  5. יוצרים את אשכול היעד של AlloyDB.
    יוצרים את אשכול היעד ואת המכונה הראשית שלו. הוראות מפורטות מופיעות בדף יצירת אשכול והמופע הראשי שלו.

  6. יוצרים את פרופיל החיבור של היעד.
    יוצרים את פרופיל החיבור ליעד שמצביע על אשכול AlloyDB החדש:

    gcloud database-migration connection-profiles create postgresql DEST_CONN_ID \
      --region=REGION \
      --alloydb-cluster=DEST_CLUSTER \
      --username=DEST_USER \
      --password=DEST_PASSWORD \
      --role=DESTINATION \
      --no-async

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

    • DEST_CONN_ID: המזהה של פרופיל החיבור ליעד.
    • ‫REGION: האזור שבו רוצים לשמור את פרופיל החיבור. האזור הזה צריך להיות זהה לאזור של אשכול היעד.
    • ‫DEST_CLUSTER: המזהה או נתיב המשאב המלא של אשכול היעד של AlloyDB ל-PostgreSQL.
    • ‫DEST_USER: שם המשתמש של המשתמש בהעברה במסד הנתונים של היעד.
    • ‫DEST_PASSWORD: הסיסמה של משתמש ההעברה במסד הנתונים של היעד.
  7. יוצרים את משימת ההעברה.
    יוצרים את משימת ההעברה הרציפה עם רפליקציה מובנית מופעלת:

    gcloud database-migration migration-jobs create MIGRATION_JOB_ID \
      --region=REGION \
      --type=CONTINUOUS \
      --source=SOURCE_CONN_ID \
      --destination=DEST_CONN_ID \
      --use-postgres-native \
      --postgres-max-additional-subscriptions=10 \
      --databases-filter=DATABASES_LIST \
      --no-async

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

    • ‫MIGRATION_JOB_ID: מזהה עבודת ההעברה.
    • ‫REGION: האזור שבו רוצים לשמור את משימת ההעברה.
    • ‫SOURCE_CONN_ID: המזהה של פרופיל החיבור למקור.
    • ‫DEST_CONN_ID: המזהה של פרופיל החיבור ליעד.
    • ‫DATABASES_LIST: רשימה מופרדת בפסיקים של מסדי נתונים שרוצים להעביר.
  8. מתחילים את משימת ההעברה.
    מתחילים את עבודת ההעברה כדי להתחיל את תהליך השכפול:

    gcloud database-migration migration-jobs start MIGRATION_JOB_ID \
      --region=REGION

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

    • ‫MIGRATION_JOB_ID: המזהה של משימת ההעברה.
    • ‫REGION: האזור שבו נמצאת משימת ההעברה.

העברות מהירות של אשכולות קיימים

כדי להעביר מסדי נתונים לאשכול קיים של AlloyDB ל-PostgreSQL, מבצעים את השלבים הבאים:

המסוף

  1. עוברים לדף Clusters.

    מעבר אל Clusters

  2. בוחרים את אשכול AlloyDB ל-PostgreSQL שאליו רוצים להעביר את מסדי הנתונים.
  3. בדף הפרטים של האשכול, לוחצים על העברת נתונים.
  4. בחלונית העברת נתונים, לוחצים על העברת מסד נתונים.

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

  5. בקטע Configure migration (הגדרת ההעברה), מבצעים את הפעולות הבאות:
    1. בתפריט אזור היעד, בוחרים את האזור של אשכול היעד של AlloyDB ל-PostgreSQL.
    2. בתיבה Migration prefix (קידומת להעברה), מזינים מחרוזת שתתווסף לשמות של כל ישויות ההעברה שנוצרו להעברה המהירה: פרופילי חיבור, הגדרת קישוריות פרטית, צירוף רשת ורשת המשנה שלה ועבודת ההעברה.
    3. בתפריט סוג ההגדרה, בוחרים באחת מהאפשרויות הבאות:
      1. הגדרת קישוריות קיימת: בוחרים באפשרות הזו אם כבר יש לכם קובץ מצורף לרשת והגדרת קישוריות פרטית שמשתמשת בממשקי Private Service Connect ברשת ה-VPC של מסד הנתונים של המקור. האפשרות הזו מתאימה במיוחד אם השתמשתם בעבר בהעברות מהירות ואתם רוצים להשתמש מחדש באותם משאבי רשת.
      2. הגדרת קישוריות חדשה: בוחרים באפשרות הזו כדי ליצור צירוף רשת חדש, תת-רשת של צירוף רשת והגדרת קישוריות פרטית ברשת ה-VPC של מסד הנתונים של המקור.
  6. בקטע Connect source (חיבור מקור), מבצעים את הפעולות הבאות:
    1. מזינים שם מארח או כתובת IP פרטית של מסד הנתונים של המקור. צריכה להיות אפשרות להגיע לכתובת של מסד הנתונים של המקור מרשת ה-VPC של המקור.
    2. מזינים את היציאה שמשמשת לגישה למארח. יציאת ברירת המחדל של PostgreSQL היא 5432.
    3. מזינים את שם המשתמש והסיסמה של חשבון ההעברה הייעודי במסד הנתונים של המקור.
    4. בתפריט סוג ההצפנה, בוחרים באחת מהאפשרויות הבאות:
      • ללא: אם מסד הנתונים של המקור לא דורש חיבורים מוצפנים באמצעות SSL/TLS.
      • חובה: אם מסד הנתונים של המקור דורש חיבורים מוצפנים באמצעות SSL/TLS. באפשרות הזו לא נדרש אימות של אישורים.
    5. בתפריט Databases to migrate (מסדי נתונים להעברה), לוחצים על Customize (התאמה אישית). משתמשים בחלונית הצדדית כדי לבחור רק את מסדי הנתונים שרוצים להעביר ל-AlloyDB ל-PostgreSQL.
  7. לוחצים על התחלת ההעברה.

    Database Migration Service יוצר עכשיו את משימת ההעברה ומתחיל את תהליך ההעברה. אתם יכולים לעקוב אחרי התקדמות המיגרציה וגם אחרי תקינות אשכול היעד ב-AlloyDB ל-PostgreSQL. מידע נוסף זמין במאמר בנושא הצגת מידע על אשכול.

gcloud

כדי להשתמש ב-CLI של gcloud כדי לבצע מיגרציה לאשכול AlloyDB קיים, מבצעים את השלבים הבאים:

  1. יוצרים את משאב ההצמדה לרשת.
    יוצרים את רכיב Network Attachment בפרויקט וברשת ה-VPC שבהם נמצא מסד הנתונים של המקור:

    gcloud compute network-attachments create NETWORK_ATTACHMENT \
      --region=REGION \
      --connection-preference=ACCEPT_MANUAL \
      --producer-accept-list=DEST_PROJECT_ID \
      --subnets=default \
      --project=SOURCE_PROJECT_ID

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

    • ‫NETWORK_ATTACHMENT: השם של מחבר הרשת שרוצים ליצור.
    • ‫REGION: האזור של מחבר הרשת.
    • ‫DEST_PROJECT_ID: מזהה הפרויקט של פרויקט היעד.
    • ‫SOURCE_PROJECT_ID: מזהה הפרויקט שבו נמצאת רשת המקור.
  2. מאפשרים לפרויקט הדייר של Database Migration Service לגשת לצירוף הרשת.
    כדי לאחזר את מזהה פרויקט הדייר, מריצים בדיקת אימות ואז מעדכנים את רשימת ההיתרים של מחבר הרשת כדי לכלול אותו:

    1. כדי לאחזר את מזהה פרויקט הדייר, מבצעים בדיקת אימות:

      gcloud database-migration private-connections create PRIVATE_CONN \
        --region=REGION \
        --network-attachment=NETWORK_ATTACHMENT_URI \
        --display-name=PRIVATE_CONN \
        --format="value(metadata.metadata.tenant_project_id)" \
        --validate-only

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

      • ‫PRIVATE_CONN: השם של משאב החיבור הפרטי.
      • ‫REGION: האזור של החיבור הפרטי.
      • ‫NETWORK_ATTACHMENT_URI: ה-URI של מחבר הרשת שנוצר בשלב הקודם. לדוגמה, projects/SOURCE_PROJECT_ID/regions/REGION/networkAttachments/NETWORK_ATTACHMENT.
    2. מעדכנים את מחבר הרשת עם הערך DMS_TENANT_ID שאוחזר:

      gcloud compute network-attachments update NETWORK_ATTACHMENT \
        --region=REGION \
        --producer-accept-list=DEST_PROJECT_ID,DMS_TENANT_ID \
        --project=SOURCE_PROJECT_ID

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

      • NETWORK_ATTACHMENT: השם של רכיב הרשת המצורף.
      • ‫REGION: האזור.
      • ‫DEST_PROJECT_ID: מזהה הפרויקט של פרויקט היעד.
      • ‫DMS_TENANT_ID: מזהה פרויקט הדייר של Database Migration Service שאוחזר.
      • ‫SOURCE_PROJECT_ID: מזהה הפרויקט שבו נמצאת רשת המקור.
  3. יוצרים את ההגדרה של הקישוריות הפרטית.
    יוצרים את החיבור הפרטי בפרויקט היעד:

    gcloud database-migration private-connections create PRIVATE_CONN \
      --region=REGION \
      --network-attachment=NETWORK_ATTACHMENT_URI \
      --display-name=PRIVATE_CONN

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

    • ‫PRIVATE_CONN: השם של משאב החיבור הפרטי.
    • ‫REGION: האזור של החיבור הפרטי.
    • ‫NETWORK_ATTACHMENT_URI: ה-URI של קובץ הרשת המצורף.
  4. יוצרים את פרופיל החיבור למקור.
    יוצרים את פרופיל החיבור למסד הנתונים של PostgreSQL:

    gcloud database-migration connection-profiles create postgresql SOURCE_CONN_ID \
      --region=REGION \
      --role=SOURCE \
      --host=SOURCE_PRIVATE_IP \
      --port=SOURCE_PORT \
      --username=SOURCE_USER \
      --password=SOURCE_PASSWORD \
      --private-connection=PRIVATE_CONN \
      --no-async

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

    • ‫SOURCE_CONN_ID: המזהה של פרופיל החיבור למקור.
    • ‫REGION: האזור שבו רוצים לשמור את פרופיל החיבור.
    • ‫SOURCE_PRIVATE_IP: כתובת ה-IP הפרטית של מסד הנתונים של המקור.
    • ‫SOURCE_PORT: היציאה של מסד הנתונים של המקור (ברירת המחדל היא 5432).
    • ‫SOURCE_USER: שם המשתמש של המשתמש להעברה במסד הנתונים של המקור.
    • ‫SOURCE_PASSWORD: הסיסמה של משתמש ההעברה במסד הנתונים של המקור.
    • ‫PRIVATE_CONN: השם של משאב החיבור הפרטי.
  5. יוצרים את פרופיל החיבור של היעד.
    יוצרים את פרופיל החיבור ליעד שמצביע על אשכול היעד ב-AlloyDB שנוצר מראש:

    gcloud database-migration connection-profiles create postgresql DEST_CONN_ID \
      --region=REGION \
      --alloydb-cluster=DEST_CLUSTER \
      --username=DEST_USER \
      --password=DEST_PASSWORD \
      --role=DESTINATION \
      --no-async

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

    • DEST_CONN_ID: המזהה של פרופיל החיבור ליעד.
    • ‫REGION: האזור שבו רוצים לשמור את פרופיל החיבור. האזור הזה צריך להיות זהה לאזור של אשכול היעד.
    • ‫DEST_CLUSTER: המזהה או נתיב המשאב המלא של אשכול היעד של AlloyDB ל-PostgreSQL.
    • ‫DEST_USER: שם המשתמש של המשתמש בהעברה במסד הנתונים של היעד.
    • ‫DEST_PASSWORD: הסיסמה של משתמש ההעברה במסד הנתונים של היעד.
  6. יוצרים את משימת ההעברה.
    יוצרים את משימת ההעברה הרציפה עם רפליקציה מובנית מופעלת:

    gcloud database-migration migration-jobs create MIGRATION_JOB_ID \
      --region=REGION \
      --type=CONTINUOUS \
      --source=SOURCE_CONN_ID \
      --destination=DEST_CONN_ID \
      --use-postgres-native \
      --postgres-max-additional-subscriptions=10 \
      --databases-filter=DATABASES_LIST \
      --no-async

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

    • ‫MIGRATION_JOB_ID: מזהה עבודת ההעברה.
    • ‫REGION: האזור שבו רוצים לשמור את משימת ההעברה.
    • ‫SOURCE_CONN_ID: המזהה של פרופיל החיבור למקור.
    • ‫DEST_CONN_ID: המזהה של פרופיל החיבור ליעד.
    • ‫DATABASES_LIST: רשימה מופרדת בפסיקים של מסדי נתונים שרוצים להעביר.
  7. מתחילים את משימת ההעברה.
    מתחילים את עבודת ההעברה כדי להתחיל את תהליך השכפול:

    gcloud database-migration migration-jobs start MIGRATION_JOB_ID \
      --region=REGION

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

    • ‫MIGRATION_JOB_ID: המזהה של משימת ההעברה.
    • ‫REGION: האזור שבו נמצאת משימת ההעברה.

סיום ההעברה

כשמחליטים להעביר את האפליקציה למכונת AlloyDB ל-PostgreSQL חדשה, צריך להשלים את ההעברה לפי השלבים הבאים:

  1. מפסיקים את כל פעולות הכתיבה במסד הנתונים של המקור. אתם יכולים להעביר אותם למצב קריאה בלבד כדי לשמור על הפונקציונליות התפעולית.
  2. קידום של עבודת ההעברה.
  3. אופציונלי: בודקים את נתוני ההעברה כדי לוודא שהם מלאים.

המאמרים הבאים