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 parametrolivenessProbedisabilitato. - Crea e configura il file
pgbackrest.confper accedere al backup di Cloud Storage. - Utilizza i comandi
pgBackRestper verificare di poter accedere ai backup di origine. - 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 utilizzato quando hai creato la risorsa
BackupPlanper il cluster di database di origine. - Crea un cluster di database AlloyDB Omni di destinazione. Per saperne di più sull'installazione di AlloyDB Omni su Kubernetes, consulta Creare un cluster di database.
- Assicurati di aver eseguito l'accesso al database come utente
postgres.
Creare un cluster di database in un cluster di database di destinazione
Crea un cluster di database disabilitando temporaneamente il parametro livenessProbe. Al termine del ripristino, riconfigura il parametro livenessProbe.
Crea il file manifest della risorsa
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: standardSostituisci quanto segue:
DB_CLUSTER_NAME: il nome di questo cluster di database, ad esempiomy-db-cluster.ENCODED_PASSWORD: la password di accesso al database per il ruolo utentepostgrespredefinito, codificata come stringa base64, ad esempioQ2hhbmdlTWUxMjM=perChangeMe123.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 impostatocpusu2, ti consigliamo di impostarememorysu16Gi.DISK_SIZE: la dimensione del disco per istanza di database, ad esempio10Gi.
Applica il file manifest:
kubectl apply -f DBCLUSTER_FILENAMESostituisci 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 sia 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 risiedono 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=DB_CLUSTER_NAME, 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/bashSostituisci 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 postgresCrea 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=/scripts/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 creato durante la creazione del file manifest della risorsaBackupPlanper il cluster di database di origine. Questo non è l'URL completo del bucket; non anteporregs://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, a partire da/.
repo1-gcs-key-typeè impostato suautoper utilizzare l'account di servizio dell'istanza. Per saperne di più sulle altre opzioni, consulta Opzione del tipo di chiave del repository Cloud Storage.
Verificare i backup di origine nel cluster di database di destinazione
Esegui i comandi pgBackRest per verificare che i backup del cluster di database di origine siano accessibili sul 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 eseguire il ripristino da un momento specifico dalla finestra di ripristino.
Ripristinare il backup nel cluster di database di destinazione
Dopo aver identificato il backup o un momento specifico da ripristinare, esegui i comandi pgBackRest nel cluster di database di destinazione. Per saperne di più
su questi comandi, consulta Comando
di ripristino.
Di seguito sono riportati alcuni esempi di comandi di ripristino pgBackRest:
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=infoRipristina 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
Riavviare il pod
Una volta completato correttamente il comando di ripristino, puoi avviare il processo postgres.
supervisorctl.par start postgresDopo l'avvio del processo postgres, puoi connetterti all'istanza principale ed eseguire query per verificare che i dati siano stati ripristinati dal backup. Per saperne di più, consulta Connettersi ad AlloyDB Omni in esecuzione su
Kubernetes.
Configurare il cluster di database
Dopo aver clonato un cluster di database, configura le specifiche del cluster di database. Ancora più importante, non dimenticare di attivare il parametro livenessProbe con il seguente comando:
kubectl patch dbcluster DBCLUSTER_FILENAME --type merge -p '{"spec":{"primarySpec":{"availabilityOptions":{"livenessProbe":"Enabled"}}}}'