שדרוג ל-AlloyDB Omni גרסה 15.7.1 במכונה וירטואלית

בחירת גרסת תיעוד:

בדף הזה מוסבר איך לבצע מיגרציה מגרסה 15.5.2 ומגרסאות קודמות לגרסה העדכנית של AlloyDB Omni.

החל מ-AlloyDB Omni 15.5.4, אתם יכולים לשלוט ב-AlloyDB Omni באמצעות כלים נפוצים לניהול חבילות.

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

דרישות מוקדמות

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

שדרוג ל-AlloyDB Omni 15.5.2

הגרסה האחרונה של AlloyDB Omni שתומכת ב-CLI של AlloyDB Omni היא 15.5.2. כדי לבדוק את הגרסה של AlloyDB Omni, מריצים את הפקודה הבאה:

sudo alloydb version

הפלט אמור להיראות כך:

AlloyDB Omni CLI version: 1.6
AlloyDB Omni database server version: 15.5.2

אם בפלט מוצגת גרסת מסד נתונים מוקדמת יותר מ-15.5.2, מריצים את הפקודה הבאה כדי לשדרג:

sudo alloydb database-server upgrade

איסוף מידע על ההתקנה הקיימת

  1. מריצים את הפקודה הבאה:

    cat /var/alloydb/config/dataplane.conf
  2. מהפלט של הפקודה cat, רושמים את הערכים של המשתנים הבאים לעיון:

    • DATADIR_PATH—לדוגמה, /var/alloydb/main
    • ENABLE_ALLOYDB_AI—לדוגמה, FALSE
    • PGPORT—לדוגמה, 5432
    • INSTANCE_TYPE—לדוגמה, PRIMARY/READ_REPLICA

הסרת אינדקסים של ScaNN שנוצרו באמצעות התוסף postgres_ann

השם של התוסף postgres_ann משתנה ל-alloydb_scann. אם התקנתם את התוסף postgres_ann ויצרתם אינדקסים של ScaNN באמצעות התוסף, אתם צריכים להסיר את כל האינדקסים של ScaNN ולהסיר את התקנת התוסף לפני שתבצעו שדרוג.

כדי לטפל בהשפעה כלשהי על מסד הנתונים בעקבות שינוי השם של התוסף postgres_ann, מבצעים את השלבים הבאים:

  1. הפעלה וחיבור ל-AlloyDB Omni.
  2. תזהה את כל הטבלאות שמשתמשות באינדקס ScaNN.

     \c DATABASE_NAME
     select schemaname, relname, indexrelname, indextype, indexconfig, indexsize, indexscan FROM pg_stat_ann_indexes;

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

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

    pg_dump -st TABLE_NAME DATABASE_NAME

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

    • DATABASE_NAME: שם מסד הנתונים.
    • TABLE_NAME: שם הטבלה.
  4. הסרת אינדקסים של ScaNN שנוצרו באמצעות האינדקס postgres_ann.

    DROP INDEX INDEX_NAME;

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

  5. מוודאים שאף אחד ממסדי הנתונים לא כולל אינדקסים של ScaNN. כדי לאמת את המחיקה, משתמשים בשאילתת ה-SQL הבאה: שאילתת ה-SQL הבאה אמורה להחזיר קבוצת תוצאות ריקה.

     \c DATABASE_NAME
     select schemaname, relname, indexrelname, indextype, indexconfig, indexsize, indexscan FROM pg_stat_ann_indexes;
  6. כדי להסיר את התוסף postgres_ann:

    1. מוודאים שהתוסף postgres_ann מותקן במסד הנתונים.
    select * from pg_extension;
    1. מפסיקים את השימוש בתוסף postgres_ann.
    DROP EXTENSION postgres_ann CASCADE;
    1. מוודאים שהתוסף postgres_ann כבר לא מותקן במסד הנתונים.
    select * from pg_extension;

