Importa un archivo DMP

En esta página, se describe cómo importar a una base de datos de AlloyDB un archivo de DMP que creó la herramienta pg_dump con el formato custom o directory.

Para importar un archivo creado por la herramienta pg_dump con el formato plain, consulta Cómo importar un archivo SQL.

El procedimiento para realizar la importación incluye las siguientes tareas:

  1. Sube el archivo DMP a un bucket de Cloud Storage.

  2. Prepara un host de cliente para realizar la operación de importación.

  3. Importa el archivo DMP a la base de datos.

  4. Limpia los recursos que se crearon para realizar el procedimiento.

Antes de comenzar

  • Debes tener el rol de IAM básico de propietario (roles/owner) o editor (roles/editor) en el proyecto de Google Cloud que usas, o bien debes tener estos roles de IAM predefinidos:
    • Administrador de AlloyDB (roles/alloydb.admin) o Visualizador de AlloyDB (roles/alloydb.viewer)
    • Administrador de almacenamiento (roles/storage.admin)
    • Administrador de instancias de Compute (v1) (roles/compute.instanceAdmin.v1)

Sube el archivo DMP

Para subir el archivo DMP, debes crear un bucket de Cloud Storage y, luego, subir el archivo DMP a ese bucket.

  1. Crea un bucket de Standard Storage o Regional Storage en el proyecto y la región en los que se ubica tu base de datos de AlloyDB.

  2. Sube el archivo DMP al bucket de almacenamiento que creaste.

Prepara un host de cliente

Para preparar un host cliente para realizar la operación de importación, crea una VM de Compute Engine que pueda conectarse a la instancia principal de AlloyDB en la que se encuentra tu base de datos y, luego, instala la herramienta pg_restore y Google Cloud CLI en esa VM.

  1. Sigue las instrucciones de Cómo conectar un cliente psql a una instancia para crear una VM de Compute Engine con la conectividad adecuada y la herramienta pg_restore instalada. Cuando sigas estas instrucciones, asegúrate de asignar suficiente almacenamiento local a la VM de Compute Engine para que aloje el archivo DMP que importes.

  2. Instala la CLI de gcloud para proporcionar acceso de línea de comandos al archivo DMP en el bucket de Cloud Storage.

Importa el archivo DMP

Para importar el archivo DMP, obtén la dirección IP de la instancia principal de AlloyDB en la que se encuentra tu base de datos y, luego, usa la herramienta pg_restore para importar el archivo a la base de datos.

  1. Consulta sus detalles para obtener la dirección IP de la instancia principal de AlloyDB en la que se encuentra tu base de datos.
  2. Conéctate a la VM de Compute Engine mediante SSH.

    Console

    1. En la consola de Google Cloud, ve a la página Instancias de VM.

      Ir a Instancias de VM

    2. En la lista de instancias de máquina virtual, haz clic en SSH en la fila de la instancia que creaste.

      Botón SSH junto al nombre de la instancia.

    gcloud

    Usa el comando gcloud compute ssh para conectarte a la instancia que creaste.

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

    Reemplaza lo siguiente:

    • PROJECT_ID: El ID del proyecto que contiene la instancia.
    • ZONE: Es el nombre de la zona en la que se encuentra la instancia.
    • VM_NAME: El nombre de la instancia
  3. Copia el archivo DMP en el sistema de archivos local del host del cliente:
    gcloud storage cp gs://BUCKET_NAME/DMP_FILE_NAME .
  4. Ejecuta el siguiente comando para crear un archivo de índice que comente todas las instrucciones EXTENSION:
    pg_restore \
    -l DMP_FILE_NAME | sed -E 's/(.* EXTENSION )/; \1/g' > TOC_FILE_NAME
    • DMP_FILE_NAME: Es el archivo DMP en el sistema de archivos local.
    • TOC_FILE_NAME: Proporciona un nombre de archivo para el archivo de índice que se creará en el sistema de archivos local.
  5. Importa el archivo de DMP:
    pg_restore -h IP_ADDRESS -U postgres \
      -d DB_NAME \
      -L TOC_FILE_NAME \
      DMP_FILE_NAME
    
    • IP_ADDRESS: Es la dirección IP de la instancia principal.
    • DB_NAME: Es el nombre de la base de datos a la que se importarán los datos.
    • TOC_FILE_NAME: Es el archivo de TOC que creaste en el paso anterior.
    • DMP_FILE_NAME: Es el archivo DMP.

    El comando pg_restore proporciona varias opciones adicionales para controlar la operación de importación de datos.

Limpia los recursos

Después de importar correctamente el archivo DMP, puedes borrar el bucket de Cloud Storage y la VM de Compute Engine que usaste durante el procedimiento de importación.