Lorsque vous créez votre cluster AlloyDB pour PostgreSQL de destination avec Database Migration Service, ce cluster est provisionné en tant que cluster AlloyDB pour PostgreSQL avec une instance principale. L'exécution de certaines opérations pendant le processus de migration peut entraîner des erreurs de migration. Lorsque vous migrez vers un nouveau cluster de destination, tenez compte des points suivants :
- Évitez les opérations d'écriture sur les données en cours de migration : n'effectuez pas d'opérations d'écriture (telles que
INSERT,UPDATE,DELETEou des modifications de schéma LDD) dans le cluster de destination sur les tables ou les bases de données incluses dans la migration. Ces opérations peuvent entraîner des conflits de réplication avec les données provenant de la source. - Gérer les utilisateurs de la base de données : vous pouvez créer et gérer des utilisateurs de la base de données à tout moment à l'aide de commandes
psqlstandards ou via AlloyDB pour PostgreSQL dans la console Google Cloud . Pour en savoir plus, consultez Gérer les utilisateurs de base de données dans la documentation AlloyDB pour PostgreSQL.
Pour en savoir plus, consultez Limites connues.
La création d'un job de migration comprend les étapes suivantes :
- Définir les paramètres du job de migration.
- Spécifier des informations sur le profil de connexion que vous avez créé pour votre base de données source (profil de connexion source).
- Définir les paramètres du cluster AlloyDB pour PostgreSQL de destination et créer le cluster.
- Configurer la connectivité entre les environnements de base de données source et de destination.
- Tester le job de migration pour vous assurer que les informations de connexion fournies pour le job sont valides.
Pour créer un job de migration vers un nouveau cluster de destination, procédez comme suit :
Console
Définir les paramètres du job de migration
- Dans la console Google Cloud , accédez à la page Jobs de migration.
- Cliquez sur Créer un job de migration.
La page de l'assistant de configuration du job de migration s'ouvre. Cet assistant contient plusieurs panneaux qui vous guident à travers chaque étape de configuration.
Vous pouvez suspendre la création d'un job de migration à tout moment en cliquant sur Enregistrer et quitter. Toutes les données que vous saisissez jusqu'à ce point sont enregistrées dans un job de migration brouillon. Vous pouvez terminer votre brouillon de job de migration plus tard.
- Sur la page Premiers pas, saisissez les informations suivantes :
- Nom de la tâche de migration
Il s'agit d'un nom lisible par l'humain pour votre job de migration. Cette valeur s'affiche dans la console Google Cloud .
- ID du job de migration
Il s'agit d'un identifiant lisible par machine pour votre job de migration. Vous utilisez cette valeur pour travailler avec des jobs de migration à l'aide des commandes de la Google Cloud CLI ou de l'API Database Migration Service.
- Dans la liste Moteur de base de données source, sélectionnez PostgreSQL.
- Dans la liste Moteur de base de données de destination, sélectionnez AlloyDB pour PostgreSQL.
- Sélectionnez la région dans laquelle vous enregistrez le job de migration.
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) doivent être enregistrées dans une seule région. Sélectionnez la région en fonction de l'emplacement des services qui ont besoin de vos données, tels que les instances Compute Engine, les applications App Engine ou d'autres services. Une fois que vous avez choisi la région de destination, vous ne pouvez plus modifier cette sélection.
- Spécifiez le type de mission de migration : Continu (instantané et modifications en cours). Les migrations homogènes AlloyDB pour PostgreSQL ne sont compatibles qu'avec les migrations continues.
- Examinez les conditions préalables générées pour votre environnement. Assurez-vous que votre base de données source est configurée correctement. Pour en savoir plus, consultez Configurer la base de données source.
- Nom de la tâche de migration
- Cliquez sur Enregistrer et continuer.
Spécifier des informations sur le profil de connexion source
Sur la page Définir une source, procédez comme suit :
- Dans le menu déroulant Profil de connexion source, sélectionnez le profil de connexion de votre base de données source (ou cliquez sur Créer un profil de connexion ; consultez Créer un profil de connexion source).
- Dans la section Personnaliser les configurations de parallélisme, cliquez sur Afficher les configurations de parallélisme.
Lors du vidage complet initial, l'extension
pglogicalréplique les données au niveau de la table et ne divise pas une table non partitionnée, une partition feuille ou une table sans clé primaire entre plusieurs abonnements. Cela signifie que le parallélisme amélioré du vidage de données ne peut pas augmenter la vitesse de vidage initiale pour une seule grande table non partitionnée, car cette table est copiée dans un seul abonnement. Pour en savoir plus, consultez Remarques sur le parallélisme des vidages de données.La vitesse du parallélisme du vidage des données est liée à la quantité de charge induite sur votre base de données source :
- Optimal (recommandé) : performances équilibrées avec une charge optimale sur la base de données source. Database Migration Service crée jusqu'à deux abonnements par base de données (jusqu'à deux au total pour toutes les bases de données, avec au moins un abonnement par base de données migrée).
- Maximum : fournit les vitesses de vidage les plus élevées, mais peut entraîner une charge accrue sur la base de données source. Database Migration Service crée jusqu'à quatre abonnements par base de données (jusqu'à quatre au total pour toutes les bases de données, avec au moins un abonnement par base de données migrée).
- Minimum : utilise la plus faible quantité de ressources de calcul sur la base de données source, mais peut avoir un débit de vidage plus lent. Database Migration Service crée un abonnement par base de données.
Si vous choisissez des paramètres de parallélisme de vidage des données ajustés, veillez à augmenter les paramètres
max_replication_slots,max_wal_sendersetmax_worker_processessur votre base de données source. - Cliquez sur Enregistrer et continuer.
Configurer et créer le cluster AlloyDB pour PostgreSQL de destination
Vous allez maintenant créer un cluster AlloyDB pour PostgreSQL de destination pour votre job de migration. Les clusters sont les ressources de premier niveau dans AlloyDB pour PostgreSQL. Ils contiennent une seule instance principale pour l'accès en lecture et en écriture à la base de données que vous créez pendant le processus de migration.
- Sur la page Définir une destination, sélectionnez Nouveau cluster dans le menu déroulant Type d'instance de destination.
- Choisissez un type de cluster. Database Migration Service est compatible avec les clusters AlloyDB pour PostgreSQL hautement disponibles, qui peuvent diffuser des données à partir de plusieurs zones d'une région, sans pool de lecture lors du provisionnement initial.
- Cliquez sur Continuer.
- Configurez votre cluster :
- Dans le champ ID du cluster, saisissez un identifiant pour le cluster AlloyDB pour PostgreSQL ou utilisez l'identifiant généré automatiquement.
N'incluez pas d'informations sensibles ou permettant d'identifier personnellement l'utilisateur dans l'identifiant. Vous n'avez pas besoin d'indiquer l'ID du projet dans le nom du cluster. Cet ajout s'effectue automatiquement le cas échéant.
- Dans le champ Mot de passe, indiquez un mot de passe alphanumérique pour le cluster AlloyDB pour PostgreSQL de destination. Il s'agit du mot de passe du compte administrateur
postgresdans le cluster.Vous pouvez saisir le mot de passe manuellement ou cliquer sur Générer pour que Database Migration Service en crée un automatiquement.
- Dans le menu déroulant Version de la base de données, sélectionnez la version de la base de données pour le cluster de destination.
En savoir plus sur la compatibilité de la migration entre les versions
- Dans le champ Réseau :
- Sélectionnez un chemin réseau pour définir les ressources disponibles lorsque vous configurez la connectivité de la migration. Les clusters sont configurés avec un chemin de réseau IP privé. Si vous prévoyez de vous connecter à la base de données source via l'appairage de VPC, sélectionnez le VPC où elle se trouve.
- Si votre réseau n'est pas configuré pour l'accès aux services privés, cliquez sur Configurer la connexion et suivez l'assistant de configuration de la connexion.
- Si aucun réseau de service géré n'a été configuré pour le VPC sélectionné, vous pouvez choisir de sélectionner une plage d'adresses IP et de cliquer sur Connecter, ou d'utiliser une plage d'adresses IP sélectionnée automatiquement et de cliquer sur Allouer et connecter.
(Facultatif) Configurez les options de chiffrement des données pour votre cluster de destination.
Développez cette section pour afficher les étapes facultatives.
Cliquez sur Afficher les options avancées pour indiquer si vous souhaitez gérer le chiffrement des données migrées de la source vers la destination. Par défaut, vos données sont chiffrées à l'aide d'une clé gérée par Google Cloud.
Si vous souhaitez gérer votre chiffrement, vous pouvez utiliser une clé de chiffrement gérée par le client (CMEK). La clé doit se trouver au même emplacement que votre cluster AlloyDB pour PostgreSQL. Par exemple, les clusters situés dans us-west1 ne peuvent utiliser que des clés situées dans us-west1.
- Sélectionnez la case d'option Utiliser une clé de chiffrement gérée par le client (CMEK).
- Dans le menu Sélectionner une clé gérée par le client, sélectionnez votre CMEK.
Si vous ne voyez pas votre clé, cliquez sur Saisir le nom de ressource de la clé pour indiquer le nom de ressource de la clé que vous souhaitez utiliser. Par exemple, saisissez
projects/my-project-name/locations/my-location/keyRings/my-keyring/cryptoKeys/my-keydans le champ Nom de la ressource de clé, puis cliquez sur Enregistrer.- Cliquez sur Continuer.
- Dans le champ ID du cluster, saisissez un identifiant pour le cluster AlloyDB pour PostgreSQL ou utilisez l'identifiant généré automatiquement.
- Configurez votre instance principale. Une instance principale détermine la capacité de calcul d'un cluster et accepte les opérations de lecture/d'écriture :
- Dans le champ ID de l'instance, saisissez un ID pour votre instance principale.
- Sélectionnez un type de machine pour l'instance principale.
- Si vous prévoyez d'utiliser la méthode de connectivité Liste d'adresses IP autorisées, cochez la case Activer l'adresse IP publique sortante.
(Facultatif) Configurez des indicateurs de base de données pour votre instance principale.
Développez cette section pour afficher les étapes facultatives.
Cliquez sur Afficher les options avancées pour définir des indicateurs de base de données pour votre instance principale. Pour en savoir plus sur les indicateurs compatibles, consultez Configurer des indicateurs de base de données dans la documentation AlloyDB pour PostgreSQL. Pour chaque option :
- Cliquez sur Ajouter un flag.
- Sélectionnez un indicateur dans la liste Nouvel indicateur de base de données.
- Indiquez une valeur pour l'option.
- Cliquez sur OK.
- Cliquez sur Enregistrer et continuer, puis confirmez votre choix en cliquant sur Créer une destination et continuer. Database Migration Service crée votre cluster AlloyDB pour PostgreSQL de destination et son instance principale. Ce processus peut prendre plusieurs minutes.
Configurer la connectivité entre l'instance de base de données source et le cluster de destination
Dans le menu déroulant Méthode de connectivité, sélectionnez une méthode de connectivité réseau. Cette méthode définit la manière dont le cluster AlloyDB pour PostgreSQL de destination se connecte à la base de données source. Les méthodes actuelles de connectivité réseau pour migrer vers un nouveau cluster incluent les suivantes : liste d'autorisation d'adresses IP, appairage de VPC, tunnel SSH inversé et proxy TCP via une VM hébergée dans le cloud.
| Si vous souhaitez utiliser… | Alors… |
|---|---|
| La méthode de connectivité réseau par liste d'autorisation d'adresses IP | Copiez les deux adresses IP publiques sortantes de l'instance principale de votre cluster de destination et utilisez-les pour configurer le pare-feu réseau de votre serveur de base de données source et dans le fichier pg_hba.conf. |
| La méthode de connectivité réseau par tunnel SSH inversé | Sélectionnez l'instance de VM Compute Engine qui hébergera le tunnel.
Après avoir spécifié l'instance, Google fournit un script qui effectue les étapes de configuration du tunnel entre les bases de données source et de destination. Exécutez le script dans Google Cloud CLI à partir d'une machine connectée à la base de données source et à Google Cloud. |
| La méthode de connectivité réseau par appairage de VPC | Sélectionnez le réseau VPC qui héberge la base de données source. Le cluster de destination se connecte à ce réseau à l'aide de l'accès aux services privés. |
| La méthode de connectivité par proxy TCP via une VM hébergée dans le cloud | Saisissez les informations requises pour la nouvelle instance de VM Compute Engine qui hébergera le proxy TCP.
Une fois les détails spécifiés, la console Google Cloud fournit un script qui configure le proxy entre les bases de données source et de destination. Exécutez le script sur une machine disposant d'une version à jour de la Google Cloud CLI. Après avoir exécuté le script, saisissez l'adresse IP privée de la VM que vous venez de créer, puis cliquez sur Configurer et continuer. |
Après avoir sélectionné et configuré la connectivité réseau, cliquez sur Configurer et continuer.
Configurer des bases de données de migration
Vous pouvez migrer toutes les bases de données de votre instance source ou n'en choisir que certaines.
- Dans la liste Bases de données à migrer, sélectionnez l'une des options suivantes :
- Toutes les bases de données : sélectionne toutes les bases de données existantes sur la source.
- Bases de données spécifiques : permet de sélectionner des bases de données spécifiques parmi toutes les bases de données existantes sur la source.
Si vous souhaitez migrer des bases de données spécifiques, filtrez la liste qui s'affiche et sélectionnez les bases de données que vous souhaitez que Database Migration Service migre vers votre destination.
Si la liste ne s'affiche pas et qu'une erreur de découverte de base de données s'affiche, cliquez sur Actualiser. Si la découverte de la base de données échoue, le job migre toutes les bases de données. Vous pouvez continuer à créer un job de migration et corriger les erreurs de connectivité plus tard.
- Cliquez sur Enregistrer et continuer.
Tester, créer et exécuter le job de migration
Lors de cette dernière étape, examinez le récapitulatif des paramètres du job de migration, de la source, de la destination et de la méthode de connectivité, puis testez la validité de la configuration du job de migration. Si vous rencontrez des problèmes, vous pouvez modifier les paramètres du job de migration.
-
Sur la page Tester et créer le job de migration, cliquez sur Tester le job.
Si le test échoue, résolvez le problème dans la partie appropriée du flux, puis revenez au test. Pour savoir comment résoudre les problèmes liés à l'échec d'un test de job de migration, consultez Diagnostiquer les problèmes pour AlloyDB pour PostgreSQL.
-
Une fois le test du job de migration terminé, cliquez sur Créer et démarrer le job pour créer le job de migration et le démarrer immédiatement, ou sur Créer le job pour créer le job de migration sans le démarrer immédiatement.
Si le job n'est pas démarré au moment de sa création, vous pouvez le démarrer depuis la page Jobs de migration en cliquant sur Démarrer. Quelle que soit la date de début du job de migration, votre organisation est facturée pour l'existence du cluster de destination.
Lorsque vous démarrez le job de migration, Database Migration Service lance le vidage complet initial et la réplication continue. Pour en savoir plus, consultez Limites connues.
- Passez à l'étape Examiner le job de migration.
Google Cloud CLI
Créez le profil de connexion de destination.
Lorsque vous migrez vers un nouveau cluster de destination avec la Google Cloud CLI, vous créez le cluster de destination et le profil de connexion en une seule action.
Exécutez la commande suivante (cliquez sur le lien pour développer) :gcloud database-migration connection-profiles create alloydbCet exemple utilise l'option facultative
--no-asyncpour que toutes les opérations soient effectuées de manière synchrone. Cela signifie que l'exécution de certaines commandes peut prendre un certain temps. Vous pouvez ignorer l'option--no-asyncpour exécuter des commandes de manière asynchrone. Si vous le faites, vous devez utiliser la commandegcloud database-migration operations describepour vérifier si l'opération a réussi.Avant d'utiliser les données de la commande ci-dessous, effectuez les remplacements suivants :
- DEST_CONN_ID par l'identifiant du profil de connexion de destination.
- REGION par la région dans laquelle vous souhaitez enregistrer le profil de connexion et créer le cluster de destination.
- DEST_PASSWORD par le mot de passe initial de l'utilisateur
postgressur votre cluster AlloyDB pour PostgreSQL de destination. - PRIMARY_ID par l'ID de l'instance principale de votre cluster AlloyDB pour PostgreSQL de destination.
- CPU_COUNT par le nombre de processeurs virtuels de l'instance principale (par exemple,
2,4,8). - VPC_NETWORK par le nom ou l'URI de ressource complet du réseau de cloud privé virtuel configuré pour l'accès aux services privés.
- (Facultatif) Pour configurer des paramètres supplémentaires pour votre nouveau cluster de destination AlloyDB pour PostgreSQL et votre instance principale, vous pouvez transmettre les options suivantes :
--enable-outbound-public-ip: activez l'adresse IP publique sortante sur l'instance principale (obligatoire si vous utilisez la connectivité par liste d'autorisation IP).--kms-key,--kms-keyringet--kms-project: chiffrez le cluster de destination avec une clé de chiffrement gérée par le client (CMEK).--database-version: spécifiez la version majeure de PostgreSQL pour le cluster de destination (par exemple,POSTGRES_15).--database-flags: spécifiez une liste d'indicateurs de base de données (KEY=VALUE) séparés par une virgule pour l'instance principale de destination.
Exécutez la commande suivante :
Linux, macOS ou Cloud Shell
gcloud database-migration connection-profiles create alloydb DEST_CONN_ID \ --region=REGION \ --password=DEST_PASSWORD \ --primary-id=PRIMARY_ID \ --cpu-count=CPU_COUNT \ --network=VPC_NETWORK \ --no-async
Windows (PowerShell)
gcloud database-migration connection-profiles create alloydb DEST_CONN_ID ` --region=REGION ` --password=DEST_PASSWORD ` --primary-id=PRIMARY_ID ` --cpu-count=CPU_COUNT ` --network=VPC_NETWORK ` --no-async
Windows (cmd.exe)
gcloud database-migration connection-profiles create alloydb DEST_CONN_ID ^ --region=REGION ^ --password=DEST_PASSWORD ^ --primary-id=PRIMARY_ID ^ --cpu-count=CPU_COUNT ^ --network=VPC_NETWORK ^ --no-async
Vous devriez obtenir un résultat semblable à celui-ci :
Waiting for connection profile [DEST_CONN_ID] to be created with [OPERATION_ID] Waiting for operation [OPERATION_ID] to complete...done. Created connection profile DEST_CONN_ID [OPERATION_ID]
Créez le job de migration.
Si vous utilisez une liste d'autorisation d'adresses IP, l'appairage de VPC ou la connectivité par tunnel SSH inversé, veillez à ajouter les options requises, telles que--static-ip,--peer-vpcou--vm,--vm-ip,--vm-portet--vpc. Pour en savoir plus, consultez Configurer la connectivité et Exemples Google Cloud CLI.
Exécutez la commande suivante (cliquez sur le lien pour la développer) :gcloud database-migration migration-jobs createCet exemple utilise l'option facultative
--no-asyncpour que toutes les opérations soient effectuées de manière synchrone. Cela signifie que l'exécution de certaines commandes peut prendre un certain temps. Vous pouvez ignorer l'option--no-asyncpour exécuter des commandes de manière asynchrone. Si vous le faites, vous devez utiliser la commandegcloud database-migration operations describepour vérifier si l'opération a réussi.Avant d'utiliser les données de la commande ci-dessous, effectuez les remplacements suivants :
- MIGRATION_JOB_ID par un identifiant lisible par machine pour votre job de migration. Vous utilisez cette valeur pour travailler avec des jobs de migration à l'aide des commandes de la Google Cloud CLI ou de l'API Database Migration Service.
- REGION par l'identifiant de la région dans laquelle vous souhaitez enregistrer le job de migration.
- MIGRATION_JOB_NAME par un nom lisible par l'humain pour votre job de migration. Cette valeur s'affiche dans Database Migration Service dans la console Google Cloud .
- SOURCE_CONNECTION_PROFILE_ID par un identifiant lisible par machine du profil de connexion source. Pour en savoir plus, consultez Créer un profil de connexion source.
- DESTINATION_CONNECTION_PROFILE_ID par un identifiant lisible par machine du profil de connexion de destination.
Facultatif : Par défaut, Database Migration Service migre toutes les bases de données de votre source. Si vous ne souhaitez migrer que des bases de données spécifiques, utilisez l'option
--databases-filteret spécifiez leurs identifiants sous la forme d'une liste d'éléments séparés par une virgule.Par exemple :
--databases-filter=my-business-database,my-other-databaseVous pourrez modifier ultérieurement les jobs de migration que vous avez créés avec l'option
--databases-filterà l'aide de la commandegcloud database-migration migration-jobs update.
Exécutez la commande suivante :
Linux, macOS ou Cloud Shell
gcloud database-migration migration-jobs \ create MIGRATION_JOB_ID \ --no-async \ --region=REGION \ --display-name=MIGRATION_JOB_NAME \ --source=SOURCE_CONNECTION_PROFILE_ID \ --destination=DESTINATION_CONNECTION_PROFILE_ID \ --type=CONTINUOUS
Windows (PowerShell)
gcloud database-migration migration-jobs ` create MIGRATION_JOB_ID ` --no-async ` --region=REGION ` --display-name=MIGRATION_JOB_NAME ` --source=SOURCE_CONNECTION_PROFILE_ID ` --destination=DESTINATION_CONNECTION_PROFILE_ID ` --type=CONTINUOUS
Windows (cmd.exe)
gcloud database-migration migration-jobs ^ create MIGRATION_JOB_ID ^ --no-async ^ --region=REGION ^ --display-name=MIGRATION_JOB_NAME ^ --source=SOURCE_CONNECTION_PROFILE_ID ^ --destination=DESTINATION_CONNECTION_PROFILE_ID ^ --type=CONTINUOUS
Vous devriez obtenir un résultat semblable à celui-ci :
Waiting for migration job [MIGRATION_JOB_ID] to be created with [OPERATION_ID] Waiting for operation [OPERATION_ID] to complete...done. Created migration job MIGRATION_JOB_ID [OPERATION_ID]