Compartilhar via


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

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

Pré-requisitos

Antes de restaurar a partir de backups do Azure Database para servidor flexível PostgreSQL, examine 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 Backup como um blob dentro do cliente da 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 da restauração tem a propriedade AllowCrossTenantReplication definida como true.

  • Certifique-se de que a conta de armazenamento de destino para restaurar o backup como arquivo esteja acessível por meio 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 backups de servidor flexível como dados do Azure para PostgreSQL

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 PostgreSQL-Flexible do Azure, 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, acesse o Centro de backup e selecione Restaurar.

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

  3. Escolha a conta de armazenamento e o contêiner de destino na guia Parâmetros de restauração. Selecione Validar para verificar as permissões dos parâmetros de restauração antes da revisão final e da restauração.

  4. Quando a validação for bem-sucedida, selecione Examinar + restaurar.

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

  6. Envie a operação de restauração e acompanhe o trabalho disparado 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 exibir os bancos de dados restaurados como arquivos (.sql arquivos) do seu PostgreSQL – servidor Flexible. 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 toda a instância: contém todas as informações de função que existem no nível do servidor.

  • Tablespace.sql file: arquivo do espaço de tabela.

  • 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 PostgreSQL – Servidor flexível porque o esquema já faz parte do database.sql script.

Restaurar 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 PostgreSQL novo ou existente – servidor flexível, siga estas etapas:

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

  2. Corresponda os valores de parâmetro 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, habilite-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 banco de dados novo e vazio. Verifique se sua conta de usuário tem a CREATEDB permissão.

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

  5. Restaure o banco de dados usando o database.sql file como o 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 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 da Conta de Armazenamento.
    • -Fd: o formato do diretório.
    • -j: o número de trabalhos.
    • -C: inicie 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 você 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 armazenados em cofre são restaurados principalmente para fins de conformidade, como testes e auditorias. Você pode entrar como administrador local e restaurar usando o database.sql arquivo; nenhuma outra função é necessária para recuperação de dados.

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

  • Restaure 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 arquivo roles.sql para recriar as funções necessárias.

Quando você 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 apenas para superusuários: 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 usuários Service-Specific: excluir usuários específicos dos 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 logons necessários.

  • Criar funções não Entra: use uma conta de administrador local para executar os scripts de criação de funções.
  • 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 de sua conta de armazenamento, conforme mostrado na seguinte captura de tela:

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:

  • Removendo atributos que podem ser definidos apenas por superusuários: se você migrar para um ambiente em que não tenha privilégios de superusuário, remova atributos como NOSUPERUSER e NOBYPASSRLS do despejo de funções.
  • Excluindo usuários específicos do serviço: excluir usuários de serviço de servidor único, como azure_superuser ou azure_pg_admin. Elas são específicas para o serviço e são criadas 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

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

Próximas etapas

Gerenciar o backup do Azure PostgreSQL – Servidor Flexível usando o portal do Azure.