Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Questo articolo descrive come eseguire il backup di database PostgreSQL in Macchine virtuali di Azure usando l'interfaccia della riga di comando di Azure. È anche possibile configurare il backup usando il portale di Azure, Azure PowerShell e l'API REST per i database PostgreSQL.
Altre informazioni sugli scenari supportati e sulle domande frequenti per il backup di Database di Azure per PostgreSQL.
Creare un insieme di credenziali per il backup
Una cassa di backup è un'entità di archiviazione in Azure. Archivia i dati di backup per i nuovi carichi di lavoro supportati da Backup di Azure, ad esempio i server di Database di Azure per PostgreSQL, i BLOB in un account di archiviazione e i dischi di Azure. Gli insiemi di credenziali di Backup semplificano l'organizzazione dei dati di backup, riducendo al minimo il sovraccarico di gestione. Gli insiemi di credenziali di Backup si basano sul modello di Azure Resource Manager di Azure, che offre funzionalità avanzate per proteggere i dati di backup.
Prima di creare un insieme di credenziali di Backup, scegliere la ridondanza di archiviazione dei dati all'interno di tale insieme. Procedere quindi con la creazione dell'insieme di credenziali di Backup con la ridondanza di archiviazione e il percorso.
In questo articolo, si crea una cassaforte di backup con il nome TestBkpVault, nell'area westus, sotto il gruppo di risorse testBkpVaultRG. Usare il comando az dataprotection vault create per creare un insieme di credenziali di Backup.
Scopri di più sulla creazione di un archivio di backup.
az dataprotection backup-vault create -g testBkpVaultRG --vault-name TestBkpVault -l westus --type SystemAssigned --storage-settings datastore-type="VaultStore" type="LocallyRedundant"
{
"eTag": null,
"id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourcegroups/testBkpVaultRG/providers/Microsoft.DataProtection/BackupVaults/TestBkpVault",
"identity": {
"principalId": "aaaaaaaa-bbbb-cccc-1111-222222222222",
"tenantId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"type": "SystemAssigned"
},
"location": "westus",
"name": "TestBkpVault",
"properties": {
"provisioningState": "Succeeded",
"storageSettings": [
{
"datastoreType": "VaultStore",
"type": "LocallyRedundant"
}
]
},
"resourceGroup": "testBkpVaultRG",
"systemData": null,
"tags": null,
"type": "Microsoft.DataProtection/backupVaults"
}
Creare una politica di backup
Dopo aver creato una cassaforte, è possibile creare criteri di backup per proteggere i database PostgreSQL. È anche possibile creare criteri di backup per i database PostgreSQL usando l'API REST.
Informazioni sui criteri di backup di PostgreSQL
Mentre il backup su disco offre più backup al giorno e il backup BLOB è un backup continuo senza trigger, il backup di PostgreSQL offre la protezione dell'archivio. È possibile spostare i dati di backup inizialmente inviati all'insieme di credenziali nel livello archivio in base a una regola definita o a un ciclo di vita.
In questo contesto, la gerarchia seguente consente di comprendere l'oggetto criteri di backup per PostgreSQL:
- Norma della politica
- Regola di backup
- Parametro di backup
- Tipo di backup (in questo caso backup completo del database)
- Archivio dati iniziale (in cui inizialmente i backup atterrano)
- Trigger (modalità di attivazione del backup)
- Calendario
- Criteri di assegnazione di tag predefiniti (un tag predefinito che collega tutti i backup pianificati alla regola di conservazione)
- Parametro di backup
- Regola di conservazione predefinita (regola applicata a tutti i backup, per impostazione predefinita, nell'archivio dati iniziale)
- Regola di backup
L'oggetto criteri definisce i tipi di backup attivati, il modo in cui vengono attivati (tramite una pianificazione), i tag con cui vengono contrassegnati, dove vengono inseriti (un archivio dati) e il ciclo di vita dei dati in un archivio dati.
L'oggetto PowerShell predefinito per PostgreSQL indica di attivare un backup completo ogni settimana. I backup arrivano nell'insieme di credenziali, dove restano archiviati per tre mesi.
Se si vuole aggiungere il livello archivio ai criteri, è necessario decidere quando i dati verranno spostati dall'insieme di credenziali all'archivio, per quanto tempo rimarranno nell'archivio e quali backup pianificati devono essere contrassegnati come archiviabili. È necessario aggiungere una regola di conservazione che definisca il ciclo di vita dei dati di backup dall'archivio dati dell'insieme di credenziali all'archivio dati di archiviazione. La regola di conservazione definisce anche per quanto tempo i dati di backup rimarranno nell'archivio dati di archiviazione. È quindi necessario aggiungere un tag che contrassegna i backup pianificati come idonei per l'archiviazione.
L'oggetto PowerShell risultante è il seguente:
- Norma della politica
- Regola di backup
- Parametro di backup
- Tipo di backup (in questo caso backup completo del database)
- Archivio dati iniziale (in cui inizialmente i backup atterrano)
- Trigger (modalità di attivazione del backup)
- Calendario
- Criteri di assegnazione di tag predefiniti (un tag predefinito che collega tutti i backup pianificati alla regola di conservazione)
- Nuovi criteri di assegnazione di tag per la nuova regola di conservazione con lo stesso nome
- Parametro di backup
- Regola di conservazione predefinita (regola applicata a tutti i backup, per impostazione predefinita, nell'archivio dati iniziale)
- Nuova regola di conservazione
- Ciclo vitale
- Archivio dati di origine
- Periodo di tempo per l'eliminazione nell'archivio dati di origine
- Copiare nell'archivio dati di destinazione
- Ciclo vitale
- Regola di backup
Recuperare il modello di criteri
Per comprendere i componenti interni di un criterio di backup per il backup del database PostgreSQL, recuperare il modello di criteri usando il az dataprotection backup-policy get-default-policy-template comando . Questo comando restituisce il modello di criteri predefinito per un tipo di origine dati. Usare questo modello di criterio per creare un nuovo criterio.
az dataprotection backup-policy get-default-policy-template --datasource-type AzureDatabaseForPostgreSQL
{
"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"
}
]
}
Il modello di criteri è costituito da un trigger (che determina quali attivano il backup) e un ciclo di vita (che decide quando eliminare, copiare o spostare il backup). In un backup del database PostgreSQL il valore predefinito per il trigger è un trigger settimanale pianificato (un backup ogni sette giorni). Ogni backup viene conservato per tre mesi.
Trigger pianificato
"trigger": {
"objectType": "ScheduleBasedTriggerContext",
"schedule": {
"repeatingTimeIntervals": [
"R/2021-08-15T06:30:00+00:00/P1W"
],
"timeZone": "UTC"
}
Ciclo di vita predefinito per la regola di detenzione
{
"isDefault": true,
"lifecycles": [
{
"deleteAfter": {
"duration": "P3M",
"objectType": "AbsoluteDeleteOption"
},
"sourceDataStore": {
"dataStoreType": "VaultStore",
"objectType": "DataStoreInfoBase"
},
"targetDataStoreCopySettings": []
}
],
"name": "Default",
"objectType": "AzureRetentionRule"
}
Modificare il modello di policy
In Azure PowerShell è possibile usare gli oggetti come percorsi di gestione temporanea per eseguire tutte le modifiche. Nell'interfaccia della riga di comando di Azure è necessario usare i file, perché non esiste alcuna nozione di oggetti. Ogni operazione di modifica deve essere reindirizzata a un nuovo file, in cui il contenuto viene letto dal file di input e reindirizzato al file di output. In un secondo momento è possibile rinominare il file in base alle esigenze durante l'uso in uno script.
Modificare la pianificazione
Il modello di criteri predefinito prevede un backup una volta alla settimana. È possibile modificare la pianificazione del backup in modo che venga eseguita più giorni alla settimana. Per modificare la pianificazione, usare il comando az dataprotection backup-policy trigger set.
Nell'esempio seguente viene modificato il backup settimanale in domenica, mercoledì e venerdì di ogni settimana. La matrice delle date di pianificazione indica le date, e i giorni della settimana corrispondenti a queste date vengono considerati come tali. È anche necessario specificare che queste pianificazioni devono essere ripetute ogni settimana. L'intervallo di pianificazione è 1 quindi e il tipo di intervallo è Weekly.
az dataprotection backup-policy trigger create-schedule --interval-type Weekly --interval-count 1 --schedule-days 2021-08-15T22:00:00 2021-08-18T22:00:00 2021-08-20T22:00:00
[
"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"
]
az dataprotection backup-policy trigger set --policy .\OSSPolicy.json --schedule 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 > EditedOSSPolicy.json
Aggiungere una nuova regola di conservazione
Se si vuole aggiungere la protezione dell'archivio, è necessario modificare il modello di criteri.
Il modello predefinito ha un ciclo di vita per l'archivio dati iniziale nella regola di conservazione predefinita. In questo scenario, la regola specifica di eliminare i dati di backup dopo tre mesi. È necessario aggiungere una nuova regola di conservazione che definisce quando i dati vengono spostati nell'archivio dati di archiviazione. Ovvero, i dati di backup vengono prima copiati nell'archivio dati e quindi eliminati nell'archivio dati del vault.
Inoltre, la regola deve definire per quanto tempo conservare i dati nel datastore di archiviazione. Per creare nuovi cicli di vita, usare il az dataprotection backup-policy retention-rule create-lifecycle comando . Per associare tali cicli di vita a regole nuove o esistenti, usare il az dataprotection backup-policy retention-rule set comando .
Nell'esempio seguente viene creata una nuova regola di conservazione denominata Monthly. In questa regola, il primo backup riuscito di ogni mese viene conservato nel vault per sei mesi, spostato nel livello di archivio e mantenuto nel livello di archivio per 24 mesi.
az dataprotection backup-policy retention-rule create-lifecycle --retention-duration-count 6 --retention-duration-type Months --source-datastore VaultStore --target-datastore ArchiveStore --copy-option CopyOnExpiryOption > VaultToArchiveLifeCycle.JSON
az dataprotection backup-policy retention-rule create-lifecycle --retention-duration-count 24 --retention-duration-type Months -source-datastore ArchiveStore > OnArchiveLifeCycle.JSON
az dataprotection backup-policy retention-rule set --lifecycles .\VaultToArchiveLifeCycle.JSON .\OnArchiveLifeCycle.JSON --name Monthly --policy .\EditedOSSPolicy.JSON > AddedRetentionRulePolicy.JSON
Aggiungere un tag e i criteri pertinenti
Dopo aver creato una regola di conservazione, è necessario creare un tag corrispondente nella Trigger proprietà dei criteri di backup. Per creare nuovi criteri di assegnazione di tag, usare il az dataprotection backup-policy tag create-absolute-criteria comando . Per aggiornare il tag esistente o creare un nuovo tag, usare il az dataprotection backup-policy tag set comando .
Nell'esempio seguente viene creato un nuovo tag insieme ai criteri, ovvero il primo backup riuscito del mese. Il tag ha lo stesso nome della regola di conservazione corrispondente da applicare.
In questo esempio i criteri di tag sono denominati Monthly:
az dataprotection backup-policy tag create-absolute-criteria --absolute-criteria FirstOfMonth > tagCriteria.JSON
az dataprotection backup-policy tag set --criteria .\tagCriteria.JSON --name Monthly --policy .\AddedRetentionRulePolicy.JSON > AddedRetentionRuleAndTag.JSON
Se la pianificazione è di più backup alla settimana (ogni domenica, mercoledì e giovedì, come specificato nell'esempio precedente) e si desidera archiviare i backup di domenica e venerdì, è possibile modificare i criteri di assegnazione di tag usando il az dataprotection backup-policy tag create-generic-criteria comando :
az dataprotection backup-policy tag create-generic-criteria --days-of-week Sunday Friday > tagCriteria.JSON
az dataprotection backup-policy tag set --criteria .\tagCriteria.JSON --name Monthly --policy .\AddedRetentionRulePolicy.JSON > AddedRetentionRuleAndTag.JSON
Creare un nuovo criterio di backup PostgreSQL
Dopo aver modificato il modello in base ai requisiti, usare il az dataprotection backup-policy create comando per creare un criterio usando il modello modificato:
az dataprotection backup-policy create --backup-policy-name FinalOSSPolicy --policy AddedRetentionRuleAndTag.JSON --resource-group testBkpVaultRG --vault-name TestBkpVault
Configurare il backup
Dopo aver creato l'archivio e i criteri, è necessario considerare tre aspetti fondamentali per eseguire il backup di un database PostgreSQL in Database di Azure per PostgreSQL.
Informazioni sulle entità chiave
Database PostGreSQL di cui eseguire il backup
Recuperare l'ID resource manager del database PostgreSQL di cui eseguire il backup. Questo ID funge da identificatore del database. L'esempio seguente usa un database denominato empdb11 nel server testposgresqlPostgreSQL , presente nel gruppo ossrg di risorse in una sottoscrizione diversa. L'esempio usa Bash.
ossId="/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourcegroups/ossrg/providers/Microsoft.DBforPostgreSQL/servers/archive-postgresql-ccy/databases/empdb11"
Insieme di credenziali delle chiavi
Il servizio Backup di Azure non archivia il nome utente e la password per connettersi al database PostgreSQL. L'amministratore del backup effettua invece il seeding delle chiavi nell'insieme di credenziali delle chiavi. Il servizio Backup di Azure accede quindi all'insieme di credenziali, legge le chiavi e accede al database.
L'esempio seguente usa Bash. Prendere nota dell'identificatore segreto della chiave pertinente.
keyURI="https://testkeyvaulteus.vault.azure.net/secrets/ossdbkey"
Insieme di credenziali di backup
Un Backup vault deve connettersi al server PostgreSQL e quindi accedere al database tramite le chiavi presenti nel Key Vault. Quindi, la cassaforte di Backup richiede l'accesso al server PostgreSQL e alla cassaforte delle chiavi. L'accesso viene concesso all'identità del servizio gestita dell'insieme di credenziali per il backup.
Informazioni sulle autorizzazioni che è necessario concedere all'identità gestita del Backup vault sul server PostgreSQL e al Key Vault che conserva le chiavi per il database.
Preparare la richiesta
Dopo aver impostato tutte le autorizzazioni pertinenti, eseguire la configurazione del backup in due passaggi:
- Preparare la richiesta usando il vault pertinente, i criteri e il database PostgreSQL nel comando
az dataprotection backup-instance initialize. - Inviare la richiesta per eseguire il backup del database usando il
az dataprotection backup-instance createcomando .
az dataprotection backup-instance initialize --datasource-id $ossId --datasource-type AzureDatabaseForPostgreSQL -l <vault-location> --policy-id <policy_arm_id> --secret-store-type AzureKeyVault --secret-store-uri $keyURI > OSSBkpInstance.JSON
az dataprotection backup-instance create --resource-group testBkpVaultRG --vault-name TestBkpVault TestBkpvault --backup-instance .\OSSBkpInstance.JSON
Eseguire un backup su richiesta
È necessario specificare una regola di conservazione durante l'attivazione del backup. Per visualizzare le regole di conservazione nella politica, esaminare il file JSON della politica. Nell'esempio seguente sono presenti due regole di conservazione con i nomi Default e Monthly. Questo articolo usa la Monthly regola per il backup su richiesta.
az dataprotection backup-policy show -g ossdemorg --vault-name ossdemovault-1 --subscription e3d2d341-4ddb-4c5d-9121-69b7e719485e --name osspol5
{
"id": "/subscriptions/e3d2d341-4ddb-4c5d-9121-69b7e719485e/resourceGroups/ossdemorg/providers/Microsoft.DataProtection/backupVaults/ossdemovault-1/backupPolicies/osspol5",
"name": "osspol5",
"properties": {
"datasourceTypes": [
"Microsoft.DBforPostgreSQL/servers/databases"
],
"objectType": "BackupPolicy",
"policyRules": [
{
"backupParameters": {
"backupType": "Full",
"objectType": "AzureBackupParams"
},
"dataStore": {
"dataStoreType": "VaultStore",
"objectType": "DataStoreInfoBase"
},
"name": "BackupWeekly",
"objectType": "AzureBackupRule",
"trigger": {
"objectType": "ScheduleBasedTriggerContext",
"schedule": {
"repeatingTimeIntervals": [
"R/2020-04-04T20:00:00+00:00/P1W",
"R/2020-04-01T20:00:00+00:00/P1W"
],
"timeZone": "UTC"
},
"taggingCriteria": [
{
"criteria": [
{
"absoluteCriteria": [
"FirstOfMonth"
],
"daysOfMonth": null,
"daysOfTheWeek": null,
"monthsOfYear": null,
"objectType": "ScheduleBasedBackupCriteria",
"scheduleTimes": null,
"weeksOfTheMonth": null
}
],
"isDefault": false,
"tagInfo": {
"eTag": null,
"id": "Monthly_",
"tagName": "Monthly"
},
"taggingPriority": 15
},
{
"criteria": null,
"isDefault": true,
"tagInfo": {
"eTag": null,
"id": "Default_",
"tagName": "Default"
},
"taggingPriority": 99
}
]
}
},
{
"isDefault": false,
"lifecycles": [
{
"deleteAfter": {
"duration": "P10Y",
"objectType": "AbsoluteDeleteOption"
},
"sourceDataStore": {
"dataStoreType": "VaultStore",
"objectType": "DataStoreInfoBase"
},
"targetDataStoreCopySettings": []
}
],
"name": "Monthly",
"objectType": "AzureRetentionRule"
},
{
"isDefault": true,
"lifecycles": [
{
"deleteAfter": {
"duration": "P1Y",
"objectType": "AbsoluteDeleteOption"
},
"sourceDataStore": {
"dataStoreType": "VaultStore",
"objectType": "DataStoreInfoBase"
},
"targetDataStoreCopySettings": []
}
],
"name": "Default",
"objectType": "AzureRetentionRule"
}
]
},
"resourceGroup": "ossdemorg",
"systemData": null,
"type": "Microsoft.DataProtection/backupVaults/backupPolicies"
}
Per attivare un backup su richiesta, usare il az dataprotection backup-instance adhoc-backup comando :
az dataprotection backup-instance adhoc-backup --name "ossrg-empdb11" --rule-name "Monthly" --resource-group testBkpVaultRG --vault-name TestBkpVault
Tenere traccia dei processi
Tenere traccia di tutti i processi usando il az dataprotection job list comando . È possibile elencare tutti i processi e recuperare un dettaglio specifico di un processo.
È anche possibile usare Az.ResourceGraph per tracciare tutti i processi in tutti i backup vault. Usare il comando az dataprotection job list-from-resourcegraph per recuperare i processi pertinenti negli insiemi di credenziali per il backup:
az dataprotection job list-from-resourcegraph --datasource-type AzureDatabaseForPostgreSQL --status Completed
Contenuti correlati
- Ripristinare i database PostgreSQL usando l'interfaccia della riga di comando di Azure.
- Ripristinare un database PostgreSQL usando il portale di Azure, Azure PowerShell e l'API REST.
- Gestire un server di Database di Azure per PostgreSQL usando il portale di Azure.