Información general
Esta página incluye secuencias de comandos que ayudan a depurar y usar PostgreSQL.
Migrar operaciones UPDATE y DELETE de tablas sin clave principal
En el caso de las tablas que no tienen claves principales, Database Migration Service admite la migración de la instantánea inicial y las instrucciones INSERT
durante la fase de captura de datos de cambios (CDC).
Para actualizar los procesos UPDATE
y DELETE
que faltan, consulta las secciones posteriores de este documento.
Detectar datos que faltan entre las instancias de origen y de destino de Cloud SQL
- Identifica las tablas que no tienen claves principales:
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 la migración, en todas las tablas sin claves principales, comprueba si hay alguna actualización o eliminación con esta consulta:
Dónde: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
: número de filas insertadasn_tup_upd
: número de filas actualizadas (incluidas las filas actualizadas de HOT)n_tup_del
: número de filas eliminadas
- Guarda estos resultados en una tabla o en un archivo independiente.
- Una vez que hayas completado la configuración de la migración, vuelve a ejecutar la consulta.
- Compara los resultados con los del paso 3.
Si hay diferencias en los valores de n_tup_upd
o n_tup_del
en la fuente durante la migración, es posible que se produzcan algunas actualizaciones o eliminaciones en la fuente.
Migrar manualmente datos de las instancias de origen a las de destino de Cloud SQL
Si detectas que hay algunas discrepancias entre la instancia de origen y la de destino de Cloud SQL, puedes migrar los datos con una de las siguientes opciones:
Opción 1: compara manualmente los datos entre el origen y el destino de Cloud SQL, y ejecuta las consultas SQL adecuadas para actualizar solo los datos que sean diferentes entre el origen y la réplica.
Opción 2: Ejecuta
pg_dump
ypg_restore
en las tablas sin claves principales. Para obtener más información, consulta el artículo Exportar datos de un servidor PostgreSQL local con pg_dump.Opción 3: Usa el comando
COPY
de Postgres para migrar tus datos. Para obtener más información, consulta la documentación de PostgreSQL. Ten en cuenta que, para completar este paso, la máquina virtual de réplica debe poder conectarse a la máquina virtual de origen.