Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
En säkerhetskopieringsprincip styr kvarhållningen och schemat för dina PostgreSQL-databassäkerhetskopior i Azure Database for PostgreSQL. Azure Database for PostgreSQL erbjuder långsiktig kvarhållning av databassäkerhetskopior och stöder en säkerhetskopiering per dag.
Du kan återanvända en befintlig säkerhetskopieringsprincip för att konfigurera säkerhetskopior för PostgreSQL-databaser till ett valv, eller så kan du skapa en säkerhetskopieringsprincip för ett Azure Recovery Services-valv med hjälp av REST API för dataskydd för Azure Backup. I den här artikeln skapar du en säkerhetskopieringsprincip.
Förstå principer för PostgreSQL-säkerhetskopiering
Medan säkerhetskopiering av diskar erbjuder flera säkerhetskopior per dag och blobsäkerhetskopiering är en kontinuerlig säkerhetskopiering utan utlösare, erbjuder PostgreSQL-säkerhetskopiering arkivskydd. De säkerhetskopierade data som först skickas till valvet kan flyttas till arkivnivån i enlighet med en definierad regel eller en livscykel.
I det här sammanhanget kan följande hierarki hjälpa dig att förstå säkerhetskopieringsprincipobjektet för PostgreSQL:
- Principregel 
- Säkerhetskopieringsregel 
- Parameter för säkerhetskopiering 
- Typ av säkerhetskopiering (en fullständig databassäkerhetskopia i det här fallet)
 - Initialt datalager (där säkerhetskopiorna hamnar initialt)
 - Utlösare (hur säkerhetskopieringen utlöses) 
- Schema
 - Standardvillkor för taggning (en standardtagg som länkar alla schemalagda säkerhetskopior till kvarhållningsregeln)
 
 
 
 - Parameter för säkerhetskopiering 
 - Standardregel för kvarhållning (en regel som tillämpas på alla säkerhetskopior som standard i det första dataarkivet)
 
 - Säkerhetskopieringsregel 
 
Principobjektet definierar vilka typer av säkerhetskopior som utlöses, hur de utlöses (via ett schema), vad de taggas med, var de hamnar (ett datalager) och livscykeln för deras data i ett datalager.
Standardobjektet för PowerShell för PostgreSQL säger att det utlöser en fullständig säkerhetskopia varje vecka. Säkerhetskopiorna når valvet, där de lagras i tre månader.
Om du vill lägga till arkivnivån i principen måste du bestämma när data ska flyttas från valvet till arkivet, hur länge data ska finnas kvar i arkivet och vilka av de schemalagda säkerhetskopiorna som ska taggas som arkiveringsbara. Du måste lägga till en kvarhållningsregel som definierar livscykeln för säkerhetskopieringsdata från valvets datalager till arkivdatalagringen. Kvarhållningsregeln definierar också hur länge säkerhetskopierade data ska lagras i arkivdatalagringen. Sedan måste du lägga till en tagg som markerar de schemalagda säkerhetskopiorna som berättigade att arkiveras.
Det resulterande PowerShell-objektet är följande:
- Principregel 
- Säkerhetskopieringsregel 
- Parameter för säkerhetskopiering 
- Typ av säkerhetskopiering (en fullständig databassäkerhetskopia i det här fallet)
 - Initialt datalager (där säkerhetskopiorna hamnar initialt)
 - Utlösare (hur säkerhetskopieringen utlöses) 
- Schema
 - Standardvillkor för taggning (en standardtagg som länkar alla schemalagda säkerhetskopior till kvarhållningsregeln)
 - Nya taggningsvillkor för den nya kvarhållningsregeln med samma namn
 
 
 
 - Parameter för säkerhetskopiering 
 - Standardregel för kvarhållning (en regel som tillämpas på alla säkerhetskopior som standard i det första dataarkivet)
 - Ny kvarhållningsregel 
- Livscykel 
- Källdatalager
 - Tidsperiod för borttagning i källdatalagringen
 - Kopiera till måldatalagringen
 
 
 - Livscykel 
 
 - Säkerhetskopieringsregel 
 
