Återställa Azure PostgreSQL-databaser med hjälp av REST API för Azure-dataskydd
Artikel
Den här artikeln beskriver hur du återställer Azure PostgreSQL-databaser till en Azure PostgreSQL-server som säkerhetskopieras av Azure Backup.
Eftersom det är en PaaS-databas stöds inte alternativet Original-Location Recovery (OLR) som ska återställas genom att ersätta den befintliga databasen (varifrån säkerhetskopiorna togs). Du kan återställa från en återställningspunkt för att skapa en ny databas på samma Azure PostgreSQL-server eller på någon annan PostgreSQL-server. Detta kallas alternativ platsåterställning (ALR) som hjälper till att behålla både - källdatabasen och den återställda (nya) databasen.
Vi refererar till ett befintligt Säkerhetskopieringsvalv TestBkpVault under resursgruppen testBkpVaultRG i exemplen.
Återställa en säkerhetskopierad PostgreSQL-databas
Konfigurera behörigheter
Säkerhetskopieringsvalvet använder hanterad identitet för att få åtkomst till andra Azure-resurser. För att återställa från säkerhetskopian kräver Backup-valvets hanterade identitet en uppsättning behörigheter på Azure PostgreSQL-servern som databasen ska återställas till.
För att återställa återställningspunkten som filer till ett lagringskonto behöver Backup-valvets systemtilldelade hanterade identitet åtkomst till mållagringskontot enligt beskrivningen här.
Hämtar relevant återställningspunkt
Om du vill visa en lista över alla tillgängliga återställningspunkter för en säkerhetskopieringsinstans använder du api:et för liståterställningspunkter .
HTTP
GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataProtection/backupVaults/{vaultName}/backupInstances/{backupInstanceName}/recoveryPoints?api-version=2021-07-01
Det här API:et översätts till exempel till:
HTTP
GET https://management.azure.com/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourceGroups/TestBkpVaultRG/providers/Microsoft.DataProtection/backupVaults/testBkpVault/backupInstances/testpostgresql-empdb11-aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/recoveryPoints?api-version=2021-07-01
Svar för lista över återställningspunkter
När du har skickat GET begäran returneras svaret som 200 (OK) och listan över alla diskreta återställningspunkter med all relevant information.
Om du vill hämta återställningspunkten från arkivnivån ändrar du typvariabeln i recoveryPointDataStoreDetails som ArchiveStore.
Välj relevanta återställningspunkter i listan ovan och förbered återställningsbegäran. Vi väljer en återställningspunkt med namnet 794ead7c7661410da03997d210d469e7 från listan ovan för att återställa.
Förbereda återställningsbegäran
Det finns olika återställningsalternativ för en PostgreSQL-databas. Du kan återställa återställningspunkten som en annan databas eller återställa som filer. Återställningspunkten kan också finnas på arkivnivå.
Återställa som databas
Skapa Azure Resource Manager-ID (ARM-ID) för den nya PostgreSQL-databasen som ska skapas med PostgreSQL-målservern, till vilken behörigheter tilldelades enligt beskrivningen ovan, och det nödvändiga PostgreSQL-databasnamnet. En PostgreSQL-databas kan till exempel namnges emprestored21 under en PostgreSQL-målserver targetossserver i resursgruppen targetrg med en annan prenumeration.
Hämta containerns URI i lagringskontot som behörigheterna tilldelades enligt beskrivningen ovan. Till exempel en container med namnet testcontainerrestore under ett lagringskonto testossstorageaccount med en annan prenumeration.
För arkivbaserad återställningspunkt ändrar du källdatalagringen och lägger till återfuktningsprioriteten och kvarhållningstiden i dagar för den rehydrerade återställningspunkten enligt nedan:
När begärandetexten har förberetts verifierar du den med hjälp av verifieringen för återställnings-API:et. Precis som validera för API för säkerhetskopiering är detta en POST-åtgärd .
HTTP
POST https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataProtection/backupVaults/{vaultName}/backupInstances/{backupInstanceName}/validateRestore?api-version=2021-07-01
Det här API:et översätts till exempel till:
HTTP
POST "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/testBkpVaultRG/providers/Microsoft.DataProtection/backupVaults/testBkpVault/backupInstances/testpostgresql-empdb11-aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/ValidateRestore?api-version=2021-07-01"
Läs mer om begärandetexten för det här POST-API:et.
Begärandetext för att verifiera återställningsbegäran
Vi har konstruerat ett avsnitt av samma i ovanstående avsnitt. Nu ska vi lägga till objekttyp och använda den för att utlösa en verifieringsåtgärd.
Spåra Azure-AsyncOperation-huvudet med en enkel GET-begäran. När begäran lyckas returneras 200 (OK) med ett statussvar.
HTTP
GET https://management.azure.com/subscriptions/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f/providers/Microsoft.DataProtection/locations/westus/operationStatus/YWJjMGRmMzQtNTY1NS00MGMyLTg4YmUtMTUyZDE3ZjdiNzMyOzY4NDNmZWZkLWU4ZTMtNDM4MC04ZTJhLWUzMTNjMmNhNjI1NA==?api-version=2021-07-01
Svaret anger fel som måste lösas innan återställningsbegäran skickas. Följande exempel representerar när måldatabasen har en lägre version och därför inte kan återställas.
Utlösaråterställningsåtgärden är ett POST-API.Läs mer om utlösaråterställningsåtgärden.
HTTP
POST https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataProtection/backupVaults/{vaultName}/backupInstances/{backupInstanceName}/restore?api-version=2021-07-01
API:et översätts till exempel till:
HTTP
POST "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/testBkpVaultRG/providers/Microsoft.DataProtection/backupVaults/testBkpVault/backupInstances/testpostgresql-empdb11-aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/restore?api-version=2021-07-01"
Skapa en begärandetext för återställningsåtgärder
När begäranden har verifierats använder du samma begärandetext för att utlösa återställningsbegäran med mindre ändringar.
Exempel på begärandetext för återställning
Den enda ändringen från brödtexten för verifieringsbegäran är att ta bort objektet restoreRequest i början.
Spåra Azure-AsyncOperation-huvudet med en enkel GET-begäran. När begäran lyckas returnerar den 200 (OK) med ett jobb-ID som ska spåras ytterligare för slutförande av återställningsbegäran.
Begäranden om återställning av utlösare utlöser återställningsjobbet. Om du vill spåra det resulterande jobb-ID:t använder du API:et GET-jobb.
Använd det enkla GET-kommandot för att spåra JobId som finns i återställningssvaret för utlösaren ovan.
HTTP
GET /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourceGroups/TestBkpVaultRG/providers/Microsoft.DataProtection/backupVaults/testBkpVault/backupJobs/cccc2c2c-dd3d-ee4e-ff5f-aaaaaa6a6a6a?api-version=2021-07-01
Jobbstatusen ovan anger att återställningsjobbet är klart.
Administrera en SQL Server-databasinfrastruktur för molndatabaser, lokala databaser och hybridrelationsdatabaser med hjälp av microsoft PaaS-relationsdatabaserbjudanden.