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.
Uma política de backup rege a retenção e o agendamento dos backups do banco de dados PostgreSQL no Banco de Dados do Azure para PostgreSQL. O Banco de Dados do Azure para PostgreSQL oferece retenção de longo prazo de backups de banco de dados e dá suporte a um backup por dia.
Você pode reutilizar uma política de backup existente para configurar backups para bancos de dados PostgreSQL em um cofre ou criar uma política de backup para um cofre dos Serviços de Recuperação do Azure usando a API REST de Proteção de Dados para Backup do Azure. Neste artigo, você criará uma política de backup.
Entender as políticas de backup do PostgreSQL
Enquanto o backup de disco oferece vários backups por dia e o backup de blob é um backup contínuo sem gatilho, o backup do PostgreSQL oferece proteção de arquivamento. Os dados de backup que são enviados primeiro para o cofre podem ser movidos para a camada de arquivamento de acordo com uma regra definida ou um ciclo de vida.
Nesse contexto, a hierarquia a seguir pode ajudá-lo a entender o objeto de política de backup do PostgreSQL:
- Regra de política
- Regra de backup
- Parâmetro de backup
- Tipo de backup (um backup de banco de dados completo nesse caso)
- Armazenamento de dados inicial (em que os backups chegam inicialmente)
- Gatilho (como o backup é acionado)
- Cronograma
- Critérios de marcação padrão (uma marca padrão que vincula todos os backups agendados à regra de retenção)
- Parâmetro de backup
- Regra de retenção padrão (uma regra que é aplicada a todos os backups, por padrão, no armazenamento de dados inicial)
- Regra de backup
O objeto de política define quais tipos de backups são ativados, como eles são ativados (por meio de um agendamento), como são marcados, onde são armazenados (em um datastore) e o ciclo de vida de seus dados nesse datastore.
O objeto padrão do PowerShell para PostgreSQL indica realizar um backup completo semanalmente. Os backups chegam ao cofre, onde ficam armazenados por três meses.
Se você quiser adicionar a camada de arquivo morto à política, será necessário decidir quando os dados serão movidos do cofre para o arquivo morto, por quanto tempo os dados permanecerão no arquivo morto e quais dos backups agendados devem ser marcados como arquiváveis. Você precisa adicionar uma regra de retenção que defina o ciclo de vida dos dados de backup do datastore de vault ao datastore de arquivamento. A regra de retenção também define por quanto tempo os dados de backup permanecerão no armazenamento de dados de arquivos. Em seguida, você precisa adicionar uma marca que marque os backups agendados como qualificados para serem arquivados.
O objeto resultante do PowerShell é o seguinte:
- Regra de política
- Regra de backup
- Parâmetro de backup
- Tipo de backup (um backup de banco de dados completo nesse caso)
- Armazenamento de dados inicial (em que os backups chegam inicialmente)
- Gatilho (como o backup é acionado)
- Cronograma
- Critérios de marcação padrão (uma marca padrão que vincula todos os backups agendados à regra de retenção)
- Novos critérios de tagueamento para a nova regra de retenção com o mesmo nome
- Parâmetro de backup
- Regra de retenção padrão (uma regra que é aplicada a todos os backups, por padrão, no armazenamento de dados inicial)
- Nova regra de retenção
- Ciclo de vida
- Armazenamento de dados de origem
- Período de tempo para exclusão no armazenamento de dados de origem
- Copiar para o datastore de destino
- Ciclo de vida
- Regra de backup
Criar uma política
Importante
Atualmente, a atualização ou modificação de uma política existente não é suportada. Em vez disso, crie uma nova política com os detalhes necessários e atribua-a à instância de backup relevante.
Para criar uma política de backup, use a seguinte PUT operação:
PUT https://management.azure.com/Subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataProtection/backupVaults/{vaultName}/backupPolicies/{policyName}?api-version=2021-01-01
O URI fornece os valores {policyName} e {vaultName}. O corpo da solicitação fornece informações adicionais.
Criar o corpo da solicitação
Para criar uma política de backup do PostgreSQL, o corpo da solicitação precisa dos seguintes componentes:
| Nome | Obrigatória | Tipo | Descrição |
|---|---|---|---|
properties |
true |
BaseBackupPolicy: BackupPolicy |
BaseBackupPolicyResource propriedades |
Para obter a lista completa de definições no corpo da solicitação, consulte as políticas de backup da API REST.
Exemplo do corpo de solicitação
A diretiva diz:
- O gatilho é agendado para um backup semanal na hora de início escolhida (hora +
P1W). - O armazenamento de dados é um armazenamento em cofre, pois os backups são transferidos diretamente para o cofre.
- Os backups são mantidos no cofre por três meses (
P3M).
{
"datasourceTypes": [
"Microsoft.DBforPostgreSQL/servers/databases"
],
"name": "OssPolicy1",
"objectType": "BackupPolicy",
"policyRules": [
{
"backupParameters": {
"backupType": "Full",
"objectType": "AzureBackupParams"
},
"dataStore": {
"dataStoreType": "VaultStore",
"objectType": "DataStoreInfoBase"
},
"name": "BackupWeekly",
"objectType": "AzureBackupRule",
"trigger": {
"objectType": "ScheduleBasedTriggerContext",
"schedule": {
"repeatingTimeIntervals": [
"R/2021-08-15T06:30:00+00:00/P1W"
],
"timeZone": "UTC"
},
"taggingCriteria": [
{
"isDefault": true,
"tagInfo": {
"id": "Default_",
"tagName": "Default"
},
"taggingPriority": 99
}
]
}
},
{
"isDefault": true,
"lifecycles": [
{
"deleteAfter": {
"duration": "P3M",
"objectType": "AbsoluteDeleteOption"
},
"sourceDataStore": {
"dataStoreType": "VaultStore",
"objectType": "DataStoreInfoBase"
},
"targetDataStoreCopySettings": []
}
],
"name": "Default",
"objectType": "AzureRetentionRule"
}
]
}
Importante
Os formatos de tempo dão suporte apenas a DateTime. Não há suporte para Time. A hora do dia indica a hora de início do backup, não a hora de término.
Vamos atualizar o JSON anterior com duas alterações:
- Adicione backups em vários dias da semana.
- Adicione um datastore de arquivo para retenção a longo prazo de backups do banco de dados PostgreSQL.
O exemplo a seguir modifica o backup semanal para domingo, quarta e sexta-feira de cada semana. A matriz das datas do agendamento menciona as datas, e os dias da semana para essas datas são considerados 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 é Weekly.
Gatilho agendado
"trigger": {
"objectType": "ScheduleBasedTriggerContext",
"schedule": {
"repeatingTimeIntervals": [
"R/2021-08-15T22:00:00+00:00/P1W",
"R/2021-08-18T22:00:00+00:00/P1W",
"R/2021-08-20T22:00:00+00:00/P1W"
],
"timeZone": "UTC"
}
Se você quiser adicionar a proteção contra arquivos, será necessário modificar o JSON da política.
Ciclo de vida de retenção
O JSON anterior tem um ciclo de vida para o armazenamento de dados inicial sob a regra de retenção padrão. Nesse cenário, a regra diz para excluir os dados de backup após três meses. Você deve adicionar uma nova regra de retenção que define quando os dados são movidos para o banco de dados de armazenamento de arquivo. Ou seja, os dados de backup são primeiro copiados para o armazenamento de dados de arquivo e, em seguida, excluídos do armazenamento de dados do cofre.
Além disso, a regra deve definir as durações para manter os dados no repositório de dados arquivados. Vamos nomear essa nova regra Monthly. Isso define que os backups devem ser mantidos no armazenamento de dados do cofre por 6 meses e, em seguida, copiados para o armazenamento de dados de arquivo. Em seguida, exclua os backups no armazenamento de dados do cofre e mantenha os dados por 24 meses no armazenamento de dados de arquivo. Por fim, exclua os dados no armazenamento de dados de arquivo.
"lifecycles": [
{
"deleteAfter": {
"duration": "P3M",
"objectType": "AbsoluteDeleteOption"
},
"sourceDataStore": {
"dataStoreType": "VaultStore",
"objectType": "DataStoreInfoBase"
},
"targetDataStoreCopySettings": []
}
],
"name": "Default",
"objectType": "AzureRetentionRule"
},
{
"isDefault": false,
"lifecycles": [
{
"deleteAfter": {
"duration": "P6M",
"objectType": "AbsoluteDeleteOption"
},
"sourceDataStore": {
"dataStoreType": "VaultStore",
"objectType": "DataStoreInfoBase"
},
"targetDataStoreCopySettings": {
"copyAfter": {
"objectType": "CopyOnExpiryOption"
},
"dataStore": {
"dataStoreType": "ArchiveStore",
"objectType": "DataStoreInfoBase"
}
}
},
{
"deleteAfter": {
"duration": "P24M",
"objectType": "AbsoluteDeleteOption"
},
"sourceDataStore": {
"dataStoreType": "ArchiveStore",
"objectType": "DataStoreInfoBase"
},
"targetDataStoreCopySettings": null
}
],
"name": "Monthly",
"objectType": "AzureRetentionRule"
}
Critérios de marcação
Sempre que você adicionar uma regra de retenção, será necessário adicionar uma tag correspondente na propriedade Trigger da política. O exemplo a seguir cria uma nova marca junto com os critérios (que é o primeiro backup bem-sucedido do mês) com exatamente o mesmo nome da regra de retenção correspondente a ser aplicada.
Neste exemplo, os critérios de etiqueta devem ser denominados Monthly:
{
"criteria": [
{
"absoluteCriteria": [
"FirstOfMonth"
],
"objectType": "ScheduleBasedBackupCriteria"
}
],
"isDefault": false,
"tagInfo": {
"tagName": "Monthly"
},
"taggingPriority": 15
}
Depois de incluir todas as alterações, o JSON da política será exibido da seguinte maneira:
{
"datasourceTypes": [
"Microsoft.DBforPostgreSQL/servers/databases"
],
"name": "OssPolicy1",
"objectType": "BackupPolicy",
"policyRules": [
{
"backupParameters": {
"backupType": "Full",
"objectType": "AzureBackupParams"
},
"dataStore": {
"dataStoreType": "VaultStore",
"objectType": "DataStoreInfoBase"
},
"name": "BackupWeekly",
"objectType": "AzureBackupRule",
"trigger": {
"objectType": "ScheduleBasedTriggerContext",
"schedule": {
"repeatingTimeIntervals": [
"R/2021-08-15T22:00:00+00:00/P1W",
"R/2021-08-18T22:00:00+00:00/P1W",
"R/2021-08-20T22:00:00+00:00/P1W"
],
"timeZone": "UTC"
},
"taggingCriteria": [
{
"isDefault": true,
"tagInfo": {
"id": "Default_",
"tagName": "Default"
},
"taggingPriority": 99
},
{
"criteria": [
{
"absoluteCriteria": [
"FirstOfMonth"
],
"objectType": "ScheduleBasedBackupCriteria"
}
],
"isDefault": false,
"tagInfo": {
"tagName": "Monthly"
},
"taggingPriority": 15
}
]
}
},
{
"isDefault": true,
"lifecycles": [
{
"deleteAfter": {
"duration": "P3M",
"objectType": "AbsoluteDeleteOption"
},
"sourceDataStore": {
"dataStoreType": "VaultStore",
"objectType": "DataStoreInfoBase"
},
"targetDataStoreCopySettings": []
}
],
"name": "Default",
"objectType": "AzureRetentionRule"
},
{
"isDefault": false,
"lifecycles": [
{
"deleteAfter": {
"duration": "P6M",
"objectType": "AbsoluteDeleteOption"
},
"sourceDataStore": {
"dataStoreType": "VaultStore",
"objectType": "DataStoreInfoBase"
},
"targetDataStoreCopySettings": {
"copyAfter": {
"objectType": "CopyOnExpiryOption"
},
"dataStore": {
"dataStoreType": "ArchiveStore",
"objectType": "DataStoreInfoBase"
}
}
},
{
"deleteAfter": {
"duration": "P24M",
"objectType": "AbsoluteDeleteOption"
},
"sourceDataStore": {
"dataStoreType": "ArchiveStore",
"objectType": "DataStoreInfoBase"
},
"targetDataStoreCopySettings": null
}
],
"name": "Monthly",
"objectType": "AzureRetentionRule"
}
]
}
Para obter mais detalhes sobre a criação de políticas, consulte Criar uma política de backup.
Verificar a resposta
A criação ou atualização da política de backup é uma operação síncrona. Depois que a operação for bem-sucedida, ela retornará a seguinte resposta de status com o conteúdo da política no corpo da resposta.
| Nome | Tipo | Descrição |
|---|---|---|
200 OK |
BaseBackupPolicyResource |
A operação foi concluída. |
Resposta de exemplo
{
"properties": {
"policyRules": [
{
"backupParameters": {
"backupType": "Full",
"objectType": "AzureBackupParams"
},
"trigger": {
"schedule": {
"repeatingTimeIntervals": [
"R/2021-08-15T22:00:00+00:00/P1W",
"R/2021-08-18T22:00:00+00:00/P1W",
"R/2021-08-20T22:00:00+00:00/P1W"
],
"timeZone": "UTC"
},
"taggingCriteria": [
{
"tagInfo": {
"tagName": "Monthly",
"id": "Monthly_"
},
"taggingPriority": 15,
"isDefault": false,
"criteria": [
{
"absoluteCriteria": [
"FirstOfMonth"
],
"objectType": "ScheduleBasedBackupCriteria"
}
]
},
{
"tagInfo": {
"tagName": "Default",
"id": "Default_"
},
"taggingPriority": 99,
"isDefault": true
}
],
"objectType": "ScheduleBasedTriggerContext"
},
"dataStore": {
"dataStoreType": "VaultStore",
"objectType": "DataStoreInfoBase"
},
"name": "BackupWeekly",
"objectType": "AzureBackupRule"
},
{
"lifecycles": [
{
"deleteAfter": {
"objectType": "AbsoluteDeleteOption",
"duration": "P6M"
},
"targetDataStoreCopySettings": [
{
"dataStore": {
"dataStoreType": "ArchiveStore",
"objectType": "DataStoreInfoBase"
},
"copyAfter": {
"objectType": "CopyOnExpiryOption"
}
}
],
"sourceDataStore": {
"dataStoreType": "VaultStore",
"objectType": "DataStoreInfoBase"
}
},
{
"deleteAfter": {
"objectType": "AbsoluteDeleteOption",
"duration": "P24M"
},
"targetDataStoreCopySettings": [],
"sourceDataStore": {
"dataStoreType": "ArchiveStore",
"objectType": "DataStoreInfoBase"
}
}
],
"isDefault": false,
"name": "Monthly",
"objectType": "AzureRetentionRule"
},
{
"lifecycles": [
{
"deleteAfter": {
"objectType": "AbsoluteDeleteOption",
"duration": "P3M"
},
"targetDataStoreCopySettings": [],
"sourceDataStore": {
"dataStoreType": "VaultStore",
"objectType": "DataStoreInfoBase"
}
}
],
"isDefault": true,
"name": "Default",
"objectType": "AzureRetentionRule"
}
],
"datasourceTypes": [
"Microsoft.DBforPostgreSQL/servers/databases"
],
"objectType": "BackupPolicy"
},
"id": "/subscriptions/ef4ab5a7-c2c0-4304-af80-af49f48af3d1/resourceGroups/DebRG1/providers/Microsoft.DataProtection/backupVaults/DebBackupVault/backupPolicies/OssPolicy1",
"name": "OssPolicy1",
"type": "Microsoft.DataProtection/backupVaults/backupPolicies"
}
Conteúdo relacionado
- Faça backup de discos do Azure usando a API REST da Proteção de Dados.
- API REST da Proteção de Dados de Backup do Azure.
- Referência da API REST do Azure.
- Acompanhe os trabalhos de backup e restauração usando a API REST no Backup do Azure.
- Gerencie um servidor do Banco de Dados do Azure para PostgreSQL usando o portal do Azure.