Utiliser des migrations de démarrage rapide avec Database Migration Service

Cette page explique comment effectuer des migrations à démarrage rapide pour les migrations PostgreSQL homogènes vers AlloyDB pour PostgreSQL.

Présentation

Les migrations à démarrage rapide sont un flux de migration continue léger pour les scénarios PostgreSQL homogènes. Avec les migrations à démarrage rapide, Database Migration Service peut configurer automatiquement tout ce dont vous avez besoin pour migrer vos bases de données : composants réseau (associations réseau, sous-réseaux, configurations de connectivité privée), profils de connexion et jobs de migration.

Les migrations rapides vous permettent de transférer vos données vers un cluster AlloyDB pour PostgreSQL existant ou d'en créer un lorsque vous configurez la migration. Les migrations à démarrage rapide sont idéales pour :

  • Migrations de base, où vous n'avez pas besoin de contrôler précisément les paramètres de parallélisme du vidage des données.
  • Migrer votre base de données d'un projet Google Cloud vers un autre Lorsque vous configurez une migration de démarrage rapide, vous pouvez créer votre cluster de destination dans un projet différent de celui de votre source et configurer Database Migration Service pour qu'il crée le rattachement de réseau et le sous-réseau dans le réseau VPC (cloud privé virtuel) d'un autre projet.
  • Migrer depuis des sources disposant d'une adresse IP privée dans votre réseau de cloud privé virtuel (VPC) Google Cloud, comme des bases de données autogérées sur Compute Engine ou des instances Cloud SQL pour PostgreSQL activées pour la mise en réseau privée.

    Les sources hébergées en dehors de Google Cloud peuvent nécessiter des composants réseau supplémentaires (tels qu'une connexion Cloud VPN) pour être accessibles à une adresse IP privée au sein de votre réseau VPC.

  • La seule méthode de connectivité aux bases de données acceptée est celle des interfaces Private Service Connect avec les configurations de connectivité privée Database Migration Service. Votre base de données source doit disposer d'une adresse IP privée attribuée dans le réseau VPC. Les autres méthodes de connectivité source homogènes (telles que les listes d'autorisation d'adresses IP publiques, les tunnels SSH inversés ou l'appairage de VPC) ne sont pas compatibles avec les migrations rapides.

Pour en savoir plus sur les migrations à démarrage rapide, consultez Migrations à démarrage rapide dans la documentation Database Migration Service.

Avant de commencer

  1. Vérifiez si les migrations rapides peuvent prendre en charge entièrement votre scénario. Consultez les limites de la migration rapide dans la documentation Database Migration Service.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. Activez les API Database Migration Service, Compute Engine, Network Connectivity Center et AlloyDB pour PostgreSQL Admin.

    Activer les API

Rôles requis

Pour obtenir les autorisations nécessaires pour exécuter des migrations de démarrage rapide vers AlloyDB pour PostgreSQL avec Database Migration Service, demandez à votre administrateur d'accorder les rôles IAM (Identity and Access Management) requis pour les comptes impliqués dans la migration dans les projets concernés. Pour en savoir plus sur l'attribution de rôles, consultez la section Gérer les accès dans la documentation IAM.

Rôles et autorisations dans le projet source

Attribuez les rôles suivants à des comptes spécifiques dans le projet Google Cloud où réside votre base de données source :

  • Pour le compte utilisateur qui effectue la migration : Administrateur de réseaux Compute (roles/compute.networkAdmin)
  • Pour le compte de service Database Migration Service du projet de destination : Lecteur de réseau Compute (roles/compute.networkViewer)

    Le compte de service Database Migration Service est créé pour vous lorsque vous activez l'API Database Migration Service. L'adresse e-mail associée à ce compte est générée automatiquement et ne peut pas être modifiée. Cette adresse e-mail utilise le format suivant :

    service-DESTINATION_PROJECT_NUMBERservice-DESTINATION_PROJECT_NUMBER@gcp-sa-datamigration.

Ces rôles prédéfinis contiennent les autorisations requises pour configurer la connectivité sur votre projet de base de données source dans le cadre d'une migration rapide avec Database Migration Service. Pour afficher les autorisations exactes requises, développez la section Autorisations requises (source) :

Autorisations requises (source)

