העברה למופע יעד קיים

בדף הזה מוסבר איך להעביר את מסדי הנתונים למכונה קיימת של Cloud SQL ל-PostgreSQL שנוצרה ישירות ב-Cloud SQL.

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

ברמה הכללית, תהליך ההעברה כולל את השלבים הבאים:

  1. מגדירים את מסד הנתונים של המקור כדי לאפשר ל-Database Migration Service להעביר את הנתונים למסדי הנתונים החדשים.
  2. מגדירים את הקישוריות לרשת של מכונת המקור ב-PostgreSQL.
  3. מכינים ומגדירים את מכונת היעד הקיימת ב-Cloud SQL.
  4. יוצרים את פרופיל החיבור של המקור ואת משימת ההעברה.
  5. מתחילים את משימת ההעברה ועוקבים אחריה.
  6. מקַדמים את משימת ההעברה ומעבירים את האפליקציה לשימוש במסדי הנתונים החדשים.

עלויות

במסמך הזה משתמשים ברכיבים הבאים שלGoogle Cloud, והשימוש בהם כרוך בתשלום:

כדי להעריך את העלויות בהתאם לשימוש הצפוי, אתם יכולים להשתמש במחשבון העלויות.

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

  1. צריך לבדוק אם נתיב ההעברה הזה יכול לתמוך באופן מלא בתרחיש שלכם. אפשר לעיין בדפים הבאים:
  2. חשבו באיזה אזור אתם רוצים ליצור את מסד הנתונים של היעד. ‫Database Migration Service הוא מוצר אזורי לחלוטין, כלומר כל הישויות שקשורות להעברה (פרופילי חיבור של מקור ויעד, משימות העברה, מסדי נתונים של יעד, סביבות עבודה להמרת מסדי נתונים) צריכות להישמר באזור אחד.
  3. בדף לבחירת הפרויקט במסוף Google Cloud , בוחרים פרויקט ב- Google Cloud או יוצרים אותו.

    כניסה לדף לבחירת הפרויקט

  4. מפעילים את Database Migration Service ואת Cloud SQL Admin API.

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

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

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

למידע נוסף על הקצאת תפקידים, קראו את המאמר ניהול הגישה במרכז העזרה של "ניהול זהויות והרשאות גישה".

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

ההרשאות הנדרשות

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

  • datamigration.*
  • cloudsql.instances.create
  • cloudsql.instances.get
  • cloudsql.instances.list
  • cloudsql.instances.update
  • cloudsql.instances.delete
  • cloudsql.operations.get
  • cloudsql.users.list
  • cloudsql.users.get
  • cloudsql.users.create
  • cloudsql.users.update
  • cloudsql.users.delete

יכול להיות שתוכלו לקבל את ההרשאות האלה גם באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש אחרים.

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

כדי להכין את נתוני המקור להעברה, פועלים לפי השלבים הבאים:

  1. בוחרים ומגדירים את שיטת הקישוריות לרשת המקור.
  2. מגדירים את המכונה של מסד הנתונים במקור. ברמה הכללית, התהליך כולל את השלבים הבאים:
    1. מתקינים את התוסף pglogical של PostgreSQL (גרסה 2.2.1 ואילך) במסד הנתונים של המקור ובכל מסדי הנתונים שרוצים להעביר.
    2. מגדירים את הפרמטרים של PostgreSQL: מגדירים את wal_level = logical ומוודאים שהערכים של max_replication_slots,‏ max_wal_senders ו-max_worker_processes מתאימים.
    3. נותנים הרשאות רפליקציה למשתמש ההעברה, ומגדירים את pg_hba.conf כך שיאפשר חיבורים ממכונת Cloud SQL ביעד.

    הוראות מפורטות זמינות במאמר הגדרת מסד הנתונים של המקור.

  3. יוצרים את פרופיל החיבור של המקור.

הכנה והגדרה של המכונה ביעד

