סקירה כללית
הדף הזה כולל סקריפטים שעוזרים בניפוי באגים ובשימוש ב-AlloyDB.
העברת פעולות UPDATE ו-DELETE לטבלאות ללא מפתח ראשי
בטבלאות שאין להן מפתחות ראשיים, Database Migration Service תומך בהעברה של התמונה הראשונית ושל הצהרות INSERT במהלך השלב של סימון נתונים שהשתנו (CDC).
כדי לעדכן את התהליכים החסרים UPDATE ו-DELETE, אפשר לעיין בקטעים הבאים של המסמך הזה.
זיהוי נתונים חסרים בין המקור לאשכול היעד ב-AlloyDB
- זיהוי הטבלאות שאין להן מפתחות ראשיים:
select tab.table_schema, tab.table_name from information_schema.tables tab left join information_schema.table_constraints tco on tab.table_schema = tco.table_schema and tab.table_name = tco.table_name and tco.constraint_type = 'PRIMARY KEY' where tab.table_type = 'BASE TABLE' and tab.table_schema not in ('pg_catalog', 'information_schema', 'pglogical') and tco.constraint_name is null order by table_schema, table_name; - לפני שמתחילים את ההעברה, בודקים אם יש עדכונים או מחיקות בכל הטבלאות שאין להן מפתחות ראשיים, באמצעות השאילתה הבאה:
איפה:SELECT schemaname, relname, n_tup_ins, n_tup_upd, n_tup_del FROM pg_stat_user_tables WHERE schemaname NOT IN ('pglogical', 'pg_catalog', 'information_schema');-
n_tup_ins: מספר השורות שהוכנסו -
n_tup_upd: מספר השורות שעודכנו (כולל שורות שעודכנו ב-HOT) -
n_tup_del: מספר השורות שנמחקו
-
- שומרים את התוצאות האלה בטבלה נפרדת או בקובץ.
- אחרי שמסיימים את הגדרת המיגרציה, מריצים שוב את השאילתה.
- משווים את התוצאות לתוצאות משלב 3.
אם יש הבדלים בערכים של n_tup_upd או n_tup_del במקור במהלך ההעברה, יכול להיות שיהיו עדכונים או מחיקות במקור.
העברת נתונים באופן ידני מהמקור למופעי היעד של AlloyDB
אם אתם מזהים שיש אי התאמות בין מופע המקור לבין מופע היעד של AlloyDB, אתם יכולים להעביר את הנתונים באמצעות אחת מהאפשרויות הבאות:
אפשרות 1: משווים באופן ידני את הנתונים בין המקור ליעד ב-AlloyDB ומריצים שאילתות SQL מתאימות כדי לעדכן רק את הנתונים ששונים בין המקור לבין העותק.
אפשרות 2: מריצים את הפקודות
pg_dumpו-pg_restoreעבור הטבלאות בלי מפתחות ראשיים. מידע נוסף מופיע במאמר ייצוא נתונים משרת PostgreSQL מקומי באמצעות pg_dump.אפשרות 3: שימוש בפקודה של Postgres
COPYלהעברת הנתונים. מידע נוסף זמין במסמכי התיעוד של PostgreSQL. הערה: כדי לבצע את השלב הזה, המכונה הווירטואלית המשוכפלת צריכה להיות מסוגלת להתחבר למכונה הווירטואלית של המקור.