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
- 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;
- Antes de iniciar el trabajo de migración, registra las estadísticas de modificación de todas las tablas sin claves primarias:
Donde: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');
n_tup_ins: cantidad de filas insertadasn_tup_upd: cantidad de filas actualizadas (incluye las filas actualizadas de HOT)n_tup_del: cantidad de filas borradas
- Guarda estas estadísticas de referencia en una tabla o un archivo.
- 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.
- Compara las estadísticas iniciales con las más recientes. Si
n_tup_updon_tup_delcambiaron 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_dumpypg_restoreespecí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
COPYde PostgreSQL para exportar e importar datos de tablas. Consulta la documentación de PostgreSQL para obtener más información.