Les autorisations suivantes sont requises pour effectuer des migrations homogènes à démarrage rapide avec Database Migration Service :

Pour le compte utilisateur qui effectue la migration :

  • compute.networks.*
  • compute.subnetworks.*
  • compute.networkAttachments.*

Pour le compte de service Database Migration Service du projet de destination : compute.networkAttachments.get.

Rôles et autorisations dans le projet de destination

Attribuez les rôles suivants au compte utilisateur qui effectue la migration sur le projet Google Cloud où réside votre base de données de destination :

Ces rôles prédéfinis contiennent les autorisations requises pour configurer les composants de migration nécessaires dans votre projet de base de données de destination dans le cadre d'une migration à démarrage rapide avec Database Migration Service. Pour afficher les autorisations exactes requises, développez la section Autorisations requises (destination) :

Autorisations requises (destination)

Les autorisations suivantes sont requises pour effectuer des migrations homogènes à démarrage rapide avec Database Migration Service :

  • datamigration.*
  • alloydb.clusters.create
  • alloydb.clusters.get
  • alloydb.clusters.list
  • alloydb.clusters.update
  • alloydb.clusters.delete
  • alloydb.instances.create
  • alloydb.instances.get
  • alloydb.instances.list
  • alloydb.instances.update
  • alloydb.instances.delete
  • alloydb.instances.executeSql
  • alloydb.operations.get
  • alloydb.users.list
  • alloydb.users.get
  • alloydb.users.create
  • alloydb.users.update
  • alloydb.users.delete

Configurer votre base de données source

