En esta página, se describe cómo migrar tus bases de datos a una instancia de Cloud SQL para PostgreSQL existente creada directamente en Cloud SQL.
Esta ruta es útil para situaciones en las que un equipo diferente administra la instancia de destino o si necesitas crear la instancia fuera de Database Migration Service (por ejemplo, si usas Terraform, necesitas marcas personalizadas específicas o requieres topologías de red avanzadas). Si tu migración tiene requisitos diferentes, considera seguir un flujo de migración diferente. Para obtener más información, consulta Comienza a usar las migraciones de PostgreSQL.
En general, la migración sigue estos pasos:
- Configurar la base de datos de origen para permitir que Database Migration Service mueva tus datos a las bases de datos nuevas
- Configura la conectividad de red a tu instancia de PostgreSQL de origen.
- Prepara y configura tu instancia de Cloud SQL de destino existente.
- Crea el perfil de conexión de origen y el trabajo de migración.
- Inicia y supervisa el trabajo de migración.
- Ascender el trabajo de migración y mover tu aplicación para que use las bases de datos nuevas
Costos
En este documento, usarás los siguientes componentes facturables de Google Cloud:
- Cloud SQL (consulta Precios de Cloud SQL).
- Si se usa para almacenar claves de encriptación administradas por el cliente (CMEK): Cloud Storage (consulta los precios de Cloud Storage).
Para generar una estimación de costos en función del uso previsto, usa la calculadora de precios.
Antes de comenzar
- Verifica si esta ruta de migración puede admitir por completo tu situación.
Consulta las siguientes páginas:
- En Fuentes y destinos compatibles, en la página Descripción general del caso de uso, se enumeran todas las versiones de origen y destino compatibles.
- En Limitaciones conocidas para las instancias existentes, se describen las limitaciones, incluido el requisito de que la instancia de destino existente no debe contener datos definidos por el usuario existentes.
- Considera en qué región deseas crear la base de datos de destino. Database Migration Service es un producto completamente regional, lo que significa que todas las entidades relacionadas con tu migración (perfiles de conexión de origen y destino, trabajos de migración, bases de datos de destino y espacios de trabajo de conversión) deben guardarse en una sola región.
- En la consola de Google Cloud , en la página del selector de proyectos, selecciona o crea un proyecto de Google Cloud .
- Habilita las APIs de Database Migration Service y Cloud SQL Admin.
Roles obligatorios
Para obtener los permisos que necesitas para realizar migraciones homogéneas de PostgreSQL con Database Migration Service, pídele a tu administrador que te otorgue los roles de IAM necesarios en tu proyecto:
-
Administrador de Database Migration (
roles/datamigration.admin) -
Editor de Cloud SQL (
roles/cloudsql.editor) - Si necesitas crear o configurar la instancia de destino fuera de Database Migration Service, también
necesitas el rol de
administrador de Cloud SQL (
roles/cloudsql.admin). -
Usuario de Cloud SQL Studio (
roles/cloudsql.studioUser)
Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso en la documentación de Identity and Access Management.
Estos roles predefinidos contienen los permisos necesarios para realizar migraciones homogéneas de PostgreSQL con Database Migration Service. Para ver los permisos exactos que son necesarios, expande la sección Permisos requeridos:
Permisos necesarios
Se requieren los siguientes permisos para realizar migraciones homogéneas de PostgreSQL con Database Migration Service:
datamigration.*cloudsql.instances.createcloudsql.instances.getcloudsql.instances.listcloudsql.instances.updatecloudsql.instances.deletecloudsql.operations.getcloudsql.users.listcloudsql.users.getcloudsql.users.createcloudsql.users.updatecloudsql.users.delete
También puedes obtener estos permisos con roles personalizados o con otros roles predefinidos.
Prepara tu base de datos de origen
Para preparar tus datos de origen para la migración, sigue estos pasos:
- Elige y configura el método de conectividad de red de origen.
- Configura tu instancia de base de datos de origen. En un nivel alto, esto incluye
los siguientes pasos:
- Instala la extensión de PostgreSQL
pglogical(versión 2.2.1 o posterior) en la base de datos de origen y en todas las bases de datos que se migrarán. - Configura los parámetros de PostgreSQL: establece
wal_level = logicaly asegúrate de que los valores demax_replication_slots,max_wal_sendersymax_worker_processessean adecuados. - Otorga privilegios de replicación a tu usuario de migración y configura
pg_hba.confpara permitir conexiones desde la instancia de Cloud SQL de destino.
Para obtener instrucciones detalladas, consulta Configura tu base de datos de origen.
- Instala la extensión de PostgreSQL
- Crea el perfil de conexión de origen.
Prepara y configura tu instancia de destino
Cuando migres a una instancia de Cloud SQL existente (como una instancia aprovisionada previamente por otro equipo o administrada con Terraform), asegúrate de que la instancia cumpla con todos los requisitos previos de Database Migration Service antes de crear el trabajo de migración:
- Preparación de la instancia y estado de los datos:
- La instancia de destino debe ser una instancia independiente (no una réplica)
en el estado
RUNNABLE. - La instancia debe residir en la misma región de Google Cloud que tu trabajo de migración y perfil de conexión.
- La instancia solo se puede asociar con un trabajo de migración activo a la vez.
- La instancia de destino no debe contener datos de usuario existentes, tablas definidas por el usuario ni bases de datos que no sean del sistema. La verificación del trabajo de migración falla si hay datos de usuarios existentes en la instancia. Para obtener más información, consulta Limitaciones de las migraciones a instancias de destino existentes. Si es necesario, borra los datos existentes de tu instancia de destino.
- La instancia de destino debe ser una instancia independiente (no una réplica)
en el estado
- Configuración de la marca de base de datos: Habilita la
marca
cloudsql.enable_pglogicalen tu instancia de destino de Cloud SQL para PostgreSQL. Esta marca es obligatoria para la replicación lógica. Para obtener más información sobre cómo configurar marcas, consulta Configura marcas de base de datos. - Credenciales y permisos de usuario de la base de datos: Asegúrate de que las cuentas de usuario de la base de datos administrativa requeridas existan en tu instancia de destino (como el usuario
postgrespredeterminado o un usuario de migración dedicado con el rolcloudsqlsuperuser) para administrar bases de datos y roles. Puedes crear y administrar usuarios de bases de datos con comandos estándar depsqlo a través de la consola de Google Cloud . Para obtener más información, consulta Administra usuarios en la documentación de Cloud SQL. - Requisitos de conectividad de red: Verifica que las herramientas de redes de tu instancia de destino estén configuradas correctamente para comunicarse con tu base de datos de origen según el método de conectividad que elijas:
- Private Service Connect: Si tu instancia de destino tiene habilitado Private Service Connect, debe tener configurado un adjunto de red saliente de Private Service Connect. Consulta Conexiones salientes de Private Service Connect en la documentación de Cloud SQL.
- Intercambio de tráfico entre redes de nube privada virtual (acceso privado a servicios / IP privada): La instancia de destino debe tener habilitada la IP privada en la red de nube privada virtual que intercambia tráfico con tu base de datos de origen o enruta a ella. Consulta Configura IP privadas.
- Lista de IPs públicas permitidas: Si usas la conectividad de IP pública, asegúrate de habilitar la IP pública en tu instancia de destino y de agregar a la lista de entidades permitidas las direcciones IP salientes de la instancia (incluidas las IPs salientes principales y secundarias si la instancia está configurada para alta disponibilidad) en tu firewall de origen. Consulta Autoriza redes para IP pública.
- Aviso de descenso de nivel de la instancia:
- En las migraciones estándar de PostgreSQL, Database Migration Service desciende de nivel la instancia de destino independiente existente para configurarla como una réplica externa de tu base de datos de origen. Debes confirmar este descenso de nivel cuando crees el trabajo de migración en la consola de Google Cloud ingresando el ID de la instancia de destino.
- Descender de nivel la instancia no coloca la base de datos de Cloud SQL para PostgreSQL en modo de solo lectura, pero debes evitar las operaciones de escritura en tablas o bases de datos que participen en la migración para evitar conflictos de replicación.
- Las copias de seguridad automáticas, la recuperación de un momento determinado (PITR) y la creación de réplicas de lectura de Cloud SQL se suspenden hasta que asciendas el trabajo de migración. Para obtener más información, consulta Limitaciones de las migraciones a instancias de destino existentes.
- Si administras tu instancia de destino con infraestructura como código (como Terraform), Database Migration Service modifica la configuración de copia de seguridad y recuperación durante la migración. Para obtener orientación sobre cómo controlar la desviación de la configuración de Terraform, consulta Diagnostica problemas.
Crea y ejecuta el trabajo de migración
Para configurar y ejecutar la migración, sigue estos pasos:
- Opcional: Si deseas administrar tus propios certificados o claves de encriptación para el trabajo de migración, prepara las claves de encriptación necesarias.
-
Crea y ejecuta el trabajo de migración para una instancia de destino existente.
Puedes supervisar el progreso de la migración y el estado de la instancia de destino con las funciones de observabilidad de Database Migration Service. Consulta Métricas de trabajos de migración.
Finaliza la migración
Cuando decidas cambiar tu aplicación a la nueva instancia de Cloud SQL para PostgreSQL, finaliza la migración con estos pasos:
- Opcional: Configura réplicas de lectura en cascada. Si quieres usar réplicas de lectura en cascada, puedes configurarlas cuando el trabajo de migración ingrese a la fase de CDC.
- Detén todas las operaciones de escritura en la base de datos de origen. Puedes cambiarlas al modo de solo lectura para conservar la funcionalidad operativa.
- Ascender el trabajo de migración.
- Opcional: Verifica que los datos de la migración estén completos.
- Si administras tu base de datos de destino con infraestructura como código (como Terraform), vuelve a aplicar tu configuración después de la promoción para conciliar cualquier parámetro de configuración que Database Migration Service haya ajustado durante la migración.
¿Qué sigue?
Obtén más información sobre las funciones de Google Cloud para Cloud SQL para PostgreSQL. Consulta Funciones de Cloud SQL para PostgreSQL.