Partilhar via


Restaurar o servidor PostgreSQL-Flexible do Azure como Arquivos usando o portal do Azure

Este artigo descreve como restaurar um servidor do Azure PostgreSQL-Flexible como arquivos com backup usando o portal do Azure.

Pré-requisitos

Antes de restaurar a partir do Banco de Dados do Azure para backups de servidor flexíveis do PostgreSQL, revise os seguintes pré-requisitos:

  • Verifique se você tem as permissões necessárias para a operação de restauração.

  • Os dados de backup são armazenados no cofre de backups como um blob dentro do inquilino Microsoft. Durante uma operação de restauração, os dados de backup são copiados de uma conta de armazenamento para outra entre locatários. Verifique se a conta de armazenamento de destino para a restauração tem a propriedade AllowCrossTenantReplication definida como true.

  • Verifique se a conta de armazenamento de destino para restaurar o backup em forma de arquivo está acessível através de uma rede pública. Se a conta de armazenamento usar um ponto de extremidade privado, atualize suas configurações de acesso à rede pública antes de executar uma operação de restauração.

Restaurar o Azure PostgreSQL - Backups flexíveis do servidor como arquivos

Observação

A operação de restauração é um processo de duas etapas:

  1. Restaure o backup do cofre de backup para um contêiner de armazenamento.
  2. Restaure os arquivos de backup do contêiner de armazenamento para um servidor flexível novo ou existente.

Para restaurar o banco de dados do Azure PostgreSQL-Flexible, siga estas etapas:

  1. Vá para Cofre de Backup>Instâncias de Backup. Selecione o PostgreSQL - Servidor flexível a ser restaurado e selecione Restaurar.

    Como alternativa, vá para Centro de backup e selecione Restaurar.

  2. Selecione o ponto no tempo que deseja restaurar usando Selecionar ponto de restauração. Altere o intervalo de datas selecionando Período de tempo.

  3. Escolha a conta de armazenamento de destino e o contentor no separador Parâmetros de Restauração. Selecione Validar para verificar as permissões dos parâmetros de restauração antes da revisão final e restauração.

  4. Quando a validação for bem-sucedida, selecione Revisão + restauração.

  5. Após a revisão final dos parâmetros, selecione Restaurar para restaurar o PostgreSQL selecionado - Backup flexível do servidor na conta de armazenamento de destino.

  6. Envie a operação Restaurar e acompanhe o trabalho acionado em Trabalhos de backup.

Depois que o trabalho de restauração for concluído com êxito, vá para o contêiner da conta de armazenamento para visualizar os bancos de dados restaurados como arquivos (.sql arquivos) do seu servidor PostgreSQL – Flexível. O Backup do Azure também gera os seguintes arquivos de backup:

  • Database.sql file por banco de dados: contém dados e informações de esquema para um banco de dados específico.

  • Roles.sql files para instância inteira: contém todas as informações de função que existem no nível do servidor.

  • Tablespace.sql file: Arquivo Tablespace.

  • Schema.sql file: Contém informações de esquema para todos os bancos de dados no servidor.

    Observação

    Recomendamos que você não execute esse script no servidor PostgreSQL - Flexível porque o esquema já faz parte do database.sql script.

Restaure os arquivos de backup do contêiner de armazenamento para um PostgreSQL novo ou existente – Servidor flexível

