Migrer vers une instance de destination existante

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 :

  1. 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.
  2. Configurez la connectivité réseau vers votre instance PostgreSQL source.
  3. Préparez et configurez votre instance Cloud SQL de destination existante.
  4. Créez le profil de connexion source et le job de migration.
  5. Démarrez et surveillez le job de migration.
  6. 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 :

Obtenez une estimation des coûts en fonction de votre utilisation prévue à l'aide du simulateur de coût.

Avant de commencer

  1. Vérifiez si ce chemin de migration peut entièrement prendre en charge votre scénario. Consultez les pages suivantes :
  2. 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.
  3. Dans la console Google Cloud , sur la page de sélection du projet, sélectionnez ou créez un projet Google Cloud .

    Accéder au sélecteur de projet

  4. Activez les API Database Migration Service et Cloud SQL Admin.

    Activer les API

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 :

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.create
  • cloudsql.instances.get
  • cloudsql.instances.list
  • cloudsql.instances.update
  • cloudsql.instances.delete
  • cloudsql.operations.get
  • cloudsql.users.list
  • cloudsql.users.get
  • cloudsql.users.create
  • cloudsql.users.update
  • cloudsql.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 :

  1. Choisissez et configurez votre méthode de connectivité réseau source.
  2. Configurez votre instance de base de données source. En règle générale, vous devez suivre les étapes ci-dessous :
    1. 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.
    2. Configurez les paramètres PostgreSQL : définissez wal_level = logical et assurez-vous que les valeurs de max_replication_slots, max_wal_senders et max_worker_processes sont adéquates.
    3. Accordez des droits de réplication à votre utilisateur de migration et configurez pg_hba.conf pour 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.

  3. 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 :

  1. 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.
  2. Configuration de l'indicateur de base de données : activez l'indicateur cloudsql.enable_pglogical sur 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.
  3. 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 postgres par défaut ou un utilisateur de migration dédié avec le rôle cloudsqlsuperuser) 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 commandes psql standards ou de la console Google Cloud . Pour en savoir plus, consultez Gérer les utilisateurs dans la documentation Cloud SQL.
  4. 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.
  5. 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 :

  1. 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.
  2. 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 :

  1. 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.
  2. 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.
  3. Promouvoir le job de migration.
  4. Facultatif : vérifiez l'exhaustivité des données de migration.
  5. 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.