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 para 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

  • Você precisa ter o papel básico de proprietário (roles/owner) ou editor (roles/editor) do IAM no projeto 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 faça o upload do arquivo para ele.

  1. Crie um bucket de armazenamento regional padrão no projeto e na região em que está o banco de dados AlloyDB.

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

Preparar um host de 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 acomodar o arquivo da 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, receba o endereço IP da instância primária do AlloyDB em que o banco de dados está localizado 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 primária do AlloyDB em que seu banco de dados está localizado, consulte os detalhes dela.
  2. Conecte-se por SSH à VM do Compute Engine.

    Console

    1. No console 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 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 a seguir para criar um arquivo TOC 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: forneça um nome para o arquivo 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 em que a importação será feita.
    • 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 opções adicionais 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.