Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Este artigo explica como fazer backup do banco de dados Azure para PostgreSQLpor meio do Azure Powershell.
Neste artigo, você aprenderá como:
Criar um cofre de backup
Criar uma política de backup
Configurar um banco de dados de servidor flexível do Banco de Dados do Azure para PostgreSQL
Executar um trabalho de backup sob demanda
Para obter informações sobre os cenários e limitações com suporte no servidor flexível do Banco de Dados do Azure para PostgreSQL, consulte a matriz de suporte.
Criar um cofre de backup
O cofre de backup é uma entidade de armazenamento no Azure. Isso armazena os dados de backup para novas cargas de trabalho com suporte pelo Backup do Azure. Por exemplo, Servidores Flexíveis do Banco de Dados do Azure para PostgreSQL, blobs em uma conta de armazenamento e Discos do Azure. Os cofres de Backup ajudam a organização dos dados de backup, minimizando a sobrecarga de gerenciamento. Os cofres de backup são baseados no modelo de Azure Resource Manager do Azure, que fornece recursos avançados para ajudar a proteger os dados de backup.
Para criar um cofre de backup, escolha a redundância de armazenamento dos dados no cofre. Depois, crie o cofre de backup com essa redundância de armazenamento e a localização.
Neste artigo, criaremos um cofre de Backup TestBkpVault, na região westus, no grupo de recursos testBkpVaultRG. Use o comando New-AzDataProtectionBackupVault para criar um cofre de Backup. Saiba mais sobre como criar um cofre de backup.
$storageSetting = New-AzDataProtectionBackupVaultStorageSettingObject -Type LocallyRedundant/GeoRedundant -DataStoreType VaultStore
New-AzDataProtectionBackupVault -ResourceGroupName testBkpVaultRG -VaultName TestBkpVault -Location westus -StorageSetting $storageSetting
$TestBkpVault = Get-AzDataProtectionBackupVault -VaultName TestBkpVault
$TestBKPVault | fl
ETag :
Id : /subscriptions/00001111-aaaa-2222-bbbb-3333cccc4444/resourceGroups/testBkpVaultRG/providers/Microsoft.DataProtection/backupVaults/TestBkpVault
Identity : Microsoft.Azure.PowerShell.Cmdlets.DataProtection.Models.Api20210201Preview.DppIdentityDetails
IdentityPrincipalId :
IdentityTenantId :
IdentityType :
Location : westus
Name : TestBkpVault
ProvisioningState : Succeeded
StorageSetting : {Microsoft.Azure.PowerShell.Cmdlets.DataProtection.Models.Api20210201Preview.StorageSetting}
SystemData : Microsoft.Azure.PowerShell.Cmdlets.DataProtection.Models.Api20210201Preview.SystemData
Tag : Microsoft.Azure.PowerShell.Cmdlets.DataProtection.Models.Api20210201Preview.DppTrackedResourceTags
Type : Microsoft.DataProtection/backupVaults
Depois que o cofre for criado, vamos criar uma política de Backup para proteger bancos de dados do servidor flexível do PostgreSQL do Azure.
Criar uma política de backup
Entenda a política de backup do Servidor Flexível do PostgreSQL
Nesse contexto, vamos entender o objeto da política de backup do Servidor Flexível do PostgreSQL.
- PolicyRule
- BackupRule
- BackupParameter
- BackupType (um backup completo do servidor neste caso)
- Armazenamento de dados inicial (onde os backups serão inicialmente alojados)
- Gatilho (como o backup é disparado)
- Baseado em agenda
- Critérios de marcação padrão (uma 'marca' padrão para todos os backups agendados. Essa marca vincula os backups à regra de retenção)
- BackupParameter
- Regra de retenção padrão (uma regra que será aplicada a todos os backups, por padrão, no armazenamento de dados inicial)
- BackupRule
Portanto, esse objeto define que tipo de backups são disparados, como eles são disparados (por meio de uma agenda), com o que eles são marcados, onde eles são lançados (um armazenamento de dados) e o ciclo de vida dos dados de backup em um armazenamento de dados. O objeto padrão do Servidor Flexível do PostgreSQL diz para disparar um backup completo toda semana, e eles chegarão ao cofre, onde eles serão armazenados por três meses.
Recuperando o modelo de Política
Para entender os componentes internos de uma política de backup para o backup do banco de dados do Servidor Flexível do PostgreSQL do Azure, recupere o modelo de política usando o comando Get-AzDataProtectionPolicyTemplate. Esse comando retorna um modelo de política padrão para um determinado tipo de fonte de dados. Use este modelo de política para criar uma nova política.
$policyDefn = Get-AzDataProtectionPolicyTemplate -DatasourceType AzureDatabaseForPGFlexServer
$policyDefn | fl
DatasourceType : {Microsoft.DBforPostgreSQL/flexibleServers/databases}
ObjectType : BackupPolicy
PolicyRule : {BackupWeekly, Default}
$policyDefn.PolicyRule | fl
BackupParameter : Microsoft.Azure.PowerShell.Cmdlets.DataProtection.Models.Api20210701.AzureBackupParams
BackupParameterObjectType : AzureBackupParams
DataStoreObjectType : DataStoreInfoBase
DataStoreType : VaultStore
Name : BackupWeekly
ObjectType : AzureBackupRule
Trigger : Microsoft.Azure.PowerShell.Cmdlets.DataProtection.Models.Api20210701.ScheduleBasedTriggerCo
ntext
TriggerObjectType : ScheduleBasedTriggerContext
IsDefault : True
Lifecycle : {Microsoft.Azure.PowerShell.Cmdlets.DataProtection.Models.Api20210701.SourceLifeCycle}
Name : Default
ObjectType : AzureRetentionRule
O modelo de política consiste em um gatilho (que decide o que dispara o backup) e um ciclo de vida (que decide quando excluir/copiar/mover o backup). No backup do banco de dados do Servidor Flexível do PostgreSQL do Azure, o valor padrão do gatilho é um gatilho Semanal agendado (um backup a cada sete dias) e para manter cada backup por três meses.
$policyDefn.PolicyRule[0].Trigger | fl
ObjectType : ScheduleBasedTriggerContext
ScheduleRepeatingTimeInterval : {R/2021-08-22T02:00:00+00:00/P1W}
ScheduleTimeZone : UTC
TaggingCriterion : {Default}
$policyDefn.PolicyRule[1].Lifecycle | fl
DeleteAfterDuration : P3M
DeleteAfterObjectType : AbsoluteDeleteOption
SourceDataStoreObjectType : DataStoreInfoBase
SourceDataStoreType : VaultStore
TargetDataStoreCopySetting : {}
Modificar o modelo de política
Modificar o agendamento
O modelo de política padrão oferece um backup uma vez por semana. Você pode modificar a agenda para que o backup ocorra vários dias por semana. Para alterar a agenda, use o comando Edit-AzDataProtectionPolicyTriggerClientObject.
O exemplo a seguir modifica o backup semanal para que o backup ocorra em todos os domingo, quarta-feira e sexta-feira de cada semana. A matriz das datas de agendamento menciona as datas e os dias da semana dessas datas são tirados como dias da semana. Você também precisa especificar que essas agendas devem ser repetidas toda semana. Portanto, o intervalo de agendamento é "1" e o tipo de intervalo é "Semanal".
$schDates = @(
(
(Get-Date -Year 2021 -Month 08 -Day 15 -Hour 22 -Minute 0 -Second 0)
),
(
(Get-Date -Year 2021 -Month 08 -Day 18 -Hour 22 -Minute 0 -Second 0)
),
(
(Get-Date -Year 2021 -Month 08 -Day 20 -Hour 22 -Minute 0 -Second 0)
)
)
$trigger = New-AzDataProtectionPolicyTriggerScheduleClientObject -ScheduleDays $schDates -IntervalType Weekly -IntervalCount 1
Edit-AzDataProtectionPolicyTriggerClientObject -Schedule $trigger -Policy $policyDefn
Adicionar uma nova regra de retenção
O modelo padrão terá um ciclo de vida para o armazenamento de dados inicial na regra de retenção padrão. Nesse cenário, a regra diz para excluir os dados de backup após três meses. Use o comando New-AzDataProtectionRetentionLifeCycleClientObject para criar novos ciclos de vida e use o comando Edit-AzDataProtectionPolicyRetentionRuleClientObject para associá-los a novas regras ou às regras existentes.
O exemplo a seguir cria uma nova regra de retenção chamada Mensalmente, em que o primeiro backup bem-sucedido de cada mês deve ser mantido no cofre por seis meses.
$VaultLifeCycle = New-AzDataProtectionRetentionLifeCycleClientObject -SourceDataStore VaultStore -SourceRetentionDurationType Months -SourceRetentionDurationCount 6
Edit-AzDataProtectionPolicyRetentionRuleClientObject -Policy $policyDefn -Name Monthly -LifeCycles $VaultLifeCycle -IsDefault $false
Adicionar uma marca e os critérios relevantes
Depois que uma regra de retenção é criada, você precisa criar uma marca correspondente na propriedade Gatilho da política de backup. Use o comando New-AzDataProtectionPolicyTagCriteriaClientObject para criar um novo critério de marcação e use o comando Edit-AzDataProtectionPolicyTagClientObject para atualizar a marca existente ou criar uma nova marca.
O exemplo a seguir cria uma nova marca junto com os critérios (que é o primeiro backup bem-sucedido do mês) com o mesmo nome que a regra de retenção correspondente a ser aplicada.
Neste exemplo, os critérios de marca devem ser nomeados Mensalmente.
$tagCriteria = New-AzDataProtectionPolicyTagCriteriaClientObject -AbsoluteCriteria FirstOfMonth
Edit-AzDataProtectionPolicyTagClientObject -Policy $policyDefn -Name Monthly -Criteria $tagCriteria
Se o agendamento for vários backups por semana (todos os domingo, quarta-feira, quinta-feira, conforme especificado no exemplo acima) e você quiser arquivar os backups de domingo e sexta-feira, os critérios de marcação poderão ser alterados da seguinte forma:
$tagCriteria = New-AzDataProtectionPolicyTagCriteriaClientObject -DaysOfWeek @("Sunday", "Friday")
Edit-AzDataProtectionPolicyTagClientObject -Policy $policyDefn -Name Monthly -Criteria $tagCriteria
Criar uma política de backup do servidor flexível do PostgreSQL
Depois que o modelo for modificado de acordo com os requisitos, use o comando New-AzDataProtectionBackupPolicy para criar uma política usando o modelo modificado.
$polOss = New-AzDataProtectionBackupPolicy -ResourceGroupName testBkpVaultRG -VaultName TestBkpVault -Name "TestOSSPolicy" -Policy $policyDefn
Configurar backup
Depois que o cofre e a política forem criados, haverá três pontos críticos a serem considerados para proteger um banco de dados Azure para PostgreSQL.
Entidades-chave envolvidas
Servidor flexível do PostgreSQL a ser protegido
Busque a ID do Azure Resource Manager (ID do Azure Resource Manager) do servidor flexível do PostgreSQL a ser protegido. Essa ID serve como o identificador do servidor de banco de dados. Usamos um exemplo de servidor flexível do PostgreSQL testpgflex que está presente no grupo de recursos ossrg em uma assinatura diferente.
$ossId = "/subscriptions/00001111-aaaa-2222-bbbb-3333cccc4444/resourcegroups/ossrg/providers/Microsoft.DBforPostgreSQL/flexibleServers/testpgflex
#### Backup vault
You need to connect the Backup vault to the PostgreSQL - flexbile server. Access is granted to the Backup vault's MSI.
See the [permissions] (/backup-azure-database-postgresql-flex-overview.md#permissions-for-backup) you should grant to the Managed System Identity (MSI) of the Backup Vault on the PostgreSQL - flexible server.
### Prepare the request
Once all the relevant permissions are set, the configuration of the backup is performed in two steps.
1. We prepare the relevant request by using the relevant vault, policy, PostgreSQL - flexible server using the [Initialize-AzDataProtectionBackupInstance](/powershell/module/az.dataprotection/initialize-azdataprotectionbackupinstance) command.
1. We submit the request to protect the database server using the [New-AzDataProtectionBackupInstance](/powershell/module/az.dataprotection/new-azdataprotectionbackupinstance) command.
```azurepowershell
$instance = Initialize-AzDataProtectionBackupInstance -DatasourceType AzureDatabaseForPostgreSQLFlexibleServer -DatasourceLocation $TestBkpvault.Location -PolicyId $polOss[0].Id -DatasourceId $ossId ConvertTo-Json -InputObject $instance -Depth 4
New-AzDataProtectionBackupInstance -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name -BackupInstance $instance
Name Type BackupInstanceName
---- ---- ------------------
ossrg-testpgflex Microsoft.DataProtection/backupVaults/backupInstances ossrg-testpgflex
Executar um backup sob demanda
Busque a instância de backup relevante na qual você precisa disparar um backup usando o comando Get-AzDataProtectionBackupInstance.
$instance = Get-AzDataProtectionBackupInstance -SubscriptionId aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e -ResourceGroupName testBkpVaultRG -VaultName $TestBkpVault.Name -Name BackupInstanceName
Você pode especificar uma regra de retenção ao disparar o backup. Para exibir as regras de retenção na política, navegue pelo objeto de política para regras de retenção. No exemplo a seguir, a regra com o nome padrão é exibida. Usaremos essa regra para o backup sob demanda.
$ossPol.PolicyRule | fl
BackupParameter : Microsoft.Azure.PowerShell.Cmdlets.DataProtection.Models.Api20210201Preview.AzureBackupParams
BackupParameterObjectType : AzureBackupParams
DataStoreObjectType : DataStoreInfoBase
DataStoreType : OperationalStore
Name : BackupHourly
ObjectType : AzureBackupRule
Trigger : Microsoft.Azure.PowerShell.Cmdlets.DataProtection.Models.Api20210201Preview.ScheduleBasedTriggerContext
TriggerObjectType : ScheduleBasedTriggerContext
IsDefault : True
Lifecycle : {Microsoft.Azure.PowerShell.Cmdlets.DataProtection.Models.Api20210201Preview.SourceLifeCycle}
Name : Default
ObjectType : AzureRetentionRule
Para disparar um backup sob demanda, use o comando backup-AzDataProtectionBackupInstanceAdhoc.
$AllInstances = Get-AzDataProtectionBackupInstance -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name
Backup-AzDataProtectionBackupInstanceAdhoc -BackupInstanceName $AllInstances[0].Name -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name -BackupRuleOptionRuleName "Default"
Acompanhar 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 todos os trabalhos em todos os cofres de backup. Use o comando Search-AzDataProtectionJobInAzGraph para bucar um trabalhos relevantes que estão em qualquer cofre de backup.
$job = Search-AzDataProtectionJobInAzGraph -Subscription $sub -ResourceGroupName "testBkpVaultRG" -Vault $TestBkpVault.Name -DatasourceType AzureDatabaseForPGFlexServer -Operation OnDemandBackup