En esta página, se describe cómo configurar tus instancias de base de datos de origen
para migraciones homogéneas continuas de PostgreSQL a clústeres de AlloyDB para PostgreSQL.
Para obtener detalles sobre las versiones de origen compatibles, consulta
Bases de datos de origen y destino compatibles.
Si quieres usar las migraciones de inicio rápido, sigue la guía
Usa las migraciones de inicio rápido.
Las migraciones de inicio rápido proporcionan un flujo de migración simplificado que usa
la replicación de pgnative y la conectividad especializada basada en
interfaces de Private Service Connect. Para obtener más información, consulta
Acerca de las migraciones de inicio rápido en la documentación principal de Database Migration Service.
En esta página, se incluyen procedimientos independientes para cada fuente compatible:
- PostgreSQL autoadministrado (local o en una VM de Compute Engine)
- Amazon RDS para PostgreSQL
- Amazon Aurora para PostgreSQL
- Cloud SQL para PostgreSQL
Configura una fuente de PostgreSQL autoalojada
Para configurar una instancia de origen de PostgreSQL autohospedada (local o alojada en una VM de Compute Engine) para la migración continua, completa los siguientes pasos:
- En el caso de las fuentes de PostgreSQL autohospedadas, Database Migration Service migra todas las bases de datos de tu instancia de origen,
excepto las bases de datos de plantillas
template0ytemplate1. - Asegúrate de que tu instancia de origen incluya la base de datos
postgrespredeterminada. Si esta base de datos no existe, créala antes de configurar la migración. - Configura la autenticación del cliente de red en tu archivo
pg_hba.conf. Agrega entradas que permitan conexiones de replicación y acceso a la base de datos desde el rango de direcciones IP del clúster de AlloyDB para PostgreSQL de destino, el rango de CIDR de la VPC o el host de bastión de SSH inverso:# Allow replication connections host replication MIGRATION_USER_ACCOUNT_NAME DESTINATION_IP_OR_CIDR md5 # Allow database access host all MIGRATION_USER_ACCOUNT_NAME DESTINATION_IP_OR_CIDR md5
Vuelve a cargar la configuración de PostgreSQL para aplicar las reglas de
pg_hba.conf:SELECT pg_reload_conf();
- Verifica las extensiones de PostgreSQL instaladas en tus bases de datos de origen.
Database Migration Service no migra
extensiones que no son compatibles con AlloyDB para PostgreSQL.
Verifica que los objetos de la base de datos de origen y las consultas de la aplicación no hagan referencia a extensiones no compatibles.
Quita las extensiones y referencias no compatibles de tus bases de datos de origen antes de continuar.
Database Migration Service no migra automáticamente la extensión
pg_cron, pero es compatible con los destinos de AlloyDB para PostgreSQL. Si usaspg_cronen tu base de datos de origen, vuelve a instalarlo y configurarlo en el clúster de AlloyDB para PostgreSQL de destino después de ascender la migración. - Crea una cuenta de usuario de migración dedicada en tu instancia de origen
y otórgale los privilegios necesarios:
- Conéctate a la instancia de origen con una cuenta de administrador, crea el usuario y asigna el rol de replicación:
CREATE USER MIGRATION_USER_ACCOUNT_NAME WITH PASSWORD 'PASSWORD'; ALTER USER MIGRATION_USER_ACCOUNT_NAME WITH REPLICATION;
- Otorga a la cuenta de usuario de migración los permisos necesarios para la
base de datos predeterminada de
postgresy todas las bases de datos que quieras migrar. Ejecuta los siguientes comandos en cada base de datos para cada esquema, excepto el esquema de información y los esquemas que comiencen conpg_:GRANT USAGE ON SCHEMA SCHEMA_NAME TO "MIGRATION_USER_ACCOUNT_NAME"; GRANT USAGE ON SCHEMA pglogical TO PUBLIC; GRANT SELECT ON ALL TABLES IN SCHEMA pglogical TO "MIGRATION_USER_ACCOUNT_NAME"; GRANT SELECT ON ALL TABLES IN SCHEMA SCHEMA_NAME TO "MIGRATION_USER_ACCOUNT_NAME"; GRANT SELECT ON ALL SEQUENCES IN SCHEMA SCHEMA_NAME TO "MIGRATION_USER_ACCOUNT_NAME";
- Conéctate a la instancia de origen con una cuenta de administrador, crea el usuario y asigna el rol de replicación:
- Instala la extensión
pglogicalen cada base de datos que quieras migrar, exceptotemplate0ytemplate1:- Para la versión 9.4 de PostgreSQL, ejecuta los siguientes comandos:
CREATE EXTENSION IF NOT EXISTS pglogical; CREATE EXTENSION IF NOT EXISTS pglogical_origin;
- Para PostgreSQL 9.5 y versiones posteriores: Ejecuta el siguiente comando:
CREATE EXTENSION IF NOT EXISTS pglogical;
- Para la versión 9.4 de PostgreSQL, ejecuta los siguientes comandos:
- Verifica que tus tablas tengan claves primarias. Para las migraciones continuas,
la replicación lógica de PostgreSQL requiere que las tablas tengan claves primarias para
replicar las operaciones
UPDATEyDELETEdurante la fase de captura de datos modificados (CDC):- Las tablas con una clave primaria replican todas las operaciones
INSERT,UPDATEyDELETEautomáticamente. - En el caso de las tablas que no tienen claves primarias, Database Migration Service solo admite la migración de la instantánea inicial y las sentencias
INSERTposteriores durante la fase de CDC. Debes migrar las declaracionesUPDATEyDELETEde forma manual.Te recomendamos que agregues claves primarias a las tablas que no las tengan antes de iniciar la migración. Para aprender a generar una consulta para enumerar tablas en una base de datos de PostgreSQL sin claves primarias o cómo migrar de forma manual las operaciones
UPDATEyDELETE, consulta Depuración y otras herramientas.Como alternativa, puedes intentar usar el flujo de migración de inicio rápido: un caso de migración simplificado en el que puedes usar
REPLICA IDENTITYpara migrar tablas sin claves primarias. Para obtener más información, consulta la guía Usa migraciones de inicio rápido.
- Las tablas con una clave primaria replican todas las operaciones
- Fuentes que ejecutan la versión 9.5 de PostgreSQL y anteriores: La métrica de retraso de replicación no está disponible para las instancias de origen que ejecutan versiones de PostgreSQL anteriores a la 9.6. Si deseas usar esta métrica para hacer un seguimiento del progreso de la migración, consulta Habilita el retraso de replicación.
- Instala el paquete
pglogicaly configura los parámetros de WAL y replicación en tu servidor de PostgreSQL:- Instala el paquete
pglogicalen el sistema operativo del host del servidor de base de datos. Para obtener paquetes e instrucciones de instalación para tu distribución, consulta el repositorio de GitHub de pglogical. - Conéctate a tu instancia de PostgreSQL con una cuenta de administrador y configura los siguientes parámetros:
- Configura
shared_preload_librariespara que incluya'pglogical':ALTER SYSTEM SET shared_preload_libraries = 'pglogical';
- Establece
wal_levelcomo'logical':ALTER SYSTEM SET wal_level = 'logical';
Consulta
wal_levelen la documentación de PostgreSQL. - Establece
wal_sender_timeoutcomo0:ALTER SYSTEM SET wal_sender_timeout = 0;
El valor
0inhabilita el mecanismo de tiempo de espera que finaliza las conexiones de replicación inactivas. Consultawal_sender_timeout. - Establece
max_replication_slotsen, al menos, la cantidad de bases de datos que se migrarán multiplicada por la cantidad de trabajos de migración, más las reservas para la sincronización de tablas:Por ejemplo, si hay 5 bases de datos en la instancia de origen y creas 2 trabajos de migración para esa fuente, la cantidad de ranuras de replicación debe ser de al menos 5 * 2 = 10, más la cantidad de ranuras de replicación que ya se usan en la fuente para otras tareas. Si planeas usar la configuración de paralelismo de volcado de datos ajustada, asegúrate de aumentar la cantidad de ranuras de replicación y verificar tu configuración cuando crees el trabajo de migración.
ALTER SYSTEM SET max_replication_slots = MAX_REPLICATION_SLOTS;
El valor predeterminado para este parámetro es 10. Consulta
max_replication_slots. - Establece
max_wal_sendersen, al menos, el valor demax_replication_slotsmás 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ía 10 + 2 = 12. Si planeas usar la configuración de paralelismo de volcado de datos ajustada, asegúrate de aumentar la cantidad de remitentes y verificar tu configuración cuando crees el trabajo de migración.ALTER SYSTEM SET max_wal_senders = MAX_WAL_SENDERS;
El valor predeterminado para este parámetro es 10. Consulta
max_wal_senders. - Establece
max_worker_processesen, al menos, la cantidad de bases de datos que se migrarán más los procesos de trabajadores existentes en tu instancia. Si planeas usar la configuración de paralelismo de volcado de datos ajustada, ten en cuenta dos procesos de trabajador adicionales por conexión (hasta un máximo de 20 trabajadores):ALTER SYSTEM SET max_worker_processes = MAX_WORKER_PROCESSES;
El valor predeterminado para este parámetro es 8. Consulta
max_worker_processes.
- Configura
- Instala el paquete
- Reinicia el servidor de PostgreSQL para que se apliquen los cambios de configuración.
Configura una fuente de Amazon RDS para PostgreSQL
Para configurar una instancia de origen de Amazon RDS para PostgreSQL para la migración continua, completa los siguientes pasos:
- En el caso de las fuentes de Amazon RDS para PostgreSQL, Database Migration Service migra todas las bases de datos de tu instancia de origen,
excepto las bases de datos de plantillas
template0,template1y la base de datos interna de AWSrdsadmin. - Asegúrate de que tu instancia de origen incluya la base de datos
postgrespredeterminada. Si esta base de datos no existe, créala antes de configurar la migración. - Configura las reglas de entrada del grupo de seguridad de la VPC de Amazon RDS.
Permite conexiones TCP entrantes en el puerto
5432desde el rango de direcciones IP del clúster de AlloyDB para PostgreSQL de destino, el rango CIDR de VPC o la VM de host de bastión de SSH inversa. - Verifica las extensiones de PostgreSQL instaladas en tus bases de datos de origen.
Database Migration Service no migra
extensiones que no son compatibles con AlloyDB para PostgreSQL.
Verifica que los objetos de la base de datos de origen y las consultas de la aplicación no hagan referencia a extensiones no compatibles.
Quita las extensiones y referencias no compatibles de tus bases de datos de origen antes de continuar.
Database Migration Service no migra automáticamente la extensión
pg_cron, pero es compatible con los destinos de AlloyDB para PostgreSQL. Si usaspg_cronen tu base de datos de origen, vuelve a instalarlo y configurarlo en el clúster de AlloyDB para PostgreSQL de destino después de ascender la migración. - Crea una cuenta de usuario de migración dedicada en tu instancia de origen
y otórgale los privilegios necesarios:
- Conéctate a la instancia de origen con una cuenta de administrador, crea el usuario y otorga el rol
rds_replicationadministrado por AWS:CREATE USER MIGRATION_USER_ACCOUNT_NAME WITH PASSWORD 'PASSWORD'; GRANT rds_replication TO "MIGRATION_USER_ACCOUNT_NAME";
- Otorga a la cuenta de usuario de migración los permisos necesarios para la
base de datos predeterminada de
postgresy todas las bases de datos que quieras migrar. Ejecuta los siguientes comandos en cada base de datos para cada esquema, excepto el esquema de información y los esquemas que comiencen conpg_:GRANT USAGE ON SCHEMA SCHEMA_NAME TO "MIGRATION_USER_ACCOUNT_NAME"; GRANT USAGE ON SCHEMA pglogical TO PUBLIC; GRANT SELECT ON ALL TABLES IN SCHEMA pglogical TO "MIGRATION_USER_ACCOUNT_NAME"; GRANT SELECT ON ALL TABLES IN SCHEMA SCHEMA_NAME TO "MIGRATION_USER_ACCOUNT_NAME"; GRANT SELECT ON ALL SEQUENCES IN SCHEMA SCHEMA_NAME TO "MIGRATION_USER_ACCOUNT_NAME";
- Conéctate a la instancia de origen con una cuenta de administrador, crea el usuario y otorga el rol
- Instala la extensión
pglogicalen cada base de datos que quieras migrar, exceptotemplate0,template1yrdsadmin. Ejecuta el comando siguiente:CREATE EXTENSION IF NOT EXISTS pglogical;
Para obtener más detalles sobre los requisitos, consulta Usa extensiones de PostgreSQL con Amazon RDS para PostgreSQL en la documentación de AWS.
- Verifica que tus tablas tengan claves primarias. Para las migraciones continuas,
la replicación lógica de PostgreSQL requiere que las tablas tengan claves primarias para
replicar las operaciones
UPDATEyDELETEdurante la fase de captura de datos modificados (CDC):- Las tablas con una clave primaria replican todas las operaciones
INSERT,UPDATEyDELETEautomáticamente. - En el caso de las tablas que no tienen claves primarias, Database Migration Service solo admite la migración de la instantánea inicial y las sentencias
INSERTposteriores durante la fase de CDC. Debes migrar las declaracionesUPDATEyDELETEde forma manual.Te recomendamos que agregues claves primarias a las tablas que no las tengan antes de iniciar la migración. Para aprender a generar una consulta para enumerar tablas en una base de datos de PostgreSQL sin claves primarias o cómo migrar de forma manual las operaciones
UPDATEyDELETE, consulta Depuración y otras herramientas.Como alternativa, puedes intentar usar el flujo de migración de inicio rápido: un caso de migración simplificado en el que puedes usar
REPLICA IDENTITYpara migrar tablas sin claves primarias. Para obtener más información, consulta la guía Usa migraciones de inicio rápido.
- Las tablas con una clave primaria replican todas las operaciones
- Configura un grupo de parámetros de base de datos personalizado y adjúntalo a tu instancia:
- Crea un grupo de parámetros personalizado (consulta
Trabaja con grupos de parámetros de base de datos en la documentación de AWS) y configura los siguientes parámetros:
- Configura
shared_preload_librariespara que incluyapglogical. - Establece
rds.logical_replicationen1. Este parámetro habilita el registro de WAL lógico en Amazon RDS. Consulta Replicación lógica para Amazon RDS para PostgreSQL. - Establece
wal_sender_timeouten0. El valor0inhabilita el mecanismo de tiempo de espera que finaliza las conexiones de replicación inactivas. - Establece
max_replication_slotsen, al menos, la cantidad de bases de datos que se migrarán multiplicada por la cantidad de trabajos de migración, más las reservas para la sincronización de tablas:Por ejemplo, si hay 5 bases de datos en la instancia de origen y creas 2 trabajos de migración para esa fuente, la cantidad de ranuras de replicación debe ser de al menos 5 * 2 = 10, más la cantidad de ranuras de replicación que ya se usan en la fuente para otras tareas. Si planeas usar la configuración de paralelismo de volcado de datos ajustada, asegúrate de aumentar la cantidad de ranuras de replicación y verificar tu configuración cuando crees el trabajo de migración.
El valor predeterminado para este parámetro es 10.
- Establece
max_wal_sendersen, al menos, el valor demax_replication_slotsmás 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ía 10 + 2 = 12. Si planeas usar la configuración de paralelismo de volcado de datos ajustada, asegúrate de aumentar la cantidad de remitentes y verificar tu configuración cuando crees el trabajo de migración.El valor predeterminado para este parámetro es 10.
- Establece
max_worker_processesen, al menos, la cantidad de bases de datos que se migrarán más los procesos de trabajadores existentes en tu instancia. Si planeas usar la configuración de paralelismo de volcado de datos ajustada, ten en cuenta dos procesos de trabajador adicionales por conexión (hasta un máximo de 20 trabajadores):El valor predeterminado para este parámetro es 8.
- Configura
- Adjunta el grupo de parámetros a tu instancia de base de datos de RDS. Si creas una instancia nueva, puedes encontrar esta opción en Configuración adicional. De lo contrario, modifica la instancia para adjuntar el grupo de parámetros.
- Crea un grupo de parámetros personalizado (consulta
Trabaja con grupos de parámetros de base de datos en la documentación de AWS) y configura los siguientes parámetros:
- Reinicia la instancia de Amazon RDS para que se apliquen los cambios en el grupo de parámetros.
Configura una fuente de Amazon Aurora PostgreSQL
Para configurar un clúster de origen de Amazon Aurora PostgreSQL para la migración continua, completa los siguientes pasos:
- En el caso de las fuentes de Amazon Aurora para PostgreSQL, Database Migration Service migra todas las bases de datos de tu clúster de origen,
excepto las bases de datos de plantillas
template0,template1y la base de datos interna de AWSrdsadmin. - Asegúrate de que tu clúster de origen incluya la base de datos
postgrespredeterminada. Si esta base de datos no existe, créala antes de configurar la migración. - Configura las reglas de entrada del grupo de seguridad de la VPC de tu clúster de Amazon Aurora.
Permite conexiones TCP entrantes en el puerto
5432desde el rango de direcciones IP del clúster de AlloyDB para PostgreSQL de destino, el rango CIDR de VPC o la VM de host de bastión de SSH inversa. - Verifica las extensiones de PostgreSQL instaladas en tus bases de datos de origen.
Database Migration Service no migra
extensiones que no son compatibles con AlloyDB para PostgreSQL.
Verifica que los objetos de la base de datos de origen y las consultas de la aplicación no hagan referencia a extensiones no compatibles.
Quita las extensiones y referencias no compatibles de tus bases de datos de origen antes de continuar.
Database Migration Service no migra automáticamente la extensión
pg_cron, pero es compatible con los destinos de AlloyDB para PostgreSQL. Si usaspg_cronen tu base de datos de origen, vuelve a instalarlo y configurarlo en el clúster de AlloyDB para PostgreSQL de destino después de ascender la migración. - Crea una cuenta de usuario de migración dedicada en tu clúster de origen
y otórgale los privilegios necesarios:
- Conéctate al clúster de origen con una cuenta de administrador, crea el usuario y otorga el rol
rds_replicationadministrado por AWS:CREATE USER MIGRATION_USER_ACCOUNT_NAME WITH PASSWORD 'PASSWORD'; GRANT rds_replication TO "MIGRATION_USER_ACCOUNT_NAME";
- Otorga a la cuenta de usuario de migración los permisos necesarios para la
base de datos predeterminada de
postgresy todas las bases de datos que quieras migrar. Ejecuta los siguientes comandos en cada base de datos para cada esquema, excepto el esquema de información y los esquemas que comiencen conpg_:GRANT USAGE ON SCHEMA SCHEMA_NAME TO "MIGRATION_USER_ACCOUNT_NAME"; GRANT USAGE ON SCHEMA pglogical TO PUBLIC; GRANT SELECT ON ALL TABLES IN SCHEMA pglogical TO "MIGRATION_USER_ACCOUNT_NAME"; GRANT SELECT ON ALL TABLES IN SCHEMA SCHEMA_NAME TO "MIGRATION_USER_ACCOUNT_NAME"; GRANT SELECT ON ALL SEQUENCES IN SCHEMA SCHEMA_NAME TO "MIGRATION_USER_ACCOUNT_NAME";
- Conéctate al clúster de origen con una cuenta de administrador, crea el usuario y otorga el rol
- Instala la extensión
pglogicalen cada base de datos que quieras migrar, exceptotemplate0,template1yrdsadmin:CREATE EXTENSION IF NOT EXISTS pglogical;
- Verifica que tus tablas tengan claves primarias. Para las migraciones continuas,
la replicación lógica de PostgreSQL requiere que las tablas tengan claves primarias para
replicar las operaciones
UPDATEyDELETEdurante la fase de captura de datos modificados (CDC):- Las tablas con una clave primaria replican todas las operaciones
INSERT,UPDATEyDELETEautomáticamente. - En el caso de las tablas que no tienen claves primarias, Database Migration Service solo admite la migración de la instantánea inicial y las sentencias
INSERTposteriores durante la fase de CDC. Debes migrar las declaracionesUPDATEyDELETEde forma manual.Te recomendamos que agregues claves primarias a las tablas que no las tengan antes de iniciar la migración. Para aprender a generar una consulta para enumerar tablas en una base de datos de PostgreSQL sin claves primarias o cómo migrar de forma manual las operaciones
UPDATEyDELETE, consulta Depuración y otras herramientas.Como alternativa, puedes intentar usar el flujo de migración de inicio rápido: un caso de migración simplificado en el que puedes usar
REPLICA IDENTITYpara migrar tablas sin claves primarias. Para obtener más información, consulta la guía Usa migraciones de inicio rápido.
- Las tablas con una clave primaria replican todas las operaciones
- Configura un grupo de parámetros personalizado para el clúster de la base de datos y adjúntalo al clúster:
- Crea un grupo de parámetros de clúster de base de datos personalizado y configura los siguientes parámetros:
- Configura
shared_preload_librariespara que incluyapglogical. - Establece
rds.logical_replicationen1. Este parámetro habilita el registro de WAL lógico. - Establece
wal_sender_timeouten0. El valor0inhabilita el mecanismo de tiempo de espera que finaliza las conexiones de replicación inactivas. - Establece
max_replication_slotsen, al menos, la cantidad de bases de datos que se migrarán multiplicada por la cantidad de trabajos de migración, más las reservas para la sincronización de tablas:Por ejemplo, si hay 5 bases de datos en la instancia de origen y creas 2 trabajos de migración para esa fuente, la cantidad de ranuras de replicación debe ser de al menos 5 * 2 = 10, más la cantidad de ranuras de replicación que ya se usan en la fuente para otras tareas. Si planeas usar la configuración de paralelismo de volcado de datos ajustada, asegúrate de aumentar la cantidad de ranuras de replicación y verificar tu configuración cuando crees el trabajo de migración.
El valor predeterminado para este parámetro es 10.
- Establece
max_wal_sendersen, al menos, el valor demax_replication_slotsmás 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ía 10 + 2 = 12. Si planeas usar la configuración de paralelismo de volcado de datos ajustada, asegúrate de aumentar la cantidad de remitentes y verificar tu configuración cuando crees el trabajo de migración.El valor predeterminado para este parámetro es 10.
- Establece
max_worker_processesen, al menos, la cantidad de bases de datos que se migrarán más los procesos de trabajadores existentes en tu instancia. Si planeas usar la configuración de paralelismo de volcado de datos ajustada, ten en cuenta dos procesos de trabajador adicionales por conexión (hasta un máximo de 20 trabajadores):El valor predeterminado para este parámetro es 8.
- Configura
- Adjunta el grupo de parámetros del clúster de la base de datos al clúster de la base de datos de Aurora.
- Crea un grupo de parámetros de clúster de base de datos personalizado y configura los siguientes parámetros:
- Reinicia el clúster de base de datos de Amazon Aurora para que se apliquen los cambios en el grupo de parámetros.
Configura una fuente de Cloud SQL para PostgreSQL
Para configurar una instancia de origen de Cloud SQL para PostgreSQL para la migración continua, completa los siguientes pasos:
- Para las fuentes de Cloud SQL para PostgreSQL, Database Migration Service migra todas las bases de datos de tu instancia de origen,
excepto las bases de datos de plantillas
template0ytemplate1. - Asegúrate de que tu instancia de origen incluya la base de datos
postgrespredeterminada. Si esta base de datos no existe, créala antes de configurar la migración. - Si migras de una instancia de origen de Cloud SQL configurada con una dirección IP privada a un clúster de AlloyDB para PostgreSQL de destino que usa un rango de IP de direcciones que no es RFC 1918, agrega el rango que no es RFC 1918 a las redes autorizadas de tu instancia de origen. Para obtener más información, consulta Configura redes autorizadas.
- Verifica las extensiones de PostgreSQL instaladas en tus bases de datos de origen.
Database Migration Service no migra
extensiones que no son compatibles con AlloyDB para PostgreSQL.
Verifica que los objetos de la base de datos de origen y las consultas de la aplicación no
hagan referencia a extensiones no admitidas. Quita las extensiones y referencias no compatibles
de tus bases de datos de origen antes de continuar.
Database Migration Service no migra automáticamente la extensión
pg_cron, pero es compatible con los destinos de AlloyDB para PostgreSQL. Si usaspg_cronen tu base de datos de origen, vuelve a instalarlo y configurarlo en el clúster de AlloyDB para PostgreSQL de destino después de ascender la migración. - Crea una cuenta de usuario de migración dedicada en tu instancia de origen
y otórgale los privilegios necesarios:
- Sigue los pasos que se indican en la página Crea un usuario de la documentación de Cloud SQL para crear la cuenta de usuario.
- Otorga el rol
cloudsqlsuperusera la cuenta de usuario de migración:GRANT cloudsqlsuperuser TO "MIGRATION_USER_ACCOUNT_NAME";
- Otorga a la cuenta de usuario de migración los permisos necesarios para la
base de datos predeterminada de
postgresy todas las bases de datos que quieras migrar. Ejecuta los siguientes comandos en cada base de datos para cada esquema, excepto el esquema de información y los esquemas que comiencen conpg_:GRANT USAGE ON SCHEMA SCHEMA_NAME TO "MIGRATION_USER_ACCOUNT_NAME"; GRANT USAGE ON SCHEMA pglogical TO PUBLIC; GRANT SELECT ON ALL TABLES IN SCHEMA pglogical TO "MIGRATION_USER_ACCOUNT_NAME"; GRANT SELECT ON ALL TABLES IN SCHEMA SCHEMA_NAME TO "MIGRATION_USER_ACCOUNT_NAME"; GRANT SELECT ON ALL SEQUENCES IN SCHEMA SCHEMA_NAME TO "MIGRATION_USER_ACCOUNT_NAME";
- Instala la extensión
pglogicalen cada base de datos que quieras migrar, exceptotemplate0ytemplate1. Ejecuta el comando siguiente:CREATE EXTENSION IF NOT EXISTS pglogical;
- Verifica que tus tablas tengan claves primarias. Para las migraciones continuas,
la replicación lógica de PostgreSQL requiere que las tablas tengan claves primarias para
replicar las operaciones
UPDATEyDELETEdurante la fase de captura de datos modificados (CDC):- Las tablas con una clave primaria replican todas las operaciones
INSERT,UPDATEyDELETEautomáticamente. - Para las tablas que no tienen claves primarias, Database Migration Service migra
la instantánea inicial y las declaraciones
INSERTposteriores durante la fase de CDC. Debes migrar las declaracionesUPDATEyDELETEde forma manual.Te recomendamos que agregues claves primarias a las tablas que no las tengan antes de iniciar la migración. Para aprender a generar una consulta para enumerar tablas en una base de datos de PostgreSQL sin claves primarias o cómo migrar de forma manual las operaciones
UPDATEyDELETE, consulta Depuración y otras herramientas.Como alternativa, puedes intentar usar el flujo de migración de inicio rápido: un caso de migración simplificado en el que puedes usar
REPLICA IDENTITYpara migrar tablas sin claves primarias. Para obtener más información, consulta la guía Usa migraciones de inicio rápido.
- Las tablas con una clave primaria replican todas las operaciones
- Configura las siguientes marcas de base de datos en tu instancia de origen de Cloud SQL:
- Establece
cloudsql.logical_decodingenon. - Establece
cloudsql.enable_pglogicalenon. - Establece
wal_sender_timeouten0. El valor0inhabilita el mecanismo de tiempo de espera que finaliza las conexiones de replicación inactivas. - Establece
max_replication_slotsen, al menos, la cantidad de bases de datos que se migrarán multiplicada por la cantidad de trabajos de migración, más las reservas para la sincronización de tablas.Por ejemplo, si hay 5 bases de datos en la instancia de origen y creas 2 trabajos de migración para esa fuente, la cantidad de ranuras de replicación debe ser de al menos 5 * 2 = 10, más la cantidad de ranuras de replicación que ya se usan en la fuente para otras tareas. Si planeas usar la configuración de paralelismo de volcado de datos ajustada, asegúrate de aumentar la cantidad de ranuras de replicación y verificar tu configuración cuando crees el trabajo de migración.
El valor predeterminado de esta marca es 10.
- Establece
max_wal_sendersen, al menos, el valor demax_replication_slotsmás la cantidad de remitentes que ya se usaron en tu instancia.Por ejemplo, si la marca
max_replication_slotsse establece en10y ya usas 2 remitentes, la cantidad de procesos de remitente WAL que se ejecutan al mismo tiempo sería 10 + 2 = 12. Si planeas usar la configuración de paralelismo de volcado de datos ajustada, asegúrate de aumentar la cantidad de remitentes y verificar tu configuración cuando crees el trabajo de migración.El valor predeterminado de esta marca es 10.
- Establece
max_worker_processesen, al menos, la cantidad de bases de datos que se migrarán más los procesos de trabajadores existentes en tu instancia. Si planeas usar la configuración de paralelismo de volcado de datos ajustada, ten en cuenta dos procesos de trabajador adicionales por conexión (hasta un máximo de 20 trabajadores).El valor predeterminado de esta marca es 8.
Para obtener más información sobre cómo modificar marcas, consulta Configura marcas de base de datos en la documentación de Cloud SQL.
- Establece
- Reinicia la instancia de Cloud SQL de origen para que se apliquen los cambios en la marca de base de datos.
¿Qué sigue?
Para obtener guías de migración completas y paso a paso, consulta Comienza a usar las migraciones de AlloyDB para PostgreSQL.
Para planificar la conectividad de red entre las instancias de origen y de destino, consulta Consideraciones sobre las redes.