Migrar una carga de trabajo de otra plataforma a Cloud SQL para PostgreSQL suele implicar el uso de la consola de Google Cloud para importar datos desde un archivo de volcado de SQL que exportas desde tu entorno anterior.
En este instructivo, se muestra cómo crear los recursos Google Cloud que necesitas y, luego, importar una base de datos SQL a una instancia de Cloud SQL para PostgreSQL. En el instructivo, se demuestran las prácticas recomendadas para migrar a Cloud SQL para PostgreSQL, incluido el uso de una red de nube privada virtual (VPC) con acceso a servicios privados y la habilitación de la IP privada para tu instancia de Cloud SQL.
A medida que sigas los pasos, conserva los valores predeterminados de la configuración, a menos que se especifique lo contrario.
Objetivos
- Descarga un archivo de volcado de SQL de muestra.
- Crea una nueva red de nube privada virtual con acceso privado a los servicios.
- Crea un bucket de Cloud Storage y sube a él un archivo de volcado de SQL.
- Crea una instancia de Cloud SQL para PostgreSQL configurada para IP privada.
- Crear un usuario
- Crea una base de datos de destino.
- Importa desde el archivo de volcado a una base de datos nueva.
- Para verificar que la base de datos se importó correctamente, consulta la estructura y ejecuta una consulta.
Costos
En este documento, usarás los siguientes componentes facturables de Google Cloud:
Para obtener una estimación de costos en función del uso previsto,
usa la calculadora de precios.
Cuando completes las tareas que se describen en este documento, podrás borrar los recursos que creaste para evitar que se te siga facturando. Para obtener más información, consulta Realiza una limpieza.
Antes de comenzar
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Si usas un proyecto existente en esta guía, verifica que tengas los permisos necesarios para completarla. Si creaste un proyecto nuevo, ya tienes los permisos necesarios.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Cloud SQL, Cloud SQL Admin, Compute Engine, Cloud Storage APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles. -
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Si usas un proyecto existente en esta guía, verifica que tengas los permisos necesarios para completarla. Si creaste un proyecto nuevo, ya tienes los permisos necesarios.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Cloud SQL, Cloud SQL Admin, Compute Engine, Cloud Storage APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles. -
Administrador de Cloud SQL (
roles/cloudsql.admin) -
Administrador de almacenamiento (
roles/storage.admin) -
Administrador de la red de Compute (
roles/compute.networkAdmin) En la consola de Google Cloud , ve a la página Redes de VPC.
Haz clic en Crear red de VPC.
En el campo Nombre, ingresa
tutorial-network.En Modo de creación de subred, selecciona Personalizado.
En el campo Nombre, ingresa
tutorial-subnet.Selecciona una región cercana.
En el Rango de IPv4, ingresa
10.0.0.0/24.En Acceso privado a Google, selecciona Activado.
Haz clic en Listo.
Al final de la página, haz clic en Crear.
- En la pantalla de redes de VPC, haz clic en tutorial-network.
- En la barra de menú de tutorial-network, haz clic en Acceso a servicios privados.
- Haz clic en Rangos de IP asignados para servicios.
- Haz clic en Asigna rangos de IP.
- En Nombre, ingresa
tutorial-range. - En Rango de direcciones IP, selecciona Personalizado.
- En el campo Rango, ingresa
192.168.0.0/20. - Haz clic en Allocate.
- En el submenú, haz clic en Conexiones privadas a servicios.
- Haz clic en Crear conexión.
- En el menú desplegable Asignación designada, selecciona tutorial-range.
- Haz clic en Conectar. En uno o dos minutos, la consola de Google Cloud mostrará un mensaje que te indicará que creaste correctamente una conexión privada.
- En la consola de Google Cloud , ve a la página Buckets de Cloud Storage.
- Haz clic en Crear.
- Para el nombre del bucket, crea un nombre único a nivel global que incluya letras minúsculas, números y guiones. Puedes usar un generador de cadenas aleatorias, como random.org/strings, para generar el nombre. Toma nota del nombre que elijas.
- Haz clic en Continuar.
- En Tipo de ubicación, selecciona Región. Esta es la opción de menor costo.
- Elige la misma región que elegiste para tu subred. Ubicar tus recursos deGoogle Cloud en la misma región reduce la latencia, mejora la velocidad, disminuye los costos de transferencia de datos y simplifica las redes.
- Haz clic en Continuar.
- Haz clic en Crear.
- Si aparece un diálogo, deja seleccionada la opción Aplicar la prevención de acceso público a este bucket y haz clic en Confirmar.
- En la pestaña Objetos, haz clic en Subir y, luego, en Subir archivos.
- Navega hasta el archivo
countries-postgres.sqly selecciónalo. - Haz clic en Abrir. Cloud Storage sube el archivo de volcado al bucket.
- Ve a la página Instancias de Cloud SQL en la Google Cloud consola.
Ir a la página Instancias de Cloud SQL - Haz clic en Crear instancia.
- Haz clic en Elegir PostgreSQL.
- En Elige una edición de Cloud SQL, selecciona Enterprise.
- En Ajuste predeterminado de edición, selecciona Zona de pruebas.
- En ID de instancia (Instance ID), ingresa
tutorial-instance. - Elige e ingresa una contraseña para la cuenta de usuario predeterminada y guárdala para usarla en el futuro.
- Elige la misma región que elegiste para tu subred y bucket.
- En Disponibilidad zonal, selecciona Zona única.
- Expanda Mostrar opciones de configuración.
- Expande Conexiones.
- Borra la IP pública.
- Seleccione IP privada.
- En el menú desplegable Red, selecciona tutorial-network. Esto coloca la nueva instancia de Cloud SQL en la red privada que creaste anteriormente.
- Haz clic en Crear instancia y espera a que la instancia se inicialice y se inicie. El proceso de inicialización puede tardar más de cinco minutos.
- En el menú de navegación de SQL, haz clic en Usuarios.
- Haz clic en Agregar cuenta de usuario.
- En el panel que se abre, selecciona Autenticación integrada.
- En el campo Nombre de usuario, ingresa
tutorial-user. - Ingresa una contraseña para el usuario nuevo. Guarda esta contraseña para usarla más adelante.
- Haz clic en Agregar.
- En el menú de navegación de SQL, haz clic en Bases de datos.
- Haz clic en Crear base de datos.
- En Nombre de la base de datos, escribe
countries. - Haz clic en Crear.
- En el menú de navegación de SQL, haz clic en Descripción general.
- En la página de descripción general, haz clic en Importar.
- En Formato de archivo, selecciona SQL.
- En Seleccionar archivo fuente, elige Seleccionar archivo de Google Cloud Storage.
- Haz clic en Explorar.
- Expande el bucket de almacenamiento que creaste antes.
- Haz clic en countries-postgres.sql.
- Haz clic en Seleccionar.
- En la sección Destino, haz clic en el menú desplegable Base de datos y, luego, selecciona países.
- Haz clic en Importar.
- En el menú de navegación de SQL, haz clic en Cloud SQL Studio. Se muestra un diálogo de acceso.
- En el menú desplegable Base de datos, elige countries.
- Selecciona Autenticación de bases de datos integradas.
- En el menú desplegable User, selecciona tutorial-user.
- En el campo Contraseña, ingresa la contraseña que elegiste para el usuario en la sección Agregar un usuario.
- Haz clic en Autenticar. Se abrirá Cloud SQL Studio.
- En el panel Explorador, examina la base de datos
countriesy confirma que tiene dos tablas:capitalsycountry_codes. - Haz clic en Consulta sin título para abrir el editor de consultas.
Pega el siguiente código en el editor de consultas:
SELECT "capitals"."country_capital", "country_codes"."country_name" FROM "capitals" JOIN "country_codes" ON "capitals"."alpha_2_code" = "country_codes"."alpha_2_code" ORDER BY "capitals"."country_capital";Haz clic en Ejecutar.
- Borra el proyecto que contiene los recursos
- Conserva el proyecto y borra los recursos individuales.
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
- En el menú de navegación de SQL, haz clic en Descripción general.
- Haz clic en Editar.
- Expande la sección Protección de datos.
- En Protección contra la eliminación de instancias, anula la selección de todas las opciones.
- Haz clic en Guardar. Cuando se complete la operación, podrás seleccionar Borrar.
- Haz clic en Borrar. Aparecerá un diálogo.
- En el campo ID de instancia, ingresa
tutorial-instance. - Haz clic en Borrar.
- En el menú de navegación principal de la consola de Google Cloud , ve a Cloud Storage > Buckets.
- Selecciona la casilla junto al nombre del bucket que creaste antes.
- Haz clic en Borrar.
- En el diálogo, escribe
DELETEpara confirmar la eliminación y, luego, haz clic en Borrar. - En el menú de navegación principal, ve a Redes de VPC > Intercambio de tráfico entre redes de VPC.
- Selecciona la casilla junto a la conexión de intercambio de tráfico con la red de VPC tutorial-network.
- Haz clic en Borrar.
- En el cuadro de diálogo, haz clic en Borrar para confirmar la acción.
- En el menú Red de VPC, haz clic en Redes de VPC.
- Haz clic en tutorial-network para abrir la página de detalles.
- Haz clic en Borrar red de VPC.
- En el diálogo, escribe
tutorial-networky, luego, haz clic en Borrar para confirmar la eliminación. - Prácticas recomendadas para la importación y exportación de datos.
- Importa y exporta con archivos de volcado de SQL.
- Redes de VPC
- Explora arquitecturas de referencia, diagramas y prácticas recomendadas sobre Google Cloud. Consulta nuestro Cloud Architecture Center.
Roles obligatorios
Si quieres obtener los permisos que necesitas para completar este instructivo, pídele a tu administrador que te otorgue los siguientes roles de IAM en tu proyecto:
Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.
También puedes obtener los permisos necesarios a través de roles personalizados o cualquier otro rol predefinido.
Obtén un archivo de volcado de base de datos de muestra
En este instructivo, usarás una pequeña base de datos de muestra que contiene códigos de países y capitales del mundo.
Descarga el archivo SQL de la base de datos countries en tu entorno local: countries-postgres.sql.
Crea una red con acceso a servicios privados
Antes de crear el resto de tus recursos, crea una red de VPC para ejecutar tus servicios. El acceso a servicios privados te permite restringir el acceso a tu base de datos de Cloud SQL estableciendo una conexión privada entre tu red externa y Cloud SQL para PostgreSQL con direcciones IPv4 internas.
Una vez que finalice el proceso de creación de la red de VPC, podrás configurar el acceso privado a los servicios para la red.
Cree un bucket de Cloud Storage
A continuación, crea un bucket de Cloud Storage para almacenar el archivo de volcado de SQL que descargaste anteriormente. La herramienta de importación de Cloud SQL espera que el archivo de volcado se encuentre en un bucket. Los nombres de los bucket de Cloud Storage deben ser únicos a nivel global.
Se abrirá la página Detalles del bucket para el bucket nuevo con el panel Objetos seleccionado.
Sube tu archivo de volcado al bucket
Sube al bucket el archivo de volcado de SQL de muestra que descargaste antes.
Cree una instancia de Cloud SQL
Crea una instancia de Cloud SQL en la consola de Google Cloud con la siguiente configuración. Para todos los demás parámetros de configuración, mantén los valores predeterminados. Si bien no es necesario que habilites la IP privada para el proceso de importación, se recomienda usarla para una carga de trabajo de producción.
Agregar un usuario
Antes de poder leer o escribir en una base de datos, debes crear un usuario de base de datos diferente del usuario raíz.
Crea una base de datos de destino
El flujo de trabajo de importación requiere que selecciones una base de datos de destino para importar, por lo que debes crear una base de datos vacía.
Importa desde el archivo de volcado
Ahora puedes importar la base de datos countries con el archivo de volcado countries-postgres.sql que subiste a tu bucket de Cloud Storage.
Cuando se complete el proceso de importación y se haya importado la base de datos countries a Cloud SQL para PostgreSQL, se mostrará un mensaje de éxito.
Valida los datos importados en Cloud SQL para PostgreSQL
Una vez que se complete la operación de importación, puedes verificar que se importó la base de datos conectándote a ella con Cloud SQL Studio, inspeccionando la lista de tablas y ejecutando una consulta de prueba en los datos.
Autentícate en Cloud SQL Studio
Con la cuenta de usuario que creaste antes, conéctate a la nueva base de datos con Cloud SQL Studio.
Cómo ver y consultar las tablas
En el panel de resultados, se muestra una lista alfabética de las capitales del mundo y sus países.
Realiza una limpieza
Para evitar que se apliquen cargos a tu cuenta de Google Cloud por los recursos que usaste en este instructivo, haz una de las siguientes acciones:
Borra el proyecto
Borra los recursos individuales
Si deseas conservar el proyecto, pero evitar que se generen cargos, borra la instancia de Cloud SQL, el bucket de Cloud Storage y la red de VPC que creaste durante el instructivo.
Borra la instancia de Cloud SQL
Primero, inhabilita la protección contra la eliminación y, luego, borra la instancia de Cloud SQL del instructivo:
Borra el bucket de Cloud Storage
A continuación, borra el bucket de almacenamiento y su contenido.
Borra la red de VPC
Ahora que borraste los recursos de tu red de VPC, puedes borrar la red. Antes de borrar la red de VPC, debes borrar la conexión de intercambio de tráfico que se creó automáticamente cuando creaste la red de VPC.
Ahora que se quitó la conexión de intercambio de tráfico, puedes borrar la red de VPC.