Sdílet prostřednictvím


Obnovení serveru Azure PostgreSQL-Flexible jako souborů pomocí webu Azure Portal

Tento článek popisuje, jak obnovit server Azure PostgreSQL-Flexible jako soubory zálohované pomocí webu Azure Portal.

Požadavky

Než obnovíte zálohy flexibilního serveru Azure Database for PostgreSQL, projděte si následující požadavky:

  • Ujistěte se, že máte požadovaná oprávnění pro operaci obnovení.

  • Zálohovaná data se ukládají v úložišti záloh jako blobový objekt v rámci tenanta poskytovaného společností Microsoft. Během operace obnovení se zálohovaná data zkopírují z jednoho účtu úložiště do druhého napříč tenanty. Ujistěte se, že cílový účet úložiště pro obnovení má vlastnost AllowCrossTenantReplication nastavenou na hodnotu true.

  • Ujistěte se, že cílový účet úložiště pro obnovení zálohy jako souboru je přístupný prostřednictvím veřejné sítě. Pokud účet úložiště používá privátní koncový bod, před provedením operace obnovení aktualizujte nastavení přístupu k veřejné síti .

Obnovení záloh flexibilního serveru Azure PostgreSQL jako souborů

Poznámka:

Operace obnovení je dvoustupňový proces:

  1. Obnovte zálohu z trezoru služby Backup do kontejneru úložiště.
  2. Obnovte záložní soubory z kontejneru úložiště na nový nebo existující flexibilní server.

Pokud chcete obnovit databázi Azure PostgreSQL-Flexible, postupujte takto:

  1. Přejděte do služby Backup Vault>Backup Instances. Vyberte flexibilní server PostgreSQL, který chcete obnovit, a vyberte Obnovit.

    Případně přejděte do Centra zálohování a vyberte Obnovit.

  2. Pomocí možnosti Vybrat bod obnovení vyberte bod v čase, který chcete obnovit. Změňte rozsah dat výběrem časového období.

  3. Na kartě Parametry obnovení zvolte cílový účet úložiště a kontejner. Před konečnou kontrolou a obnovením vyberte Ověřit pro ověření oprávnění parametrů obnovení.

  4. Po úspěšném ověření vyberte Zkontrolovat a obnovit.

  5. Po závěrečné kontrole parametrů vyberte Obnovit a obnovte vybranou zálohu flexibilního serveru PostgreSQL v cílovém účtu úložiště.

  6. Odešlete operaci obnovení a sledujte aktivovanou úlohu v rámci úloh zálohování.

Po úspěšném dokončení úlohy obnovení přejděte do kontejneru účtu úložiště a zobrazte obnovené databáze jako soubory (.sql soubory) z vašeho flexibilního serveru PostgreSQL. Azure Backup také generuje následující záložní soubory:

  • Database.sql file pro každou databázi: Obsahuje informace o datech a schématu pro konkrétní databázi.

  • Roles.sql files pro celou instanci: Obsahuje všechny informace o rolích, které existují na úrovni serveru.

  • Tablespace.sql file: Soubor Tablespace.

  • Schema.sql file: Obsahuje informace o schématu pro všechny databáze na serveru.

    Poznámka:

    Doporučujeme nespouštět tento skript na flexibilním serveru PostgreSQL, protože schéma je již součástí database.sql skriptu.

Obnovení záložních souborů z kontejneru úložiště na nový nebo existující server PostgreSQL – Flexibilní server

