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

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

סקירה כללית

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

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

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

    יכול להיות שמקורות שמתארחים מחוץ ל- Google Cloud יצטרכו רכיבי רשת נוספים (כמו חיבור דרך VPN) כדי שאפשר יהיה להגיע אליהם בכתובת 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 for PostgreSQL Admin.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

כדי לבצע העברות הומוגניות בהפעלה מהירה באמצעות 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 שפועלים בו-זמנית.
    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. לוחצים על Create cluster > From an existing database.

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

  3. בקטע Configure migration, מבצעים את הפעולות הבאות:
    1. בתפריט Destination region, בוחרים את האזור של אשכול היעד של AlloyDB ל-PostgreSQL.
    2. בתיבה Migration prefix, מזינים מחרוזת שתתווסף לשמות של כל ישויות ההעברה שנוצרו בשביל ההעברה המהירה: פרופילי חיבור, הגדרת חיבור מבודד, מחבר רשת ורשת המשנה שלו ומשימת העברה.
    3. בתפריט Configuration type, בוחרים אחת מהאפשרויות הבאות:
      1. ‫Existing connectivity configuration: בוחרים באפשרות הזו אם כבר יש לכם חיבור לרשת והגדרת קישוריות פרטית שמשתמשת בשיטת הממשקים של Private Service Connect. האפשרות הזו מתאימה במיוחד אם השתמשתם בעבר בהעברות מהירות ואתם רוצים להשתמש שוב באותם משאבי רשת.
      2. הגדרת קישוריות חדשה: בוחרים באפשרות הזו כדי ליצור חיבור רשת חדש ואת רשת המשנה של חיבור הרשת ברשת ה-VPC של מסד הנתונים של המקור. הגדרת הקישוריות הפרטית תיווצר באותו פרויקט שבו נמצא אשכול היעד.
    4. לוחצים על Continue.
  4. בקטע Connect source מבצעים את הפעולות הבאות:
    1. מזינים את שם המארח או את כתובת ה-IP הפרטית של מסד הנתונים במקור. צריכה להיות גישה לכתובת של מסד הנתונים במקור מרשת ה-VPC במקור.
    2. מזינים את היציאה שמשמשת לגישה למארח. מספר היציאה שמוגדר כברירת מחדל ב-PostgreSQL הוא 5432.
    3. מזינים את שם המשתמש והסיסמה של החשבון הייעודי להעברה במסד הנתונים של המקור.
    4. בתפריט סוג הצפנה, בוחרים אחת מהאפשרויות הבאות:
      • ‫None: אם מסד הנתונים של המקור לא דורש חיבורים מוצפנים ב-SSL או ב-TLS.
      • Required: אם מסד הנתונים של המקור דורש חיבורים מוצפנים ב-SSL או ב-TLS. באפשרות הזאת לא נדרש אימות של אישור.
    5. בתפריט Databases to migrate, לוחצים על Customize. בחלונית הצדדית, בוחרים רק את מסדי הנתונים שרוצים להעביר ל-AlloyDB ל-PostgreSQL.
    6. לוחצים על Continue.
  5. בקטע Configure destination, מבצעים את הפעולות הבאות:
    1. בתפריט Destination instance type, בוחרים באפשרות New cluster.

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

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

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

gcloud

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

  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. נותנים לפרויקט של הדייר (tenant) ב-Database Migration Service גישה למחבר הרשת.
    מריצים בדיקת אימות כדי לאחזר את מזהה הפרויקט של הדייר, ואז מעדכנים את רשימת ההיתרים של מחבר הרשת כך שתכלול אותו:

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

      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: מזהה הפרויקט של הדייר (tenant) שאוחזר מ-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 ל-PostgreSQL.
    יוצרים את אשכול היעד ואת המכונה הראשית שלו. הוראות מפורטות מופיעות בדף יצירת אשכול והמכונה הראשית שלו.

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

    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. בדף הפרטים של האשכול, לוחצים על Migrate data.
  4. בחלונית Migrate data, לוחצים על Migrate database.

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

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

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

gcloud

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

  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. נותנים לפרויקט של הדייר (tenant) ב-Database Migration Service גישה למחבר הרשת.
    מריצים בדיקת אימות כדי לאחזר את מזהה הפרויקט של הדייר, ואז מעדכנים את רשימת ההיתרים של מחבר הרשת כך שתכלול אותו:

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

      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: מזהה הפרויקט של הדייר (tenant) שאוחזר מ-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 ל-PostgreSQL שנוצר מראש:

    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. אופציונלי: בודקים את נתוני ההעברה כדי לוודא שהם מלאים.

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