Il seguente flusso di lavoro spiega i passaggi utilizzati per la clonazione:
- Crea e applica il file manifest DBClustersul cluster di database di destinazione con il parametrolivenessProbedisattivato.
- Crea e configura il file pgbackrest.confper accedere al backup di Cloud Storage.
- Utilizza i comandi pgBackRestper verificare di poter accedere ai backup delle origini.
- Utilizza i comandi pgBackRestper ripristinare il backup nel cluster di database di destinazione.
Prima di iniziare
- Assicurati di avere accesso al percorso completo del bucket Cloud Storage
in cui è archiviato il backup del cluster di database di origine. Questo è lo stesso percorso che hai utilizzato quando hai creato la risorsa BackupPlanper il cluster del database di origine.
- Crea un cluster di database AlloyDB Omni di destinazione. Per saperne di più sull'installazione di AlloyDB Omni su Kubernetes, consulta Crea un cluster di database.
- Assicurati di aver eseguito l'accesso al database come utente postgres.
Crea un cluster di database in un cluster di database di destinazione
Crea un cluster di database disattivando temporaneamente il parametro livenessProbe
mentre il processo di ripristino viene completato.
- Crea il file manifest delle risorse - DBCluster:- apiVersion: v1 kind: Secret metadata: name: db-pw-DB_CLUSTER_NAME type: Opaque data: DB_CLUSTER_NAME: "ENCODED_PASSWORD" --- apiVersion: alloydbomni.dbadmin.goog/v1 kind: DBCluster metadata: name: DB_CLUSTER_NAME spec: primarySpec: availabilityOptions: livenessProbe: "Disabled" adminUser: passwordRef: name: db-pw-DB_CLUSTER_NAME resources: cpu: CPU_COUNT memory: MEMORY_SIZE disks: - name: DataDisk size: DISK_SIZE storageClass: standard- Sostituisci quanto segue: - DB_CLUSTER_NAME: il nome di questo cluster di database, ad esempio- my-db-cluster.
- ENCODED_PASSWORD: la password di accesso al database per il ruolo utente- postgrespredefinito, codificata come stringa base64, ad esempio- Q2hhbmdlTWUxMjM=per- ChangeMe123.
- CPU_COUNT: il numero di CPU disponibili per ogni istanza di database in questo cluster di database.
- MEMORY_SIZE: la quantità di memoria per istanza di database di questo cluster di database. Ti consigliamo di impostare questo valore su 8 gigabyte per CPU. Ad esempio, se in precedenza in questo manifest hai impostato- cpusu- 2, ti consigliamo di impostare- memorysu- 16Gi.
- DISK_SIZE: le dimensioni del disco per istanza di database, ad esempio- 10Gi.
 
- Applica il file manifest: - kubectl apply -f DBCLUSTER_FILENAME- Sostituisci quanto segue: - DBCLUSTER_FILENAME: il nome del file manifest DBClustercreato nel passaggio precedente.
 
- DBCLUSTER_FILENAME: il nome del file manifest 
Utilizza il comando kubectl describe per verificare che la risorsa del cluster di database
si trovi nello stato READY.
Configurare il file pgBackRest
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 cluster di database di destinazione, trova i dettagli del pod del cluster di database: - kubectl get pod -l "alloydbomni.internal.dbadmin.goog/dbcluster=<var>DB_CLUSTER_NAME</var>, alloydbomni.internal.dbadmin.goog/task-type=database"- La risposta include il nome del pod del database del cluster. 
- Accedi al pod: - kubectl exec -ti DATABASE_POD_NAME -- /bin/bash- Sostituisci quanto segue: - DATABASE_POD_NAME: il nome del pod del cluster di database del passaggio precedente.
 
- Arresta il pod prima di aggiornare il file di configurazione - pgBackRest:- supervisorctl.par stop postgres
- 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 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=auto- Sostituisci quanto segue: - GCS_SOURCE_BACKUP_BUCKET_NAME: il nome del bucket Cloud Storage che hai creato durante la creazione del file manifest della risorsa- BackupPlanper il cluster di database di origine. Questo non è l'URL completo del bucket; non aggiungere il prefisso- gs://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 su- autoper utilizzare il service account dell'istanza. Per maggiori informazioni su altre opzioni, vedi Opzione Tipo chiave repository GCS.
Verifica i backup dell'origine nel cluster di database di destinazione
Esegui i comandi pgBackRest per verificare che i backup del cluster di database di origine siano accessibili nel cluster di database di destinazione.
pgbackrest --config-path=/backup --stanza=db --repo=1 infoDi 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 ripristinare da un momento specifico della finestra di recupero.
Ripristina il backup nel cluster di database di destinazione
Dopo aver identificato il backup o un momento specifico a cui eseguire il ripristino, esegui i comandi
pgBackRest nel cluster di database 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=/backup --stanza=db --repo=1 restore --set=20240213-231400F --type=immediate --target-action=promote --delta --link-all --log-level-console=info
- Ripristina da un momento specifico - pgbackrest --config-path=/backup --stanza=db --repo=1 restore --target="2024-01-22 11:27:22" --type=time --target-action=promote --delta --link-all --log-level-console=info
Riavvia il pod
Una volta completato correttamente il comando di ripristino, puoi avviare la procedura di postgres.
supervisorctl.par start postgresDopo l'avvio del processo postgres, puoi connetterti all'istanza primaria ed eseguire query per verificare che i dati vengano ripristinati dal backup. Per saperne di più, vedi Connessione ad AlloyDB Omni in esecuzione su Kubernetes.