Pour configurer votre base de données PostgreSQL source :

  1. Créez un compte utilisateur dédié à la migration dans votre instance.
  2. Attribuez les droits nécessaires au compte utilisateur dédié à la migration. Exécutez les commandes suivantes pour chaque base de données à migrer :
    -- Grant the REPLICATION attribute
    ALTER ROLE MIGRATION_USER REPLICATION;
    
    -- Grant database-level permissions.
    -- Repeat for each database you want to migrate.
    GRANT CONNECT, CREATE ON DATABASE DATABASE_NAME TO MIGRATION_USER;
    
    -- Grant schema-level usage.
    -- Repeat for each schema in each database you want to migrate.
    GRANT USAGE ON SCHEMA SCHEMA_NAME TO MIGRATION_USER;

    Remplacez les éléments suivants :

    • MIGRATION_USER par le nom du compte utilisateur de migration.
    • DATABASE_NAME par le nom de la base de données que vous souhaitez migrer.
    • SCHEMA_NAME par le nom du schéma dans la base de données que vous souhaitez migrer.
  3. Le compte utilisateur de migration doit disposer d'un accès propriétaire aux tables que vous migrez. Pour accorder ce niveau d'accès, effectuez l'une des opérations suivantes :
    • Pour les sources autres que Cloud SQL pour PostgreSQL uniquement : attribuez le rôle PostgreSQL SUPERUSER au compte de migration.
    • Pour toutes les sources : ajoutez le compte utilisateur de migration au groupe d'utilisateurs propriétaire des tables. Exécutez la commande suivante :
      -- Grant table ownership.
      GRANT TABLE_OWNER_GROUP_NAME TO MIGRATION_USER;

      Remplacez les éléments suivants :

      • Remplacez TABLE_OWNER_GROUP_NAME par le nom du groupe d'utilisateurs propriétaire de chaque table que vous souhaitez migrer.
      • MIGRATION_USER par le nom du compte utilisateur de migration.
  4. Pour les tables sans clé primaire : Database Migration Service ne réplique pas les opérations UPDATE ni DELETE pour les tables sans clé primaire pendant la phase de capture des données modifiées (CDC). Si vous souhaitez inclure de telles opérations dans votre réplication, modifiez les tables sans clé primaire avec REPLICA IDENTITY :
    ALTER TABLE TABLE_NAME REPLICA IDENTITY FULL;
    ALTER TABLE TABLE_NAME REPLICA IDENTITY USING INDEX INDEX_NAME;

    Remplacez les éléments suivants :

    • TABLE_NAME correspond au nom de la table qui ne comporte pas de clés primaires.
    • INDEX_NAME est l'index unique qui permet de suivre les lignes des tables sans clé primaire.
  5. Configurez les paramètres de réplication à l'aide d'options de base de données.

    Sources autogérées

    Pour enregistrer les modifications apportées aux options de base de données, vous devez redémarrer complètement la base de données. Les exemples suivants utilisent des requêtes SQL pour modifier les valeurs des indicateurs. Si vous ne pouvez pas exécuter de requêtes SQL directement, consultez la documentation de votre fournisseur pour savoir comment modifier ces indicateurs.

    1. Définissez le paramètre wal_level sur logical. Exécutez la commande suivante :
      ALTER SYSTEM SET wal_level = 'logical';
    2. Définissez le paramètre wal_sender_timeout sur 0. Cette valeur désactive le mécanisme de délai avant expiration utilisé pour interrompre les connexions de réplication inactives. Exécutez la commande suivante :
      ALTER SYSTEM SET wal_sender_timeout = 0;
          
    3. Configurez le nombre maximal d'emplacements de réplication avec le paramètre max_replication_slots. Ce paramètre doit être défini sur une valeur au moins égale au nombre de bases de données que vous migrez par job de migration, avec certaines réserves pour la synchronisation des tables.

      Par exemple, si vous migrez cinq bases de données et que deux tâches de migration sont créées pour l'instance source, le nombre d'emplacements de réplication doit être au moins égal à 5 * 2 = 10, en plus du nombre d'emplacements de réplication que vous utilisez déjà.

      Pour définir ce paramètre, exécutez la commande suivante :

      ALTER SYSTEM SET max_replication_slots = NUMBER_OF_SLOTS;
          
      NUMBER_OF_SLOTS représente le nombre maximal d'emplacements de réplication.
    4. Configurez le paramètre max_wal_senders sur une valeur au moins égale à celle de max_replication_slots, en plus du nombre d'expéditeurs déjà utilisés sur votre instance.

      Par exemple, si le paramètre max_replication_slots est défini sur 10 et que vous utilisez déjà deux expéditeurs, le nombre de processus d'envoi WAL exécutés en même temps est de 10 + 2 = 12.

      Pour définir ce paramètre, exécutez la commande suivante :

      ALTER SYSTEM SET max_wal_senders = NUMBER_OF_SENDERS;
          
      NUMBER_OF_SENDERS représente le nombre de processus d'envoi WAL exécutés simultanément.
    5. Définissez max_worker_processes sur une valeur au moins égale à la somme du nombre de bases de données que vous souhaitez migrer et du nombre de max_worker_processes déjà utilisés sur votre instance. Pour définir ce paramètre, exécutez la commande suivante :
      ALTER SYSTEM SET max_worker_processes = NUMBER_OF_PROCESSES;
          
      NUMBER_OF_PROCESSES représente le nombre de bases de données qui seront migrées.

    Sources Cloud SQL pour PostgreSQL

    Pour les sources Cloud SQL, vous configurez les options de base de données dans la console Google Cloud . Vous devez redémarrer votre instance après avoir modifié les indicateurs de base de données pour que le paramètre prenne effet. Pour en savoir plus sur la configuration des options de base de données dans Cloud SQL, consultez Configurer des options de base de données dans la documentation Cloud SQL.

    1. Définissez le flag cloudsql.logical_decoding sur on.
    2. Définissez le paramètre wal_sender_timeout sur 0. Cette valeur désactive le mécanisme de délai avant expiration utilisé pour interrompre les connexions de réplication inactives.
    3. Configurez le nombre maximal d'emplacements de réplication avec le paramètre max_replication_slots. Ce paramètre doit être défini sur une valeur au moins égale au nombre de bases de données que vous migrez par tâche de migration, avec certaines réserves pour la synchronisation des tables.

      Par exemple, si vous migrez cinq bases de données et que deux tâches de migration sont créées pour l'instance source, le nombre d'emplacements de réplication doit être au moins égal à 5 * 2 = 10, en plus du nombre d'emplacements de réplication que vous utilisez déjà.

    4. Configurez le paramètre max_wal_senders sur une valeur au moins égale à celle de max_replication_slots, plus le nombre d'expéditeurs déjà utilisés sur votre instance.

      Par exemple, si le paramètre max_replication_slots est défini sur 10 et que vous utilisez déjà deux expéditeurs, le nombre de processus d'envoi WAL exécutés en même temps est de 10 + 2 = 12.

    5. Définissez max_worker_processes sur un nombre au moins égal à la somme du nombre de bases de données que vous souhaitez migrer et du nombre de max_worker_processes déjà utilisés sur votre instance.