Para restaurar os arquivos de backup do contêiner de armazenamento para um servidor PostgreSQL – Flexível novo ou existente, siga estas etapas:

  1. Certifique-se de que todas as extensões necessárias estão habilitadas no novo servidor flexível de destino.

  2. Corresponda os valores dos parâmetros do servidor do banco de dados PostgreSQL de origem ao Banco de Dados do Azure para PostgreSQL acessando a seção Parâmetros do servidor no portal do Azure e atualizando manualmente os valores de acordo. Salve as alterações de parâmetro e reinicie o Banco de Dados do Azure para PostgreSQL - Servidor flexível para aplicar a nova configuração.

  3. Se a Autenticação do Microsoft Entra for necessária no novo servidor, ative-a e crie os administradores relevantes do Microsoft Entra.

  4. Crie um novo banco de dados para restauração.

    Observação

    Antes da restauração do banco de dados, você deve criar um novo banco de dados vazio. Certifique-se de que a sua conta de utilizador tem a CREATEDB permissão.

    Para criar o banco de dados, use o comando CREATE DATABASE Database_name.

  5. Restaure o banco de dados usando o database.sql file como usuário administrador de destino.

  6. Depois que o banco de dados de destino for criado, baixe o arquivo de despejo de uma conta de Armazenamento do Azure executando o seguinte comando:

    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. Em seguida, restaure os dados neste banco de dados a partir do arquivo de despejo executando o seguinte comando:

    pg_restore -h <postgres-server-url> -p <port> -U <username> -d <database-name> --no-owner -v <File Name>
    
    • --account-name: Nome da conta de armazenamento de destino.
    • --container-name: Nome do contêiner de blob.
    • --blob-name: Nome do blob.
    • --account-key: Chave de conta de armazenamento.
    • -Fd: O formato de diretório.
    • -j: O número de postos de trabalho.
    • -C: Comece a saída com um comando para criar o próprio banco de dados e, em seguida, reconecte-se a ele.

    Observação

    Se o comando não for executado conforme o esperado, especifique o caminho completo do arquivo em vez de usar apenas o nome do arquivo.

    Como alternativa, você pode baixar o arquivo de backup e executar a restauração diretamente.

  8. Restaure apenas as funções e privilégios necessários e ignore os erros comuns. Ignore esta etapa se estiver executando a restauração para requisitos de conformidade e recuperação de dados, como administrador local.

Restaurar funções e usuários para os bancos de dados restaurados

Os backups em cofre são restaurados principalmente para atender a necessidades de conformidade, como testes e auditorias. Você pode entrar como um administrador local e restaurar usando o ficheiro database.sql; nenhuma outra função é necessária para a recuperação de dados.

Para outros usos, como proteção contra exclusão acidental ou recuperação de desastres, certifique-se de que as funções necessárias sejam criadas de acordo com as necessidades da sua organização. Evite duplicações entre roles.sql e database.sql.

  • Restaurar o mesmo servidor flexível: a restauração de função pode não ser necessária.
  • Restaurar para um servidor flexível diferente: use o roles.sql arquivo para recriar as funções necessárias.

Quando restaura de roles.sql, algumas funções ou atributos podem não ser válidos para o novo servidor de destino.

Para ambientes com acesso de superusuário (local ou VMs), você pode executar todos os comandos perfeitamente.

Principais considerações para o cenário de servidor flexível

Aqui estão as principais considerações:

  • Remover atributos Superuser-Only: no servidor flexível, não há privilégios de superusuário. Portanto, remova atributos, como NOSUPERUSER e NOBYPASSRLS do despejo de funções.
  • Excluir utilizadores Service-Specific: exclua utilizadores específicos de serviços de servidor flexível ( azure_su, azure_pg_admin, replication, localadmin, Entra Admin). Essas funções de serviço específicas são recriadas automaticamente quando os administradores são adicionados ao novo servidor flexível.

Antes de restaurar os objetos de banco de dados, certifique-se de despejar e limpar corretamente as funções. Para executar essa ação, baixe o roles.sqlscript do contêiner de armazenamento e crie todos os logins necessários.

  • Criar funções não entrantes: use uma conta de administrador local para executar os scripts de criação de função.
  • Criar funções do Microsoft Entra: se você precisar criar funções para usuários do Microsoft Entra, use uma conta de administrador do Microsoft Entra para executar os scripts necessários.

Você pode baixar o script de funções da sua conta de armazenamento, conforme mostrado na captura de tela a seguir:

Quando você migra o arquivo de saída, roles.sql pode incluir determinadas funções e atributos que não são aplicáveis no novo ambiente. Você deve considerar o seguinte:

  • Remoção de atributos que podem ser definidos apenas por superusuários: se você migrar para um ambiente onde não tem privilégios de superusuário, remova atributos como NOSUPERUSER e NOBYPASSRLS do despejo de funções.
  • Excluindo usuários específicos do serviço: exclua usuários de serviço de servidor único, como azure_superuser ou azure_pg_admin. Eles são específicos para o serviço e são criados automaticamente no novo ambiente.

Use o seguinte comando sed para limpar o despejo de funções:

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

Este comando exclui as linhas que contêm azure_superuser, azure_pg_admin, azuresu, linhas que começam com replicação CREATE ROLE e replicação ALTER ROLE e remove os atributos NOSUPERUSER e NOBYPASSRLS das instruções ALTER ROLE .

Próximos passos

Gerencie o backup do Azure PostgreSQL - Servidor flexível usando o portal do Azure.