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.
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 de bancos de dados PostgreSQL para um cofre ou pode 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ê cria uma política de backup.
Compreender as políticas de backup do PostgreSQL
Enquanto o backup em disco oferece vários backups por dia e o backup de blob é um backup contínuo sem gatilho, o backup PostgreSQL oferece proteção de arquivamento. Os dados de backup enviados pela primeira vez para o vault 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 para PostgreSQL:
- Regra de política
- Regra de backup
- Parâmetro de backup
- Tipo de backup (um backup de banco de dados completo neste caso)
- Armazenamento de dados inicial (onde os backups aterrissam inicialmente)
- Trigger (como o backup é acionado)
- Schedule
- Critérios de marcação padrão (uma tag 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 acionados, como eles são acionados (por meio de uma programação), com o que são marcados, onde aterrissam (um armazenamento de dados) e o ciclo de vida de seus dados em um armazenamento de dados.
O objeto padrão do PowerShell para PostgreSQL diz para disparar um backup completo toda semana. Os backups chegam ao cofre, onde são armazenados por três meses.
Se quiser adicionar a camada de arquivo à política, você precisa decidir quando os dados serão movidos do cofre para o arquivo, por quanto tempo os dados permanecerão no arquivo 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 armazenamento de dados do vault para o armazenamento de dados de arquivamento. A regra de retenção também define por quanto tempo os dados de backup permanecerão no armazenamento de dados de arquivamento. Em seguida, você precisa adicionar uma tag que marque os backups agendados como elegíveis para serem arquivados.
O objeto PowerShell resultante é o seguinte:
- Regra de política
- Regra de backup
- Parâmetro de backup
- Tipo de backup (um backup de banco de dados completo neste caso)
- Armazenamento de dados inicial (onde os backups aterrissam inicialmente)
- Trigger (como o backup é acionado)
- Schedule
- 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 marcação 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 armazenamento de dados de destino
- Ciclo de vida
- Regra de backup
Criar uma política
Importante
Atualmente, não há suporte para atualizar ou modificar uma política existente. 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 {policyName} valores e {vaultName} . O organismo requerente fornece informações adicionais.
Criar o corpo da solicitação
Para criar uma política para backup do PostgreSQL, o corpo da solicitação precisa dos seguintes componentes:
| Nome | Obrigatório | 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 de corpo da solicitação
A política diz:
- O gatilho é agendado para um backup semanal na hora de início escolhida (hora +
P1W). - O armazenamento de dados é um armazenamento do cofre, porque 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 suportam apenas DateTime.
Time não é suportado. 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 armazenamento de dados de arquivo para retenção de longo prazo de backups de banco de dados PostgreSQL.
O exemplo a seguir modifica o backup semanal para domingo, quarta e sexta-feira de cada semana. A matriz de datas do cronograma menciona as datas, e os dias da semana para essas datas são tomados como dias da semana. Você também precisa especificar que esses horários devem ser repetidos todas as semanas. Assim, o intervalo de programação é 1 e o tipo de intervalo é Weekly.
Gatilho programado
"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 quiser adicionar a proteção de arquivamento, será necessário modificar a política JSON.
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 defina quando os dados são movidos para o armazenamento de dados de arquivamento. Ou seja, os dados de backup são primeiro copiados para o armazenamento de dados de arquivo morto e, em seguida, excluídos no armazenamento de dados do vault.
Além disso, a regra deve definir as durações para manter os dados no armazenamento de dados de arquivamento. Vamos nomear esta nova regra Monthly. Ele define que os backups devem ser mantidos no armazenamento de dados do vault por 6 meses e, em seguida, copiados para o armazenamento de dados de arquivamento. Em seguida, exclua os backups no armazenamento de dados do vault e mantenha os dados por 24 meses no armazenamento de dados de arquivamento. Finalmente, exclua os dados no armazenamento de dados de arquivamento.
"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 adicionar uma regra de retenção, você precisará adicionar uma tag correspondente na Trigger propriedade da política. O exemplo a seguir cria uma nova tag 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 tag devem ser nomeados Monthly:
{
"criteria": [
{
"absoluteCriteria": [
"FirstOfMonth"
],
"objectType": "ScheduleBasedBackupCriteria"
}
],
"isDefault": false,
"tagInfo": {
"tagName": "Monthly"
},
"taggingPriority": 15
}
Depois de incluir todas as alterações, a política JSON aparece 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.
Confira 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 está concluída. |
Exemplo de resposta
{
"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 do Azure Backup Data Protection.
- Referência da API REST do Azure.
- Rastreie trabalhos de backup e restauração usando a API REST no Backup do Azure.
- Gerencie um Banco de Dados do Azure para servidor PostgreSQL usando o portal do Azure.