Créer et exécuter une migration automatisée

Lorsque vous utilisez des migrations de démarrage rapide, vous pouvez créer un cluster AlloyDB pour PostgreSQL et y migrer vos bases de données, ou migrer des bases de données vers un cluster existant.

Migrations à démarrage rapide pour les nouveaux clusters

Pour créer un cluster AlloyDB pour PostgreSQL et y migrer immédiatement vos bases de données, procédez comme suit :

Console

  1. Accédez à la page Clusters.

    Accéder aux clusters

  2. Cliquez sur Créer un cluster > À partir d'une base de données existante.

    Le formulaire de migration de démarrage rapide de Database Migration Service s'ouvre.

  3. Dans la section Configurer la migration, procédez comme suit :
    1. Dans le menu Région de destination, sélectionnez la région de votre cluster AlloyDB pour PostgreSQL de destination.
    2. Dans la zone Préfixe de migration, saisissez une chaîne qui sera ajoutée aux noms de toutes les entités de migration créées pour la migration à démarrage rapide : profils de connexion, configuration de connectivité privée, rattachement de réseau et son sous-réseau, et job de migration.
    3. Dans le menu Type de configuration, sélectionnez l'une des options suivantes :
      1. Configuration de connectivité existante : sélectionnez cette option si vous disposez déjà d'un rattachement de réseau et d'une configuration de connectivité privée qui utilise la méthode des interfaces Private Service Connect. Cette option est idéale si vous avez déjà utilisé des migrations de démarrage rapide et que vous souhaitez réutiliser les mêmes ressources réseau.
      2. Nouvelle configuration de connectivité : sélectionnez cette option pour créer un rattachement réseau et le sous-réseau de rattachement réseau dans le réseau VPC de la base de données source. La configuration de connectivité privée sera créée dans le même projet que votre cluster de destination.
    4. Cliquez sur Continuer.
  4. Dans la section Associer une source, procédez comme suit :
    1. Saisissez un nom d'hôte ou l'adresse IP privée de votre base de données source. L'adresse de la base de données source doit être accessible depuis votre réseau VPC source.
    2. Saisissez le port utilisé pour accéder à l'hôte. Le numéro de port PostgreSQL par défaut est 5432.
    3. Saisissez le nom d'utilisateur et le mot de passe du compte de migration dédié dans votre base de données source.
    4. Dans le menu Type de chiffrement, sélectionnez l'une des options suivantes :
      • Aucun : si votre base de données source ne nécessite pas de connexions chiffrées SSL/TLS.
      • Obligatoire : si votre base de données source nécessite des connexions chiffrées avec SSL/TLS. Cette option ne nécessite aucune validation de certificat.
    5. Dans le menu Bases de données à migrer, cliquez sur Personnaliser. Utilisez le panneau latéral pour sélectionner uniquement les bases de données que vous souhaitez migrer vers AlloyDB pour PostgreSQL.
    6. Cliquez sur Continuer.
  5. Dans la section Configurer la destination, procédez comme suit :
    1. Dans le menu Type d'instance de destination, sélectionnez Nouveau cluster.

      Database Migration Service utilise la configuration AlloyDB pour PostgreSQL par défaut pour un nouveau cluster. Cliquez sur Personnaliser pour ajuster les fonctionnalités du cluster, comme le type de machine, la disponibilité par zone ou les paramètres de protection des données. Pour en savoir plus sur la configuration des clusters, consultez Créer un cluster et son instance principale.

    2. Dans le champ Mot de passe, saisissez le mot de passe de l'utilisateur administrateur postgresql par défaut. Database Migration Service se connecte en tant que cet utilisateur pour migrer vos données.
  6. Cliquez sur Lancer la migration.

    Database Migration Service crée maintenant le job de migration et lance le processus de migration. Vous pouvez surveiller la progression de la migration, ainsi que l'état de votre cluster de destination dans AlloyDB pour PostgreSQL. Pour en savoir plus, consultez Afficher les informations sur le cluster.