Skapa en policy
Viktigt!
För närvarande stöds inte uppdatering eller ändring av en befintlig princip. Skapa i stället en ny princip med nödvändig information och tilldela den till den relevanta säkerhetskopieringsinstansen.
Använd följande PUT åtgärd för att skapa en säkerhetskopieringsprincip:
PUT https://management.azure.com/Subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataProtection/backupVaults/{vaultName}/backupPolicies/{policyName}?api-version=2021-01-01
URI:n innehåller {policyName} värdena och {vaultName} . Begärandetexten innehåller ytterligare information.
Skapa begärandetexten
För att skapa en princip för PostgreSQL-säkerhetskopiering behöver begärandetexten följande komponenter:
| Namn | Obligatoriskt | Typ | Beskrivning | 
|---|---|---|---|
properties | 
true | 
              BaseBackupPolicy: BackupPolicy | 
              BaseBackupPolicyResource egenskaper | 
Den fullständiga listan över definitioner i begärandetexten finns i REST API-säkerhetskopieringsprinciperna.
Exempel på begärandetext
Principen säger:
- Utlösaren schemaläggs för en veckovis säkerhetskopiering vid den valda starttiden (tid + 
P1W). - Datalagret är ett valvlager eftersom säkerhetskopiorna överförs direkt till valvet.
 - Säkerhetskopiorna behålls i valvet i tre månader (
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"
    }
  ]
}
Viktigt!
Tidsformaten stöder endast DateTime. 
              Time stöds inte. Tiden på dagen anger starttiden för säkerhetskopieringen, inte sluttiden.
Nu ska vi uppdatera föregående JSON med två ändringar:
- Lägg till säkerhetskopior på flera dagar i veckan.
 - Lägg till ett arkivdatalager för långsiktig kvarhållning av PostgreSQL-databassäkerhetskopior.
 
I följande exempel ändras den veckovisa säkerhetskopieringen till söndag, onsdag och fredag varje vecka. Schemadatummatrisen anger datumen och veckodagarna för dessa datum tas som veckodagar. Du måste också ange att dessa scheman ska upprepas varje vecka. Schemaintervallet är 1 alltså och intervalltypen är Weekly.
Schemalagd utlösare
"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"
        }
Om du vill lägga till arkivskyddet måste du ändra principens JSON.
Livscykel för datalagring
Föregående JSON har en livscykel för det första dataarkivet under standardregeln för kvarhållning. I det här scenariot säger regeln att du ska ta bort säkerhetskopierade data efter tre månader. Du bör lägga till en ny kvarhållningsregel som definierar när data flyttas till arkivdatalagringen. Säkerhetskopieringsdata kopieras alltså först till arkivdataarkivet och tas sedan bort i valvets datalager.
Regeln bör också definiera varaktigheterna för att lagra data i arkivdatalagringen. Nu ska vi ge den här nya regeln Monthlynamnet . Den definierar att säkerhetskopior ska behållas i valvets datalager i 6 månader och sedan kopieras till arkivdataarkivet. Ta sedan bort säkerhetskopiorna i valvets datalager och behåll data i 24 månader i arkivdatalagringen. Ta slutligen bort data i arkivdataarkivet.
"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"
    }
Taggningsvillkor
Varje gång du lägger till en kvarhållningsregel måste du lägga till en motsvarande tagg i Trigger principens egenskap. I följande exempel skapas en ny tagg tillsammans med villkoret (som är den första lyckade säkerhetskopieringen i månaden) med exakt samma namn som motsvarande kvarhållningsregel som ska tillämpas.
I det här exemplet ska taggvillkoren namnges Monthly:
{
  "criteria": [
    {
      "absoluteCriteria": [
        "FirstOfMonth"
      ],
      "objectType": "ScheduleBasedBackupCriteria"
    }
  ],
  "isDefault": false,
  "tagInfo": {
    "tagName": "Monthly"
  },
  "taggingPriority": 15
}
När du har lagt till alla ändringar visas principens JSON på följande sätt:
{
  "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"
    }
  ]
}
Mer information om hur du skapar principer finns i Skapa en säkerhetskopieringsprincip.
Kontrollera svaret
Skapandet eller uppdateringen av säkerhetskopieringsprincipen är en synkron åtgärd. När åtgärden har slutförts returneras följande statussvar med principinnehållet i svarstexten.
| Namn | Typ | Beskrivning | 
|---|---|---|
200 OK | 
BaseBackupPolicyResource | 
Åtgärden har slutförts. | 
Exempelsvar
{
    "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"
}
Relaterat innehåll
- Säkerhetskopiera Azure-diskar med hjälp av REST-API:et för dataskydd.
 - REST API för Azure Backup Data Protection.
 - Azure REST API-referens.
 - Spåra säkerhetskopierings- och återställningsjobb med hjälp av REST-API:et i Azure Backup.
 - Hantera en Azure Database for PostgreSQL-server med hjälp av Azure-portalen.