Importa y exporta con archivos de volcado de SQL

En esta página, se describe la importación y exportación de datos en instancias de Cloud SQL mediante archivos de volcado de SQL.

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

Antes de comenzar

Las exportaciones usan recursos de bases de datos, pero no interfieren en las operaciones normales de las bases de datos, a menos que la instancia no cuente con el aprovisionamiento suficiente.

A fin de obtener prácticas recomendadas, consulta Recomendaciones para la importación y exportación de datos.

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

Exporta datos de Cloud SQL para SQL Server

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

Importa 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 para la instancia de Cloud SQL debe tener uno de los siguientes roles:

  • El rol de IAM storage.objectAdmin
  • Un rol personalizado que incluya los siguientes permisos:
    • storage.objects.get
    • storage.objects.list (solo para versiones solo para importar)

Para obtener ayuda con los roles de IAM, consulta Identity and Access Management.

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

Los archivos SQL son archivos de texto sin formato con una secuencia de comandos de SQL.

En el siguiente procedimiento, prepárate para especificar una base de datos existente desde la que importar tus archivos SQL.

Console

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

    Ir a Instancias de Cloud SQL

  2. Para abrir la página de Descripción general de una instancia, haz clic en su nombre.
  3. Haz clic en Importar.
  4. En la sección Elige el archivo del cual deseas importar datos, ingresa la ruta de acceso al depósito y el archivo de volcado de SQL que se usará para la importación, o navega a un archivo existente. .

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

  5. En Formato, selecciona SQL.
  6. Selecciona la base de datos hacia la cual deseas importar los datos.

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

  7. Si deseas especificar un usuario para que realice la importación, selecciona el usuario.

    Si tu archivo de importación contiene instrucciones que un usuario específico debe llevar a cabo, usa este campo para especificar ese usuario.

  8. Haz clic en Importar para comenzar la importación.

gcloud

  1. Crea un bucket de Cloud Storage.
  2. Sube el archivo a tu bucket.

    Para obtener ayuda con la carga de archivos en depósitos, consulta Sube objetos.

  3. Describe la instancia hacia la cual deseas importar:
    gcloud sql instances describe INSTANCE_NAME
  4. Copia el campo serviceAccountEmailAddress.
  5. Usa gcloud storage buckets add-iam-policy-binding para otorgar la función de IAM storage.objectAdmin a la cuenta de servicio del 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, consulta la sección sobre cómo usar permisos de IAM.
  6. Importa 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, consulta la página de referencia del comando sql import sql.

    Si el comando muestra un error como ERROR_RDBMS, revisa los permisos; por lo general, este error se produce por problemas con los permisos.

  7. Si no necesitas conservar los permisos de IAM que configuraste antes, quítalos mediante gcloud storage buckets remove-iam-policy-binding.

REST v1

  1. Crea un bucket de Cloud Storage.
  2. Sube el archivo a tu bucket.

    Para obtener ayuda con la carga de archivos en buckets, consulta Sube objetos.

  3. Otórgale a la instancia las funciones de Cloud IAM legacyBucketWriter y objectViewer para el bucket. Para obtener ayuda con la configuración de permisos de IAM, consulta la sección Usa permisos de IAM.
  4. Importa el archivo de volcado:

    Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

    • project-id: el ID del proyecto
    • instance-id: el ID de la instancia
    • bucket_name: El nombre del depósito de Cloud Storage
    • path_to_sql_file: La ruta de acceso 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 tu solicitud, expande una de estas opciones:

    Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

    Si quieres obtener una lista completa de parámetros para esta solicitud, consulta la página instances:import.
  5. Si no necesitas conservar los permisos de IAM que configuraste, quítalos ahora.

REST v1beta4

  1. Crea un bucket de Cloud Storage.
  2. Sube el archivo a tu bucket.

    Para obtener ayuda con la carga de archivos en buckets, consulta Sube objetos.

  3. Otorga a la instancia la función de IAM storage.objectAdmin para el depósito. Para obtener ayuda con la configuración de permisos de IAM, consulta Usa permisos de IAM.
  4. Importa el archivo de volcado:

    Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

    • project-id: el ID del proyecto
    • instance-id: el ID de la instancia
    • bucket_name: El nombre del depósito de Cloud Storage
    • path_to_sql_file: La ruta de acceso 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 tu solicitud, expande una de estas opciones:

    Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

    Si quieres obtener una lista completa de parámetros para esta solicitud, consulta la página instances:import.
  5. Si no necesitas conservar los permisos de IAM que configuraste, quítalos ahora.

¿Qué sigue?