Cette page explique comment effectuer des migrations à démarrage rapide pour les migrations PostgreSQL homogènes vers Cloud SQL 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 (attachements 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 une instance Cloud SQL existante ou d'en créer une lors de la configuration de 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 instance 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é de source homogène (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 de démarrage rapide.
Pour en savoir plus sur les migrations à démarrage rapide, consultez Présentation des migrations à démarrage rapide dans la documentation principale de Database Migration Service.
Avant de commencer
- Vérifiez si les migrations rapides peuvent prendre en charge entièrement votre scénario. Consultez les Limites de la migration à démarrage rapide.
-
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 theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
- Activez les API Database Migration Service, Compute Engine, Network Connectivity Center et Cloud SQL Admin.
Rôles requis
Pour obtenir les autorisations nécessaires pour exécuter des migrations de démarrage rapide vers Cloud SQL avec Database Migration Service, demandez à votre administrateur d'attribuer les rôles Identity and Access Management (IAM) 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 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 :
Rôle 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éé 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_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 :
-
Administrateur de migration de bases de données (
roles/datamigration.admin) -
Administrateur Cloud SQL (
roles/cloudsql.admin)
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.*cloudsql.instances.createcloudsql.instances.deletecloudsql.instances.getcloudsql.instances.listcloudsql.instances.updatecloudsql.instances.connectcloudsql.instances.executeSqlcloudsql.instances.exportcloudsql.instances.importcloudsql.instances.logincloudsql.operations.getcloudsql.users.getcloudsql.users.listcloudsql.users.createcloudsql.users.updatecloudsql.users.delete
Configurer votre base de données source
Pour configurer votre base de données PostgreSQL source, procédez comme suit :
- Créez un compte utilisateur dédié à la migration dans votre instance.
- Pour les sources Cloud SQL pour PostgreSQL, consultez Créer un utilisateur dans la documentation Cloud SQL.
- Pour d'autres sources, consultez la documentation de votre fournisseur de base de données ou créez et gérez des utilisateurs dans la documentation PostgreSQL.
- 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.
- 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
SUPERUSERau 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.
- Pour les sources autres que Cloud SQL pour PostgreSQL uniquement : attribuez le rôle PostgreSQL
- Pour les tables sans clé primaire : Database Migration Service ne réplique pas les opérations
UPDATEniDELETEpour 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 avecREPLICA 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.
- 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.
- Définissez le paramètre
wal_levelsurlogical. Exécutez la commande suivante :ALTER SYSTEM SET wal_level = 'logical';
- Définissez le paramètre
wal_sender_timeoutsur0. 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;
- 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, plus le nombre d'emplacements de réplication que vous utilisez déjà.Pour définir ce paramètre, exécutez la commande suivante :
Où NUMBER_OF_SLOTS représente le nombre maximal d'emplacements de réplication.ALTER SYSTEM SET max_replication_slots = NUMBER_OF_SLOTS;
- Configurez le paramètre
max_wal_senderssur une valeur au moins égale à celle demax_replication_slots, en plus du nombre d'expéditeurs déjà utilisés sur votre instance.Par exemple, si le paramètre
max_replication_slotsest défini sur10et que vous utilisez déjà deux expéditeurs, le nombre de processus d'envoi WAL exécutés en même temps est de10 + 2 = 12.Pour définir ce paramètre, exécutez la commande suivante :
Où NUMBER_OF_SENDERS représente le nombre de processus d'envoi WAL exécutés simultanément.ALTER SYSTEM SET max_wal_senders = NUMBER_OF_SENDERS;
- Définissez
max_worker_processessur une valeur au moins égale à la somme du nombre de bases de données que vous souhaitez migrer et du nombre demax_worker_processesdéjà utilisés sur votre instance. Pour définir ce paramètre, exécutez la commande suivante : Où NUMBER_OF_PROCESSES représente le nombre de bases de données qui seront migrées.ALTER SYSTEM SET max_worker_processes = NUMBER_OF_PROCESSES;
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.
- Définissez le flag
cloudsql.logical_decodingsuron. - Définissez le paramètre
wal_sender_timeoutsur0. Cette valeur désactive le mécanisme de délai avant expiration utilisé pour interrompre les connexions de réplication inactives. - 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, plus le nombre d'emplacements de réplication que vous utilisez déjà. - Configurez le paramètre
max_wal_senderssur une valeur au moins égale à celle demax_replication_slots, plus le nombre d'expéditeurs déjà utilisés sur votre instance.Par exemple, si le paramètre
max_replication_slotsest défini sur10et que vous utilisez déjà deux expéditeurs, le nombre de processus d'envoi WAL exécutés en même temps est de10 + 2 = 12. - Définissez
max_worker_processessur un nombre au moins égal à la somme du nombre de bases de données que vous souhaitez migrer et du nombre demax_worker_processesdéjà utilisés sur votre instance.
- Définissez le paramètre
Créer et exécuter une migration automatisée
Console
Pour créer et exécuter une migration de démarrage rapide à l'aide de la console Google Cloud , procédez comme suit :
- Dans la console Google Cloud , accédez à la page Premiers pas.
- Dans le menu Moteur source, sélectionnez PostgreSQL.
- Dans le menu Moteur de destination, sélectionnez Cloud SQL pour PostgreSQL.
La section Découvrez la migration PostgreSQL à démarrage rapide s'affiche.
- Dans la section Découvrez la migration PostgreSQL à démarrage rapide, cliquez sur Lancer la migration.
La page Migrer vers Cloud SQL pour PostgreSQL s'ouvre.
- Dans la section Configurer la migration, procédez comme suit :
- Dans le menu Région de destination, sélectionnez la région de votre instance Cloud SQL de destination.
- Dans la zone Préfixe de migration, saisissez une chaîne conviviale 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.
- Dans le menu Type de configuration, sélectionnez l'une des options suivantes :
- 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.
- Nouvelle configuration de connectivité : sélectionnez cette option pour créer un rattachement de réseau et le sous-réseau de rattachement de 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 instance de destination.
- Cliquez sur Continuer.
- Dans la section Associer une source, procédez comme suit :
- 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.
- Saisissez le port utilisé pour accéder à l'hôte. Le port PostgreSQL par défaut est
5432. - Saisissez le nom d'utilisateur et le mot de passe du compte de migration dédié dans votre base de données source.
- 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.
- 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 Cloud SQL.
- Cliquez sur Continuer.
- Dans la section Configurer la destination, vous pouvez créer une instance de destination ou en sélectionner une existante.
Nouvelles instances
Pour créer une instance de destination, procédez comme suit :
- Dans le menu Type d'instance de destination, sélectionnez Nouvelle instance.
Database Migration Service utilise la configuration Cloud SQL par défaut pour une nouvelle instance. Cliquez sur Personnaliser pour ajuster les fonctionnalités de l'instance, telles que le type de machine, la disponibilité zonale ou les paramètres de protection des données. Pour en savoir plus sur la configuration des instances, consultez Créer des instances dans la documentation Cloud SQL.
- Dans le champ Mot de passe, entrez le mot de passe de l'utilisateur administrateur
postgresqlpar défaut. Database Migration Service se connecte en tant que cet utilisateur pour migrer vos données.
Instances existantes
Vous pouvez migrer des bases de données vers une instance existante. Assurez-vous que l'instance de destination est activée pour Private Service Connect et qu'elle n'impose pas de connexions mTLS. Procédez comme suit :
- Dans le menu Type d'instance de destination, sélectionnez Instance existante.
- Dans le menu ID d'instance existant, sélectionnez l'identifiant de l'instance.
- Dans le menu Type d'instance de destination, sélectionnez Nouvelle instance.
- 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 dans les détails du job de migration Database Migration Service. Pour en savoir plus, consultez Gérer les jobs de migration.
gcloud
Pour créer et exécuter une migration de démarrage rapide à l'aide de gcloud CLI, procédez comme suit :
-
Configurez le rattachement de réseau.
Décidez si vous souhaitez créer un rattachement de réseau ou en réutiliser un existant. Vous devez disposer d'un rattachement de réseau dans le réseau où l'adresse IP privée de votre base de données source est accessible.- Pour créer un rattachement de réseau, exécutez la commande suivante (cliquez pour afficher tous les détails).
gcloud compute network-attachments createAvant d'utiliser les données de la commande ci-dessous, effectuez les remplacements suivants :
- NETWORK_ATTACHMENT par le nom du rattachement de réseau à créer.
- REGION avec la région pour le rattachement de réseau.
- DEST_PROJECT_ID par l'ID du projet de votre projet de destination.
- SOURCE_PROJECT_ID par l'ID du projet dans lequel réside le réseau source.
Exécutez la commande suivante :
Linux, macOS ou Cloud Shell
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
Windows (PowerShell)
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
Windows (cmd.exe)
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
- Si vous souhaitez réutiliser un rattachement de réseau existant, passez à l'étape suivante.
- Pour créer un rattachement de réseau, exécutez la commande suivante (cliquez pour afficher tous les détails).
-
Autorisez le projet locataire Database Migration Service à accéder à votre rattachement de réseau.
Votre rattachement de réseau doit autoriser les connexions depuis le projet locataire Database Migration Service. Procédez comme suit :- Récupérez l'ID du projet locataire Database Migration Service en effectuant une création de connexion privée en mode simulation (cliquez pour développer) :
gcloud database-migration private-connections create --validate-onlyAvant d'utiliser les données de la commande ci-dessous, effectuez les remplacements suivants :
- PRIVATE_CONN par le nom de la ressource de connexion privée.
- REGION par la région de la connexion privée.
- NETWORK_ATTACHMENT_URI avec l'URI du rattachement de réseau.
Exécutez la commande suivante :
Linux, macOS ou Cloud Shell
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
Windows (PowerShell)
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
Windows (cmd.exe)
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
Enregistrez l'ID du projet locataire renvoyé pour l'utiliser avec les commandes suivantes.
- Autorisez le projet locataire Database Migration Service et le projet de destination à se connecter au rattachement de réseau (cliquez pour développer) :
gcloud compute network-attachments updateAvant d'utiliser les données de la commande ci-dessous, effectuez les remplacements suivants :
- NETWORK_ATTACHMENT par le nom du rattachement de réseau.
- REGION par la région.
- DEST_PROJECT_ID par l'ID du projet de votre projet de destination.
- DMS_TENANT_ID par l'ID du projet locataire Database Migration Service récupéré.
- SOURCE_PROJECT_ID par l'ID du projet dans lequel réside le réseau source.
Exécutez la commande suivante :
Linux, macOS ou Cloud Shell
gcloud compute network-attachments update NETWORK_ATTACHMENT \ --region=REGION \ --producer-accept-list=DEST_PROJECT_ID,DMS_TENANT_ID \ --project=SOURCE_PROJECT_ID
Windows (PowerShell)
gcloud compute network-attachments update NETWORK_ATTACHMENT ` --region=REGION ` --producer-accept-list=DEST_PROJECT_ID,DMS_TENANT_ID ` --project=SOURCE_PROJECT_ID
Windows (cmd.exe)
gcloud compute network-attachments update NETWORK_ATTACHMENT ^ --region=REGION ^ --producer-accept-list=DEST_PROJECT_ID,DMS_TENANT_ID ^ --project=SOURCE_PROJECT_ID
- Récupérez l'ID du projet locataire Database Migration Service en effectuant une création de connexion privée en mode simulation (cliquez pour développer) :
-
Créez la ressource de connectivité privée Database Migration Service.
Exécutez la commande suivante (cliquez pour développer) :gcloud database-migration private-connections createAvant d'utiliser les données de la commande ci-dessous, effectuez les remplacements suivants :
- PRIVATE_CONN par le nom de la ressource de connexion privée.
- REGION par la région de la connexion privée.
- NETWORK_ATTACHMENT_URI avec l'URI du rattachement de réseau.
Exécutez la commande suivante :
Linux, macOS ou Cloud Shell
gcloud database-migration private-connections create PRIVATE_CONN \ --region=REGION \ --network-attachment=NETWORK_ATTACHMENT_URI \ --display-name=PRIVATE_CONN
Windows (PowerShell)
gcloud database-migration private-connections create PRIVATE_CONN ` --region=REGION ` --network-attachment=NETWORK_ATTACHMENT_URI ` --display-name=PRIVATE_CONN
Windows (cmd.exe)
gcloud database-migration private-connections create PRIVATE_CONN ^ --region=REGION ^ --network-attachment=NETWORK_ATTACHMENT_URI ^ --display-name=PRIVATE_CONN
-
Créez le profil de connexion source.
Exécutez la commande suivante (cliquez pour développer) :gcloud database-migration connection-profiles create postgresqlCet 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 le flag--no-asyncpour exécuter les commandes de manière asynchrone. Si c'est le cas, vous devez utiliser la commandegcloud database-migration operations describepour vérifier si votre opération a réussi.Avant d'utiliser les données de la commande ci-dessous, effectuez les remplacements suivants :
- SOURCE_CONN_ID par l'identifiant de votre profil de connexion source.
- Remplacez REGION par la région dans laquelle vous souhaitez enregistrer le profil de connexion.
- SOURCE_PRIVATE_IP par l'adresse IP privée de votre base de données source.
- SOURCE_PORT avec le port de votre base de données source (5432 par défaut).
- SOURCE_USER par le nom d'utilisateur de migration sur votre base de données source.
- SOURCE_PASSWORD par le mot de passe de l'utilisateur de migration sur votre base de données source.
- PRIVATE_CONN par le nom de la ressource de connexion privée.
Exécutez la commande suivante :
Linux, macOS ou Cloud Shell
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
Windows (PowerShell)
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
Windows (cmd.exe)
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
-
Créez le profil de connexion de destination.
Sélectionnez l'onglet correspondant à votre choix : migrer vers une nouvelle instance Cloud SQL ou vers une instance existante :Nouvelles instances
Pour utiliser une nouvelle instance de destination pour la migration de démarrage rapide, commencez par créer l'instance avec la Google Cloud CLI Cloud SQL, puis créez le profil de connexion de destination. Procédez comme suit :
-
Créer une instance avec la Google Cloud CLI Cloud SQL.
Assurez-vous d'utiliser l'indicateur
--enable-private-service-connectpour activer Private Service Connect sur votre instance de destination. Les migrations à démarrage rapide ne sont compatibles qu'avec les instances pour lesquelles Private Service Connect est activé. - Créez le profil de connexion de destination pour votre nouvelle instance.
Développez la section suivante pour obtenir tous les détails de la commande.
gcloud database-migration connection-profiles create postgresqlCet 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 le flag--no-asyncpour exécuter les commandes de manière asynchrone. Si c'est le cas, vous devez utiliser la commandegcloud database-migration operations describepour vérifier si votre 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.
- Remplacez REGION par la région dans laquelle vous souhaitez enregistrer le profil de connexion. Cette région doit être identique à celle de votre instance de destination.
- DEST_INSTANCE par l'ID de l'instance Cloud SQL de destination que vous avez créée.
- DEST_USER par le nom d'utilisateur de migration sur votre base de données de destination.
- DEST_PASSWORD par le mot de passe de l'utilisateur de migration dans la base de données de destination.
Exécutez la commande suivante :
Linux, macOS ou Cloud Shell
gcloud database-migration connection-profiles create postgresql DEST_CONN_ID \ --region=REGION \ --cloudsql-instance=DEST_INSTANCE \ --username=DEST_USER \ --password=DEST_PASSWORD \ --role=DESTINATION \ --no-async
Windows (PowerShell)
gcloud database-migration connection-profiles create postgresql DEST_CONN_ID ` --region=REGION ` --cloudsql-instance=DEST_INSTANCE ` --username=DEST_USER ` --password=DEST_PASSWORD ` --role=DESTINATION ` --no-async
Windows (cmd.exe)
gcloud database-migration connection-profiles create postgresql DEST_CONN_ID ^ --region=REGION ^ --cloudsql-instance=DEST_INSTANCE ^ --username=DEST_USER ^ --password=DEST_PASSWORD ^ --role=DESTINATION ^ --no-async
Vous devriez obtenir un résultat semblable à celui-ci :
Waiting for connection profile [CONNECTION_PROFILE_ID] to be created with [OPERATION_ID] Waiting for operation [OPERATION_ID] to complete...done. Created connection profile CONNECTION_PROFILE_ID [OPERATION_ID]
Instances existantes
Pour migrer vers une instance de destination existante, créez le profil de connexion pointant vers l'instance précréée. Exécutez la commande suivante (cliquez pour développer) :
gcloud database-migration connection-profiles create postgresqlCet 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 le flag--no-asyncpour exécuter les commandes de manière asynchrone. Si c'est le cas, vous devez utiliser la commandegcloud database-migration operations describepour vérifier si votre 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.
- Remplacez REGION par la région dans laquelle vous souhaitez enregistrer le profil de connexion. Cette région doit être identique à celle de votre instance de destination.
- DEST_INSTANCE par l'ID de l'instance Cloud SQL de destination que vous avez créée.
- DEST_USER par le nom d'utilisateur de migration sur votre base de données de destination.
- DEST_PASSWORD par le mot de passe de l'utilisateur de migration dans la base de données de destination.
Exécutez la commande suivante :
Linux, macOS ou Cloud Shell
gcloud database-migration connection-profiles create postgresql DEST_CONN_ID \ --region=REGION \ --cloudsql-instance=DEST_INSTANCE \ --username=DEST_USER \ --password=DEST_PASSWORD \ --role=DESTINATION \ --no-async
Windows (PowerShell)
gcloud database-migration connection-profiles create postgresql DEST_CONN_ID ` --region=REGION ` --cloudsql-instance=DEST_INSTANCE ` --username=DEST_USER ` --password=DEST_PASSWORD ` --role=DESTINATION ` --no-async
Windows (cmd.exe)
gcloud database-migration connection-profiles create postgresql DEST_CONN_ID ^ --region=REGION ^ --cloudsql-instance=DEST_INSTANCE ^ --username=DEST_USER ^ --password=DEST_PASSWORD ^ --role=DESTINATION ^ --no-async
Vous devriez obtenir un résultat semblable à celui-ci :
Waiting for connection profile [CONNECTION_PROFILE_ID] to be created with [OPERATION_ID] Waiting for operation [OPERATION_ID] to complete...done. Created connection profile CONNECTION_PROFILE_ID [OPERATION_ID]
-
Créer une instance avec la Google Cloud CLI Cloud SQL.
Assurez-vous d'utiliser l'indicateur
-
Créez le job de migration.
Exécutez la commande suivante (cliquez pour 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 le flag--no-asyncpour exécuter les commandes de manière asynchrone. Si c'est le cas, vous devez utiliser la commandegcloud database-migration operations describepour vérifier si votre opération a réussi.Avant d'utiliser les données de la commande ci-dessous, effectuez les remplacements suivants :
- MIGRATION_JOB_ID par l'identifiant de votre job de migration.
- REGION par la région dans laquelle vous souhaitez enregistrer le job de migration.
- SOURCE_CONN_ID avec l'identifiant du profil de connexion source.
- DEST_CONN_ID par l'identifiant du profil de connexion de destination.
- DATABASES_LIST par une liste de bases de données séparées par une virgule que vous souhaitez migrer.
Exécutez la commande suivante :
Linux, macOS ou Cloud Shell
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
Windows (PowerShell)
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
Windows (cmd.exe)
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
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]
-
Exécutez la tâche de migration.
Démarrer le job de migration (cliquez pour développer) :gcloud database-migration migration-jobs startCet 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 le flag--no-asyncpour exécuter les commandes de manière asynchrone. Si c'est le cas, vous devez utiliser la commandegcloud database-migration operations describepour vérifier si votre opération a réussi.Avant d'utiliser les données de la commande ci-dessous, effectuez les remplacements suivants :
- MIGRATION_JOB_ID par l'identifiant de votre job de migration.
Si vous ne connaissez pas l'identifiant, vous pouvez utiliser la commande
gcloud database-migration migration-jobs listpour lister tous les jobs de migration dans une région donnée et afficher leurs identifiants. - REGION par l'identifiant de la région dans laquelle votre profil de connexion est enregistré.
Exécutez la commande suivante :
Linux, macOS ou Cloud Shell
gcloud database-migration migration-jobs \ start MIGRATION_JOB_ID \ --region=REGION
Windows (PowerShell)
gcloud database-migration migration-jobs ` start MIGRATION_JOB_ID ` --region=REGION
Windows (cmd.exe)
gcloud database-migration migration-jobs ^ start MIGRATION_JOB_ID ^ --region=REGION
Résultat
L'action est effectuée de manière asynchrone. Par conséquent, cette commande renvoie une entité Operation qui représente une opération de longue durée :
done: false metadata: '@type': type.googleapis.com/google.cloud.clouddms.v1.OperationMetadata apiVersion: v1 createTime: '2024-02-20T12:20:24.493106418Z' requestedCancellation: false target: MIGRATION_JOB_ID verb: start name: OPERATION_ID
Pour vérifier si votre opération a réussi, vous pouvez interroger l'objet d'opération renvoyé ou vérifier l'état du job de migration :
- Utilisez la commande
gcloud database-migration migration-jobs describeavec MIGRATION_JOB_ID pour afficher l'état du job de migration. - Utilisez la commande
gcloud database-migration operations describeavec OPERATION_ID pour afficher l'état de l'opération elle-même.
- MIGRATION_JOB_ID par l'identifiant de votre job de migration.
Finaliser la migration
Lorsque vous décidez de migrer votre application vers la nouvelle instance Cloud SQL, finalisez la migration en procédant comme suit :
- 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.
- Promouvoir le job de migration. Pour les migrations automatisées, votre instance de destination reste accessible en écriture pendant le processus de migration. La promotion de la tâche de migration met uniquement fin à la réplication et n'a aucune incidence sur votre instance de destination.
- Facultatif : vérifiez que les données de migration sont complètes.