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.
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 PostgreSQL
Roles y permisos necesarios para exportar desde Cloud SQL para PostgreSQL
Para exportar datos de Cloud SQL a Cloud Storage, el usuario que inicia la exportación debe tener uno de los siguientes roles:
- El rol Editor de Cloud SQL
- Un rol personalizado que incluya los siguientes permisos:
cloudsql.instances.get
cloudsql.instances.export
Además, la cuenta de servicio para la instancia de Cloud SQL debe tener uno de los siguientes roles:
- El rol de Identity and Access Management (IAM) llamado
storage.objectAdmin
- Un rol personalizado que incluya los siguientes permisos:
storage.objects.create
storage.objects.list
(solo para exportar archivos en paralelo)storage.objects.delete
(solo para exportar archivos en paralelo)
Para obtener ayuda con los roles de IAM, consulta Identity and Access Management.
Exporta a un archivo de volcado de SQL desde Cloud SQL para PostgreSQL
Cuando usas Cloud SQL para ejecutar una exportación, ya sea desde la consola de Google Cloud, gcloud CLI o la API, se usa la utilidadpg_dump
, con las opciones necesarias para garantizar que el archivo de exportación resultante sea válido a fin de que se pueda volver a importar a Cloud SQL.
Si planeas importar los datos a Cloud SQL, debes seguir las instrucciones que se proporcionan en Exporta datos desde un servidor de base de datos externo a fin de que el archivo de volcado de SQL tenga el formato correcto para Cloud SQL.
Para exportar datos de una base de datos en una instancia de Cloud SQL a un archivo de volcado de SQL en un depósito de Cloud Storage, sigue estos pasos:
Console
-
En la consola de Google Cloud, ve a la página Instancias de Cloud SQL.
- Para abrir la página de Descripción general de una instancia, haz clic en su nombre.
- Haz clic en Exportar.
- En la sección Formato de archivo, haz clic en SQL para crear un archivo de volcado de SQL.
- En la sección Datos para exportar, usa el menú desplegable a fin de seleccionar la base de datos desde la que deseas exportar.
- En la sección Destino, selecciona Explorar a fin de buscar un bucket o una carpeta de Cloud Storage para tu exportación.
- Haz clic en Exportar para comenzar la exportación.
gcloud
- Crea buckets de Cloud Storage.
- Busca la cuenta de servicio de la instancia de Cloud SQL desde la que exportas. Puedes hacerlo ejecutando el comando
gcloud sql instances describe
. Busca el camposerviceAccountEmailAddress
en el resultado.gcloud sql instances describe INSTANCE_NAME
- Usa
gcloud storage buckets add-iam-policy-binding
para otorgar la función de IAMstorage.objectAdmin
a la cuenta de servicio. Si deseas obtener ayuda con la configuración de los permisos de IAM, consulta Usa los permisos de IAM. - Exporta la base de datos a tu bucket de Cloud Storage:
gcloud sql export sql INSTANCE_NAME gs://BUCKET_NAME/sqldumpfile.gz \ --database=DATABASE_NAME \ --offload
El comando
export sql
no contiene activadores ni procedimientos almacenados, pero contiene vistas. Para exportar activadores o procedimientos almacenados, usa la herramienta pg_dump.Para obtener más información sobre el uso del comando
export sql
, consulta la página de referencia del comandosql export sql
. - Si no necesitas retener la función de IAM que configuraste antes, revócala ahora.
REST v1
- Crea un bucket para la exportación:
gcloud storage buckets create gs://BUCKET_NAME --project=PROJECT_NAME --location=LOCATION_NAME
Este paso no es obligatorio, pero se recomienda para no habilitar el acceso a otros datos.
- Otórgale a tu instancia la función de IAM
legacyBucketWriter
para el depósito. Para obtener ayuda con la configuración de permisos de IAM, consulta Usa permisos de IAM. - Exporta tu base de datos:
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 bucket de Cloud Storage
- PATH_TO_DUMP_FILE: La ruta de acceso al archivo de volcado de SQL
- DATABASE_NAME_1: El nombre de una base de datos dentro de la instancia de Cloud SQL
- DATABASE_NAME_2: 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/export
Cuerpo JSON de la solicitud:
{ "exportContext": { "fileType": "SQL", "uri": "gs://BUCKET_NAME/PATH_TO_DUMP_FILE", "databases": ["DATABASE_NAME"], "offload": TRUE | FALSE, "sqlExportOptions": { "clean": [TRUE|FALSE], "ifExists": [TRUE|FALSE] } } }
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 no necesitas conservar la función de IAM que configuraste, quítala ahora.
REST v1beta4
- Crea un bucket para la exportación:
gcloud storage buckets create gs://BUCKET_NAME --project=PROJECT_NAME --location=LOCATION_NAME
Este paso no es obligatorio, pero se recomienda para no habilitar el acceso a otros datos.
- Otórgale a tu 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. - Exporta tu base de datos:
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 bucket de Cloud Storage
- PATH_TO_DUMP_FILE: La ruta de acceso al archivo de volcado de SQL
- DATABASE_NAME_1: El nombre de una base de datos dentro de la instancia de Cloud SQL
- DATABASE_NAME_2: 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/export
Cuerpo JSON de la solicitud:
{ "exportContext": { "fileType": "SQL", "uri": "gs://BUCKET_NAME/PATH_TO_DUMP_FILE", "databases": ["DATABASE_NAME"], "offload": TRUE | FALSE, "sqlExportOptions": { "clean": [TRUE|FALSE], "ifExists": [TRUE|FALSE] } } }
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 no necesitas retener la función de IAM que configuraste antes, revócala ahora.
Importa datos a Cloud SQL para PostgreSQL
Roles y permisos obligatorios para importar a Cloud SQL para PostgreSQL
Para importar datos de Cloud Storage a Cloud SQL, el usuario que inicia 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 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 importar archivos en paralelo)
Para obtener ayuda con los roles de IAM, consulta Identity and Access Management.
Importa un archivo de volcado de SQL a Cloud SQL para PostgreSQL
Los archivos SQL son archivos de texto sin formato con una secuencia de comandos de SQL.
Console
-
En la consola de Google Cloud, ve a la página Instancias de Cloud SQL.
- Para abrir la página de Descripción general de una instancia, haz clic en su nombre.
- Haz clic en Importar.
- 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
). - En Formato, selecciona SQL.
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.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.
- Haz clic en Importar para comenzar la importación.
gcloud
- Crea un bucket de Cloud Storage.
Sube el archivo a tu bucket.
Para obtener ayuda con la carga de archivos en depósitos, consulta Sube objetos.
- Describe la instancia hacia la cual deseas importar:
gcloud sql instances describe INSTANCE_NAME
- Copia el campo
serviceAccountEmailAddress
. - Usa
gcloud storage buckets add-iam-policy-binding
para otorgar la función de IAMstorage.objectAdmin
a la cuenta de servicio del bucket. Para obtener ayuda con la configuración de permisos de IAM, consulta la sección sobre cómo usar permisos de IAM.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 muestra un error como
ERROR_RDBMS
, revisa los permisos; por lo general, este error se produce por problemas con los permisos. - Si no necesitas conservar los permisos de IAM que configuraste antes, quítalos mediante
gcloud storage buckets remove-iam-policy-binding
.
REST v1
-
Crea un archivo de volcado de SQL. Las instrucciones vinculadas establecen ciertas marcas que hacen que el archivo de volcado sea compatible con Cloud SQL.
- Si importas datos desde un servidor PostgreSQL local, haz lo siguiente:
- Crea un archivo de volcado de SQL con las instrucciones que aparecen en la sección sobre cómo exportar datos con pg_dump.
- Crea un bucket en Cloud Storage con las instrucciones en Crea buckets.
- Sube el archivo de volcado de SQL al bucket de Cloud Storage mediante el procedimiento en Sube objetos.
- Crea un bucket de Cloud Storage.
Sube el archivo a tu bucket.
Para obtener ayuda con la carga de archivos en buckets, consulta Sube objetos.
- Otórgale a la instancia las funciones de Cloud IAM
legacyBucketWriter
yobjectViewer
para el bucket. Para obtener ayuda con la configuración de permisos de IAM, consulta la sección Usa permisos de IAM. - 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 usar un usuario diferente para la importación, especifica la propiedad
Si quieres obtener una lista completa de parámetros para esta solicitud, consulta la página instances:import.importContext.importUser
. - Si no necesitas conservar los permisos de IAM que configuraste, quítalos ahora.
REST v1beta4
-
Crea un archivo de volcado de SQL. Las instrucciones vinculadas establecen ciertas marcas que hacen que el archivo de volcado sea compatible con Cloud SQL.
- Si importas datos desde un servidor PostgreSQL local, haz lo siguiente:
- Crea un archivo de volcado de SQL con las instrucciones que aparecen en la sección sobre cómo exportar datos con pg_dump.
- Crea un bucket en Cloud Storage con las instrucciones en Crea buckets.
- Sube el archivo de volcado de SQL al bucket de Cloud Storage mediante el procedimiento en Sube objetos.
- Crea un bucket de Cloud Storage.
Sube el archivo a tu bucket.
Para obtener ayuda con la carga de archivos en buckets, consulta Sube objetos.
- 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. - 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 usar un usuario diferente para la importación, especifica la propiedad
Si quieres obtener una lista completa de parámetros para esta solicitud, consulta la página instances:import.importContext.importUser
. - Si no necesitas conservar los permisos de IAM que configuraste, quítalos ahora.
¿Qué sigue?
- Aprende a verificar el estado de las operaciones de importación y exportación.
- Obtén 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 para importaciones y exportaciones.