Partilhar via


Restaurar o Banco de Dados do Azure para PostgreSQL - Servidor Flexível usando o Azure PowerShell

Este artigo descreve como restaurar o Banco de Dados do Azure para PostgreSQL - Servidor Flexível usando o Azure PowerShell.

Observação

A opção OLR (Original Location Recovery) não é suportada para bancos de dados PaaS. Em vez disso, use o Alternate-Location Recovery (ALR) para restaurar a partir de um ponto de recuperação e criar um novo banco de dados no mesmo ou em outro servidor Azure PostgreSQL – Flexível, mantendo os bancos de dados de origem e restaurados.

Vamos usar um cofre TestBkpVaultde backup existente , sob o grupo testBkpVaultRG de recursos nos exemplos.

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

Configurar permissões para restauração

O cofre de backup usa identidade gerenciada para acessar outros recursos do Azure. Para restaurar a partir do backup, a identidade gerenciada do cofre de backup requer um conjunto de permissões no Azure PostgreSQL – Servidor flexível para o qual o banco de dados deve ser restaurado.

Para atribuir as permissões relevantes para a identidade gerenciada atribuída pelo sistema do vault no PostgreSQL – Servidor Flexível de destino, verifique o conjunto de permissões necessárias para fazer backup do banco de dados do Azure PostgreSQL – Servidor Flexível.

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

Buscar o ponto de recuperação relevante

Buscar todas as instâncias usando o cmdlet Get-AzDataProtectionBackupInstance e identificar a instância relevante.

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

Você também pode usar Az.Resourcegraph e o cmdlet Search-AzDataProtectionBackupInstanceInAzGraph para pesquisar pontos de recuperação em instâncias em muitos cofres e assinaturas.

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

Para filtrar os critérios de pesquisa, use os seguintes recursos de pesquisa do cliente PowerShell:

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

Uma vez identificada a instância, 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

Você pode restaurar o ponto de recuperação para um banco de dados PostgreSQL – Flexible Server apenas como arquivos.

Restaurar como ficheiros

Buscar o URI (Uniform Resource Identifier) do contêiner, dentro da conta de armazenamento à qual as permissões foram atribuídas. Por exemplo, um contêiner nomeado testcontainerrestore sob uma conta testossstorageaccount de armazenamento com uma assinatura diferente.

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

Use o cmdlet 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 "empdb11_postgresql-westus_1628853549768"

Observação

Depois que a restauração para a conta de armazenamento de destino estiver concluída, você poderá usar o utilitário pg_restore para restaurar um banco de dados do Azure Database for PostgreSQL – Flexible Server a partir do destino.

Para se conectar a um PostgreSQL – Servidor Flexível existente e a um banco de dados existente, use o seguinte cmdlet:

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

Neste script:

  • -Fd: O formato de diretório.
  • -j: O número de postos de trabalho.
  • -C: Inicia a saída com um cmdlet para criar a base de dados e, em seguida, reconectar à mesma.

O exemplo a seguir mostra como a 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 cmdlet anterior para cada banco de dados. Além disso, usando vários trabalhos simultâneos -j, você pode reduzir o tempo de restauração de um banco de dados grande em um servidor de destino multi-vCore . O número de trabalhos pode ser igual ou inferior ao número de vCPUs alocados para o servidor de destino.

Acionar a restauração

Para acionar a operação de restauração com a solicitação preparada, use o Start-AzDataProtectionBackupInstanceRestore cmdlet

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

Acompanhar trabalhos

Rastreie todos os trabalhos usando o Get-AzDataProtectionJob cmdlet. Você pode listar todos os trabalhos e buscar um detalhe específico do trabalho.

Você também pode usar Az.ResourceGraph para monitorizar tarefas em todos os cofres de backup. Utilize o cmdlet Search-AzDataProtectionJobInAzGraph para obter o trabalho relevante em todos os cofres de backup.

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

Próximos passos

Solucione erros comuns nas operações de backup e restauração do Banco de Dados do Azure para PostgreSQL - Servidor Flexível.