En esta página se describe cómo exportar e importar datos en instancias de Cloud SQL mediante archivos de volcado de SQL.
No se admite la exportación de Cloud SQL a un archivo de volcado de SQL para SQL Server.
Antes de empezar
Las exportaciones usan recursos de la base de datos, pero no interfieren con las operaciones normales de la base de datos, a menos que la instancia no tenga suficientes recursos.
Para consultar las prácticas recomendadas, consulta el artículo Prácticas recomendadas para importar y exportar datos.
Después de completar una operación de importación, verifica los resultados.
Exportar datos de Cloud SQL para SQL Server
No se admite la exportación de Cloud SQL a un archivo de volcado de SQL para SQL Server.Importar datos en Cloud SQL para SQL Server
Roles y permisos necesarios para importar datos en Cloud SQL para SQL Server
Para importar datos de Cloud Storage a Cloud SQL, el usuario que inicie la importación debe tener uno de los siguientes roles:
- El rol Administrador de Cloud SQL
- Un rol personalizado,
que incluya los siguientes permisos:
cloudsql.instances.get
cloudsql.instances.import
Además, la cuenta de servicio de la instancia de Cloud SQL debe tener uno de los siguientes roles:
- Rol de gestión de identidades y accesos
storage.objectAdmin
- Un rol personalizado que incluya los siguientes permisos:
storage.objects.get
storage.objects.list
(solo para importaciones rayadas)
Para obtener ayuda con los roles de gestión de identidades y accesos, consulta Gestión de identidades y accesos.
Importar un archivo de volcado de SQL en 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, se explica cómo especificar una base de datos para importar los archivos SQL.
Consola
-
En la Google Cloud consola, ve a la página Instancias de Cloud SQL.
- Para abrir la página Overview (Resumen) de una instancia, haz clic en su nombre.
- Haz clic en Importar.
- En la sección Choose the file you'd like to import data from (Elige el archivo del que quieres importar los datos), introduce la ruta de acceso al archivo de volcado de SQL y al bucket que quieras usar para la importación, busca un archivo o sube un archivo local.
Puedes importar un archivo comprimido (
.gz
) o sin comprimir (.sql
). - En Formato, selecciona SQL.
Selecciona la base de datos en la que quieres importar los datos.
De esta forma, Cloud SQL ejecuta la instrucción
USE DATABASE
antes de la importación.Si quieres especificar un usuario para realizar la importación, selecciona el usuario.
Si el archivo de importación contiene instrucciones que debe ejecutar un usuario específico, utilice este campo para especificarlo.
- Haz clic en Importar para iniciar la importación.
gcloud
- Crea un segmento de Cloud Storage.
Sube el archivo al segmento.
Para obtener ayuda sobre cómo subir archivos a los contenedores, consulta el artículo Subir objetos.
- Describe la instancia en la que vas a importar los datos:
gcloud sql instances describe INSTANCE_NAME
- Copia el campo
serviceAccountEmailAddress
. - Usa
gcloud storage buckets add-iam-policy-binding
para asignar elstorage.objectAdmin
rol de gestión de identidades y accesos a la cuenta de servicio del cubo. Para obtener ayuda sobre cómo configurar permisos de gestión de identidades y accesos, consulta el artículo sobre cómo usar permisos de gestión de identidades y accesos.gcloud storage buckets add-iam-policy-binding gs://BUCKET_NAME \ --member=serviceAccount:SERVICE-ACCOUNT \ --role=roles/storage.objectAdmin
- 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 comandosql import sql
.Si el comando devuelve un error como
ERROR_RDBMS
, revisa los permisos, ya que este error suele deberse a problemas de permisos. - Si no necesitas conservar los permisos de gestión de identidades y accesos que hayas definido anteriormente, quítalos con
gcloud storage buckets remove-iam-policy-binding
.
REST v1
- Crea un segmento de Cloud Storage.
Sube el archivo al segmento.
Para obtener ayuda sobre cómo subir archivos a los contenedores, consulta el artículo Subir objetos.
- Proporciona a tu instancia los roles de
legacyBucketWriter
yobjectViewer
gestión de identidades y accesos de tu segmento. Para obtener ayuda sobre cómo definir permisos de gestión de identidades y accesos, consulta Usar permisos de gestión de identidades y accesos. - Importa tu archivo de volcado:
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- project-id: el ID del proyecto
- instance-id: el ID de instancia.
- bucket_name: nombre del segmento de Cloud Storage
- path_to_sql_file: la ruta al archivo SQL
- database_name: nombre de una base de datos 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, despliega una de estas opciones:
Deberías recibir una respuesta JSON similar a la siguiente:
Para ver la lista completa de parámetros de la solicitud, consulte la página instances:import. - Si no necesitas conservar los permisos de gestión de identidades y accesos que has definido anteriormente, elimínalos ahora.
REST v1beta4
- Crea un segmento de Cloud Storage.
Sube el archivo al segmento.
Para obtener ayuda sobre cómo subir archivos a los contenedores, consulta el artículo Subir objetos.
- Proporciona a tu instancia el
storage.objectAdmin
rol de gestión de identidades y accesos para tu segmento. Para obtener ayuda sobre cómo definir permisos de gestión de identidades y accesos, consulta Usar permisos de gestión de identidades y accesos. - Importa tu archivo de volcado:
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- project-id: el ID del proyecto
- instance-id: el ID de instancia.
- bucket_name: nombre del segmento de Cloud Storage
- path_to_sql_file: la ruta al archivo SQL
- database_name: nombre de una base de datos 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, despliega una de estas opciones:
Deberías recibir una respuesta JSON similar a la siguiente:
Para ver la lista completa de parámetros de la solicitud, consulte la página instances:import. - Si no necesitas conservar los permisos de gestión de identidades y accesos que has definido anteriormente, elimínalos ahora.
Siguientes pasos
- Obtén más información sobre cómo comprobar el estado de las operaciones de importación y exportación.
- Consulta más información sobre las prácticas recomendadas para importar y exportar datos.
- Obtén más información sobre Cloud Storage.
- Problemas conocidos de importación y exportación