Compartilhar via


Restaurar o servidor flexível do Banco de Dados do Azure para PostgreSQL usando o Azure PowerShell (versão prévia)

Este artigo explica como restaurar o servidor flexível do Banco de Dados do Azure para PostgreSQL para um backup do servidor flexível do Banco de Dados do Azure para PostgreSQL pelo Backup do Azure.

Neste artigo, você aprenderá a:

  • Restaurar para criar um novo servidor flexível do PostgreSQL

  • Acompanhar o status da operação de restauração

Nos exemplos, usaremos o cofre de backup existente TestBkpVault no grupo de recursos testBkpVaultRG.

$TestBkpVault = Get-AzDataProtectionBackupVault -VaultName TestBkpVault -ResourceGroupName "testBkpVaultRG"

Restaurar para criar um novo banco de dados PostgreSQL

Configurar permissões

O Cofre de Backup usa a Identidade Gerenciada para acessar outros recursos do Azure. Para restaurar a partir do backup, a identidade gerenciada do cofre de Backup exige um conjunto de permissões na conta de armazenamento para a qual o servidor seria restaurado.

Para atribuir as permissões relevantes para a identidade gerenciada atribuída pelo sistema do cofre na conta de armazenamento de destino, confira o conjunto de permissões necessárias para fazer backup do banco de dados do Azure para PostgreSQL.

Para restaurar o ponto de recuperação como arquivos para uma conta de armazenamento, a identidade gerenciada atribuída pelo sistema do cofre de Backup precisa de acesso na conta de armazenamento de destino.

Busca do ponto de recuperação relevante

Busque todas as instâncias usando o comando Get-AzDataProtectionBackupInstance e identifique a instância relevante.

$AllInstances = Get-AzDataProtectionBackupInstance -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name

Também é possível usar Az.Resourcegraph e o comando Search-AzDataProtectionBackupInstanceInAzGraph para pesquisar pontos de recuperação entre instâncias em vários cofres e assinaturas.

$AllInstances = Search-AzDataProtectionBackupInstanceInAzGraph -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name -DatasourceType AzureDatabaseForPGFlexServer -ProtectionStatus ProtectionConfigured

Para filtrar os critérios de pesquisa, use os recursos de pesquisa de cliente do PowerShell, conforme mostrado abaixo:

Search-AzDataProtectionBackupInstanceInAzGraph -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name -DatasourceType AzureDatabaseForPGFlexServer -ProtectionStatus ProtectionConfigured | Where-Object { $_.BackupInstanceName -match "testpgflex"}

Depois que a instância for identificada, busque o ponto de recuperação relevante.

$rp = Get-AzDataProtectionRecoveryPoint -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name -BackupInstanceName $AllInstances[2].BackupInstanceName

Preparar a solicitação de restauração

Restaure o ponto de recuperação de um banco de dados somente como arquivos do PostgreSQL – Servidor flexível.

Restaurar como arquivos

Buscar o URI do contêiner, dentro da conta de armazenamento, à qual as permissões foram atribuídas, conforme detalhado acima. Por exemplo, um contêiner chamado testcontainerrestore em uma conta de armazenamento testossstorageaccount com uma assinatura diferente.

$contURI = "https://testossstorageaccount.blob.core.windows.net/testcontainerrestore"

Use o comando Initialize-AzDataProtectionRestoreRequest para preparar a solicitação de restauração com todos os detalhes relevantes.

$OssRestoreAsFilesReq = Initialize-AzDataProtectionRestoreRequest -DatasourceType AzureDatabaseForPGFlexServer -SourceDataStore VaultStore -RestoreLocation $TestBkpVault.Location -RestoreType RestoreAsFiles -RecoveryPoint $rps[0].Property.RecoveryPointId -TargetContainerURI $contURI -FileNamePrefix "testpgflex-westus_1628853549768" 

Disparar o processo de restauração

Use o comando Start-AzDataProtectionBackupInstanceRestore para disparar a restauração com a solicitação preparada acima.

Start-AzDataProtectionBackupInstanceRestore -BackupInstanceName $AllInstances[2].BackupInstanceName -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name -Parameter $OssRestoreReq

Acompanhamento de trabalhos

Acompanhe todos os trabalhos usando o comando Get-AzDataProtectionJob. Você pode listar todos os trabalhos e buscar um detalhe de trabalho específico.

Você também pode usar o Az.ResourceGraph para acompanhar os trabalhos em todos os cofres de backup. Use o comando Search-AzDataProtectionJobInAzGraph para obter um trabalho relevante que pode estar em qualquer cofre de backup.

$job = Search-AzDataProtectionJobInAzGraph -Subscription $sub -ResourceGroupName "testBkpVaultRG" -Vault $TestBkpVault.Name -DatasourceType AzureDatabaseForPGFlexServer -Operation OnDemandBackup

Criar o PostgreSQL – servidor flexível com base na conta de armazenamento restaurada

Após a conclusão da restauração na conta de armazenamento de destino, use o utilitário pg_restore para restaurar um banco de dados do destino do Banco de Dados do Azure para PostgreSQL – Servidor flexível. Use o comando a seguir para se conectar a um PostgreSQL – Servidor flexível e a um banco de dados existente.

pg_restore -h <hostname> -U <username> -d <db name> -Fd -j <NUM> -C <dump directory>

-Fd: o formato do diretório. -j: o número de trabalhos. -C: inicie a saída com um comando para criar o próprio banco de dados e, em seguida, reconecte-se a ele.

Aqui está um exemplo de como essa sintaxe pode aparecer:

pg_restore -h <hostname> -U <username> -j <Num of parallel jobs> -Fd -C -d <databasename> sampledb_dir_format

Se você tiver mais de um banco de dados para restaurar, execute novamente o comando anterior para cada banco de dados.

Além disso, ao usar diversos trabalhos simultâneos -j, é possível reduzir o tempo necessário para restaurar um grande banco de dados em um servidor de destino com vários vCore. O número de trabalhos pode ser igual ou menor que o número de vCPUs alocados para o servidor de destino.

Próximas etapas