Pokud chcete obnovit záložní soubory z kontejneru úložiště na nový nebo existující flexibilní server PostgreSQL, postupujte takto:

  1. Ujistěte se, že jsou na novém cílovém flexibilním serveru povolená všechna požadovaná rozšíření.

  2. Porovná hodnoty parametrů serveru ze zdrojové databáze PostgreSQL se službou Azure Database for PostgreSQL tak, že přistupujete k části Parametry serveru na webu Azure Portal a odpovídajícím způsobem hodnoty aktualizujete ručně. Uložte změny parametrů a restartujte flexibilní server Azure Database for PostgreSQL, aby se použila nová konfigurace.

  3. Pokud je na novém serveru vyžadováno ověřování Microsoft Entra , povolte ho a vytvořte příslušné správce Microsoft Entra.

  4. Vytvořte novou databázi pro obnovení.

    Poznámka:

    Před obnovením databáze je nutné vytvořit novou prázdnou databázi. Ujistěte se, že váš uživatelský účet má CREATEDB oprávnění.

    K vytvoření databáze použijte příkaz CREATE DATABASE Database_name.

  5. Obnovte databázi pomocí database.sql file jako cílového správce.

  6. Po vytvoření cílové databáze stáhněte dump soubor z účtu Azure Storage pomocí následujícího příkazu:

    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. Potom obnovte data v této databázi z dump souboru spuštěním následujícího příkazu:

    pg_restore -h <postgres-server-url> -p <port> -U <username> -d <database-name> --no-owner -v <File Name>
    
    • --account-name: Název cílového účtu úložiště.
    • --container-name: Název kontejneru objektů blob.
    • --blob-name: Název blobu.
    • --account-key: Klíč účtu úložiště.
    • -Fd: Formát adresáře.
    • -j: Počet pracovních míst.
    • -C: Spusťte výstup příkazem pro vytvoření samotné databáze a pak se k ní znovu připojte.

    Poznámka:

    Pokud se příkaz nespustí podle očekávání, místo názvu souboru zadejte úplnou cestu k souboru.

    Případně si můžete stáhnout záložní soubor a spustit obnovení přímo.

  8. Obnovte pouze požadované role a oprávnění a ignorujte běžné chyby. Přeskočte tento krok, pokud jako místní správce provádíte obnovení pro účely dodržení předpisů a načítání dat.

Obnovení rolí a uživatelů pro obnovené databáze

Trezorované zálohy se primárně obnovují pro potřeby dodržování předpisů, jako jsou testování a audity. Můžete se přihlásit jako místní správce a obnovit pomocí souboru database.sql; k načtení dat nejsou potřeba žádné další role.

U jiných použití, jako je ochrana před náhodným odstraněním nebo zotavení po havárii, se ujistěte, že jsou vytvořené nezbytné role podle potřeb vaší organizace. Vyhněte se duplikacím mezi roles.sql a database.sql.

  • Obnovení stejného flexibilního serveru: Obnovení role nemusí být nutné.
  • Obnovení na jiný flexibilní server: Pomocí roles.sql souboru znovu vytvořte požadované role.

Při obnovení z roles.sql, některé role nebo atributy nemusí být platné pro nový cílový server.

Pro prostředí s přístupem superuživatele (místní nebo virtuální počítače) můžete bez problémů spouštět všechny příkazy.

Klíčové aspekty scénáře flexibilního serveru

Tady jsou klíčové aspekty:

  • Odstraňte Superuser-Only atributy: Na flexibilním serveru nejsou k dispozici žádné privilegia superuživatele. Odeberte atributy, jako NOSUPERUSER a NOBYPASSRLS z výpisu rolí.
  • Vyloučit Service-Specific Uživatele: Vyloučit uživatele specifické pro flexibilní serverové služby ( azure_su, azure_pg_admin, replication, localadmin, Entra Admin). Tyto konkrétní role služby se automaticky znovu vytvoří, když se správci přidají na nový flexibilní server.

Před obnovením databázových objektů se ujistěte, že jste správně vypsali a vyčistili role. Pokud chcete tuto akci provést, stáhněte roles.sqlskript z kontejneru úložiště a vytvořte všechna požadovaná přihlášení.

  • Vytvořit jiné role než Entra: Ke spuštění skriptů pro vytváření rolí použijte účet místního správce.
  • Vytvořte role Microsoft Entra: Pokud potřebujete vytvořit role pro uživatele Microsoft Entra, použijte účet správce Microsoft Entra ke spuštění potřebných skriptů.

Skript rolí si můžete stáhnout z účtu úložiště, jak je znázorněno na následujícím snímku obrazovky:

Při migraci výstupního souboru může zahrnovat určité role a atributy, roles.sql které nejsou v novém prostředí použitelné. Musíte zvážit následující:

  • Odebrání atributů, které můžou nastavit jenom superuživatelé: Pokud migrujete do prostředí, kde nemáte oprávnění superuživatele, odeberte z výpisu stavu rolí atributy, jako je NAPŘÍKLAD NOSUPERUSER a NOBYPASSRLS .
  • Vyloučení uživatelů specifických pro službu: Vyloučit uživatele jednoúčelové služby, například azure_superuser nebo azure_pg_admin. Ty jsou specifické pro službu a automaticky se vytvoří v novém prostředí.

K vyčištění výpisu rolí použijte následující příkaz sed:

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

Tento příkaz odstraní řádky obsahující azure_superuser, azure_pg_admin nebo azuresu, řádky začínající replikací CREATE ROLE a ALTER ROLE, a odebere atributy NOSUPERUSER a NOBYPASSRLS z příkazů ALTER ROLE.

Další kroky

Správa zálohování flexibilního serveru Azure PostgreSQL pomocí webu Azure Portal