מידע על מרחבי עבודה להמרות מדור קודם

סביבות עבודה להמרות מדור קודם הן סוג ישן יותר ומוגבל יותר של סביבות עבודה להמרות. בסביבות עבודה להמרות מדור קודם אין תמיכה בתכונות המרה משופרות באמצעות Gemini או בכלי האינטראקטיבי לעריכת SQL. אפשר להשתמש בהם רק כדי להמיר את סכימת המקור באמצעות כלי ההעברה Ora2Pg.

לא מומלץ להשתמש בסוג הישן של סביבות עבודה להמרות לצורך המיגרציות, כי יש לו מגבלות רבות אחרות על תהליך העבודה של ההמרה:

סביבת עבודה אינטראקטיבית להמרותסביבת עבודה מדור קודם של המרות
ההמרה של הסכימה ואובייקט הקוד מתבצעת ב-Database Migration Service. אתם מבצעים המרות של סכימות ואובייקטים של קוד מחוץ ל-Database Migration Service באמצעות כלי ההעברה Ora2Pg.
אתם יכולים להחיל מקורות שהומרו על מסד הנתונים של היעד ישירות ב-Database Migration Service. אתם אחראים להחלת הסכימה שהומרה על מסד הנתונים של היעד במופע היעד של Cloud SQL ל-PostgreSQL.
אתם יכולים לבדוק את סכימת הטיוטה ואת הקוד ישירות ב-Database Migration Service כדי לוודא שאפשר להחיל אותם בהצלחה על מופע היעד. אי אפשר לבדוק את סכימת הטיוטה ואת הקוד בלי להשפיע על מופע היעד.
הוספה אוטומטית של עמודות חסרות rowid לטבלאות שאין להן מפתחות ראשיים ואילוצים ייחודיים. אחרי שמחילים את הסכימה, צריך להוסיף לטבלאות היעד מפתחות ראשיים שחסרים.
טבלה 1: השוואה בין התכונות של מרחב העבודה להמרת נתונים

שימוש בסביבות עבודה מדור קודם להמרות

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

  1. כותבים קובץ תצורה של Ora2Pg.

    ב מאמרי העזרה של Ora2Pg יש הוראות לשימוש בכלי ההמרה Ora2Pg. כדי לראות את הרשימה המלאה של ההנחיות שנתמכות ב-Database Migration Service, צריך להרחיב את הקטעים הבאים.

    הגדרת Ora2Pg נתמכת ב-Database Migration Service

    Database Migration Service תומך בפריטי ההגדרה הבאים לקובצי Ora2Pg:

    • BOOLEAN_VALUES
    • DATA_TYPE
    • DEFAULT_NUMERIC
    • ENABLE_MICROSECOND
    • EXPORT_SCHEMA
    • MODIFY_STRUCT
    • MODIFY_TYPE
    • PG_INTEGER_TYPE
    • PG_NUMERIC_TYPE
    • PG_SCHEMA
    • PRESERVE_CASE
    • REPLACE_AS_BOOLEAN
    • REPLACE_COLS
    • REPLACE_TABLES
    • REPLACE_ZERO_DATE
    • SCHEMA

    Database Migration Service משתמש בפרופילי חיבור כדי להגדיר את פרטי הקישוריות, כך שלא צריך להגדיר את הפרטים הבאים בקובץ התצורה של Or2Pg:

    • ORACLE_DSN
    • ORACLE_HOME
    • ORACLE_PWD
    • ORACLE_USER
    • PG_DSN
    • PG_PWD
    • PG_USER

    בנוסף, Database Migration Service לא משתמש בהנחיית ההגדרה WHERE כדי להגביל את הרשומות למיגרציה.

  2. יוצרים סביבת עבודה להמרת נתונים מדור קודם ומעלים את קובץ Ora2Pg כדי להמיר את הסכימה.
  3. החלת הסכימה שהומרה על מסד הנתונים של היעד באופן ידני.

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

  4. העברת טבלאות ללא מפתחות ראשיים.

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

    הוספת אילוצים של מפתח ראשי במסד הנתונים של היעד

    כדי להעביר טבלאות של Oracle ללא מפתחות ראשיים, מבצעים את הפעולות הבאות:

    1. מתחברים למכונת Cloud SQL של היעד באמצעות לקוח SQL. אפשר להשתמש באחת מהשיטות הבאות:
      • psql client. אפשר להשתמש בשיטה הזו כדי להתחבר לכתובת ה-IP הפרטית של המכונה, אבל יכול להיות שתצטרכו ליצור מכונה וירטואלית ב-Compute Engine.
      • gcloud sql connect. הפקודה הזו פועלת רק במכונות Cloud SQL שמופעלת בהן כתובת IP ציבורית.
    2. יוצרים את אילוצי המפתח הראשי החסרים בטבלאות. מידע נוסף על מפתחות ראשיים זמין בקטע מפתחות ראשיים במסמכי התיעוד של PostgreSQL.

      אפשר גם להרחיב את הקטעים הבאים כדי לראות דוגמאות לפקודות SQL:

      יצירת מפתחות ראשיים באמצעות עמודות קיימות

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

      ALTER TABLE TABLE_NAME
      ADD PRIMARY KEY (COLUMN_NAME);

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

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

      ALTER TABLE TABLE_NAME
      ADD PRIMARY KEY (COLUMN_NAME_1, COLUMN_NAME_2, COLUMN_NAME_3, ...);

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

      יצירת אילוץ ייחודי באמצעות פסאודו-עמודה ROWID

      במסדי נתונים של Oracle נעשה שימוש ב ROWID פסאודו-עמודה כדי לאחסן את המיקום של כל שורה בטבלה. כדי להעביר טבלאות של Oracle שלא כוללות מפתחות ראשיים, אפשר להוסיף עמודה ROWID למסד הנתונים של PostgreSQL ביעד. ‫Database Migration Service ממלא את העמודה בערכים המספריים התואמים מפסאודו-העמודה ROWID של Oracle במקור.

      כדי להוסיף את העמודה ולהגדיר אותה כמפתח הראשי, מריצים את הפקודה הבאה:

      ALTER TABLE TABLE_NAME ADD COLUMN rowid numeric(33,0) NOT NULL;
      CREATE SEQUENCE TABLE_NAME_rowid_seq INCREMENT BY -1 START WITH -1 OWNED BY TABLE_NAME.rowid;
      ALTER TABLE TABLE_NAME ALTER COLUMN rowid SET DEFAULT nextval('TABLE_NAME_rowid_seq');
      ALTER TABLE TABLE_NAME ADD CONSTRAINT CONSTRAINT_DISPLAY_NAME PRIMARY KEY (rowid);

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

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