החל מ-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איסוף מידע על ההתקנה הקיימת
מריצים את הפקודה הבאה:
cat /var/alloydb/config/dataplane.confמהפלט של הפקודה
cat, רושמים את הערכים של המשתנים הבאים לעיון:DATADIR_PATH—לדוגמה,/var/alloydb/mainENABLE_ALLOYDB_AI—לדוגמה,FALSEPGPORT—לדוגמה,5432INSTANCE_TYPE—לדוגמה,PRIMARY/READ_REPLICA
הסרת אינדקסים של ScaNN שנוצרו באמצעות התוסף postgres_ann
השם של התוסף postgres_ann משתנה ל-alloydb_scann. אם התקנתם את התוסף postgres_ann ויצרתם אינדקסים של ScaNN באמצעות התוסף, אתם צריכים להסיר את כל האינדקסים של ScaNN ולהסיר את התקנת התוסף לפני שתבצעו שדרוג.
כדי לטפל בהשפעה כלשהי על מסד הנתונים בעקבות שינוי השם של התוסף postgres_ann, מבצעים את השלבים הבאים:
- הפעלה וחיבור ל-AlloyDB Omni.
תזהה את כל הטבלאות שמשתמשות באינדקס
ScaNN.\c DATABASE_NAME select schemaname, relname, indexrelname, indextype, indexconfig, indexsize, indexscan FROM pg_stat_ann_indexes;מחליפים את
DATABASE_NAMEבשם של מסד הנתונים שבו רוצים להריץ את השאילתה.שומרים את ההגדרות והפרמטרים של האינדקס כקובץ DDL באמצעות כלי כמו
pg_dumpכדי ליצור מחדש את האינדקסים שלScaNNמאוחר יותר.pg_dump -st TABLE_NAME DATABASE_NAMEמחליפים את מה שכתוב בשדות הבאים:
-
DATABASE_NAME: שם מסד הנתונים. -
TABLE_NAME: שם הטבלה.
-
הסרת אינדקסים של
ScaNNשנוצרו באמצעות האינדקסpostgres_ann.DROP INDEX INDEX_NAME;מחליפים את
INDEX_NAMEבשם של מסד הנתונים שבו רוצים להריץ את השאילתה.מוודאים שאף אחד ממסדי הנתונים לא כולל אינדקסים של
ScaNN. כדי לאמת את המחיקה, משתמשים בשאילתת ה-SQL הבאה: שאילתת ה-SQL הבאה אמורה להחזיר קבוצת תוצאות ריקה.\c DATABASE_NAME select schemaname, relname, indexrelname, indextype, indexconfig, indexsize, indexscan FROM pg_stat_ann_indexes;כדי להסיר את התוסף
postgres_ann:- מוודאים שהתוסף
postgres_annמותקן במסד הנתונים.
select * from pg_extension;- מפסיקים את השימוש בתוסף
postgres_ann.
DROP EXTENSION postgres_ann CASCADE;- מוודאים שהתוסף
postgres_annכבר לא מותקן במסד הנתונים.
select * from pg_extension;- מוודאים שהתוסף
ביצוע שדרוג במקום
עוצרים את מסד הנתונים הקיים:
sudo alloydb database-server stopמפעילים את 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.אם סוג מופע מסד הנתונים הוא
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אם
ENABLE_ALLOYDB_AIהואTRUE, פועלים לפי ההוראות במאמר התקנת AlloyDB Omni עם AlloyDB AI כדי להגדיר את AlloyDB AI.מתחברים למסד הנתונים כדי לוודא שהנתונים לא השתנו:
docker exec -it CONTAINER_NAME psql -h localhost -U postgresמסירים את AlloyDB Omni CLI:
sudo alloydb database-server uninstallהסרת ההתקנה של AlloyDB Omni CLI לא משפיעה על הנתונים שמאוחסנים ב-AlloyDB Omni.
יצירה מחדש של אינדקסים של ScaNN באמצעות התוסף alloydb_scann
אחרי שמשדרגים את AlloyDB Omni, מותקן גם התוסף alloydb_scann. כדי ליצור מחדש אינדקסים של ScaNN שהסרתם בסעיף הסרת אינדקסים של ScaNN שנוצרו באמצעות התוסף postgres_ann לפני השדרוג:
כדי ליצור את התוסף
alloydb_scann:- כדי ליצור את התוסף
alloydb_scann, מריצים את השאילתה הבאה:
create extension alloydb_scann cascade;- מוודאים שהתוסף
alloydb_scannנוצר בהצלחה.
select * from pg_extension;- כדי ליצור את התוסף
יוצרים מחדש את האינדקס
ScaNNשל הטבלה, ואז משחזרים את ההגדרות הקודמות של האינדקסpg_dumpDDL.- יצירת אינדקס
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: מספר המחיצות שיוחלו על האינדקס.
- מוודאים שהאינדקס נוצר.
\d TABLE_NAME- מומלץ: מגבים את נתוני האינדקסים. מומלץ ליצור גיבוי של מסד הנתונים והאינדקסים.
- יצירת אינדקס