O seguinte fluxo de trabalho explica as etapas usadas para clonar:
- Crie e aplique o arquivo de manifesto
DBCluster
no cluster de banco de dados de destino com o parâmetrolivenessProbe
desativado. - Crie e configure o arquivo
pgbackrest.conf
para acessar o backup do Cloud Storage. - Use comandos
pgBackRest
para verificar se é possível acessar os backups de origem. - Use comandos
pgBackRest
para restaurar o backup no cluster de banco de dados de destino.
Antes de começar
- Verifique se você tem acesso ao caminho completo do bucket do Cloud Storage
em que o backup do cluster de banco de dados de origem está armazenado. Esse é o mesmo caminho usado
quando você criou o recurso
BackupPlan
para o cluster do banco de dados de origem. - Crie um cluster de banco de dados de destino do AlloyDB Omni. Para mais informações sobre como instalar o AlloyDB Omni no Kubernetes, consulte Criar um cluster de banco de dados.
- Verifique se você fez login no banco de dados como o usuário
postgres
.
Criar um cluster de banco de dados em um cluster de banco de dados de destino
Crie um cluster de banco de dados desativando temporariamente o parâmetro livenessProbe
enquanto o processo de restauração é concluído.
Crie o arquivo de manifesto de recurso
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
Substitua o seguinte:
DB_CLUSTER_NAME
: o nome do cluster de banco de dados, por exemplo,my-db-cluster
.ENCODED_PASSWORD
: a senha de login do banco de dados para a função de usuário padrãopostgres
, codificada como uma string base64. Por exemplo,Q2hhbmdlTWUxMjM=
paraChangeMe123
.CPU_COUNT
: o número de CPUs disponíveis para cada instância de banco de dados no cluster.MEMORY_SIZE
: a quantidade de memória por instância de banco de dados deste cluster de banco de dados. Recomendamos definir isso como 8 gigabytes por CPU. Por exemplo, se você definiucpu
como2
anteriormente neste manifesto, recomendamos definirmemory
como16Gi
.DISK_SIZE
: o tamanho do disco por instância de banco de dados, por exemplo,10Gi
.
Aplique o arquivo de manifesto:
kubectl apply -f DBCLUSTER_FILENAME
Substitua o seguinte:
- DBCLUSTER_FILENAME: o nome do arquivo de manifesto
DBCluster
criado na etapa anterior.
- DBCLUSTER_FILENAME: o nome do arquivo de manifesto
Use o comando kubectl describe
para verificar se o recurso de cluster de banco de dados
está no status READY
.
Configurar o arquivo pgBackRest
Configure o arquivo pgBackRest
para permitir que o cluster de banco de dados de destino acesse
o bucket do Cloud Storage em que os backups de origem estão localizados.
No cluster de banco de dados de destino, encontre os detalhes do pod do cluster de banco de dados:
kubectl get pod -l "alloydbomni.internal.dbadmin.goog/dbcluster=DB_CLUSTER_NAME, alloydbomni.internal.dbadmin.goog/task-type=database"
A resposta inclui o nome do pod do banco de dados do cluster.
Faça login no pod:
kubectl exec -ti DATABASE_POD_NAME -- /bin/bash
Substitua o seguinte:
- DATABASE_POD_NAME: o nome do pod do cluster de banco de dados da etapa anterior.
Interrompa o pod antes de atualizar o arquivo de configuração
pgBackRest
:supervisorctl.par stop postgres
Crie um arquivo de configuração
pgBackRest
para acessar os backups armazenados no 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=auto
Substitua o seguinte:
GCS_SOURCE_BACKUP_BUCKET_NAME
: o nome do bucket do Cloud Storage que você criou ao criar o arquivo de manifesto de recursoBackupPlan
para o cluster de banco de dados de origem. Esse não é o URL completo do bucket. Não coloque o prefixogs://
no nome do bucket.GCS_SOURCE_BACKUP_BUCKET_PATH
: o caminho do diretório em que o operador do AlloyDB Omni grava backups, dentro dbucket do Cloud Storageage para o cluster de banco de dados de origem. O caminho precisa ser absoluto e começar com/
.
O
repo1-gcs-key-type
é definido comoauto
para usar a conta de serviço da instância. Para mais informações sobre outras opções, consulte Opção de tipo de chave do repositório do Cloud Storage.
Verificar os backups de origem no cluster de banco de dados de destino
Execute comandos pgBackRest
para verificar se os backups do cluster de banco de dados de origem estão
acessíveis no cluster de banco de dados de destino.
pgbackrest --config-path=/backup --stanza=db --repo=1 info
Confira um exemplo de resposta:
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
Os carimbos de data/hora na resposta são usados para restaurar o backup completo ou de um ponto no tempo da janela de recuperação.
Restaurar o backup no cluster de banco de dados de destino
Depois de identificar o backup ou um momento específico para restauração, execute os comandos
pgBackRest
no cluster de banco de dados de destino. Para mais informações
sobre esses comandos, consulte Comando
Restore.
Confira alguns exemplos de comandos de restauração do pgBackRest
:
Restaurar a partir de um 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
Restaurar a partir de um momento
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
Reiniciar o pod
Depois que o comando de restauração for concluído, você poderá iniciar o
processo postgres
.
supervisorctl.par start postgres
Depois que o processo postgres
for iniciado, você poderá se conectar à instância primária e
executar consultas para verificar se os dados foram restaurados do backup. Para mais
informações, consulte Conectar-se ao AlloyDB Omni em execução no
Kubernetes.