Depuración y otras herramientas

En esta página, se incluyen secuencias de comandos que ayudan a depurar y usar PostgreSQL.

Migra las operaciones UPDATE y DELETE para las tablas sin clave primaria

En el caso de las tablas que no tienen claves primarias, en las migraciones estándar, Database Migration Service admite la migración de la instantánea inicial y las sentencias INSERT durante la fase de captura de datos modificados (CDC). Sin embargo, las sentencias UPDATE y DELETE no se replican automáticamente para las tablas de claves no primarias en las migraciones estándar (las migraciones de inicio rápido admiten la replicación de las operaciones UPDATE y DELETE cuando configuras REPLICA IDENTITY).

Para detectar y sincronizar de forma manual las operaciones UPDATE y DELETE faltantes en las migraciones estándar, completa los procedimientos que se indican en las siguientes secciones.

Detecta datos faltantes entre la fuente y el clúster de destino de AlloyDB para PostgreSQL

  1. Identifica qué tablas de tu base de datos de origen no tienen claves primarias:
    SELECT tab.table_schema,
           tab.table_name
    FROM information_schema.tables tab
    LEFT JOIN information_schema.table_constraints tco 
              ON tab.table_schema = tco.table_schema
              AND tab.table_name = tco.table_name 
              AND tco.constraint_type = 'PRIMARY KEY'
    WHERE tab.table_type = 'BASE TABLE'
          AND tab.table_schema NOT IN ('pg_catalog', 'information_schema', 'pglogical')
          AND tco.constraint_name IS NULL
    ORDER BY table_schema,
             table_name;
  2. Antes de iniciar el trabajo de migración, registra las estadísticas de modificación de todas las tablas sin claves primarias:
    SELECT schemaname,
           relname,
           n_tup_ins,
           n_tup_upd,
           n_tup_del
    FROM pg_stat_user_tables
    WHERE schemaname NOT IN ('pglogical', 'pg_catalog', 'information_schema');
    Donde:
    • n_tup_ins: cantidad de filas insertadas
    • n_tup_upd: cantidad de filas actualizadas (incluye las filas actualizadas de HOT)
    • n_tup_del: cantidad de filas borradas
  3. Guarda estas estadísticas de referencia en una tabla o un archivo.
  4. Una vez que se complete la configuración de la migración y antes de promocionar el trabajo de migración, vuelve a ejecutar la consulta.
  5. Compara las estadísticas iniciales con las más recientes. Si n_tup_upd o n_tup_del cambiaron durante la migración, se produjeron actualizaciones o eliminaciones en la fuente que la CDC no capturó.

Migra datos de forma manual desde el clúster de AlloyDB para PostgreSQL de origen al de destino

Si detectas discrepancias en las tablas sin claves primarias, puedes sincronizar los datos con una de las siguientes opciones:

  • Opción 1: Compara manualmente los datos entre la base de datos de origen y el clúster de destino de AlloyDB para PostgreSQL con consultas de suma de comprobación o secuencias de comandos delta, y ejecuta las actualizaciones de SQL adecuadas para los registros divergentes.
  • Opción 2: Ejecuta pg_dump y pg_restore específicamente para las tablas sin claves primarias durante la migración de sistemas de mantenimiento de la aplicación.
  • Opción 3: Usa el comando COPY de PostgreSQL para exportar e importar datos de tablas. Consulta la documentación de PostgreSQL para obtener más información.