gcloud

Pour utiliser la gcloud CLI afin de migrer vers un nouveau cluster AlloyDB, procédez comme suit :

  1. Créez la ressource de rattachement de réseau.
    Créez le rattachement de réseau dans le projet et le réseau de cloud privé virtuel où se trouve votre base de données source :

    gcloud compute network-attachments create NETWORK_ATTACHMENT \
      --region=REGION \
      --connection-preference=ACCEPT_MANUAL \
      --producer-accept-list=DEST_PROJECT_ID \
      --subnets=default \
      --project=SOURCE_PROJECT_ID

    Remplacez les éléments suivants :

    • NETWORK_ATTACHMENT : nom du rattachement de réseau à créer.
    • REGION : région du rattachement de réseau.
    • DEST_PROJECT_ID : ID du projet de votre projet de destination.
    • SOURCE_PROJECT_ID : ID du projet dans lequel réside le réseau source.
  2. Autorisez le projet locataire Database Migration Service à accéder au rattachement de réseau.
    Récupérez l'ID du projet locataire en exécutant une vérification de la validation, puis mettez à jour la liste d'acceptation des rattachements de réseau pour l'inclure :

    1. Effectuez une vérification de la validation pour récupérer l'ID du projet locataire :

      gcloud database-migration private-connections create PRIVATE_CONN \
        --region=REGION \
        --network-attachment=NETWORK_ATTACHMENT_URI \
        --display-name=PRIVATE_CONN \
        --format="value(metadata.metadata.tenant_project_id)" \
        --validate-only

      Remplacez les éléments suivants :

      • PRIVATE_CONN : nom de la ressource de connexion privée.
      • REGION : région de la connexion privée.
      • NETWORK_ATTACHMENT_URI : URI du rattachement réseau créé à l'étape précédente. Exemple :projects/SOURCE_PROJECT_ID/regions/REGION/networkAttachments/NETWORK_ATTACHMENT
    2. Mettez à jour le rattachement de réseau avec le DMS_TENANT_ID récupéré :

      gcloud compute network-attachments update NETWORK_ATTACHMENT \
        --region=REGION \
        --producer-accept-list=DEST_PROJECT_ID,DMS_TENANT_ID \
        --project=SOURCE_PROJECT_ID

      Remplacez les éléments suivants :

      • NETWORK_ATTACHMENT : nom du rattachement de réseau.
      • REGION : région.
      • DEST_PROJECT_ID : ID du projet de votre projet de destination.
      • DMS_TENANT_ID : ID du projet locataire Database Migration Service récupéré.
      • SOURCE_PROJECT_ID : ID du projet dans lequel réside le réseau source.
  3. Créez la configuration de connectivité privée.
    Créez la connexion privée dans le projet de destination :

    gcloud database-migration private-connections create PRIVATE_CONN \
      --region=REGION \
      --network-attachment=NETWORK_ATTACHMENT_URI \
      --display-name=PRIVATE_CONN

    Remplacez les éléments suivants :

    • PRIVATE_CONN : nom de la ressource de connexion privée.
    • REGION : région de la connexion privée.
    • NETWORK_ATTACHMENT_URI : URI du rattachement réseau.
  4. Créez le profil de connexion source.
    Créez le profil de connexion pour la base de données source PostgreSQL :

    gcloud database-migration connection-profiles create postgresql SOURCE_CONN_ID \
      --region=REGION \
      --role=SOURCE \
      --host=SOURCE_PRIVATE_IP \
      --port=SOURCE_PORT \
      --username=SOURCE_USER \
      --password=SOURCE_PASSWORD \
      --private-connection=PRIVATE_CONN \
      --no-async

    Remplacez les éléments suivants :

    • SOURCE_CONN_ID : identifiant du profil de connexion source.
    • REGION : région dans laquelle vous souhaitez enregistrer le profil de connexion.
    • SOURCE_PRIVATE_IP : adresse IP privée de votre base de données source.
    • SOURCE_PORT : port de votre base de données source (5432 par défaut).
    • SOURCE_USER : nom d'utilisateur de la migration sur votre base de données source.
    • SOURCE_PASSWORD : mot de passe de l'utilisateur de la migration sur votre base de données source.
    • PRIVATE_CONN : nom de la ressource de connexion privée.
  5. Créez le cluster AlloyDB de destination.
    Créez le cluster de destination et son instance principale. Pour obtenir des instructions détaillées, consultez la page Créer un cluster et son instance principale.

  6. Créez le profil de connexion de destination.
    Créez le profil de connexion de destination pointant vers le cluster AlloyDB nouvellement créé :

    gcloud database-migration connection-profiles create postgresql DEST_CONN_ID \
      --region=REGION \
      --alloydb-cluster=DEST_CLUSTER \
      --username=DEST_USER \
      --password=DEST_PASSWORD \
      --role=DESTINATION \
      --no-async

    Remplacez les éléments suivants :

    • DEST_CONN_ID : identifiant du profil de connexion de destination.
    • REGION : région dans laquelle vous souhaitez enregistrer le profil de connexion. Cette région doit être identique à celle de votre cluster de destination.
    • DEST_CLUSTER : ID ou chemin d'accès complet à la ressource de votre cluster AlloyDB pour PostgreSQL de destination.
    • DEST_USER : nom d'utilisateur de l'utilisateur de la migration sur votre base de données de destination.
    • DEST_PASSWORD : mot de passe de l'utilisateur de la migration dans la base de données de destination.
  7. Créez le job de migration.
    Créez le job de migration continu avec la réplication native activée :

    gcloud database-migration migration-jobs create MIGRATION_JOB_ID \
      --region=REGION \
      --type=CONTINUOUS \
      --source=SOURCE_CONN_ID \
      --destination=DEST_CONN_ID \
      --use-postgres-native \
      --postgres-max-additional-subscriptions=10 \
      --databases-filter=DATABASES_LIST \
      --no-async

    Remplacez les éléments suivants :

    • MIGRATION_JOB_ID : identifiant de votre job de migration.
    • REGION : région dans laquelle vous souhaitez enregistrer le job de migration.
    • SOURCE_CONN_ID : identifiant du profil de connexion source.
    • DEST_CONN_ID : identifiant du profil de connexion de destination.
    • DATABASES_LIST : liste des bases de données à migrer, séparées par une virgule.
  8. Démarrez le job de migration.
    Démarrez le job de migration pour lancer le flux de réplication :

    gcloud database-migration migration-jobs start MIGRATION_JOB_ID \
      --region=REGION

    Remplacez les éléments suivants :

    • MIGRATION_JOB_ID : identifiant du job de migration.
    • REGION : région où se trouve le job de migration.

