Importar um arquivo DMP

Esta página descreve como importar para um banco de dados do AlloyDB 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 do arquivo DMP em um bucket do Cloud Storage.

  2. Prepare um host de 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

  • É necessário ter a função básica de proprietário (roles/owner) ou editor (roles/editor) do IAM no projeto do Google Cloud que você 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 armazenamento regional padrão no projeto e na região em que está localizado o banco de dados AlloyDB.

  2. Faça o upload do arquivo DMP para o bucket de armazenamento criado.

Preparar um host de cliente

Para preparar um host do 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 seu banco de dados está localizado e instale a ferramenta pg_restore e a Google Cloud CLI nessa VM.

  1. Siga as instruções 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 e adapte o arquivo DMP que você está importando.

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

Importar o arquivo DMP

Para importar o arquivo DMP, você precisa saber o endereço IP da instância principal do AlloyDB em que seu banco de dados está localizado e usar a ferramenta pg_restore para importar o arquivo para o banco de dados.

  1. Acesse o endereço IP da instância principal do AlloyDB em que seu banco de dados está localizado confira os detalhes.
  2. Conecte-se por SSH à VM do Compute Engine.

    Console

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

      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 criada.

    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 abaixo para criar um arquivo de índice que comenta todas as instruções EXTENSION:
    pg_restore \
    -l DMP_FILE_NAME | sed -E 's/(.* EXTENSION )/; \1/g' > TOC_FILE_NAME
    • DMP_FILE_NAME: o arquivo DMP no sistema de arquivos local.
    • TOC_FILE_NAME: fornece um nome de arquivo 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
    
    • IP_ADDRESS: o endereço IP da instância principal.
    • DB_NAME: o nome do banco de dados para importar.
    • TOC_FILE_NAME: o arquivo de 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, você pode excluir o bucket do Cloud Storage e a VM do Compute Engine usada durante o procedimento de importação.