Importar um arquivo DMP

Para restaurar um arquivo de banco de dados binário em um cluster do AlloyDB para PostgreSQL, é possível importar um arquivo DMP criado pela ferramenta pg_dump usando o formato custom ou directory.

Para importar um arquivo criado pela ferramenta pg_dump usando o formato plain, consulte Importar um arquivo SQL.

O procedimento para realizar a importação envolve estas tarefas:

  1. Faça upload de um arquivo DMP para um bucket do Cloud Storage.

  2. Prepare um host cliente para realizar a operação de importação.

  3. Importe o arquivo DMP para o banco de dados.

  4. Limpe os recursos criados para realizar o procedimento.

Antes de começar

  • Você precisa ter o papel básico do IAM de Proprietário (roles/owner) ou Editor (roles/editor) no projeto do Google Cloud que está usando ou ter estes papéis predefinidos do IAM:
    • Administrador do AlloyDB (roles/alloydb.admin) ou Leitor do AlloyDB (roles/alloydb.viewer)
    • Administrador do Storage (roles/storage.admin)
    • Administrador da instância do Compute (v1) (roles/compute.instanceAdmin.v1)

Fazer upload do arquivo DMP

Para enviar o arquivo DMP, crie um bucket do Cloud Storage e envie o arquivo DMP para ele.

  1. Crie um bucket de Standard Storage, Regional Storage no projeto e na região em que está o banco de dados AlloyDB.

  2. Faça upload do arquivo DMP para o bucket de armazenamento que você criou.

Preparar um host cliente

Para preparar um host cliente para realizar a operação de importação, crie uma VM do Compute Engine que possa se conectar à instância principal do AlloyDB em que o banco de dados está localizado e instale a ferramenta pg_restore e a Google Cloud CLI nessa VM.

  1. Siga as instruções em Conectar um cliente psql a uma instância para criar uma VM do Compute Engine com a conectividade adequada e a ferramenta pg_restore instalada. Ao seguir estas instruções, aloque armazenamento local suficiente para a VM do Compute Engine para acomodar o arquivo DMP que você está importando.

  2. Instale a CLI gcloud para fornecer acesso de linha de comando ao arquivo DMP no bucket do Cloud Storage.

Importar o arquivo DMP

Para importar o arquivo DMP, pegue o endereço IP da instância primária do AlloyDB em que o banco de dados está e use a ferramenta pg_restore para importar o arquivo para o banco de dados.

  1. Para conferir o endereço IP da instância principal do AlloyDB em que o banco de dados está, acesse os detalhes dela.
  2. Conecte-se por SSH à VM do Compute Engine.

    Console

    1. No console do Google Cloud , acesse a página Instâncias de VM.

      Acessar instâncias de VM

    2. Na lista de instâncias de máquina virtual, clique em SSH na linha da instância que você criou.

      Botão "SSH" ao lado do nome da instância.

    gcloud

    Use o comando gcloud compute ssh para se conectar à instância que você criou.

    gcloud compute ssh --project=PROJECT_ID --zone=ZONE VM_NAME

    Substitua:

    • PROJECT_ID: o ID do projeto que contém a instância.
    • ZONE: o nome da zona em que a instância está localizada.
    • VM_NAME: o nome da instância
  3. Copie o arquivo DMP para o sistema de arquivos local do host do cliente:
    gcloud storage cp gs://BUCKET_NAME/DMP_FILE_NAME .
  4. Execute o comando a seguir para criar um arquivo TOC que comente todas as instruções EXTENSION:
    pg_restore \
    -l DMP_FILE_NAME | sed -E 's/(.* EXTENSION )/; \1/g' > TOC_FILE_NAME

    Substitua:

    • DMP_FILE_NAME: o arquivo DMP no sistema de arquivos local.
    • TOC_FILE_NAME: forneça um nome para o arquivo de TOC a ser criado no sistema de arquivos local.
  5. Importe o arquivo DMP:
    pg_restore -h IP_ADDRESS -U postgres \
      -d DB_NAME \
      -L TOC_FILE_NAME \
      DMP_FILE_NAME

    Substitua:

    • IP_ADDRESS: o endereço IP da instância principal.
    • DB_NAME: o nome do banco de dados para onde os dados serão importados.
    • TOC_FILE_NAME: o arquivo TOC que você criou na etapa anterior.
    • DMP_FILE_NAME: o arquivo DMP.

    O comando pg_restore oferece várias outras opções para controlar a operação de importação de dados.

Limpar recursos

Depois de importar o arquivo DMP, exclua o bucket do Cloud Storage e a VM do Compute Engine que você usou durante o procedimento de importação.