AlloyDB Omni תואם ל-PostgreSQL, ולכן פקודות וטכניקות לשחזור נתונים שמתוארות במדריך pgBackRest רלוונטיות גם ל-AlloyDB Omni. בדף הזה מוצגות דוגמאות למשימות שחזור נפוצות, עם דוגמאות לפקודות רלוונטיות.
אשכולות עם TDE תומכים גם בגיבויים ובשחזורים באמצעות pgBackRest. למידע נוסף, קראו את המאמר יצירת אשכול עם TDE.
מידע נוסף על הגדרת pgBackRest לעבודה עם AlloyDB Omni זמין במאמר הגדרת pgBackRest ל-AlloyDB Omni.
למידע על Kubernetes, קראו את המאמר גיבוי ושחזור ב-Kubernetes.
לפני שמתחילים
לפני שמשחזרים אשכול AlloyDB Omni, צריך לוודא שיש לכם את הדברים הבאים:
- הגדרתם את pgBackRest עבור מכונת AlloyDB Omni.
מספיק מקום בכונן במערכת הקבצים של היעד כדי לאחסן את אשכול מסדי הנתונים המשוחזר של AlloyDB Omni.
אותה גרסה ראשית של AlloyDB Omni שמשמשת למכונה של מסד הנתונים לשחזור כמו המכונה של מסד הנתונים המקורי.
כדי לבדוק את גרסת PostgreSQL, מריצים את הפקודה הבאה:
Docker
docker exec -u postgres CONTAINER_NAME psql -c "SELECT version();"
Docker
docker exec -u postgres CONTAINER_NAME psql -c "SELECT version();"
Podman
podman exec -u postgres CONTAINER_NAME psql -c "SELECT version();"
Podman
podman exec -u postgres CONTAINER_NAME psql -c "SELECT version();"
מחליפים את המשתנה הבא:
-
CONTAINER_NAME: השם שנתתם למאגר התגים. לדוגמה,my-omni-1.
כדי לבדוק את הגרסה של pgBackRest, מריצים את הפקודה הבאה:
Docker
docker exec -u postgres CONTAINER_NAME pgbackrest version
Docker
docker exec -u postgres CONTAINER_NAME pgbackrest version
Podman
podman exec -u postgres CONTAINER_NAME pgbackrest version
Podman
podman exec -u postgres CONTAINER_NAME pgbackrest version
מחליפים את המשתנה הבא:
-
CONTAINER_NAME: השם שבו השתמשתם עבור מאגר התגים. לדוגמה,my-omni-1.
אם במאגר היעד יש גרסה אחרת של PostgreSQL, של pgBackRest או של שניהם, צריך ליצור מאגר יעד חדש עם גרסה תואמת. אם זה לא אפשרי, צריך להשתמש בשיטה חלופית, כמו כלי השירות pg_dump או pg_dumpall שכלולים ב-PostgreSQL, כדי להעתיק את מסדי הנתונים בין הגרסאות.
עצירת הקונטיינר של AlloyDB Omni
כדי לדמות מצב שבו אשכול מסד הנתונים של AlloyDB Omni לא זמין, צריך להפסיק את הקונטיינר.
Docker
docker stop CONTAINER_NAMEdocker rm CONTAINER_NAME
Docker
docker stop CONTAINER_NAMEdocker rm CONTAINER_NAME
Podman
podman stop CONTAINER_NAMEpodman rm CONTAINER_NAME
Podman
podman stop CONTAINER_NAMEpodman rm CONTAINER_NAME
מחליפים את המשתנה הבא:
-
CONTAINER_NAME: השם שנתתם למאגר התגים. לדוגמה,my-omni-1.
יצירת קונטיינר AlloyDB Omni במצב חוסר פעילות
Docker
docker run -d --name CONTAINER_NAME \ -v DATA_DIR:/var/lib/postgresql/data \ -v BACKUP_DIR:/var/lib/postgresql/backups \ -p HOST_PORT:5432 \ --restart=always \ google/alloydbomni:latest sleep infinity
Docker
docker run -d --name CONTAINER_NAME \ -v DATA_DIR:/var/lib/postgresql/data \ -v BACKUP_DIR:/var/lib/postgresql/backups \ -p HOST_PORT:5432 \ --restart=always \ google/alloydbomni:latest sleep infinity
Podman
podman run -d --name CONTAINER_NAME \ -v DATA_DIR:/var/lib/postgresql/data \ -v BACKUP_DIR:/var/lib/postgresql/backups \ -p HOST_PORT:5432 \ --restart=always \ docker.io/google/alloydbomni:latest sleep infinity
Podman
podman run -d --name CONTAINER_NAME \ -v DATA_DIR:/var/lib/postgresql/data \ -v BACKUP_DIR:/var/lib/postgresql/backups \ -p HOST_PORT:5432 \ --restart=always \ docker.io/google/alloydbomni:latest sleep infinity
מחליפים את המשתנים הבאים:
-
CONTAINER_NAME: השם שנתתם למאגר התגים. לדוגמה,my-omni-1. -
DATA_DIR: הנתיב לספרייה המארחת שבה הנתונים מאוחסנים. -
BACKUP_DIR: נתיב הספרייה החיצונית שבה מאוחסנים הגיבויים. -
HOST_PORT: יציאת TCP במחשב המארח שאליה הקונטיינר צריך לפרסם את היציאה שלו5432. כדי להשתמש ביציאת ברירת המחדל של PostgreSQL גם במחשב המארח, מציינים את5432.
הסרת ספריית הנתונים
כדי לנקות את אשכול מסד הנתונים של AlloyDB Omni, מסירים את ספריית הנתונים.
Docker
docker exec CONTAINER_NAME sh -c "rm -rf /var/lib/postgresql/data/*"
Docker
docker exec CONTAINER_NAME sh -c "rm -rf /var/lib/postgresql/data/*"
Podman
podman exec CONTAINER_NAME sh -c "rm -rf /var/lib/postgresql/data/*"
Podman
podman exec CONTAINER_NAME sh -c "rm -rf /var/lib/postgresql/data/*"
מחליפים את המשתנה הבא:
-
CONTAINER_NAME: השם שנתתם למאגר התגים. לדוגמה,my-omni-1.
מוודאים שהגיבויים גלויים
Docker
docker exec -u postgres CONTAINER_NAME pgbackrest \ --config-path=/var/lib/postgresql/backups \ --stanza=STANZA_NAME \ info
Docker
docker exec -u postgres CONTAINER_NAME pgbackrest \ --config-path=/var/lib/postgresql/backups \ --stanza=STANZA_NAME \ info
Podman
podman exec -u postgres CONTAINER_NAME pgbackrest \ --config-path=/var/lib/postgresql/backups \ --stanza=STANZA_NAME \ info
Podman
podman exec -u postgres CONTAINER_NAME pgbackrest \ --config-path=/var/lib/postgresql/backups \ --stanza=STANZA_NAME \ info
מחליפים את המשתנים הבאים:
-
CONTAINER_NAME: השם שנתתם למאגר התגים. לדוגמה,my-omni-1. -
STANZA_NAME: שם הבית שיצרתם. לדוגמה,my-stanza.
שחזור הגיבוי
Docker
docker exec -u postgres CONTAINER_NAME pgbackrest \ --config-path=/var/lib/postgresql/backups \ --stanza=STANZA_NAME \ restore
Docker
docker exec -u postgres CONTAINER_NAME pgbackrest \ --config-path=/var/lib/postgresql/backups \ --stanza=STANZA_NAME \ restore
Podman
podman exec -u postgres CONTAINER_NAME pgbackrest \ --config-path=/var/lib/postgresql/backups \ --stanza=STANZA_NAME \ restore
Podman
podman exec -u postgres CONTAINER_NAME pgbackrest \ --config-path=/var/lib/postgresql/backups \ --stanza=STANZA_NAME \ restore
מחליפים את המשתנים הבאים:
*CONTAINER_NAME: השם שבו השתמשתם עבור מאגר התגים. לדוגמה, my-omni-1.
STANZA_NAME: שם הבית שיצרתם. לדוגמה,
my-stanza.
הסרת קונטיינר לא פעיל של AlloyDB Omni
Docker
docker kill CONTAINER_NAMEdocker rm CONTAINER_NAME
Docker
docker kill CONTAINER_NAMEdocker rm CONTAINER_NAME
Podman
podman kill CONTAINER_NAMEpodman rm CONTAINER_NAME
Podman
podman kill CONTAINER_NAMEpodman rm CONTAINER_NAME
מחליפים את המשתנה הבא:
-
CONTAINER_NAME: השם שבו השתמשתם עבור מאגר התגים. לדוגמה,my-omni-1.
יצירת קונטיינר AlloyDB Omni
Docker
docker run -d --name CONTAINER_NAME \ -v DATA_DIR:/var/lib/postgresql/data \ -v BACKUP_DIR:/var/lib/postgresql/backups \ -p HOST_PORT:5432 \ --restart=always \ google/alloydbomni:latest
Docker
docker run -d --name CONTAINER_NAME \ -v DATA_DIR:/var/lib/postgresql/data \ -v BACKUP_DIR:/var/lib/postgresql/backups \ -p HOST_PORT:5432 \ --restart=always \ google/alloydbomni:latest
Podman
podman run -d --name CONTAINER_NAME \ -v DATA_DIR:/var/lib/postgresql/data \ -v BACKUP_DIR:/var/lib/postgresql/backups \ -p HOST_PORT:5432 \ --restart=always \ docker.io/google/alloydbomni:latest
Podman
podman run -d --name CONTAINER_NAME \ -v DATA_DIR:/var/lib/postgresql/data \ -v BACKUP_DIR:/var/lib/postgresql/backups \ -p HOST_PORT:5432 \ --restart=always \ docker.io/google/alloydbomni:latest
מחליפים את המשתנים הבאים:
-
CONTAINER_NAME: השם שנתתם למאגר התגים. לדוגמה,my-omni-1. -
DATA_DIR: הנתיב לספרייה המארחת שבה הנתונים מאוחסנים. -
BACKUP_DIR: נתיב הספרייה החיצונית שבה מאוחסנים הגיבויים. -
HOST_PORT: יציאת TCP במחשב המארח שאליה הקונטיינר צריך לפרסם את היציאה שלו5432. כדי להשתמש ביציאת ברירת המחדל של PostgreSQL גם במחשב המארח, מציינים את5432.אימות ההפעלה של AlloyDB Omni
Docker
docker logs -f CONTAINER_NAME
Docker
docker logs -f CONTAINER_NAME
Podman
podman logs -f CONTAINER_NAME
Podman
podman logs -f CONTAINER_NAME
מחליפים את המשתנה הבא:
-
CONTAINER_NAME: השם שבו השתמשתם עבור מאגר התגים. לדוגמה,my-omni-1.
אפשרויות אחרות
הפקודה
restoreשל pgBackRest היא גמישה מאוד, עם מגוון אפשרויות ותכונות שאפשר לשלוט בהן באמצעות העברת אפשרויות שונות בשורת הפקודה. במאמר שחזור מוסבר איך משחזרים. -