Puntos de control
Prepare the source database for migration.
/ 20
Create a Database Migration Service connection profile.
/ 20
Create and start a continuous migration job.
/ 20
Confirm the data in Cloud SQL for PostgreSQL.
/ 20
Promote Cloud SQL to be a stand-alone instance for reading and writing data.
/ 20
Migra a Cloud SQL para PostgreSQL con Database Migration Service
- GSP918
- Descripción general
- Actividades
- Configuración y requisitos
- Tarea 1: Prepara la base de datos de origen para la migración
- Tarea 2: Crea un perfil de conexión a Database Migration Service para una base de datos de PostgreSQL independiente
- Tarea 3: Crea y, luego, inicia un trabajo de migración continuo
- Tarea 4: Confirma los datos en Cloud SQL para PostgreSQL
- Tarea 5: Asciende Cloud SQL para que sea una instancia independiente en la que se pueda leer y escribir datos
- ¡Felicitaciones!
GSP918
Descripción general
Database Migration Service proporciona opciones de trabajos continuos y únicos para migrar datos a Cloud SQL usando distintas alternativas de conectividad, como listas de IP permitidas, intercambio de tráfico entre VPC y túneles SSH inversos (consulta la documentación sobre las opciones de conectividad en https://cloud.google.com/database-migration/docs/postgresql/configure-connectivity).
En este lab, migrarás una base de datos de PostgreSQL independiente (que se ejecuta en una máquina virtual) a Cloud SQL para PostgreSQL usando un trabajo continuo de Database Migration Service con intercambio de tráfico entre VPC como opción de conectividad.
Para migrar una base de datos a través de Database Migration Service primero debes prepararla, lo que incluye crear un usuario exclusivo con derechos de replicación, agregar la extensión pglogical
a la base de datos de origen y otorgarle a ese usuario los derechos al esquema y a las tablas de la base de datos que se migrará, y a la base de datos de postgres.
Después de crear y ejecutar el trabajo de migración, debes confirmar que se migró correctamente una copia inicial de tu base de datos a tu instancia de Cloud SQL para PostgreSQL. También explorarás cómo los trabajos de migración continuos le aplican actualizaciones de datos de tu base de datos de origen a tu instancia de Cloud SQL. Para concluir el trabajo de migración, debes ascender la instancia de Cloud SQL para que sea una base de datos independiente en la que se pueda leer y escribir datos.
Actividades
- Preparar la base de datos de origen para la migración
- Crear un perfil para una conexión de origen a una instancia de PostgreSQL (p. ej., PostgreSQL independiente)
- Configurar la conectividad entre las instancias de base de datos de origen y de destino usando el intercambio de tráfico entre VPC
- Configurar las reglas de acceso al firewall y la base de datos para permitir el acceso a la base de datos de origen para realizar la migración
- Crear, ejecutar y verificar un trabajo de migración continuo usando Database Migration Service
- Ascender la instancia de destino (Cloud SQL para PostgreSQL) para que sea una base de datos independiente en la que se pueda leer y escribir datos
Configuración y requisitos
Antes de hacer clic en el botón Comenzar lab
Lee estas instrucciones. Los labs son cronometrados y no se pueden pausar. El cronómetro, que comienza a funcionar cuando haces clic en Comenzar lab, indica por cuánto tiempo tendrás a tu disposición los recursos de Google Cloud.
Este lab práctico te permitirá realizar las actividades correspondientes en un entorno de nube real, no en uno de simulación o demostración. Para ello, se te proporcionan credenciales temporales nuevas que utilizarás para acceder a Google Cloud durante todo el lab.
Para completar este lab, necesitarás lo siguiente:
- Acceso a un navegador de Internet estándar (se recomienda el navegador Chrome)
- Tiempo para completar el lab: Recuerda que, una vez que comienzas un lab, no puedes pausarlo.
Cómo iniciar tu lab y acceder a la consola de Google Cloud
-
Haga clic en el botón Comenzar lab. Si debe pagar por el lab, se abrirá una ventana emergente para que seleccione su forma de pago. A la izquierda, se encuentra el panel Detalles del lab, que tiene estos elementos:
- El botón Abrir la consola de Google Cloud
- El tiempo restante
- Las credenciales temporales que debe usar para el lab
- Otra información para completar el lab, si es necesaria
-
Haz clic en Abrir la consola de Google Cloud (o haz clic con el botón derecho y selecciona Abrir el vínculo en una ventana de incógnito si ejecutas el navegador Chrome).
El lab inicia recursos y abre otra pestaña en la que se muestra la página de acceso.
Sugerencia: Ordene las pestañas en ventanas separadas, una junto a la otra.
Nota: Si ves el diálogo Elegir una cuenta, haz clic en Usar otra cuenta. -
De ser necesario, copia el nombre de usuario a continuación y pégalo en el diálogo Acceder.
{{{user_0.username | "Username"}}} También puedes encontrar el nombre de usuario en el panel Detalles del lab.
-
Haz clic en Siguiente.
-
Copia la contraseña que aparece a continuación y pégala en el diálogo Te damos la bienvenida.
{{{user_0.password | "Password"}}} También puedes encontrar la contraseña en el panel Detalles del lab.
-
Haz clic en Siguiente.
Importante: Debes usar las credenciales que te proporciona el lab. No uses las credenciales de tu cuenta de Google Cloud. Nota: Usar tu propia Cuenta de Google podría generar cargos adicionales. -
Haga clic para avanzar por las páginas siguientes:
- Acepta los Términos y Condiciones.
- No agregues opciones de recuperación o autenticación de dos factores (esta es una cuenta temporal).
- No te registres para obtener pruebas gratuitas.
Después de un momento, se abrirá la consola de Google Cloud en esta pestaña.
Activa Cloud Shell
Cloud Shell es una máquina virtual que cuenta con herramientas para desarrolladores. Ofrece un directorio principal persistente de 5 GB y se ejecuta en Google Cloud. Cloud Shell proporciona acceso de línea de comandos a tus recursos de Google Cloud.
- Haz clic en Activar Cloud Shell
en la parte superior de la consola de Google Cloud.
Cuando te conectes, habrás completado la autenticación, y el proyecto estará configurado con tu PROJECT_ID. El resultado contiene una línea que declara el PROJECT_ID para esta sesión:
gcloud
es la herramienta de línea de comandos de Google Cloud. Viene preinstalada en Cloud Shell y es compatible con la función de autocompletado con tabulador.
- Puedes solicitar el nombre de la cuenta activa con este comando (opcional):
-
Haz clic en Autorizar.
-
Ahora, el resultado debería verse de la siguiente manera:
Resultado:
- Puedes solicitar el ID del proyecto con este comando (opcional):
Resultado:
Resultado de ejemplo:
gcloud
, consulta la guía con la descripción general de gcloud CLI en Google Cloud.
Verifica que la API de Database Migration esté habilitada
- En la consola de Google Cloud, ingresa API de Database Migration en la barra de búsqueda superior. Haz clic en el resultado de la API de Database Migration.
En esta página aparecerá información del estado o se te ofrecerá la opción de habilitar la API.
- Si es necesario, habilita la API.
Verifica que la API de Service Networking esté habilitada
La API de Service Networking es necesaria para configurar Cloud SQL y que admita el intercambio de tráfico entre VPC y las conexiones a través de una dirección IP privada.
- En la consola de Cloud, ingresa API de Service Networking en la barra de búsqueda superior. Haz clic en el resultado de la API de Service Networking.
En esta página aparecerá información del estado o se te ofrecerá la opción de habilitar la API.
- Si es necesario, habilita la API.
Tarea 1: Prepara la base de datos de origen para la migración
En esta tarea, agregarás funciones a la base de datos de origen que son necesarias para que Database Migration Service realice una migración. Debes realizar las siguientes acciones:
- Instalar y configurar la extensión de base de datos pglogical
- Configurar la base de datos de PostgreSQL independiente para permitir el acceso desde Cloud Shell y Cloud SQL
- Agregar la extensión de base de datos
pglogical
a las bases de datospostgres
,orders
ygmemegen_db
en el servidor independiente - Crear el usuario
migration_admin
(con permisos de replicación) para la migración de la base de datos y otorgarle los permisos solicitados para el esquema y las relaciones
Actualiza la base de datos con la extensión pglogical
En este paso, descargarás la extensión pglogical
y la agregarás a las bases de datos orders y postgres en la instancia de VM postgresql-vm
.
-
En el menú de navegación (
) de la consola de Google Cloud, haz clic en Compute Engine > Instancias de VM.
-
En la entrada de
postgresql-vm
, debajo deConnect
haz clic en SSH. -
Si se te solicita, haz clic en Autorizar.
-
En la terminal de la nueva ventana del navegador, instala la extensión de base de datos
pglogical
:
pglogical
es un sistema de replicación lógica implementado por completo como extensión de PostgreSQL. Como está completamente integrado, no requiere activadores ni programas externos. Esta alternativa a la replicación física es un método altamente eficiente para replicar datos usando un modelo de publicación y suscripción para replicaciones selectivas. Obtén más información aquí: https://github.com/2ndQuadrant/pglogical
- Descarga y aplica algunas incorporaciones a los archivos de configuración de PostgreSQL (para habilitar la extensión) y reinicia el servicio de postgresql:
Con estos comandos, se agregó a pg_hba.conf
una regla para permitir el acceso a todos los hosts:
Con estos comandos también se estableció en postgresql.conf
la configuración mínima de pglogical para que escuche en todas las direcciones IP:
Los fragmentos de código anteriores se agregaron a los archivos relevantes y se reinició el servicio de PostgreSQL.
- Inicia la herramienta psql:
- Agrega la extensión de base de datos
pglogical
a las bases de datospostgres
,orders
ygmemegen_db
.
- Haz una lista de las bases de datos de PostgreSQL en el servidor:
Aquí puedes ver, además de las bases de datos postgresql predeterminadas, las bases de datos orders
y gmemegen_db
que se proporcionaron para este lab. No usarás la base de datos gmemegen_db
en este lab, pero se incluirá en la migración para usarla en otro lab.
Crea el usuario de migración de la base de datos
En este paso, crearás un usuario exclusivo para administrar la migración de la base de datos.
- En psql, ingresa los siguientes comandos para crear un usuario nuevo con el rol de replicación:
Asigna los permisos al usuario de migración
En este paso, le asignarás los permisos necesarios al usuario de migration_admin
para habilitar Database Migration Service y, así, migrar tu base de datos.
- En psql, otórgale los permisos para el esquema y las tablas de
pglogical
a la base de datospostgres
.
- En psql, otórgale los permisos para el esquema y las tablas de
pglogical
a la base de datosorders
.
- En psql, otórgale los permisos para el esquema y las tablas de
public
a la base de datosorders
.
- En psql, otórgale los permisos para el esquema y las tablas de
pglogical
a la base de datosgmemegen_db
.
- En psql, otórgale los permisos para el esquema y las tablas de
public
a la base de datosgmemegen_db
.
Ahora, las bases de datos de origen están preparadas para la migración. Los permisos que le otorgaste al usuario migration_admin
es todo lo que se necesita para que Database Migration Service migre las bases de datos postgres
, orders
y gmemegen_db
.
Convierte al usuario migration_admin
en propietario de las tablas en la base de datos orders
para que puedas editar los datos de origen más adelante cuando hagas pruebas de la migración.
- En psql, ejecuta los siguientes comandos:
- Sal de psql y de la sesión del usuario de postgres
Haz clic en Revisar mi progreso para verificar el objetivo.
Tarea 2: Crea un perfil de conexión a Database Migration Service para una base de datos de PostgreSQL independiente
En esta tarea, crearás un perfil de conexión para la instancia de PostgreSQL de origen.
Obtén la información de conectividad para la instancia de PostgreSQL de origen
En este paso, identificarás la dirección IP interna de la instancia de base de datos de origen que migrarás a Cloud SQL.
-
En el menú de navegación (
) de la consola de Google Cloud, haz clic en Compute Engine > Instancias de VM.
-
Ubica la línea que tenga la instancia llamada postgresql-vm.
-
Copia el valor de la IP interna (p. ej., 10.128.0.2).
Crea un nuevo perfil de conexión para la instancia de PostgreSQL de origen
Un perfil de conexión almacena información sobre la instancia de base de datos de origen (p. ej., PostgreSQL independiente), y Database Migration Service lo utiliza para migrar datos desde el origen hasta tu instancia de base de datos de Cloud SQL de destino. Después de crear un perfil de conexión, se puede volver a utilizar en los trabajos de migración.
En este paso, crearás un nuevo perfil de conexión para la instancia PostgreSQL de origen.
-
En la consola de Google Cloud, en el menú de navegación (
), haz clic en Migración de bases de datos > Perfiles de conexión.
-
Haz clic en + Crear perfil.
-
En Motor de base de datos, selecciona PostgreSQL.
-
En Nombre del perfil de conexión, ingresa postgres-vm.
-
En Nombre de host o dirección IP, ingresa la IP interna de la instancia de PostgreSQL de origen que copiaste en la tarea anterior (p. ej., 10.128.0.2).
-
En Puerto, ingresa 5432.
-
En Nombre de usuario, ingresa migration_admin.
-
En Contraseña, ingresa DMS_1s_cool! .
-
En Región, selecciona
. -
Deja los demás valores en su configuración predeterminada.
-
Haz clic en Crear.
Aparecerá un nuevo perfil de conexión con el nombre postgres-vm en la lista de perfiles llamada Conexiones.
Haz clic en Revisar mi progreso para verificar el objetivo.
Tarea 3: Crea y, luego, inicia un trabajo de migración continuo
Cuando creas un nuevo trabajo de migración, primero debes definir la instancia de base de datos de origen usando un perfil de conexión creado previamente. Luego, debes crear una nueva instancia de base de datos de destino y configurar la conectividad entre las instancias de origen y de destino.
En esta tarea, usarás la interfaz del trabajo de migración para crear una nueva instancia de base de datos de Cloud SQL para PostgreSQL y la establecerás como el destino para el trabajo de migración continuo de la instancia de origen de PostgreSQL.
Crea un nuevo trabajo de migración continuo
En este paso, crearás un nuevo trabajo de migración continuo.
-
En la consola de Google Cloud, en el menú de navegación (
), haz clic en Migración de bases de datos > Trabajos de migración.
-
Haz clic en + Crear trabajos de migración.
-
En Nombre del trabajo de migración, ingresa vm-to-cloudsql.
-
En Motor de base de datos de origen, selecciona PostgreSQL.
-
En Región de destino, selecciona
. -
En Motor de la base de datos de destino, selecciona Cloud SQL para PostgreSQL.
-
En Tipo de trabajo de migración, selecciona Continuo.
Deja los valores predeterminados para el resto de la configuración.
- Haz clic en Guardar y continuar.
Define la instancia de origen
En este paso, definirás la instancia de origen para la migración.
- En Perfil de conexión fuente, selecciona postgres-vm.
Deja los valores predeterminados para el resto de la configuración.
- Haz clic en Guardar y continuar.
Crea la instancia de destino
En este paso, crearás la instancia de destino para la migración.
-
En ID de la instancia de destino, ingresa postgresql-cloudsql.
-
En Contraseña, ingresa supersecret!.
-
En Elige una edición de Cloud SQL, selecciona Enterprise.
-
En Versión de la base de datos, selecciona Cloud SQL para PostgreSQL 13.
-
En la sección Elige la región y la zona, selecciona Zona única y selecciona
como zona principal. -
En Conectividad de las instancias, selecciona IP privada e IP pública.
-
Selecciona Usar un rango de IP asignado automáticamente.
Deja los valores predeterminados para el resto de la configuración.
- Haz clic en Asignar y conectar.
Nota: Este paso puede tardar unos minutos. Si se te pide reintentar la solicitud, haz clic en el botón Volver a intentarlo para actualizar la API de Service Networking.
Cuando se complete este paso, se te notificará a través de un mensaje actualizado que la instancia usará la conexión del servicio administrado existente.
Tendrás que editar el archivo pg_hba.conf en la instancia de VM para permitir el acceso al rango de IP que se generó automáticamente en el punto 5 del paso anterior. Harás esto en un paso posterior, antes de probar la configuración de migración al final de esta tarea.
Ingresa la información adicional necesaria para crear la instancia de destino en Cloud SQL.
-
En Formas de máquinas, marca 1 CPU virtual, 3.75 GB.
-
En Tipo de almacenamiento, selecciona SSD.
-
En Capacidad de almacenamiento, selecciona 10 GB.
-
Haz clic en Crear y continuar.
Si se te solicita confirmar, haz clic en Crear destino y continuar. Se indicará en un mensaje que se está creando tu instancia de base de datos de destino. Avanza al siguiente paso mientras esperas.
Define el método de conectividad
En este paso, definirás el método de conectividad para la migración.
-
En Método de conectividad, selecciona Intercambio de tráfico entre VPC.
-
En VPC, selecciona predeterminada.
Database Migration Service configura el intercambio de tráfico entre VPC usando la información proporcionada por la red de VPC (la red predeterminada en este ejemplo).
Cuando veas un mensaje actualizado que indica que se creó la instancia de destino, avanza al siguiente paso.
- Haz clic en Configurar y continuar.
Permite el acceso a la instancia postgresql-vm desde un rango de IP asignado automáticamente
En este paso, editarás el archivo de configuración de PostgreSQL pg_hba.conf
para permitir que Database Migration Service acceda a la base de datos de PostgreSQL independiente.
-
Obtén el rango de direcciones IP asignadas. En la consola de Google Cloud, en el menú de navegación (
), haz clic con el botón derecho en red de VPC > Intercambio de tráfico entre redes de VPC y ábrelo en una nueva pestaña.
-
Haz clic en la entrada
servicenetworking-googleapis-com
. -
En la pestaña Rutas importadas, selecciona y copia el
Rango de IP de destino
(p. ej., 10.107.176.0/24). -
En la sesión de terminal en la instancia de VM, edita el archivo
pg_hba.conf
de la siguiente manera:
- En la última línea del archivo:
reemplaza el rango “todas las direcciones IP” (0.0.0.0/0) por el que copiaste en el punto 3 más arriba.
-
Guarda y sal del editor nano con Ctrl-O, Intro y, luego, Ctrl-X.
-
Reinicia el servicio de PostgreSQL para que se apliquen los cambios. En la sesión de terminal de la instancia de VM, ingresa lo siguiente:
Prueba y, luego, inicia el trabajo de migración continuo
En este paso, probarás y, luego, iniciarás el trabajo de migración.
-
En la pestaña Database Migration Service que abriste anteriormente, revisa los detalles del trabajo de migración.
-
Haz clic en Probar trabajo.
-
Si la prueba se realiza correctamente, haz clic en Crear y ejecutar trabajo.
Si se te solicita confirmar, haz clic en Crear y comenzar.
Revisa el estado del trabajo de migración continuo
En este paso, confirmarás que el trabajo de migración continuo se esté ejecutando.
-
En la consola de Google Cloud, en el menú de navegación (
), haz clic en Migración de bases de datos > Trabajos de migración.
-
Haz clic en el trabajo de migración vm-to-cloudsql para ver la página de detalles.
-
Revisa el estado del trabajo de migración.
- Si no has iniciado el trabajo, el estado aparecerá como No se inició. Puedes optar por iniciar o borrar el trabajo.
- Después de que comience el trabajo, el estado aparecerá como Iniciando y, luego, cambiará a En ejecución | Volcado completo en curso para indicar que se está realizando el volcado inicial de la base de datos.
- Cuando se complete, el estado cambiará a En ejecución | CDC en curso para indicar que la migración continua está activa.
Cuando el estado del trabajo cambie a En ejecución | CDC en curso, avanza al próximo paso.
Haz clic en Revisar mi progreso para verificar el objetivo.
Tarea 4: Confirma los datos en Cloud SQL para PostgreSQL
Verifica las bases de datos de PostgreSQL en Cloud SQL
-
En la consola de Google Cloud, en el menú de navegación (
), haz clic en Bases de datos > SQL.
-
Expande el ID de instancia que tiene el nombre postgresql-cloudsql-master.
-
Haz clic en la instancia postgresql-cloudsql (réplica de lectura de PostgreSQL).
-
En el menú Instancia de réplica, haz clic en Bases de datos.
Ten en cuenta que se migraron a Cloud SQL las bases de datos llamadas postgres, orders y gmemegen_db.
Conéctate a la instancia de PostgreSQL
-
En el menú Instancia de réplica, haz clic en Descripción general.
-
Desplázate hasta la sección Conectarse a esta instancia y haz clic en Abrir Cloud Shell.
El comando para conectarte a PostgreSQL se prepropagará en Cloud Shell:
- Ejecuta el comando prepropagado.
Si se te solicita, haz clic en Autorizar para la API.
- Cuando se te solicite una contraseña, ingresa la que ya estableciste:
Acabas de activar la consola interactiva de PostgreSQL para la instancia de destino.
Revisa los datos en la instancia de Cloud SQL para PostgreSQL
- Para seleccionar la base de datos en la consola interactiva de PostgreSQL, ejecuta el siguiente comando:
- Cuando se te solicite una contraseña, ingresa la siguiente:
- Consulta la tabla
distribution_centers
:
(Resultado)
- Sal de la consola interactiva de PostgreSQL escribiendo lo siguiente:
Actualiza los datos de origen independientes para probar la migración continua
- En Cloud Shell, escribe los siguientes comandos para conectarte a la instancia de origen de PostgreSQL:
- Cuando se te solicite una contraseña, ingresa la siguiente:
- En psql, ingresa los siguientes comandos:
- Cierra la sesión interactiva de psql:
Conéctate a la base de datos de PostgreSQL de Cloud SQL para verificar si se migraron los datos actualizados
- En Cloud Shell, escribe los siguientes comandos para conectarte a la instancia de PostgreSQL de Cloud SQL de destino:
- Cuando se te solicite una contraseña, ingresa la contraseña de la instancia de Cloud SQL que ya estableciste:
Acabas de activar la consola interactiva de PostgreSQL para la instancia de destino.
Revisa los datos de la base de datos de Cloud SQL para PostgreSQL
- En Cloud Shell, selecciona la base de datos activa en la consola interactiva de PostgreSQL:
- Cuando se te solicite una contraseña, ingresa la que ya estableciste:
- Consulta la tabla
distribution_centers
:
(Resultado)
Ten en cuenta que la nueva fila agregada a la base de datos independiente orders
ahora está presente en la base de datos migrada.
- Sal de la consola interactiva de PostgreSQL:
Haz clic en Revisar mi progreso para verificar el objetivo.
Tarea 5: Asciende Cloud SQL para que sea una instancia independiente en la que se pueda leer y escribir datos
-
En la consola de Google Cloud, en el menú de navegación (
), haz clic en Migración de bases de datos > Trabajos de migración.
-
Haz clic en el nombre de trabajo de migración vm-to-cloudsql para ver la página de detalles.
-
Haz clic en Ascender.
Si se te solicita confirmar la acción, haz clic en Ascender.
Cuando se complete el ascenso, el estado del trabajo se actualizará a Completado.
- En la consola de Google Cloud, en el menú de navegación (
), haz clic en Bases de datos > SQL.
Ten en cuenta que postgresql-cloudsql ahora es una instancia independiente en la que se puede leer y escribir datos.
Haz clic en Revisar mi progreso para verificar el objetivo.
¡Felicitaciones!
Aprendiste a configurar un trabajo de Database Migration Service continuo para migrar bases de datos de una instancia de PostgreSQL a Cloud SQL para PostgreSQL.
Capacitación y certificación de Google Cloud
Recibe la formación que necesitas para aprovechar al máximo las tecnologías de Google Cloud. Nuestras clases incluyen habilidades técnicas y recomendaciones para ayudarte a avanzar rápidamente y a seguir aprendiendo. Para que puedas realizar nuestros cursos cuando más te convenga, ofrecemos distintos tipos de capacitación de nivel básico a avanzado: a pedido, presenciales y virtuales. Las certificaciones te ayudan a validar y demostrar tus habilidades y tu conocimiento técnico respecto a las tecnologías de Google Cloud.
Última actualización del manual: 14 de mayo de 2024
Prueba más reciente del lab: 14 de mayo de 2024
Copyright 2024 Google LLC. All rights reserved. Google y el logotipo de Google son marcas de Google LLC. Los demás nombres de productos y empresas pueden ser marcas de las respectivas empresas a las que estén asociados.