Cette page explique comment migrer vos bases de données vers une instance Cloud SQL pour PostgreSQL préexistante créée directement dans Cloud SQL.
Cette approche est utile lorsque votre instance de destination est gérée par une autre équipe, ou si vous devez créer l'instance en dehors de Database Migration Service (par exemple, si vous utilisez Terraform, si vous avez besoin d'options personnalisées spécifiques ou si vous avez besoin de topologies réseau avancées). Si votre migration présente des exigences différentes, envisagez de suivre un autre flux de migration. Pour en savoir plus, consultez Premiers pas avec les migrations PostgreSQL.
De manière générale, la migration comprend les étapes suivantes :
- Configurez la base de données source pour permettre à Database Migration Service de déplacer vos données vers les nouvelles bases de données.
- Configurez la connectivité réseau vers votre instance PostgreSQL source.
- Préparez et configurez votre instance Cloud SQL de destination existante.
- Créez le profil de connexion source et le job de migration.
- Démarrez et surveillez le job de migration.
- Promouvez le job de migration et déplacez votre application pour utiliser les nouvelles bases de données.
Coûts
Dans ce document, vous utilisez les composants facturables suivants deGoogle Cloud :
- Cloud SQL (consultez les tarifs de Cloud SQL).
- Si utilisé pour stocker des clés de chiffrement gérées par le client (CMEK) : Cloud Storage (consultez les tarifs de Cloud Storage).
Obtenez une estimation des coûts en fonction de votre utilisation prévue à l'aide du simulateur de coût.
Avant de commencer
- Vérifiez si ce chemin de migration peut entièrement prendre en charge votre scénario.
Consultez les pages suivantes :
- La section Sources et destinations compatibles de la page Présentation du scénario liste toutes les versions de sources et de destinations compatibles.
- La section Limites connues pour les instances existantes décrit les limites, y compris l'exigence selon laquelle votre instance de destination existante ne doit pas contenir de données définies par l'utilisateur.
- Réfléchissez à la région dans laquelle vous souhaitez créer la base de données de destination. Database Migration Service est un produit entièrement régional, ce qui signifie que toutes les entités liées à votre migration (profils de connexion source et de destination, jobs de migration, bases de données de destination, espaces de travail de conversion) doivent être enregistrées dans une seule région.
- Dans la console Google Cloud , sur la page de sélection du projet, sélectionnez ou créez un projet Google Cloud .
- Activez les API Database Migration Service et Cloud SQL Admin.
Rôles requis
Pour obtenir les autorisations nécessaires pour effectuer des migrations PostgreSQL homogènes avec Database Migration Service, demandez à votre administrateur de vous accorder les rôles IAM requis sur votre projet :
-
Administrateur de migration de bases de données (
roles/datamigration.admin) -
Éditeur Cloud SQL (
roles/cloudsql.editor) - Si vous devez créer ou configurer l'instance de destination en dehors de Database Migration Service, vous devez également disposer du rôle
Administrateur Cloud SQL (
roles/cloudsql.admin). -
Utilisateur Cloud SQL Studio (
roles/cloudsql.studioUser)
Pour en savoir plus sur l'attribution de rôles, consultez Gérer les accès dans la documentation Identity and Access Management.
Ces rôles prédéfinis contiennent les autorisations requises pour effectuer des migrations PostgreSQL homogènes avec Database Migration Service. Pour afficher les autorisations exactes requises, développez la section Autorisations requises :
Autorisations requises
Les autorisations suivantes sont requises pour effectuer des migrations PostgreSQL homogènes avec Database Migration Service :
datamigration.*cloudsql.instances.createcloudsql.instances.getcloudsql.instances.listcloudsql.instances.updatecloudsql.instances.deletecloudsql.operations.getcloudsql.users.listcloudsql.users.getcloudsql.users.createcloudsql.users.updatecloudsql.users.delete
Vous pouvez également obtenir ces autorisations avec des rôles personnalisés ou d'autres rôles prédéfinis.
Préparer votre base de données source
Pour préparer vos données sources à la migration, procédez comme suit :
- Choisissez et configurez votre méthode de connectivité réseau source.
- Configurez votre instance de base de données source. En règle générale, vous devez suivre les étapes ci-dessous :
- Installez l'extension PostgreSQL
pglogical(version 2.2.1 ou ultérieure) sur la base de données source et sur toutes les bases de données à migrer. - Configurez les paramètres PostgreSQL : définissez
wal_level = logicalet assurez-vous que les valeurs demax_replication_slots,max_wal_sendersetmax_worker_processessont adéquates. - Accordez des droits de réplication à votre utilisateur de migration et configurez
pg_hba.confpour autoriser les connexions depuis l'instance Cloud SQL de destination.
Pour obtenir des instructions détaillées, consultez Configurer votre base de données source.
- Installez l'extension PostgreSQL
- Créer le profil de connexion source
Préparer et configurer votre instance de destination
Lorsque vous effectuez une migration vers une instance Cloud SQL existante (par exemple, une instance préprovisionnée par une autre équipe ou gérée avec Terraform), assurez-vous que l'instance répond à toutes les conditions préalables de Database Migration Service avant de créer votre job de migration :
- Disponibilité de l'instance et état des données :
- L'instance de destination doit être une instance autonome (et non une instance répliquée) à l'état
RUNNABLE. - L'instance doit se trouver dans la même région Google Cloud que votre job de migration et votre profil de connexion.
- L'instance ne peut être associée qu'à un seul job de migration actif à la fois.
- L'instance de destination ne doit pas contenir de données utilisateur existantes, de tables définies par l'utilisateur ni de bases de données non système. La validation du job de migration échoue si des données utilisateur existantes sont présentes sur l'instance. Pour en savoir plus, consultez Limites des migrations vers des instances de destination existantes. Si nécessaire, effacez les données existantes de votre instance de destination.
- L'instance de destination doit être une instance autonome (et non une instance répliquée) à l'état
- Configuration de l'indicateur de base de données : activez l'indicateur
cloudsql.enable_pglogicalsur votre instance Cloud SQL pour PostgreSQL de destination. Cette option est requise pour la réplication logique. Pour en savoir plus sur la définition des options, consultez Configurer des options de base de données. - Identifiants et autorisations des utilisateurs de la base de données : assurez-vous que les comptes utilisateur de base de données d'administration requis existent sur votre instance de destination (par exemple, l'utilisateur
postgrespar défaut ou un utilisateur de migration dédié avec le rôlecloudsqlsuperuser) pour gérer les bases de données et les rôles. Vous pouvez créer et gérer des utilisateurs de base de données à l'aide de commandespsqlstandards ou de la console Google Cloud . Pour en savoir plus, consultez Gérer les utilisateurs dans la documentation Cloud SQL. - Exigences de connectivité réseau : vérifiez que la mise en réseau de votre instance de destination est correctement configurée pour communiquer avec votre base de données source en fonction de la méthode de connectivité choisie :
- Private Service Connect : si Private Service Connect est activé sur votre instance de destination, un rattachement de réseau sortant Private Service Connect doit être configuré. Consultez Connexions sortantes Private Service Connect dans la documentation Cloud SQL.
- Appairage de cloud privé virtuel (accès aux services privés / adresse IP privée) : l'instance de destination doit avoir une adresse IP privée activée sur le réseau de cloud privé virtuel qui s'appaire ou se connecte à votre base de données source. Consultez Configurer une adresse IP privée.
- Liste d'autorisation d'adresses IP publiques : si vous utilisez la connexion IP publique, assurez-vous d'activer l'adresse IP publique sur votre instance de destination et d'ajouter les adresses IP sortantes de l'instance (y compris les adresses IP sortantes principale et secondaire si l'instance est configurée pour la haute disponibilité) à la liste d'autorisation de votre pare-feu source. Consultez Autoriser des réseaux pour une adresse IP publique.
- Avis de rétrogradation d'instance :
- Pour les migrations PostgreSQL standards, Database Migration Service rétrograde l'instance de destination autonome existante pour la configurer en tant qu'instance répliquée externe de votre base de données source. Vous devez confirmer cette rétrogradation lors de la création du job de migration dans la console Google Cloud en saisissant l'ID de l'instance de destination.
- La rétrogradation de l'instance ne place pas la base de données Cloud SQL pour PostgreSQL en mode lecture seule, mais vous devez éviter les opérations d'écriture sur les tables ou les bases de données participant à la migration pour éviter les conflits de réplication.
- Les sauvegardes automatiques, la récupération à un moment précis (PITR) et la création d'instances répliquées avec accès en lecture Cloud SQL sont suspendues jusqu'à ce que vous promouviez le job de migration. Pour en savoir plus, consultez Limites des migrations vers des instances de destination existantes.
- Si vous gérez votre instance de destination à l'aide de l'infrastructure as code (comme Terraform), Database Migration Service modifie les paramètres de sauvegarde et de récupération pendant la migration. Pour savoir comment gérer la dérive de configuration Terraform, consultez Diagnostiquer les problèmes.
Créer et exécuter le job de migration
Pour configurer et exécuter votre migration, procédez comme suit :
- Facultatif : Si vous souhaitez gérer vos propres certificats ou clés de chiffrement pour le job de migration, préparez les clés de chiffrement nécessaires.
-
Créer et exécuter le job de migration pour une instance de destination existante
Vous pouvez surveiller la progression de la migration, ainsi que l'état de votre instance de destination, grâce aux fonctionnalités d'observabilité de Database Migration Service. Consultez Métriques des jobs de migration.
Finaliser la migration
Lorsque vous décidez de basculer votre application vers la nouvelle instance Cloud SQL pour PostgreSQL, finalisez la migration en procédant comme suit :
- Facultatif : Configurez des instances répliquées en cascade avec accès en lecture. Si vous souhaitez utiliser des instances répliquées avec accès en lecture en cascade, vous pouvez les configurer lorsque le job de migration entre dans la phase CDC.
- Arrêtez toutes les opérations d'écriture sur votre base de données source. Vous pouvez les passer en mode lecture seule pour conserver les fonctionnalités opérationnelles.
- Promouvoir le job de migration.
- Facultatif : vérifiez l'exhaustivité des données de migration.
- Si vous gérez votre base de données de destination à l'aide de l'infrastructure as code (comme Terraform), réappliquez votre configuration après la promotion pour rapprocher les paramètres ajustés par Database Migration Service pendant la migration.
Étapes suivantes
En savoir plus sur les fonctionnalités de Google Cloud pour Cloud SQL pour PostgreSQL Consultez Fonctionnalités de Cloud SQL pour PostgreSQL.