ביצוע שדרוג במקום

  1. עוצרים את מסד הנתונים הקיים:

    sudo alloydb database-server stop
  2. מפעילים את AlloyDB Omni החדש עם תמונה יחידה, ומעלים את ספריית הנתונים הקיימת מהגרסה הקודמת:

    docker run --name CONTAINER_NAME \
        -e POSTGRES_PASSWORD=PASSWORD \
        -e PGDATA=/var/lib/postgresql/data \
        -v /var/alloydb/main/data:/var/lib/postgresql/data \
        -v /dev/shm:/dev/shm \
        -p PGPORT:5432 \
        --network=host \
        --ulimit=nice=-20:-20 \
        --ulimit=core=-1:-1 \
        --log-driver=journald \
        -d google/alloydbomni

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

    • CONTAINER_NAME: השם שיוקצה למאגר החדש של AlloyDB Omni במאגר התמונות של המכונה המארחת – לדוגמה, my-omni.

    • PASSWORD: הסיסמה שהוקצתה למשתמש postgres של מאגר התגים החדש אחרי שהוא נוצר.

    • PGPORT: כתובת ה-IP של היציאה שבה פועל AlloyDB Omni. זה הערך שרשמתם בשלב 2 של איסוף מידע על ההתקנה הקיימת.

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

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

    for name in alloydbagent alloydbexport alloydbiamgroupuser alloydbiamuser alloydbimportexport alloydbobservability alloydbsqllogical alloydbsuperuser; do
      echo docker exec -it CONTAINER_NAME psql -h localhost -U postgres alloydbadmin \
        -c "CREATE ROLE ${name} NOLOGIN;" \
        -c "CREATE TABLE ${name}_table();" \
        -c "ALTER TABLE ${name}_table OWNER TO ${name};"
    done
  4. אם ENABLE_ALLOYDB_AI הוא TRUE, פועלים לפי ההוראות במאמר התקנת AlloyDB Omni עם AlloyDB AI כדי להגדיר את AlloyDB AI.

  5. מתחברים למסד הנתונים כדי לוודא שהנתונים לא השתנו:

    docker exec -it CONTAINER_NAME psql -h localhost -U postgres
  6. מסירים את AlloyDB Omni CLI:

    sudo alloydb database-server uninstall

    הסרת ההתקנה של AlloyDB Omni CLI לא משפיעה על הנתונים שמאוחסנים ב-AlloyDB Omni.

יצירה מחדש של אינדקסים של ScaNN באמצעות התוסף alloydb_scann

אחרי שמשדרגים את AlloyDB Omni, מותקן גם התוסף alloydb_scann. כדי ליצור מחדש אינדקסים של ScaNN שהסרתם בסעיף הסרת אינדקסים של ScaNN שנוצרו באמצעות התוסף postgres_ann לפני השדרוג:

  1. כדי ליצור את התוסף alloydb_scann:

    1. כדי ליצור את התוסף alloydb_scann, מריצים את השאילתה הבאה:
    create extension alloydb_scann cascade;
    1. מוודאים שהתוסף alloydb_scann נוצר בהצלחה.
    select * from pg_extension;
  2. יוצרים מחדש את האינדקס ScaNN של הטבלה, ואז משחזרים את ההגדרות הקודמות של האינדקס pg_dump DDL.

    1. יצירת אינדקס ScaNN בטבלה:
    CREATE INDEX INDEX_NAME ON TABLE_NAME
        USING scann (VECTOR_COLUMN DISTANCE)
        WITH (num_leaves = NUM_LEAVES_VALUE);

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

    • INDEX_NAME: שם האינדקס.
    • TABLE_NAME: שם הטבלה.
    • VECTOR_COLUMN: השם של העמודה שבה מאוחסנים נתוני הווקטור.
    • DISTANCE: פונקציית המרחק לשימוש באינדקס הזה.
    • NUM_LEAVES_VALUE: מספר המחיצות שיוחלו על האינדקס.
    1. מוודאים שהאינדקס נוצר.
    \d TABLE_NAME
    1. מומלץ: מגבים את נתוני האינדקסים. מומלץ ליצור גיבוי של מסד הנתונים והאינדקסים.