Présentation
Cette page inclut des scripts qui aident à déboguer et à utiliser AlloyDB.
Migrer les opérations UPDATE et DELETE pour les tables sans clé primaire
Pour les tables qui ne possèdent pas de clés primaires, Database Migration Service permet de migrer l'instantané initial ainsi que les instructions INSERT
pendant la phase de capture des données modifiées (CDC, Change Data Capture).
Pour mettre à jour les processus UPDATE
et DELETE
manquants, consultez les sections suivantes de ce document.
Détecter les données manquantes entre la source et le cluster de destination AlloyDB
- Identifiez les tables qui n'ont pas de clés primaires:
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;
- Avant de commencer la migration, vérifiez si des mises à jour ou des suppressions ont été effectuées pour toutes les tables sans clé primaire à l'aide de cette requête:
Où :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
: nombre de lignes inséréesn_tup_upd
: nombre de lignes mises à jour (y compris les lignes mises à jour par la mise à jour en temps réel)n_tup_del
: nombre de lignes supprimées
- Enregistrez ces résultats dans une table distincte ou dans un fichier.
- Une fois la configuration de la migration terminée, exécutez à nouveau la requête.
- Comparez les résultats avec ceux de l'étape 3.
Si les valeurs de n_tup_upd
ou n_tup_del
sur la source sont différentes lors de la migration, des mises à jour ou des suppressions peuvent être effectuées sur la source.
Migrer manuellement les données de la source vers les instances de destination AlloyDB
Si vous détectez des écarts entre la source et l'instance de destination AlloyDB, vous pouvez migrer les données à l'aide de l'une des options suivantes:
Option 1: comparer manuellement les données entre la source et la destination AlloyDB, puis exécuter les requêtes SQL appropriées pour ne mettre à jour que les données différentes entre la source et la réplique.
Option 2: Exécutez
pg_dump
etpg_restore
pour les tables sans clé primaire. Pour en savoir plus, consultez Exporter des données à partir d'un serveur PostgreSQL sur site à l'aide de pg_dump.Option 3: Utiliser la commande
COPY
de Postgres pour migrer vos données. Pour en savoir plus, consultez la documentation PostgreSQL. Notez que cette étape nécessite que la VM du réplicat puisse se connecter à la VM source.