Il seguente flusso di lavoro spiega i passaggi di clonazione:
- Configura il file
pgbackrest.confper accedere al backup di Cloud Storage. - Utilizza i comandi
pgBackRestper verificare che sia possibile accedere ai backup delle origini. - Utilizza i comandi
pgBackRestper ripristinare il backup sul server di destinazione.
Prima di iniziare
- Accesso al percorso completo del bucket Cloud Storage in cui si trova il backup del cluster di database di origine. Questo è lo stesso percorso che hai utilizzato quando hai creato la risorsa
BackupPlanper il cluster di database di origine. - Viene creato un singolo cluster di database AlloyDB Omni di destinazione del server. Per saperne di più sull'installazione di AlloyDB Omni su Kubernetes, consulta Installa AlloyDB Omni.
- Assicurati di aver eseguito l'accesso al database come utente
postgres.
Configura il file pgBackRest sul server di destinazione
Configura il file pgBackRest per consentire al cluster di database di destinazione di accedere al bucket Cloud Storage in cui si trovano i backup di origine.
Nel server di destinazione, vai alla directory
alloydb-data.Crea un file di configurazione
pgBackRestper accedere ai backup archiviati in Cloud Storage:$ cat << EOF > /backup/pgbackrest.conf [db] pg1-path=/mnt/disks/pgsql/data-restored pg1-socket-path=/tmp pg1-user=pgbackrest [global] log-path=/obs/pgbackrest log-level-file=info repo1-type=gcs repo1-gcs-bucket=GCS_SOURCE_BACKUP_BUCKET_NAME repo1-path=GCS_SOURCE_BACKUP_BUCKET_PATH repo1-storage-ca-file=/etc/ssl/certs/ca-certificates.crt repo1-retention-full=9999999 repo1-gcs-key-type=autoSostituisci quanto segue:
- GCS_SOURCE_BACKUP_BUCKET_NAME: il nome del bucket Cloud Storage
pgBackRestche hai creato nel cluster di database di origine. Questo non è l'URL completo del bucket; non aggiungere il prefissogs://al nome del bucket. - GCS_SOURCE_BACKUP_BUCKET_PATH: il percorso della directory in cui l'operatore AlloyDB Omni scrive i backup all'interno del bucket Cloud Storage per il cluster di database di origine. Il percorso
deve essere assoluto e iniziare con
/.
repo1-gcs-key-typeè impostato suautoper utilizzare il account di servizio dell'istanza. Per saperne di più su altre opzioni, vedi Opzione Tipo di chiave repository GCS.- GCS_SOURCE_BACKUP_BUCKET_NAME: il nome del bucket Cloud Storage
Verifica i backup dell'origine nel server di destinazione
Accedi al server di destinazione ed esegui i comandi pgBackRest per verificare che i backup del cluster di database di origine siano accessibili sul server di destinazione:
Docker
sudo docker exec CONTAINER_NAME pgbackrest --config-path=/mnt/disks/pgsql --stanza=db --repo=1 infoPodman
sudo podman exec CONTAINER_NAME pgbackrest --config-path=/mnt/disks/pgsql --stanza=db --repo=1 infoSostituisci CONTAINER_NAME con il nome di un nuovo container AlloyDB Omni, ad esempio my-omni-1.
Di seguito è riportato un esempio di risposta:
stanza: db
status: ok
cipher: none
db (current)
wal archive min/max (15): 000000010000000000000002/00000001000000000000000D
full backup: 20240213-231400F
timestamp start/stop: 2024-02-13 23:14:00+00 / 2024-02-13 23:17:14+00
wal start/stop: 000000010000000000000003 / 000000010000000000000003
database size: 38.7MB, database backup size: 38.7MB
repo1: backup set size: 4.6MB, backup size: 4.6MB
incr backup: 20240213-231400F_20240214-000001I
timestamp start/stop: 2024-02-14 00:00:01+00 / 2024-02-14 00:00:05+00
wal start/stop: 00000001000000000000000D / 00000001000000000000000D
database size: 38.7MB, database backup size: 488.3KB
repo1: backup set size: 4.6MB, backup size: 84.2KB
backup reference list: 20240213-231400F
I timestamp nella risposta vengono utilizzati per ripristinare il backup completo o per eseguire il ripristino da un momento specifico della finestra di recupero.
Ripristina il backup nel server di destinazione
Dopo aver identificato il backup o un momento specifico a cui eseguire il ripristino, esegui i comandi
pgBackRest nel server di destinazione. Per ulteriori informazioni
su questi comandi, consulta Restore
Command.
Di seguito sono riportati alcuni comandi di ripristino di pgBackRest di esempio:
Ripristina da un backup
pgbackrest --config-path=/mnt/disks/pgsql --stanza=db --repo=1 restore --set=20240213-231400F --type=immediate --target-action=promote --delta --link-all --log-level-console=infoRipristina da un momento specifico
pgbackrest --config-path=/mnt/disks/pgsql --stanza=db --repo=1 restore --target="2024-01-22 11:27:22" --type=time --target-action=promote --delta --link-all --log-level-console=info
Copia i dati sul server di destinazione
Una volta completato correttamente il comando di ripristino, puoi copiare i dati dalla directory temporanea /mnt/disks/pgsql/data-restored alla directory /alloydb-data/data corrente.
- Nel server di destinazione, arresta il servizio di database:
Docker
docker stop CONTAINER_NAMEPodman
podman stop CONTAINER_NAMERinomina la directory dei dati corrente con un altro nome come best practice:
mv ~/alloydb-data/data ~/alloydb-data/data-oldRinomina la directory temporanea
data-restorednella directory dei dati corrente:mv ~/alloydb-data/data-restored ~/alloydb-data/dataAggiorna il valore
pg1-pathnel filepostgresql.auto.confper caricare i dati ripristinati:
vim ~/alloydb-data/data/postgresql.auto.conf
# Verify postgresql.auto.conf.
# Do not edit this file manually!
# It will be overwritten by the ALTER SYSTEM command.
# Recovery settings generated by pgBackRest restore on 2024-03-13 20:47:11
restore_command = 'pgbackrest --config-path=/mnt/disks/pgsql --pg1-path=/mnt/disks/pgsql/data --repo=1 --stanza=db archive-get %f "%p"'
recovery_target = 'immediate'
recovery_target_action = 'promote'
recovery_target_timeline = 'current'Nel server di destinazione, avvia il servizio di database:
Docker
docker start CONTAINER_NAMEPodman
podman start CONTAINER_NAME
Dopo l'avvio del servizio di database, puoi connetterti all'istanza principale ed eseguire query per verificare che i dati vengano ripristinati dal backup. Per saperne di più, consulta Connessione ad AlloyDB Omni su un singolo server.