Exportar e importar utilizando archivos de volcado de SQL

Esta página describe cómo exportar e importar datos a instancias de Cloud SQL mediante archivos de volcado de SQL.

La exportación desde Cloud SQL a un archivo de volcado de SQL no es compatible con SQL Server.

Antes de empezar

Las exportaciones utilizan recursos de la base de datos, pero no interfieren con las operaciones normales de la base de datos a menos que la instancia tenga un suministro insuficiente.

Para conocer las mejores prácticas, consulte Mejores prácticas para importar y exportar datos .

Después de completar una operación de importación, verifique los resultados.

Exportar datos de Cloud SQL para SQL Server

La exportación desde Cloud SQL a un archivo de volcado de SQL no es compatible con SQL Server.

Importar datos a Cloud SQL para SQL Server

Roles y permisos necesarios para importar a Cloud SQL para SQL Server

Para importar datos de Cloud Storage a Cloud SQL, el usuario que inicia la importación debe tener uno de los siguientes roles:

Además, la cuenta de servicio de la instancia de Cloud SQL debe tener uno de los siguientes roles:

  • La función de IAM storage.objectAdmin
  • Un rol personalizado, que incluye los siguientes permisos:
    • storage.objects.get
    • storage.objects.list (solo para importación en franjas)

Para obtener ayuda con los roles de IAM, consulte Administración de identidad y acceso .

Importar un archivo de volcado de SQL a Cloud SQL para SQL Server

Los archivos SQL son archivos de texto simple con una secuencia de comandos SQL.

En el siguiente procedimiento, prepárese para especificar una base de datos existente desde la cual importar sus archivos SQL.

Consola

  1. En el Google Cloud consola, vaya a la página Instancias de Cloud SQL .

    Ir a Instancias de Cloud SQL

  2. Para abrir la página Descripción general de una instancia, haga clic en el nombre de la instancia.
  3. Haga clic en Importar .
  4. En la sección Elija el archivo desde el cual desea importar datos , ingrese la ruta al depósito y el archivo de volcado de SQL que se usará para la importación, o busque un archivo existente.

    Puede importar un archivo comprimido ( .gz ) o sin comprimir ( .sql ).

  5. Para Formato , seleccione SQL .
  6. Seleccione la base de datos a la que desea importar los datos.

    Esto hace que Cloud SQL ejecute la instrucción USE DATABASE antes de la importación.

  7. Si desea especificar un usuario para realizar la importación, seleccione el usuario.

    Si su archivo de importación contiene instrucciones que debe realizar un usuario específico, utilice este campo para especificar ese usuario.

  8. Haga clic en Importar para iniciar la importación.

nube g

  1. Crear un depósito de almacenamiento en la nube.
  2. Sube el archivo a tu bucket.

    Para obtener ayuda con la carga de archivos a los depósitos, consulte Cargar objetos .

  3. Describe la instancia a la que estás importando:
    gcloud sql instances describe INSTANCE_NAME
  4. Copie el campo serviceAccountEmailAddress .
  5. Utilice gcloud storage buckets add-iam-policy-binding para otorgar la función de IAM storage.objectAdmin a la cuenta de servicio para el bucket.
    gcloud storage buckets add-iam-policy-binding gs://BUCKET_NAME \
      --member=serviceAccount:SERVICE-ACCOUNT \
      --role=roles/storage.objectAdmin
      
    Para obtener ayuda con la configuración de permisos de IAM, consulte Uso de permisos de IAM .
  6. Importar la base de datos:
    gcloud sql import sql INSTANCE_NAME gs://BUCKET_NAME/IMPORT_FILE_NAME \
    --database=DATABASE_NAME

    Para obtener información sobre el uso del comando import sql , consulte la página de referencia del comando sql import sql .

    Si el comando devuelve un error como ERROR_RDBMS , revise los permisos; este error a menudo se debe a problemas de permisos.

  7. Si no necesita conservar los permisos de IAM que configuró anteriormente, elimínelos utilizando gcloud storage buckets remove-iam-policy-binding .

REST versión 1

  1. Crear un depósito de almacenamiento en la nube.
  2. Sube el archivo a tu bucket.

    Para obtener ayuda con la carga de archivos a los depósitos, consulte Cargar objetos .

  3. Proporcione a su instancia los roles de IAM legacyBucketWriter y objectViewer para su bucket. Para obtener ayuda con la configuración de permisos de IAM, consulte Uso de permisos de IAM .
  4. Importa tu archivo de volcado:

    Antes de utilizar cualquiera de los datos solicitados, realice las siguientes sustituciones:

    • project-id : El ID del proyecto
    • instance-id : El ID de la instancia
    • bucket_name : El nombre del depósito de almacenamiento en la nube
    • path_to_sql_file : La ruta al archivo SQL
    • database_name : El nombre de una base de datos dentro de la instancia de Cloud SQL

    Método HTTP y URL:

    POST https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/import

    Cuerpo JSON de la solicitud:

    {
     "importContext":
       {
          "fileType": "SQL",
          "uri": "gs://bucket_name/path_to_sql_file",
          "database": "database_name"
        }
    }
    
    

    Para enviar su solicitud, expanda una de estas opciones:

    Debería recibir una respuesta JSON similar a la siguiente:

    Para obtener la lista completa de parámetros para la solicitud, consulte la página instancias:import .
  5. Si no necesita conservar los permisos de IAM que configuró anteriormente, elimínelos ahora.

REST v1beta4

  1. Crear un depósito de almacenamiento en la nube.
  2. Sube el archivo a tu bucket.

    Para obtener ayuda con la carga de archivos a los depósitos, consulte Cargar objetos .

  3. Asigne a su instancia el rol de IAM storage.objectAdmin para su bucket. Para obtener ayuda con la configuración de permisos de IAM, consulte Uso de permisos de IAM .
  4. Importa tu archivo de volcado:

    Antes de utilizar cualquiera de los datos solicitados, realice las siguientes sustituciones:

    • project-id : El ID del proyecto
    • instance-id : El ID de la instancia
    • bucket_name : El nombre del depósito de almacenamiento en la nube
    • path_to_sql_file : La ruta al archivo SQL
    • database_name : El nombre de una base de datos dentro de la instancia de Cloud SQL

    Método HTTP y URL:

    POST https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/import

    Cuerpo JSON de la solicitud:

    {
     "importContext":
       {
          "fileType": "SQL",
          "uri": "gs://bucket_name/path_to_sql_file",
          "database": "database_name"
        }
    }
    
    

    Para enviar su solicitud, expanda una de estas opciones:

    Debería recibir una respuesta JSON similar a la siguiente:

    Para obtener la lista completa de parámetros para la solicitud, consulte la página instancias:import .
  5. Si no necesita conservar los permisos de IAM que configuró anteriormente, elimínelos ahora.

¿Qué sigue?