Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
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