En esta página, se describe cómo realizar migraciones de inicio rápido para migraciones homogéneas de PostgreSQL a AlloyDB para PostgreSQL.
Descripción general
Las migraciones de inicio rápido son un flujo de migración continua ligero para situaciones homogéneas de PostgreSQL. Con las migraciones de inicio rápido, Database Migration Service puede configurar automáticamente todo lo que necesitas para migrar tus bases de datos: componentes de redes (adjuntos de red, subredes, configuraciones de conectividad privada), perfiles de conexión y trabajos de migración.
Con las migraciones de inicio rápido, puedes transferir tus datos a un clúster existente de AlloyDB para PostgreSQL o crear uno nuevo mientras configuras la migración. Las migraciones de inicio rápido son más adecuadas para los siguientes casos:
- Migraciones básicas, en las que no necesitas un control preciso sobre la configuración de paralelismo del depósito de datos.
- Migrar tu base de datos de un proyecto Google Cloud a otro Cuando configuras una migración de inicio rápido, puedes crear tu clúster de destino en un proyecto diferente del de origen y configurar Database Migration Service para que cree el adjunto de red y la subred en la red de nube privada virtual (VPC) de otro proyecto.
-
Migrar desde fuentes que tienen una dirección IP privada en tu red de Google Cloud nube privada virtual (VPC), como bases de datos autoadministradas en Compute Engine o instancias de Cloud SQL para PostgreSQL habilitadas para redes privadas
Es posible que las fuentes alojadas fuera de Google Cloud necesiten componentes de red adicionales (como una conexión de Cloud VPN) para que se pueda acceder a ellas en una dirección IP privada dentro de tu red de VPC.
- El único método admitido para la conectividad de la base de datos son las interfaces de Private Service Connect con los parámetros de configuración de conectividad privada de Database Migration Service. Tu base de datos de origen debe tener una IP privada asignada en la red de VPC. No se admiten otros métodos de conectividad de origen homogéneos (como listas de IP públicas permitidas, túneles SSH inversos o intercambio de tráfico entre VPC) para las migraciones de inicio rápido.
Para obtener más información sobre las migraciones de inicio rápido, consulta Descripción general de las migraciones de inicio rápido en la documentación principal de Database Migration Service.
Antes de comenzar
- Verifica si las migraciones de inicio rápido pueden admitir completamente tu situación. Consulta las limitaciones de la migración de inicio rápido.
-
Accede a tu Cuenta de Google.
Si todavía no tienes una cuenta, regístrate para obtener una nueva.
-
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.
-
Verify that billing is enabled for your Google Cloud project.
-
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.
-
Verify that billing is enabled for your Google Cloud project.
- Habilita las APIs de Database Migration Service, Compute Engine, Network Connectivity Center y AlloyDB para PostgreSQL Admin.
Roles obligatorios
Para obtener los permisos que necesitas para ejecutar migraciones de inicio rápido a AlloyDB para PostgreSQL con Database Migration Service, pídele a tu administrador que otorgue los roles de Identity and Access Management (IAM) necesarios para las cuentas involucradas en la migración en los proyectos pertinentes. Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso en la documentación de IAM.
Roles y permisos en el proyecto de origen
Otorga los siguientes roles a cuentas específicas en el proyecto Google Cloud en el que reside tu base de datos de origen:
- Para la cuenta de usuario que realiza la migración:
Rol de
Administrador de red de Compute (
roles/compute.networkAdmin) - Para la cuenta de servicio de Database Migration Service del proyecto de destino:
Visualizador de red de Compute (
roles/compute.networkViewer)La cuenta de servicio de Database Migration Service se crea cuando habilitas la API de Database Migration Service. La dirección de correo electrónico asociada con esta cuenta se genera automáticamente y no se puede cambiar. Esta dirección de correo electrónico usa el siguiente formato:
service-DESTINATION_PROJECT_NUMBER@gcp-sa-datamigration.iam.gserviceaccount.com
Estos roles predefinidos contienen los permisos necesarios para configurar la conectividad en tu proyecto de base de datos fuente como parte de una migración de inicio rápido con Database Migration Service. Para ver los permisos exactos que son necesarios, expande la sección Permisos requeridos (fuente):
Permisos necesarios (fuente)
Se requieren los siguientes permisos para realizar migraciones rápidas homogéneas con Database Migration Service:
Para la cuenta de usuario que realiza la migración, haz lo siguiente:
compute.networks.*compute.subnetworks.*compute.networkAttachments.*
Para la cuenta de servicio de Database Migration Service del proyecto de destino, usa compute.networkAttachments.get.
Roles y permisos en el proyecto de destino
Otorga los siguientes roles a la cuenta de usuario que realiza la migración en el proyecto Google Cloud en el que reside tu base de datos de destino:
-
Administrador de Database Migration (
roles/datamigration.admin) -
Administrador de AlloyDB (
roles/alloydb.admin)
Estos roles predefinidos contienen los permisos necesarios para configurar los componentes de migración requeridos en tu proyecto de base de datos de destino como parte de una migración de inicio rápido con Database Migration Service. Para ver los permisos exactos que son necesarios, expande la sección Permisos requeridos (destino):
Permisos requeridos (destino)
Se requieren los siguientes permisos para realizar migraciones rápidas homogéneas con Database Migration Service:
datamigration.*alloydb.clusters.createalloydb.clusters.getalloydb.clusters.listalloydb.clusters.updatealloydb.clusters.deletealloydb.instances.createalloydb.instances.getalloydb.instances.listalloydb.instances.updatealloydb.instances.deletealloydb.instances.executeSqlalloydb.operations.getalloydb.users.listalloydb.users.getalloydb.users.createalloydb.users.updatealloydb.users.delete
Configurar tu base de datos de origen
Para configurar tu base de datos de origen de PostgreSQL, haz lo siguiente:
- Crea una cuenta de usuario de migración dedicada en tu instancia.
- Para las fuentes de Cloud SQL para PostgreSQL, consulta Cómo crear un usuario en la documentación de Cloud SQL.
- Para otras fuentes, consulta la documentación de tu proveedor de bases de datos o crea y administra usuarios en la documentación de PostgreSQL.
- Asigna los privilegios necesarios a la cuenta de usuario de migración dedicada.
Ejecuta los siguientes comandos para cada base de datos que quieras migrar:
-- Grant the REPLICATION attribute ALTER ROLE MIGRATION_USER REPLICATION; -- Grant database-level permissions. -- Repeat for each database you want to migrate. GRANT CONNECT, CREATE ON DATABASE DATABASE_NAME TO MIGRATION_USER; -- Grant schema-level usage. -- Repeat for each schema in each database you want to migrate. GRANT USAGE ON SCHEMA SCHEMA_NAME TO MIGRATION_USER;
Reemplaza lo siguiente:
- MIGRATION_USER por el nombre de la cuenta de usuario de migración
- DATABASE_NAME por el nombre de la base de datos que deseas migrar.
- SCHEMA_NAME con el nombre del esquema en la base de datos que deseas migrar
- La cuenta de usuario de migración debe tener acceso de propiedad a las tablas que migres. Para otorgar este nivel de acceso, realiza una de las siguientes acciones:
- Asigna el rol de PostgreSQL
SUPERUSERa la cuenta de migración.- En el caso de las fuentes de Cloud SQL para PostgreSQL, asigna el rol de
cloudsqlsuperuser. - Para otras fuentes, asigna el
rol de
SUPERUSERo consulta la documentación de tu proveedor de bases de datos para obtener un conjunto equivalente de permisos.
- En el caso de las fuentes de Cloud SQL para PostgreSQL, asigna el rol de
- Agrega la cuenta de usuario de migración al grupo de usuarios propietario de las tablas.
Ejecuta el comando siguiente:
-- Grant table ownership. GRANT TABLE_OWNER_GROUP_NAME TO MIGRATION_USER;
Reemplaza lo siguiente:
- TABLE_OWNER_GROUP_NAME con el nombre del grupo de usuarios propietario de cada tabla que deseas migrar.
- MIGRATION_USER por el nombre de la cuenta de usuario de migración
- Asigna el rol de PostgreSQL
- Para las tablas que no tienen claves primarias: Database Migration Service no replica las operaciones
UPDATEniDELETEpara las tablas sin claves primarias durante la fase de captura de datos modificados (CDC). Si deseas incluir estas operaciones en tu replicación, modifica las tablas sin claves primarias conREPLICA IDENTITY:ALTER TABLE TABLE_NAME REPLICA IDENTITY FULL; ALTER TABLE TABLE_NAME REPLICA IDENTITY USING INDEX INDEX_NAME;
Reemplaza lo siguiente:
- TABLE_NAME es el nombre de la tabla que no tiene claves primarias.
- INDEX_NAME es el índice único que puede hacer un seguimiento de las filas de las tablas sin claves primarias.
- Configura los parámetros de replicación con marcas de bases de datos.
Fuentes autoadministradas
Para guardar los cambios en las marcas de la base de datos, se requiere un reinicio completo de la base de datos. En los siguientes ejemplos, se usan consultas en SQL para cambiar los valores de las marcas. Si no puedes ejecutar consultas en SQL directamente, consulta la documentación de tu proveedor para conocer los pasos para cambiar estos parámetros.
- Establece el parámetro
wal_levelenlogical. Ejecuta el comando siguiente:ALTER SYSTEM SET wal_level = 'logical';
- Establece el parámetro
wal_sender_timeouten0. Este valor inhabilita el mecanismo de tiempo de espera que se usa para finalizar las conexiones de replicación inactivas. Ejecuta el comando siguiente:ALTER SYSTEM SET wal_sender_timeout = 0;
- Configura la cantidad máxima de ranuras de replicación con el parámetro
max_replication_slots. Este parámetro debe establecerse en, al menos, la cantidad de bases de datos que migras por trabajo de migración, más algunas reservas para la sincronización de tablas.Por ejemplo, si migras 5 bases de datos y se crean 2 trabajos de migración para la instancia de origen, la cantidad de ranuras de replicación debe ser al menos
5 * 2 = 10, más la cantidad de ranuras de replicación que ya usas.Para establecer este parámetro, ejecuta el siguiente comando:
Aquí, NUMBER_OF_SLOTS representa la cantidad máxima de ranuras de replicación.ALTER SYSTEM SET max_replication_slots = NUMBER_OF_SLOTS;
- Configura el parámetro
max_wal_senderscon, al menos, el mismo valor quemax_replication_slots, además de la cantidad de remitentes que ya se usaron en tu instancia.Por ejemplo, si el parámetro
max_replication_slotsse establece en10y ya usas 2 remitentes, la cantidad de procesos de remitente WAL que se ejecutan al mismo tiempo sería10 + 2 = 12.Para establecer este parámetro, ejecuta el siguiente comando:
Donde NUMBER_OF_SENDERS representa la cantidad de procesos de remitente WAL que se ejecutan de forma simultánea.ALTER SYSTEM SET max_wal_senders = NUMBER_OF_SENDERS;
- Configura
max_worker_processesen, al menos, la cantidad de bases de datos que deseas migrar, más la cantidad demax_worker_processesque ya se usan en tu instancia. Para establecer este parámetro, ejecuta el siguiente comando: Aquí, NUMBER_OF_PROCESSES representa la cantidad de bases de datos que se migrarán.ALTER SYSTEM SET max_worker_processes = NUMBER_OF_PROCESSES;
Fuentes de Cloud SQL para PostgreSQL
En el caso de las fuentes de Cloud SQL, puedes configurar marcas de bases de datos en la consola de Google Cloud . Debes reiniciar la instancia después de modificar las marcas de la base de datos para que el parámetro de configuración surta efecto. Para obtener más información sobre cómo configurar marcas de bases de datos en Cloud SQL, consulta Configura marcas de bases de datos en la documentación de Cloud SQL.
- Establece la marca
cloudsql.logical_decodingenon. - Establece también el parámetro
wal_sender_timeouten0. Este valor inhabilita el mecanismo de tiempo de espera que se usa para finalizar las conexiones de replicación inactivas. - Configura la cantidad máxima de ranuras de replicación con el parámetro
max_replication_slots. Este parámetro debe establecerse en, al menos, la cantidad de bases de datos que migras por trabajo de migración, más algunas reservas para la sincronización de tablas.Por ejemplo, si migras 5 bases de datos y se crean 2 trabajos de migración para la instancia de origen, la cantidad de ranuras de replicación debe ser al menos
5 * 2 = 10, más la cantidad de ranuras de replicación que ya usas. - Configura el parámetro
max_wal_senderscon, al menos, el mismo valor quemax_replication_slots, además de la cantidad de remitentes que ya se usaron en tu instancia.Por ejemplo, si el parámetro
max_replication_slotsse establece en10y ya usas 2 remitentes, la cantidad de procesos de remitente WAL que se ejecutan al mismo tiempo sería10 + 2 = 12. - Establece
max_worker_processesen, al menos, la cantidad de bases de datos que deseas migrar, más la cantidad demax_worker_processesque ya se usan en tu instancia.
- Establece el parámetro
Crea y ejecuta una migración de inicio rápido
Para crear y ejecutar una migración de inicio rápido, haz lo siguiente:
- En la consola de Google Cloud , ve a la página Comenzar.
- En el menú Motor de origen, selecciona PostgreSQL.
- En el menú Motor de destino, selecciona AlloyDB para PostgreSQL.
Aparecerá la sección Presentamos la migración de inicio rápido de PostgreSQL.
- En la sección Presentamos la migración de inicio rápido de PostgreSQL, haz clic en Iniciar migración.
Se abrirá la página Migrate to AlloyDB para PostgreSQL.
- En la sección Configurar la migración, haz lo siguiente:
- En el menú Región de destino, selecciona la región de tu clúster de destino de AlloyDB para PostgreSQL.
- En el cuadro Prefijo de migración, ingresa una cadena legible que se agregará a los nombres de todas las entidades de migración creadas para la migración de inicio rápido: perfiles de conexión, configuración de conectividad privada, adjunto de red y su subred, y trabajo de migración.
- En el menú Tipo de configuración, selecciona una de las siguientes opciones:
- Configuración de conectividad existente: Selecciona esta opción si ya tienes una conexión de red y una configuración de conectividad privada que usa el método de interfaces de Private Service Connect. Esta opción es la mejor si ya usaste migraciones de inicio rápido y quieres volver a usar los mismos recursos de redes.
- Nueva configuración de conectividad: Selecciona esta opción para crear un adjunto de red nuevo y la subred del adjunto de red en la red de VPC de la base de datos fuente. La configuración de conectividad privada se creará en el mismo proyecto que tu clúster de destino.
Haz clic en Continuar.
- En la sección Conectar fuente, haz lo siguiente:
- Ingresa un nombre de host o la dirección IP privada de tu base de datos de origen. Se debe poder acceder a la dirección de la base de datos fuente desde tu red de VPC fuente.
- Ingresa el puerto que se usa para acceder al host. El puerto predeterminado de PostgreSQL es
5432. - Ingresa el nombre de usuario y la contraseña de la cuenta de migración dedicada en tu base de datos de origen.
- En el menú Tipo de encriptación, selecciona una de las siguientes opciones:
- Ninguno: Si tu base de datos de origen no requiere conexiones encriptadas con SSL/TLS.
- Obligatorio: Si tu base de datos de origen requiere conexiones encriptadas con SSL/TLS. Esta opción no requiere ninguna verificación de certificado.
- En el menú Bases de datos para migrar, haz clic en Personalizar. Usa el panel lateral para seleccionar solo las bases de datos que deseas migrar a AlloyDB para PostgreSQL. Haz clic en Continuar.
- En la sección Configurar destino, puedes crear un clúster de destino nuevo o seleccionar uno existente.
Clústeres nuevos
Si deseas crear un clúster de destino nuevo, haz lo siguiente:
- En el menú Tipo de instancia de destino, selecciona Clúster nuevo.
Database Migration Service usa la configuración predeterminada de AlloyDB para PostgreSQL para un clúster nuevo. Haz clic en Personalizar para ajustar las características del clúster, como el tipo de máquina, la disponibilidad zonal o la configuración de protección de datos. Para obtener más información sobre la configuración del clúster, consulta Crea un clúster y su instancia principal en la documentación de AlloyDB para PostgreSQL.
- En el campo Contraseña, ingresa una contraseña para el usuario administrador
postgresqlpredeterminado. Database Migration Service se conecta como este usuario para migrar tus datos.
Clústeres existentes
Puedes migrar bases de datos a un clúster que ya existe. Asegúrate de que el clúster de destino esté habilitado para Private Service Connect y no aplique la autenticación mTLS con los conectores de AlloyDB. Haz lo siguiente:
- En el menú Tipo de instancia de destino, selecciona Clúster existente.
- En el menú ID de clúster existente, selecciona el identificador del clúster.
- En el menú Tipo de instancia de destino, selecciona Clúster nuevo.
- Haz clic en Iniciar migración.
Database Migration Service ahora crea el trabajo de migración y comienza el proceso de migración. Puedes supervisar el progreso de la migración, así como el estado del clúster de destino en AlloyDB para PostgreSQL. Para obtener más información, consulta Cómo ver los detalles de la instancia en la documentación de AlloyDB para PostgreSQL.
Finaliza la migración
Cuando decidas cambiar tu aplicación a la nueva instancia de AlloyDB para PostgreSQL, finaliza la migración siguiendo estos pasos:
- Detén todas las operaciones de escritura en tu base de datos de origen. Puedes cambiarlos al modo de solo lectura para conservar la funcionalidad operativa.
- Promociona el trabajo de migración.
- Opcional: Verifica que los datos de migración estén completos.