Återställ Azure PostgreSQL-Flexible-servern som filer via Azure-portalen

Den här artikeln beskriver hur du återställer en Azure PostgreSQL-Flexible-server som är säkerhetskopierad som filer med hjälp av Azure-portalen.

Förutsättningar

Innan du återställer från Azure Database for PostgreSQL – flexibel serversäkerhetskopiering bör du läsa följande krav:

  • Kontrollera att du har de behörigheter som krävs för återställningsåtgärden.

  • Säkerhetskopieringsdata lagras i Säkerhetskopieringsvalvet som en blob i Microsoft-klientorganisationen. Under en återställning kopieras säkerhetskopieringsdata från ett lagringskonto till ett annat mellan klienter. Kontrollera att mållagringskontot för återställningen har egenskapen AllowCrossTenantReplication inställd på true.

  • Kontrollera att mållagringskontot för återställning av säkerhetskopior som en fil är tillgängligt via ett offentligt nätverk. Om lagringskontot använder en privat slutpunkt uppdaterar du inställningarna för åtkomst till det offentliga nätverket innan du kör en återställningsåtgärd.

Återställ Azure PostgreSQL - Backup av flexibla servrar som filer

Anmärkning

Återställningsåtgärden är en tvåstegsprocess:

  1. Återställ säkerhetskopieringen från Backup-valvet till en lagringscontainer.
  2. Återställ säkerhetskopieringsfilerna från lagringscontainern till en ny eller befintlig flexibel server.

Följ dessa steg för att återställa Azure PostgreSQL-Flexible-databasen:

  1. Gå till Säkerhetskopieringsvalv>Säkerhetskopieringsinstanser. Välj den PostgreSQL – flexibel server som ska återställas och välj Återställ.

    Du kan också gå till Säkerhetskopieringscenter och välja Återställ.

  2. Välj den tidpunkt som du vill återställa med hjälp av Välj återställningspunkt. Ändra datumintervallet genom att välja Tidsperiod.

  3. Välj mållagringskontot och containern på fliken Återställningsparametrar . Välj Verifiera om du vill kontrollera behörigheterna för återställningsparametrar innan den slutliga granskningen och återställningen.

  4. När valideringen lyckas väljer du Granska + återställa.

  5. När du har slutfört granskningen av parametrarna väljer du Återställ för att återställa den valda PostgreSQL – flexibel serversäkerhetskopiering i mållagringskontot.

  6. Utför återställningsoperationen och spåra det utlösta jobbet under Säkerhetskopieringsjobb.

När återställningsjobbet har slutförts går du till containern för lagringskontot för att visa de återställda databaserna som filer (.sql filer) från postgreSQL – flexibel server. Azure Backup genererar också följande säkerhetskopieringsfiler:

  • Database.sql file per databas: Innehåller data och schemainformation för en viss databas.

  • Roles.sql files för hela instansen: Innehåller all rollinformation som finns på servernivå.

  • Tablespace.sql file: Tablespace-fil.

  • Schema.sql file: Innehåller schemainformation för alla databaser på servern.

    Anmärkning

    Vi rekommenderar att du inte kör det här skriptet på PostgreSQL – flexibel server eftersom schemat redan är en del av skriptet database.sql .

Återställa säkerhetskopieringsfilerna från lagringscontainern till en ny eller befintlig PostgreSQL – flexibel server

Följ dessa steg för att återställa säkerhetskopieringsfilerna från lagringscontainern till en ny eller befintlig PostgreSQL – flexibel server:

  1. Se till att alla nödvändiga tillägg är aktiverade på den nya flexibla målservern.

  2. Matcha serverparametervärdena från PostgreSQL-källdatabasen till Azure Database for PostgreSQL genom att gå till avsnittet Serverparametrar i Azure-portalen och uppdatera värdena manuellt. Spara parameterändringarna och starta sedan om Azure Database for PostgreSQL – flexibel server för att tillämpa den nya konfigurationen.

  3. Om Microsoft Entra-autentisering krävs på den nya servern aktiverar du den och skapar relevanta Microsoft Entra-administratörer.

  4. Skapa en ny databas för återställning.

    Anmärkning

    Innan databasen återställs måste du skapa en ny, tom databas. Kontrollera att ditt användarkonto har behörigheten CREATEDB .

    Om du vill skapa databasen använder du kommandot CREATE DATABASE Database_name.

  5. Återställ databasen med hjälp av database.sql file som måladministratörsanvändare.

  6. När måldatabasen har skapats laddar du ned dumpfilen från ett Azure Storage-konto genom att köra följande kommando:

    az storage blob download --container-name <container-name> --name <blob-name> --account-name <storage-account-name> --account-key <storage-account-key> --file <file-name>
    
  7. Återställ sedan data i den här databasen från dumpfilen genom att köra följande kommando:

    pg_restore -h <postgres-server-url> -p <port> -U <username> -d <database-name> --no-owner -v <File Name>
    
    • --account-name: Namnet på mållagringskontot.
    • --container-name: Namnet på blobcontainern.
    • --blob-name: Blobens namn.
    • --account-key: Lagringskontonyckel.
    • -Fd: Katalogformatet.
    • -j: Antalet jobb.
    • -C: Börja utdata med ett kommando för att skapa själva databasen och sedan återansluta till den.

    Anmärkning

    Om kommandot inte körs som förväntat anger du den fullständiga filsökvägen i stället för att bara använda filnamnet.

    Du kan också ladda ned säkerhetskopieringsfilen och köra återställningen direkt.

  8. Återställ endast de roller och behörigheter som krävs och ignorera de vanliga felen. Hoppa över det här steget om du utför återställningen för efterlevnadskrav och datahämtning som lokal administratör.