כשמעבירים למכונה קיימת של Cloud SQL (כמו מכונה שהוקצתה מראש על ידי צוות אחר או שמנוהלת באמצעות Terraform), צריך לוודא שהמכונה עומדת בכל הדרישות המוקדמות של Database Migration Service לפני שיוצרים את משימת ההעברה:

  1. מוכנות המופע ומצב הנתונים:
    • מכונת היעד חייבת להיות מכונה עצמאית (לא רפליקה) במצב RUNNABLE.
    • המכונה צריכה להיות באותו אזור של משימת ההעברה ופרופיל החיבור. Google Cloud
    • אפשר לשייך את המכונה רק למשימת העברה פעילה אחת בכל פעם.
    • במופע היעד לא יכולים להיות נתוני משתמשים קיימים, טבלאות שהוגדרו על ידי המשתמש או מסדי נתונים שאינם של המערכת. אימות משימת ההעברה נכשל אם יש נתוני משתמשים קיימים במכונה. מידע נוסף זמין במאמר מגבלות על העברות למכונות יעד קיימות. אם צריך, מוחקים את הנתונים הקיימים מהמכונה ביעד.
  2. הגדרת דגל לניהול מסד נתונים: מפעילים את הדגל cloudsql.enable_pglogical במכונה של Cloud SQL ל-PostgreSQL ביעד. הדגל הזה נדרש לרפליקציה לוגית. מידע נוסף על הגדרת דגלים זמין במאמר הגדרת דגלים לניהול מסדי נתונים.
  3. פרטי כניסה והרשאות של משתמש במסד הנתונים: ודאו שחשבונות המשתמשים הנדרשים לניהול מסד הנתונים קיימים במכונה של היעד (למשל, משתמש ברירת המחדל postgres או משתמש ייעודי להעברה עם התפקיד cloudsqlsuperuser) כדי לנהל את מסדי הנתונים והתפקידים. אפשר ליצור ולנהל משתמשים במסד הנתונים באמצעות פקודות psql רגילות או באמצעות מסוף Google Cloud . מידע נוסף זמין במאמר ניהול משתמשים במסמכי התיעוד של Cloud SQL.
  4. דרישות הקישוריות לרשת: מוודאים שהרשת של מכונת היעד מוגדרת בצורה תקינה כדי לתקשר עם מסד הנתונים של המקור, בהתאם לשיטת הקישוריות שבחרתם:
    • ‫Private Service Connect: אם במכונה של היעד מופעל Private Service Connect, צריך להגדיר בה מחבר רשת יוצא של Private Service Connect. מידע נוסף זמין במאמר חיבורים יוצאים של Private Service Connect במסמכי התיעוד של Cloud SQL.
    • ‫Virtual Private Cloud peering (Private Services Access / Private IP): במכונת היעד צריך להפעיל כתובת IP פרטית ברשת של הענן הווירטואלי הפרטי (VPC) שמקושרת למסד הנתונים של המקור או מנתבת אליו. איך מגדירים כתובת IP פרטית
    • רשימת היתרים של כתובות IP ציבוריות: אם אתם משתמשים בקישור דרך IP ציבורי, ודאו שהפעלתם כתובת IP ציבורית במכונה של היעד, ושהוספתם לרשימת ההיתרים את כתובות ה-IP היוצאות של המכונה (כולל כתובות IP יוצאות ראשיות ומשניות אם המכונה מוגדרת לזמינות גבוהה) בחומת האש של המקור. אישור רשתות לכתובת IP ציבורית
  5. הודעה על הורדה בדרגה של מופע:
    • בהעברות רגילות של PostgreSQL, שירות Database Migration Service מוריד בדרגה את מכונת היעד העצמאית הקיימת כדי להגדיר אותה כרפליקה חיצונית של מסד הנתונים במקור. כדי לאשר את ההורדה בדרגה, צריך להזין את מזהה המכונה של היעד כשיוצרים את משימת ההעברה במסוף Google Cloud .
    • הורדת המכונה בדרגה לא מעבירה את מסד הנתונים של Cloud SQL ל-PostgreSQL למצב קריאה בלבד, אבל צריך להימנע מפעולות כתיבה בטבלאות או במסדי נתונים שמשתתפים בהעברה כדי למנוע התנגשויות ברפליקציה.
    • גיבויים אוטומטיים, שחזור מערכת מנקודה מסוימת בזמן (PITR) ויצירת עותקים לקריאה בלבד של Cloud SQL מושעים עד שמקדמים את משימת ההעברה. מידע נוסף זמין במאמר מגבלות על העברות למכונות יעד קיימות.
    • אם אתם מנהלים את מכונת היעד באמצעות תשתית כקוד (כמו Terraform), ‏Database Migration Service משנה את הגדרות הגיבוי והשחזור במהלך ההעברה. במאמר אבחון בעיות מוסבר איך לטפל בשינויים בהגדרות של Terraform.

יצירה והרצה של משימת ההעברה

כדי להגדיר ולהריץ את ההעברה, פועלים לפי השלבים הבאים:

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

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

סיום ההעברה

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

  1. אופציונלי: הגדרת עותקי Read Replica מדורגים. אם אתם רוצים להשתמש ברפליקות מדורגות לקריאה בלבד, אתם יכולים להגדיר אותן כשמשימת ההעברה נכנסת לשלב ה-CDC.
  2. מפסיקים את כל פעולות הכתיבה במסד הנתונים של המקור. אפשר להעביר אותם למצב קריאה בלבד כדי לשמור על הפונקציונליות התפעולית.
  3. קידום משימת ההעברה.
  4. אופציונלי: בודקים את נתוני ההעברה כדי לוודא שהם מלאים.
  5. אם אתם מנהלים את מסד הנתונים של היעד באמצעות תשתית כקוד (כמו Terraform), אחרי השדרוג תצטרכו להחיל מחדש את ההגדרות כדי להתאים את כל ההגדרות ששונו על ידי Database Migration Service במהלך ההעברה.

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

Google Cloud מידע נוסף על תכונות של Cloud SQL ל-PostgreSQL. התכונות של Cloud SQL ל-PostgreSQL