Configura tu base de datos de PostgreSQL de origen para migraciones continuas

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:

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:

  1. 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 template0 y template1.
  2. Asegúrate de que tu instancia de origen incluya la base de datos postgres predeterminada. Si esta base de datos no existe, créala antes de configurar la migración.
  3. 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();
  4. 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 usas pg_cron en 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.

  5. Crea una cuenta de usuario de migración dedicada en tu instancia de origen y otórgale los privilegios necesarios:
    1. 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;
    2. Otorga a la cuenta de usuario de migración los permisos necesarios para la base de datos predeterminada de postgres y 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 con pg_:
      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";
  6. Instala la extensión pglogical en cada base de datos que quieras migrar, excepto template0 y template1:
    • 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;
  7. 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 UPDATE y DELETE durante la fase de captura de datos modificados (CDC):
    • Las tablas con una clave primaria replican todas las operaciones INSERT, UPDATE y DELETE automá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 INSERT posteriores durante la fase de CDC. Debes migrar las declaraciones UPDATE y DELETE de 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 UPDATE y DELETE, 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 IDENTITY para migrar tablas sin claves primarias. Para obtener más información, consulta la guía Usa migraciones de inicio rápido.

  8. 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.
  9. Instala el paquete pglogical y configura los parámetros de WAL y replicación en tu servidor de PostgreSQL:
    1. Instala el paquete pglogical en 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.
    2. Conéctate a tu instancia de PostgreSQL con una cuenta de administrador y configura los siguientes parámetros:
      1. Configura shared_preload_libraries para que incluya 'pglogical':
        ALTER SYSTEM SET shared_preload_libraries = 'pglogical';
      2. Establece wal_level como 'logical':
        ALTER SYSTEM SET wal_level = 'logical';

        Consulta wal_level en la documentación de PostgreSQL.

      3. Establece wal_sender_timeout como 0:
        ALTER SYSTEM SET wal_sender_timeout = 0;

        El valor 0 inhabilita el mecanismo de tiempo de espera que finaliza las conexiones de replicación inactivas. Consulta wal_sender_timeout.

      4. Establece max_replication_slots en, 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.

      5. Establece max_wal_senders en, al menos, el valor de max_replication_slots más la cantidad de remitentes que ya se usaron en tu instancia:

        Por ejemplo, si el parámetro max_replication_slots se establece en 10 y 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.

      6. Establece max_worker_processes en, 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.

  10. 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:

  1. 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, template1 y la base de datos interna de AWS rdsadmin.
  2. Asegúrate de que tu instancia de origen incluya la base de datos postgres predeterminada. Si esta base de datos no existe, créala antes de configurar la migración.
  3. Configura las reglas de entrada del grupo de seguridad de la VPC de Amazon RDS. Permite conexiones TCP entrantes en el puerto 5432 desde 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.
  4. 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 usas pg_cron en 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.

  5. Crea una cuenta de usuario de migración dedicada en tu instancia de origen y otórgale los privilegios necesarios:
    1. Conéctate a la instancia de origen con una cuenta de administrador, crea el usuario y otorga el rol rds_replication administrado por AWS:
      CREATE USER MIGRATION_USER_ACCOUNT_NAME WITH PASSWORD 'PASSWORD';
      GRANT rds_replication TO "MIGRATION_USER_ACCOUNT_NAME";
    2. Otorga a la cuenta de usuario de migración los permisos necesarios para la base de datos predeterminada de postgres y 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 con pg_:
      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";
  6. Instala la extensión pglogical en cada base de datos que quieras migrar, excepto template0, template1 y rdsadmin. 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.

  7. 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 UPDATE y DELETE durante la fase de captura de datos modificados (CDC):
    • Las tablas con una clave primaria replican todas las operaciones INSERT, UPDATE y DELETE automá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 INSERT posteriores durante la fase de CDC. Debes migrar las declaraciones UPDATE y DELETE de 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 UPDATE y DELETE, 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 IDENTITY para migrar tablas sin claves primarias. Para obtener más información, consulta la guía Usa migraciones de inicio rápido.

  8. Configura un grupo de parámetros de base de datos personalizado y adjúntalo a tu instancia:
    1. 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:
      1. Configura shared_preload_libraries para que incluya pglogical.
      2. Establece rds.logical_replication en 1. Este parámetro habilita el registro de WAL lógico en Amazon RDS. Consulta Replicación lógica para Amazon RDS para PostgreSQL.
      3. Establece wal_sender_timeout en 0. El valor 0 inhabilita el mecanismo de tiempo de espera que finaliza las conexiones de replicación inactivas.
      4. Establece max_replication_slots en, 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.

      5. Establece max_wal_senders en, al menos, el valor de max_replication_slots más la cantidad de remitentes que ya se usaron en tu instancia:

        Por ejemplo, si el parámetro max_replication_slots se establece en 10 y 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.

      6. Establece max_worker_processes en, 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.

    2. 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.
  9. 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:

  1. 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, template1 y la base de datos interna de AWS rdsadmin.
  2. Asegúrate de que tu clúster de origen incluya la base de datos postgres predeterminada. Si esta base de datos no existe, créala antes de configurar la migración.
  3. 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 5432 desde 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.
  4. 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 usas pg_cron en 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.

  5. Crea una cuenta de usuario de migración dedicada en tu clúster de origen y otórgale los privilegios necesarios:
    1. Conéctate al clúster de origen con una cuenta de administrador, crea el usuario y otorga el rol rds_replication administrado por AWS:
      CREATE USER MIGRATION_USER_ACCOUNT_NAME WITH PASSWORD 'PASSWORD';
      GRANT rds_replication TO "MIGRATION_USER_ACCOUNT_NAME";
    2. Otorga a la cuenta de usuario de migración los permisos necesarios para la base de datos predeterminada de postgres y 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 con pg_:
      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";
  6. Instala la extensión pglogical en cada base de datos que quieras migrar, excepto template0, template1 y rdsadmin:
    CREATE EXTENSION IF NOT EXISTS pglogical;
  7. 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 UPDATE y DELETE durante la fase de captura de datos modificados (CDC):
    • Las tablas con una clave primaria replican todas las operaciones INSERT, UPDATE y DELETE automá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 INSERT posteriores durante la fase de CDC. Debes migrar las declaraciones UPDATE y DELETE de 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 UPDATE y DELETE, 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 IDENTITY para migrar tablas sin claves primarias. Para obtener más información, consulta la guía Usa migraciones de inicio rápido.

  8. Configura un grupo de parámetros personalizado para el clúster de la base de datos y adjúntalo al clúster:
    1. Crea un grupo de parámetros de clúster de base de datos personalizado y configura los siguientes parámetros:
      1. Configura shared_preload_libraries para que incluya pglogical.
      2. Establece rds.logical_replication en 1. Este parámetro habilita el registro de WAL lógico.
      3. Establece wal_sender_timeout en 0. El valor 0 inhabilita el mecanismo de tiempo de espera que finaliza las conexiones de replicación inactivas.
      4. Establece max_replication_slots en, 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.

      5. Establece max_wal_senders en, al menos, el valor de max_replication_slots más la cantidad de remitentes que ya se usaron en tu instancia:

        Por ejemplo, si el parámetro max_replication_slots se establece en 10 y 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.

      6. Establece max_worker_processes en, 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.

    2. Adjunta el grupo de parámetros del clúster de la base de datos al clúster de la base de datos de Aurora.
  9. 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:

  1. 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 template0 y template1.
  2. Asegúrate de que tu instancia de origen incluya la base de datos postgres predeterminada. Si esta base de datos no existe, créala antes de configurar la migración.
  3. 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.
  4. 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 usas pg_cron en 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.

  5. Crea una cuenta de usuario de migración dedicada en tu instancia de origen y otórgale los privilegios necesarios:
    1. 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.
    2. Otorga el rol cloudsqlsuperuser a la cuenta de usuario de migración:
      GRANT cloudsqlsuperuser TO "MIGRATION_USER_ACCOUNT_NAME";
    3. Otorga a la cuenta de usuario de migración los permisos necesarios para la base de datos predeterminada de postgres y 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 con pg_:
      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";
  6. Instala la extensión pglogical en cada base de datos que quieras migrar, excepto template0 y template1. Ejecuta el comando siguiente:
    CREATE EXTENSION IF NOT EXISTS pglogical;
  7. 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 UPDATE y DELETE durante la fase de captura de datos modificados (CDC):
    • Las tablas con una clave primaria replican todas las operaciones INSERT, UPDATE y DELETE automáticamente.
    • Para las tablas que no tienen claves primarias, Database Migration Service migra la instantánea inicial y las declaraciones INSERT posteriores durante la fase de CDC. Debes migrar las declaraciones UPDATE y DELETE de 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 UPDATE y DELETE, 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 IDENTITY para migrar tablas sin claves primarias. Para obtener más información, consulta la guía Usa migraciones de inicio rápido.

  8. Configura las siguientes marcas de base de datos en tu instancia de origen de Cloud SQL:
    1. Establece cloudsql.logical_decoding en on.
    2. Establece cloudsql.enable_pglogical en on.
    3. Establece wal_sender_timeout en 0. El valor 0 inhabilita el mecanismo de tiempo de espera que finaliza las conexiones de replicación inactivas.
    4. Establece max_replication_slots en, 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.

    5. Establece max_wal_senders en, al menos, el valor de max_replication_slots más la cantidad de remitentes que ya se usaron en tu instancia.

      Por ejemplo, si la marca max_replication_slots se establece en 10 y 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.

    6. Establece max_worker_processes en, 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.

  9. Reinicia la instancia de Cloud SQL de origen para que se apliquen los cambios en la marca de base de datos.

¿Qué sigue?