Återställa roller och användare för de återställde databaserna

Välvda säkerhetskopior återställs främst för efterlevnadsbehov som testning och granskningar. Du kan logga in som lokal administratör och återställa med hjälp av database.sql filen. Inga andra roller behövs för datahämtning.

För andra användningsområden som oavsiktligt borttagningsskydd eller haveriberedskap ska du se till att nödvändiga roller skapas enligt organisationens behov. Undvik dupliceringar mellan roles.sql och database.sql.

  • Återställ samma flexibla server: Rollåterställning kanske inte behövs.
  • Återställ till en annan flexibel server: Använd roles.sql filen för att återskapa de roller som krävs.

När du återställer från roles.sqlkanske vissa roller eller attribut inte är giltiga för den nya målservern.

För miljöer med superanvändaråtkomst (lokalt eller virtuella datorer) kan du köra alla kommandon sömlöst.

Viktiga överväganden för scenariot flexibel server

Här är de viktigaste övervägandena:

  • Ta bort Superuser-Only attribut: På flexibel server finns det inga superanvändarbehörigheter. Ta bort attributen, till exempel NOSUPERUSER och NOBYPASSRLS från rollutdraget.
  • Exkludera Service-Specific användare: Exkludera användare som är specifika för flexibla servertjänster ( azure_su, , azure_pg_adminreplication, localadmin, Entra Admin). Dessa specifika tjänstroller återskapas automatiskt när administratörer läggs till på den nya flexibla servern.

Innan du återställer databasobjekten ska du se till att du dumpar och rensar rollerna korrekt. Om du vill utföra den här åtgärden laddar du ned skriptet roles.sqlfrån lagringscontainern och skapar alla nödvändiga inloggningar.

  • Skapa icke-Entra-roller: Använd ett lokalt administratörskonto för att köra skripten för att skapa roller.
  • Skapa Microsoft Entra-roller: Om du behöver skapa roller för Microsoft Entra-användare använder du ett Microsoft Entra-administratörskonto för att köra nödvändiga skript.

Du kan ladda ned rollskriptet från ditt lagringskonto enligt följande skärmbild:

När du migrerar utdatafilen roles.sql kan det innehålla vissa roller och attribut som inte är tillämpliga i den nya miljön. Du måste tänka på följande:

  • Ta bort attribut som bara kan anges av superanvändare: Om du migrerar till en miljö där du inte har superanvändarbehörighet tar du bort attribut som NOSUPERUSER och NOBYPASSRLS från rolldumpningen.
  • Exkludera tjänstspecifika användare: Exkludera användare av en enskild servertjänst, till exempel azure_superuser eller azure_pg_admin. Dessa är specifika för tjänsten och skapas automatiskt i den nya miljön.

Använd följande sed-kommando för att rensa rolldumpningen:

sed -i '/azure_superuser/d; /azure_pg_admin/d; /azuresu/d; /^CREATE ROLE replication/d; /^ALTER ROLE replication/d; /^ALTER ROLE/ {s/NOSUPERUSER//; s/NOBYPASSRLS//;}' roles.sql

Det här kommandot tar bort raderna som innehåller azure_superuser, azure_pg_admin, azuresu, rader som börjar med CREATE ROLE-replikering och ALTER ROLE-replikering , och tar bort attributen NOSUPERUSER och NOBYPASSRLS från ALTER ROLE-uttrycken .

Nästa steg

Hantera säkerhetskopiering av Azure PostgreSQL – flexibel server med hjälp av Azure-portalen.