Pour les migrations PostgreSQL homogènes vers Cloud SQL, Database Migration Service se connecte à l'instance Cloud SQL pour PostgreSQL de destination et gère le processus de migration continue en son nom. L'instance de destination établit la connexion à votre base de données source, tandis que Database Migration Service orchestre et surveille le pipeline de données de bout en bout.
Pour les migrations PostgreSQL homogènes standards vers Cloud SQL, Database Migration Service accepte les migrations continues.
Dans une migration continue, les données initiales sont chargées à partir d'un vidage d'instantané, puis les modifications de données en cours sont répliquées en continu à partir du journal WAL de la base de données source à l'aide du décodage logique et de l'extension pglogical.
Pour les
migrations à démarrage rapide continues, Database Migration Service utilise pgnative.
Phases de migration continue
Les migrations continues se déroulent selon les phases séquentielles suivantes :
Migrations standards
-
Configuration et orchestration de la réplication : lorsque vous créez le job de migration, Database Migration Service configure l'instance Cloud SQL pour PostgreSQL de destination pour qu'elle agisse en tant qu'instance répliquée et établit des abonnements de réplication avec l'extension
pglogical. Lors de la migration vers une instance Cloud SQL existante, Database Migration Service rétrograde l'instance pour la configurer en tant qu'instance répliquée externe (sans placer la base de données en mode lecture seule). - Phase d'instantané initial : lorsque vous démarrez le job de migration, Database Migration Service prend un instantané cohérent des bases de données sélectionnées sur l'instance source. Ce processus verrouille brièvement la table (généralement moins de 10 secondes par table) pendant l'initialisation de l'instantané. La base de données source continue d'accepter les lectures et les écritures tout au long du processus.
- Phase de chargement des données : Database Migration Service diffuse les données de l'instantané initial à partir de la base de données source et les charge dans l'instance Cloud SQL pour PostgreSQL de destination.
- Création de contraintes et d'index : une fois le chargement initial des données terminé, les contraintes de table (y compris les clés primaires et les clés étrangères) et les index secondaires sont créés sur l'instance de destination. La séparation du chargement des données de la création de contraintes optimise la vitesse d'ingestion des données.
-
Phase de capture des données modifiées (CDC) : une fois les contraintes appliquées, Database Migration Service passe à la phase de CDC continue. Pendant la CDC, Database Migration Service capture les modifications LMD en cours à partir du flux de réplication logique de la base de données source à l'aide de
pglogicalet les applique à l'instance de destination en temps quasi réel. - Phase de basculement et de promotion : lorsque vous êtes prêt à basculer le trafic de votre application vers l'instance de destination, arrêtez les écritures dans la base de données source, vérifiez que le délai de réplication atteint zéro et lancez la promotion dans Database Migration Service. Lors de la promotion, Database Migration Service déconnecte l'instance de destination de la source, supprime les emplacements de réplication et transforme la destination en instance principale Cloud SQL pour PostgreSQL autonome en lecture/écriture.
Migrations à démarrage rapide
-
Configuration et orchestration de la réplication : lorsque vous créez le job de migration, Database Migration Service configure automatiquement la connectivité réseau sur des adresses IP privées à l'aide d'interfaces Private Service Connect (en créant automatiquement des configurations de connectivité privée, des rattachements de réseau et des sous-réseaux). Il établit la réplication entre les bases de données source et de destination à l'aide de la réplication logique PostgreSQL (avec
pgnative), sans nécessiter l'installation de l'extensionpglogicalsur la source ni la rétrogradation de l'instance de destination. La destination peut être une instance active diffusant du trafic vers d'autres bases de données. - Phase d'instantané initial : lorsque vous démarrez le job de migration, Database Migration Service prend un instantané cohérent des bases de données sélectionnées (en migrant jusqu'à 50 bases de données par job) sur le serveur de base de données source. La base de données source continue d'accepter les lectures et les écritures tout au long du processus.
- Phase de chargement des données : Database Migration Service diffuse les données de l'instantané initial directement dans l'instance Cloud SQL pour PostgreSQL de destination via une connectivité privée. Les objets de la base de données de destination sont attribués à l'utilisateur de migration généré par Database Migration Service (lorsque vous utilisez la console Google Cloud ) ou spécifié avec la Google Cloud CLI.
- Création de contraintes et d'index : une fois le chargement initial des données terminé, des contraintes de table et des index secondaires sont créés sur l'instance de destination pour garantir la fidélité du schéma tout en maximisant les performances d'ingestion.
-
Phase de capture des données modifiées (CDC) : une fois les contraintes appliquées, Database Migration Service passe à la phase de CDC continue. Pendant la CDC, Database Migration Service diffuse les modifications LMD en cours à partir du flux de réplication logique PostgreSQL
pgnativeet les applique à l'instance de destination en temps quasi réel. Pour les tables sans clé primaire, les opérationsUPDATEetDELETEpeuvent être répliquées lorsque l'identité de l'instance répliquée de la table est configurée surINDEXouFULL. - Phase de basculement et de promotion : lorsque vous êtes prêt à basculer le trafic de votre application vers l'instance de destination, arrêtez les écritures dans la base de données source, vérifiez que le délai de réplication atteint zéro et lancez la promotion dans Database Migration Service. Pendant la promotion, Database Migration Service finalise la réplication CDC, met fin aux emplacements de réplication et dissocie le pipeline de migration, ce qui laisse vos bases de données Cloud SQL pour PostgreSQL de destination entièrement opérationnelles pour les connexions clientes.
Étapes suivantes
Pour en savoir plus sur la compatibilité des données et des fonctionnalités PostgreSQL dans Database Migration Service, consultez Limites connues.
Pour obtenir un guide de migration complet, étape par étape, consultez Premiers pas avec les migrations Cloud SQL pour PostgreSQL.