Cette page inclut des scripts qui aident à déboguer et à utiliser PostgreSQL.
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 les instances source et de destination Cloud SQL
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:
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');
Où :
n_tup_ins: nombre de lignes insérées
n_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 des données de la source vers les instances de destination Cloud SQL
Si vous détectez des différences entre la source et l'instance de destination Cloud SQL, 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 Cloud SQL, 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 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.
Sauf indication contraire, le contenu de cette page est régi par une licence Creative Commons Attribution 4.0, et les échantillons de code sont régis par une licence Apache 2.0. Pour en savoir plus, consultez les Règles du site Google Developers. Java est une marque déposée d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2025/08/18 (UTC).
[[["Facile à comprendre","easyToUnderstand","thumb-up"],["J'ai pu résoudre mon problème","solvedMyProblem","thumb-up"],["Autre","otherUp","thumb-up"]],[["Difficile à comprendre","hardToUnderstand","thumb-down"],["Informations ou exemple de code incorrects","incorrectInformationOrSampleCode","thumb-down"],["Il n'y a pas l'information/les exemples dont j'ai besoin","missingTheInformationSamplesINeed","thumb-down"],["Problème de traduction","translationIssue","thumb-down"],["Autre","otherDown","thumb-down"]],["Dernière mise à jour le 2025/08/18 (UTC)."],[[["\u003cp\u003eThis page provides debugging scripts and guidance for using PostgreSQL within the Database Migration Service.\u003c/p\u003e\n"],["\u003cp\u003eDatabase Migration Service supports the migration of initial snapshots and \u003ccode\u003eINSERT\u003c/code\u003e statements for tables without primary keys, but \u003ccode\u003eUPDATE\u003c/code\u003e and \u003ccode\u003eDELETE\u003c/code\u003e operations may need manual intervention.\u003c/p\u003e\n"],["\u003cp\u003eYou can identify tables lacking primary keys and check for any updates or deletes on the source during migration using the provided SQL queries against the \u003ccode\u003einformation_schema\u003c/code\u003e and \u003ccode\u003epg_stat_user_tables\u003c/code\u003e tables.\u003c/p\u003e\n"],["\u003cp\u003eIf data discrepancies are found between the source and the Cloud SQL destination instance, you can manually resolve them by comparing and updating data, or by utilizing \u003ccode\u003epg_dump\u003c/code\u003e/\u003ccode\u003epg_restore\u003c/code\u003e or the \u003ccode\u003eCOPY\u003c/code\u003e command for the affected tables.\u003c/p\u003e\n"],["\u003cp\u003eIt is important to potentially clean the replica before using \u003ccode\u003epg_restore\u003c/code\u003e or \u003ccode\u003eCOPY\u003c/code\u003e commands if there is data that was previously migrated.\u003c/p\u003e\n"]]],[],null,[]]