Migrations à démarrage rapide pour les clusters existants

Pour migrer des bases de données vers un cluster AlloyDB pour PostgreSQL existant, procédez comme suit :

Console

  1. Accédez à la page Clusters.

    Accéder aux clusters

  2. Sélectionnez le cluster AlloyDB pour PostgreSQL vers lequel vous souhaitez migrer vos bases de données.
  3. Sur la page d'informations du cluster, cliquez sur Migrer les données.
  4. Dans le panneau Migrer des données, cliquez sur Migrer la base de données.

    Le formulaire de migration de démarrage rapide de Database Migration Service s'ouvre.

  5. Dans la section Configurer la migration, procédez comme suit :
    1. Dans le menu Région de destination, sélectionnez la région de votre cluster AlloyDB pour PostgreSQL de destination.
    2. Dans la zone Préfixe de migration, saisissez une chaîne qui sera ajoutée aux noms de toutes les entités de migration créées pour la migration à démarrage rapide : profils de connexion, configuration de connectivité privée, rattachement de réseau et son sous-réseau, et job de migration.
    3. Dans le menu Type de configuration, sélectionnez l'une des options suivantes :
      1. Configuration de connectivité existante : sélectionnez cette option si vous disposez déjà d'un rattachement de réseau et d'une configuration de connectivité privée qui utilise des interfaces Private Service Connect dans le réseau VPC de la base de données source. Cette option est idéale si vous avez déjà utilisé des migrations de démarrage rapide et que vous souhaitez réutiliser les mêmes ressources réseau.
      2. Nouvelle configuration de connectivité : sélectionnez cette option pour créer un rattachement de réseau, un sous-réseau de rattachement de réseau et une configuration de connectivité privée dans le réseau VPC de la base de données source.
  6. Dans la section Associer une source, procédez comme suit :
    1. Saisissez un nom d'hôte ou l'adresse IP privée de votre base de données source. L'adresse de la base de données source doit être accessible depuis votre réseau VPC source.
    2. Saisissez le port utilisé pour accéder à l'hôte. Le port PostgreSQL par défaut est 5432.
    3. Saisissez le nom d'utilisateur et le mot de passe du compte de migration dédié dans votre base de données source.
    4. Dans le menu Type de chiffrement, sélectionnez l'une des options suivantes :
      • Aucun : si votre base de données source ne nécessite pas de connexions chiffrées SSL/TLS.
      • Obligatoire : si votre base de données source nécessite des connexions chiffrées avec SSL/TLS. Cette option ne nécessite aucune validation de certificat.
    5. Dans le menu Bases de données à migrer, cliquez sur Personnaliser. Utilisez le panneau latéral pour sélectionner uniquement les bases de données que vous souhaitez migrer vers AlloyDB pour PostgreSQL.
  7. Cliquez sur Lancer la migration.

    Database Migration Service crée maintenant le job de migration et lance le processus de migration. Vous pouvez surveiller la progression de la migration, ainsi que l'état de votre cluster de destination dans AlloyDB pour PostgreSQL. Pour en savoir plus, consultez Afficher les informations sur le cluster.

gcloud

Pour utiliser la gcloud CLI afin de migrer vers un cluster AlloyDB existant, procédez comme suit :

  1. Créez la ressource de rattachement de réseau.
    Créez le rattachement de réseau dans le projet et le réseau VPC où se trouve votre base de données source :

    gcloud compute network-attachments create NETWORK_ATTACHMENT \
      --region=REGION \
      --connection-preference=ACCEPT_MANUAL \
      --producer-accept-list=DEST_PROJECT_ID \
      --subnets=default \
      --project=SOURCE_PROJECT_ID

    Remplacez les éléments suivants :

    • NETWORK_ATTACHMENT : nom du rattachement de réseau à créer.
    • REGION : région du rattachement de réseau.
    • DEST_PROJECT_ID : ID du projet de votre projet de destination.
    • SOURCE_PROJECT_ID : ID du projet dans lequel réside le réseau source.
  2. Autorisez le projet locataire Database Migration Service à accéder au rattachement de réseau.
    Récupérez l'ID du projet locataire en exécutant une vérification de la validation, puis mettez à jour la liste d'acceptation des rattachements de réseau pour l'inclure :

    1. Effectuez une vérification de la validation pour récupérer l'ID du projet locataire :

      gcloud database-migration private-connections create PRIVATE_CONN \
        --region=REGION \
        --network-attachment=NETWORK_ATTACHMENT_URI \
        --display-name=PRIVATE_CONN \
        --format="value(metadata.metadata.tenant_project_id)" \
        --validate-only

      Remplacez les éléments suivants :

      • PRIVATE_CONN : nom de la ressource de connexion privée.
      • REGION : région de la connexion privée.
      • NETWORK_ATTACHMENT_URI : URI du rattachement réseau créé à l'étape précédente. Exemple :projects/SOURCE_PROJECT_ID/regions/REGION/networkAttachments/NETWORK_ATTACHMENT
    2. Mettez à jour le rattachement de réseau avec le DMS_TENANT_ID récupéré :

      gcloud compute network-attachments update NETWORK_ATTACHMENT \
        --region=REGION \
        --producer-accept-list=DEST_PROJECT_ID,DMS_TENANT_ID \
        --project=SOURCE_PROJECT_ID

      Remplacez les éléments suivants :

      • NETWORK_ATTACHMENT : nom du rattachement de réseau.
      • REGION : région.
      • DEST_PROJECT_ID : ID du projet de votre projet de destination.
      • DMS_TENANT_ID : ID du projet locataire Database Migration Service récupéré.
      • SOURCE_PROJECT_ID : ID du projet dans lequel réside le réseau source.
  3. Créez la configuration de connectivité privée.
    Créez la connexion privée dans le projet de destination :

    gcloud database-migration private-connections create PRIVATE_CONN \
      --region=REGION \
      --network-attachment=NETWORK_ATTACHMENT_URI \
      --display-name=PRIVATE_CONN

    Remplacez les éléments suivants :

    • PRIVATE_CONN : nom de la ressource de connexion privée.
    • REGION : région de la connexion privée.
    • NETWORK_ATTACHMENT_URI : URI du rattachement réseau.
  4. Créez le profil de connexion source.
    Créez le profil de connexion pour la base de données source PostgreSQL :

    gcloud database-migration connection-profiles create postgresql SOURCE_CONN_ID \
      --region=REGION \
      --role=SOURCE \
      --host=SOURCE_PRIVATE_IP \
      --port=SOURCE_PORT \
      --username=SOURCE_USER \
      --password=SOURCE_PASSWORD \
      --private-connection=PRIVATE_CONN \
      --no-async

    Remplacez les éléments suivants :

    • SOURCE_CONN_ID : identifiant du profil de connexion source.
    • REGION : région dans laquelle vous souhaitez enregistrer le profil de connexion.
    • SOURCE_PRIVATE_IP : adresse IP privée de votre base de données source.
    • SOURCE_PORT : port de votre base de données source (5432 par défaut).
    • SOURCE_USER : nom d'utilisateur de la migration sur votre base de données source.
    • SOURCE_PASSWORD : mot de passe de l'utilisateur de la migration sur votre base de données source.
    • PRIVATE_CONN : nom de la ressource de connexion privée.
  5. Créez le profil de connexion de destination.
    Créez le profil de connexion de destination pointant vers le cluster AlloyDB de destination précréé :

    gcloud database-migration connection-profiles create postgresql DEST_CONN_ID \
      --region=REGION \
      --alloydb-cluster=DEST_CLUSTER \
      --username=DEST_USER \
      --password=DEST_PASSWORD \
      --role=DESTINATION \
      --no-async

    Remplacez les éléments suivants :

    • DEST_CONN_ID : identifiant du profil de connexion de destination.
    • REGION : région dans laquelle vous souhaitez enregistrer le profil de connexion. Cette région doit être identique à celle de votre cluster de destination.
    • DEST_CLUSTER : ID ou chemin d'accès complet à la ressource de votre cluster AlloyDB pour PostgreSQL de destination.
    • DEST_USER : nom d'utilisateur de l'utilisateur de la migration sur votre base de données de destination.
    • DEST_PASSWORD : mot de passe de l'utilisateur de la migration dans la base de données de destination.
  6. Créez le job de migration.
    Créez le job de migration continu avec la réplication native activée :

    gcloud database-migration migration-jobs create MIGRATION_JOB_ID \
      --region=REGION \
      --type=CONTINUOUS \
      --source=SOURCE_CONN_ID \
      --destination=DEST_CONN_ID \
      --use-postgres-native \
      --postgres-max-additional-subscriptions=10 \
      --databases-filter=DATABASES_LIST \
      --no-async

    Remplacez les éléments suivants :

    • MIGRATION_JOB_ID : identifiant de votre job de migration.
    • REGION : région dans laquelle vous souhaitez enregistrer le job de migration.
    • SOURCE_CONN_ID : identifiant du profil de connexion source.
    • DEST_CONN_ID : identifiant du profil de connexion de destination.
    • DATABASES_LIST : liste des bases de données à migrer, séparées par une virgule.
  7. Démarrez le job de migration.
    Démarrez le job de migration pour lancer le flux de réplication :

    gcloud database-migration migration-jobs start MIGRATION_JOB_ID \
      --region=REGION

    Remplacez les éléments suivants :

    • MIGRATION_JOB_ID : identifiant du job de migration.
    • REGION : région où se trouve le job de migration.

Finaliser la migration

Lorsque vous décidez de migrer votre application vers la nouvelle instance AlloyDB pour PostgreSQL, finalisez la migration en procédant comme suit :

  1. Arrêtez toutes les opérations d'écriture dans votre base de données source. Vous pouvez les passer en mode lecture seule pour conserver leur fonctionnalité opérationnelle.
  2. Promouvoir le job de migration.
  3. Facultatif : vérifiez que les données de migration sont complètes.

Étapes suivantes