arrow_back

Migrer vers Cloud SQL pour PostgreSQL à l'aide de Database Migration Service

Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

Migrer vers Cloud SQL pour PostgreSQL à l'aide de Database Migration Service

Lab 1 heure 30 minutes universal_currency_alt 1 crédit show_chart Débutant
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

GSP918

Google Cloud – Ateliers adaptés au rythme de chacun

Présentation

Database Migration Service fournit pour les jobs ponctuels et continus des options de migration de données vers Cloud SQL à l'aide de différentes options de connectivité, telles que les listes d'autorisation d'adresses IP, l'appairage de VPC et les tunnels SSH inversés (consultez la documentation concernant les options de connectivité sur la page https://cloud.google.com/database-migration/docs/postgresql/configure-connectivity).

Dans cet atelier, vous ferez migrer une base de données PostgreSQL autonome (qui s'exécute sur une machine virtuelle) vers Cloud SQL pour PostgreSQL en utilisant un job Database Migration Service continu ainsi que l'appairage de VPC pour la connectivité.

Pour faire migrer une base de données via Database Migration Service, un minimum de préparation de la base de données source est nécessaire : il faut créer un utilisateur dédié disposant des droits de réplication, ajouter l'extension de base de données pglogical à la base de données source et accorder à l'utilisateur dédié les droits requis sur les schémas et les tables de la base de données à faire migrer. De plus, il faut accorder à l'utilisateur les droits nécessaires pour la base de données postgres.

Une fois le job de migration créé et exécuté, vous devrez vérifier qu'une copie initiale de la base de données a bien été migrée sur l'instance Cloud SQL pour PostgreSQL. Vous découvrirez également à cette occasion comment les jobs de migration continus transmettent les mises à jour de données effectuées dans la base de données source à l'instance Cloud SQL. Pour terminer ce job de migration, vous allez promouvoir l'instance Cloud SQL pour en faire une base de données autonome dédiée à la lecture et à l'écriture de données.

Objectifs

Dans cet atelier, vous apprendrez à configurer un job Database Migration Service continu pour faire migrer des bases de données d'une instance PostgreSQL vers Cloud SQL pour PostgreSQL.

  • Préparer la migration de la base de données source
  • Créer un profil de connexion source à une instance PostgreSQL (par exemple, PostgreSQL autonome)
  • Configurer la connectivité entre les instances de base de données source et de destination à l'aide de l'appairage de VPC
  • Configurer des règles de pare-feu et d'accès aux bases de données pour permettre l'accès à la base de données source pour la migration
  • Créer, exécuter et vérifier un job de migration continu à l'aide de Database Migration Service
  • Promouvoir l'instance de destination (Cloud SQL pour PostgreSQL) pour en faire une base de données autonome dédiée à la lecture et à l'écriture de données

Préparation

Avant de cliquer sur le bouton "Démarrer l'atelier"

Lisez ces instructions. Les ateliers sont minutés, et vous ne pouvez pas les mettre en pause. Le minuteur, qui démarre lorsque vous cliquez sur Démarrer l'atelier, indique combien de temps les ressources Google Cloud resteront accessibles.

Cet atelier pratique vous permet de suivre vous-même les activités dans un véritable environnement cloud, et non dans un environnement de simulation ou de démonstration. Nous vous fournissons des identifiants temporaires pour vous connecter à Google Cloud le temps de l'atelier.

Pour réaliser cet atelier :

  • vous devez avoir accès à un navigateur Internet standard (nous vous recommandons d'utiliser Chrome) ;
Remarque : Ouvrez une fenêtre de navigateur en mode incognito/navigation privée pour effectuer cet atelier. Vous éviterez ainsi les conflits entre votre compte personnel et le temporaire étudiant, qui pourraient entraîner des frais supplémentaires facturés sur votre compte personnel.
  • vous disposez d'un temps limité ; une fois l'atelier commencé, vous ne pouvez pas le mettre en pause.
Remarque : Si vous possédez déjà votre propre compte ou projet Google Cloud, veillez à ne pas l'utiliser pour réaliser cet atelier afin d'éviter que des frais supplémentaires ne vous soient facturés.

Démarrer l'atelier et se connecter à la console Google Cloud

  1. Cliquez sur le bouton Démarrer l'atelier. Si l'atelier est payant, un pop-up s'affiche pour vous permettre de sélectionner un mode de paiement. Sur la gauche, vous trouverez le panneau Détails concernant l'atelier, qui contient les éléments suivants :

    • Le bouton Ouvrir la console Google
    • Le temps restant
    • Les identifiants temporaires que vous devez utiliser pour cet atelier
    • Des informations complémentaires vous permettant d'effectuer l'atelier
  2. Cliquez sur Ouvrir la console Google. L'atelier lance les ressources, puis ouvre la page Se connecter dans un nouvel onglet.

    Conseil : Réorganisez les onglets dans des fenêtres distinctes, placées côte à côte.

    Remarque : Si la boîte de dialogue Sélectionner un compte s'affiche, cliquez sur Utiliser un autre compte.
  3. Si nécessaire, copiez le nom d'utilisateur inclus dans le panneau Détails concernant l'atelier et collez-le dans la boîte de dialogue Se connecter. Cliquez sur Suivant.

  4. Copiez le mot de passe inclus dans le panneau Détails concernant l'atelier et collez-le dans la boîte de dialogue de bienvenue. Cliquez sur Suivant.

    Important : Vous devez utiliser les identifiants fournis dans le panneau de gauche. Ne saisissez pas vos identifiants Google Cloud Skills Boost. Remarque : Si vous utilisez votre propre compte Google Cloud pour cet atelier, des frais supplémentaires peuvent vous être facturés.
  5. Accédez aux pages suivantes :

    • Acceptez les conditions d'utilisation.
    • N'ajoutez pas d'options de récupération ni d'authentification à deux facteurs (ce compte est temporaire).
    • Ne vous inscrivez pas aux essais offerts.

Après quelques instants, la console Cloud s'ouvre dans cet onglet.

Remarque : Vous pouvez afficher le menu qui contient la liste des produits et services Google Cloud en cliquant sur le menu de navigation en haut à gauche. Icône du menu de navigation

Activer Cloud Shell

Cloud Shell est une machine virtuelle qui contient de nombreux outils pour les développeurs. Elle comprend un répertoire d'accueil persistant de 5 Go et s'exécute sur Google Cloud. Cloud Shell vous permet d'accéder via une ligne de commande à vos ressources Google Cloud.

  1. Cliquez sur Activer Cloud Shell Icône Activer Cloud Shell en haut de la console Google Cloud.

Une fois connecté, vous êtes en principe authentifié et le projet est défini sur votre ID_PROJET. Le résultat contient une ligne qui déclare YOUR_PROJECT_ID (VOTRE_ID_PROJET) pour cette session :

Your Cloud Platform project in this session is set to YOUR_PROJECT_ID

gcloud est l'outil de ligne de commande pour Google Cloud. Il est préinstallé sur Cloud Shell et permet la complétion par tabulation.

  1. (Facultatif) Vous pouvez lister les noms des comptes actifs à l'aide de cette commande :
gcloud auth list
  1. Cliquez sur Autoriser.

  2. Vous devez à présent obtenir le résultat suivant :

Résultat :

ACTIVE: * ACCOUNT: student-01-xxxxxxxxxxxx@qwiklabs.net To set the active account, run: $ gcloud config set account `ACCOUNT`
  1. (Facultatif) Vous pouvez lister les ID de projet à l'aide de cette commande :
gcloud config list project

Résultat :

[core] project = <ID_Projet>

Exemple de résultat :

[core] project = qwiklabs-gcp-44776a13dea667a6 Remarque : Pour consulter la documentation complète sur gcloud, dans Google Cloud, accédez au guide de présentation de la gcloud CLI.

Vérifier que l'API Database Migration est activée

  1. Dans la console Google Cloud, saisissez API Database Migration dans la barre de recherche en haut de l'écran. Cliquez sur le résultat correspondant : API Database Migration.

La page qui s'affiche vous donne soit des informations sur l'état de l'API, soit la possibilité de l'activer.

  1. Activez l'API si nécessaire.

Vérifier que l'API Service Networking est activée

Vous devez activer l'API Service Networking pour pouvoir configurer Cloud SQL afin qu'il accepte l'appairage et les connexions VPC sur une adresse IP privée.

  1. Dans la console Cloud, saisissez API Service Networking dans la barre de recherche en haut de l'écran. Cliquez sur le résultat correspondant : API Service Networking.

La page qui s'affiche vous donne soit des informations sur l'état de l'API, soit la possibilité de l'activer.

  1. Activez l'API si nécessaire.

Tâche 1 : Préparer la migration de la base de données source

Dans cette tâche, vous allez ajouter à la base de données source les fonctionnalités connexes nécessaires pour permettre à Database Migration Service d'effectuer la migration. Voici ce que vous devez faire :

  • Installer et configurer l'extension de base de données pglogical
  • Configurer la base de données PostgreSQL autonome pour la rendre accessible depuis Cloud Shell et Cloud SQL
  • Ajouter l'extension de base de données pglogical aux bases de données postgres, orders et gmemegen_db sur le serveur autonome
  • Créer un utilisateur migration_admin (disposant des autorisations de réplication) pour la migration de la base de données et lui accorder les autorisations nécessaires sur les schémas et les relations

Ajouter l'extension pglogical à la base de données pour la mettre à niveau

Au cours de cette étape, vous allez télécharger l'extension de base de données pglogical et l'ajouter aux bases de données "orders" et "postgres" sur l'instance de VM postgresql-vm.

  1. Dans la console Google Cloud, accédez au menu de navigation (Icône du menu de navigation), puis cliquez sur Compute Engine > Instances de VM.

  2. Dans l'entrée correspondant à postgresql-vm, sous Connecter, cliquez sur SSH.

  3. Cliquez sur Autoriser si vous y êtes invité.

  4. Dans le terminal ouvert dans la nouvelle fenêtre du navigateur, installez l'extension de base de données pglogical :

sudo apt install postgresql-13-pglogical Remarque : pglogical est un système de réplication logique intégralement implémenté en tant qu'extension PostgreSQL. Entièrement intégré, ce système ne nécessite ni déclencheurs ni programmes externes. Cette alternative à la réplication physique est une méthode particulièrement efficace de réplication de données utilisant un modèle publish/subscribe pour la réplication sélective. Pour en savoir plus, consultez : https://github.com/2ndQuadrant/pglogical
  1. Téléchargez quelques éléments additionnels et appliquez-les aux fichiers de configuration PostgreSQL (afin d'activer l'extension pglogical), puis redémarrez le service postgresql :
sudo su - postgres -c "gsutil cp gs://cloud-training/gsp918/pg_hba_append.conf ." sudo su - postgres -c "gsutil cp gs://cloud-training/gsp918/postgresql_append.conf ." sudo su - postgres -c "cat pg_hba_append.conf >> /etc/postgresql/13/main/pg_hba.conf" sudo su - postgres -c "cat postgresql_append.conf >> /etc/postgresql/13/main/postgresql.conf" sudo systemctl restart postgresql@13-main

Dans pg_hba.conf, ces commandes ont ajouté une règle autorisant l'accès à tous les hôtes :

#GSP918 - allow access to all hosts host all all 0.0.0.0/0 md5

Dans postgresql.conf, ces commandes ont défini la configuration minimale permettant à pglogical d'écouter toutes les adresses :

#GSP918 - added configuration for pglogical database extension wal_level = logical # minimal, replica, or logical max_worker_processes = 10 # one per database needed on provider node # one per node needed on subscriber node max_replication_slots = 10 # one per node needed on provider node max_wal_senders = 10 # one per node needed on provider node shared_preload_libraries = 'pglogical' max_wal_size = 1GB min_wal_size = 80MB listen_addresses = '*' # what IP address(es) to listen on, '*' is all

Les extraits de code ci-dessus ont été ajoutés aux fichiers adéquats, puis le service PostgreSQL a redémarré.

  1. Lancez l'outil psql :
sudo su - postgres psql
  1. Ajoutez l'extension de base de données pglogical aux bases de données postgres, orders et gmemegen_db.
\c postgres; CREATE EXTENSION pglogical; \c orders; CREATE EXTENSION pglogical; \c gmemegen_db; CREATE EXTENSION pglogical;
  1. Listez les bases de données PostgreSQL sur le serveur :
\l

Ici, en plus des bases de données postgresql par défaut, vous retrouvez les bases de données orders et gmemegen_db fournies pour cet atelier. Vous n'utiliserez pas la base de données gmemegen_db dans l'atelier, mais vous allez l'inclure dans la migration, car elle vous servira dans un prochain atelier.

List of databases Name | Owner | Encoding | Collate | Ctype | Access privileges -------------+----------+----------+---------+---------+----------------------- gmemegen_db | postgres | UTF8 | C.UTF-8 | C.UTF-8 | orders | postgres | UTF8 | C.UTF-8 | C.UTF-8 | postgres | postgres | UTF8 | C.UTF-8 | C.UTF-8 | template0 | postgres | UTF8 | C.UTF-8 | C.UTF-8 | =c/postgres + | | | | | postgres=CTc/postgres template1 | postgres | UTF8 | C.UTF-8 | C.UTF-8 | =c/postgres + | | | | | postgres=CTc/postgres (5 rows)

Créer l'utilisateur dédié à la migration de la base de données

Dans cette étape, vous allez créer un utilisateur dédié à la gestion de la migration de la base de données.

  1. Dans psql, saisissez les commandes ci-dessous pour créer un utilisateur disposant du rôle "réplication" :
CREATE USER migration_admin PASSWORD 'DMS_1s_cool!'; ALTER DATABASE orders OWNER TO migration_admin; ALTER ROLE migration_admin WITH REPLICATION;

Attribuer les autorisations nécessaires à l'utilisateur dédié à la migration

Dans cette étape, vous allez attribuer les autorisations nécessaires à l'utilisateur migration_admin pour permettre à Database Migration Service de faire migrer la base de données.

  1. Dans psql, accordez-lui les autorisations liées au schéma et aux tables pglogical pour la base de données postgres.
\c postgres; GRANT USAGE ON SCHEMA pglogical TO migration_admin; GRANT ALL ON SCHEMA pglogical TO migration_admin; GRANT SELECT ON pglogical.tables TO migration_admin; GRANT SELECT ON pglogical.depend TO migration_admin; GRANT SELECT ON pglogical.local_node TO migration_admin; GRANT SELECT ON pglogical.local_sync_status TO migration_admin; GRANT SELECT ON pglogical.node TO migration_admin; GRANT SELECT ON pglogical.node_interface TO migration_admin; GRANT SELECT ON pglogical.queue TO migration_admin; GRANT SELECT ON pglogical.replication_set TO migration_admin; GRANT SELECT ON pglogical.replication_set_seq TO migration_admin; GRANT SELECT ON pglogical.replication_set_table TO migration_admin; GRANT SELECT ON pglogical.sequence_state TO migration_admin; GRANT SELECT ON pglogical.subscription TO migration_admin;
  1. Dans psql, accordez-lui les autorisations liées au schéma et aux tables pglogical pour la base de données orders.
\c orders; GRANT USAGE ON SCHEMA pglogical TO migration_admin; GRANT ALL ON SCHEMA pglogical TO migration_admin; GRANT SELECT ON pglogical.tables TO migration_admin; GRANT SELECT ON pglogical.depend TO migration_admin; GRANT SELECT ON pglogical.local_node TO migration_admin; GRANT SELECT ON pglogical.local_sync_status TO migration_admin; GRANT SELECT ON pglogical.node TO migration_admin; GRANT SELECT ON pglogical.node_interface TO migration_admin; GRANT SELECT ON pglogical.queue TO migration_admin; GRANT SELECT ON pglogical.replication_set TO migration_admin; GRANT SELECT ON pglogical.replication_set_seq TO migration_admin; GRANT SELECT ON pglogical.replication_set_table TO migration_admin; GRANT SELECT ON pglogical.sequence_state TO migration_admin; GRANT SELECT ON pglogical.subscription TO migration_admin;
  1. Dans psql, accordez-lui les autorisations liées au schéma et aux tables public pour la base de données orders.
GRANT USAGE ON SCHEMA public TO migration_admin; GRANT ALL ON SCHEMA public TO migration_admin; GRANT SELECT ON public.distribution_centers TO migration_admin; GRANT SELECT ON public.inventory_items TO migration_admin; GRANT SELECT ON public.order_items TO migration_admin; GRANT SELECT ON public.products TO migration_admin; GRANT SELECT ON public.users TO migration_admin;
  1. Dans psql, accordez-lui les autorisations liées au schéma et aux tables pglogical pour la base de données gmemegen_db.
\c gmemegen_db; GRANT USAGE ON SCHEMA pglogical TO migration_admin; GRANT ALL ON SCHEMA pglogical TO migration_admin; GRANT SELECT ON pglogical.tables TO migration_admin; GRANT SELECT ON pglogical.depend TO migration_admin; GRANT SELECT ON pglogical.local_node TO migration_admin; GRANT SELECT ON pglogical.local_sync_status TO migration_admin; GRANT SELECT ON pglogical.node TO migration_admin; GRANT SELECT ON pglogical.node_interface TO migration_admin; GRANT SELECT ON pglogical.queue TO migration_admin; GRANT SELECT ON pglogical.replication_set TO migration_admin; GRANT SELECT ON pglogical.replication_set_seq TO migration_admin; GRANT SELECT ON pglogical.replication_set_table TO migration_admin; GRANT SELECT ON pglogical.sequence_state TO migration_admin; GRANT SELECT ON pglogical.subscription TO migration_admin;
  1. Dans psql, accordez-lui les autorisations liées au schéma et aux tables public pour la base de données gmemegen_db.
GRANT USAGE ON SCHEMA public TO migration_admin; GRANT ALL ON SCHEMA public TO migration_admin; GRANT SELECT ON public.meme TO migration_admin;

Les bases de données sources sont maintenant prêtes pour la migration. Database Migration Service n'a besoin de rien d'autre que les autorisations que vous avez accordées à l'utilisateur migration_admin pour faire migrer les bases de données postgres, orders et gmemegen_db.

Accordez à l'utilisateur migration_admin le rôle de propriétaire des tables de la base de données orders, afin de pouvoir modifier les données sources par la suite, lorsque vous testerez la migration.

  1. Dans psql, exécutez les commandes suivantes :
\c orders; \dt ALTER TABLE public.distribution_centers OWNER TO migration_admin; ALTER TABLE public.inventory_items OWNER TO migration_admin; ALTER TABLE public.order_items OWNER TO migration_admin; ALTER TABLE public.products OWNER TO migration_admin; ALTER TABLE public.users OWNER TO migration_admin; \dt List of relations Schema | Name | Type | Owner --------+----------------------+-------+------- public | distribution_centers | table | migration_admin public | inventory_items | table | migration_admin public | order_items | table | migration_admin public | products | table | migration_admin public | users | table | migration_admin (5 rows)
  1. Quittez psql et la session utilisateur postgres.
\q exit

Cliquez sur Vérifier ma progression pour valider l'objectif. Préparer la migration de l'instance source PostgreSQL

Tâche 2 : Créer un profil de connexion Database Migration Service pour une base de données PostgreSQL autonome

Dans cette tâche, vous allez créer un profil de connexion pour l'instance source PostgreSQL.

Récupérer les informations sur la connectivité de l'instance source PostgreSQL

Dans cette étape, vous allez identifier l'adresse IP interne de l'instance de base de données source que vous devez faire migrer vers Cloud SQL.

  1. Dans la console Google Cloud, accédez au menu de navigation (Icône du menu de navigation), puis cliquez sur Compute Engine > Instances de VM.

  2. Repérez la ligne mentionnant l'instance nommée postgresql-vm.

  3. Copiez la valeur de l'Adresse IP interne (par exemple, 10.128.0.2).

Créer un profil de connexion pour l'instance source PostgreSQL

Un profil de connexion stocke des informations concernant l'instance de base de données source (par exemple, PostgreSQL autonome). Database Migration Service s'en sert pour migrer les données de la source vers l'instance de base de données Cloud SQL de destination. Une fois le profil de connexion créé, vous pouvez le réutiliser dans d'autres jobs de migration.

Dans cette étape, vous allez créer un profil de connexion pour l'instance source PostgreSQL.

  1. Dans la console Google Cloud, accédez au menu de navigation (Icône du menu de navigation), puis cliquez sur Migration de bases de donnéesProfils de connexion.

  2. Cliquez sur + Créer un profil.

  3. Pour le Moteur de base de données, sélectionnez PostgreSQL.

  4. Dans le champ Nom du profil de connexion, saisissez postgres-vm.

  5. Dans le champ Nom d'hôte ou adresse IP, saisissez l'adresse IP interne de l'instance source PostgreSQL, que vous avez copiée dans la tâche précédente (par exemple, 10.128.0.2).

  6. Pour le Port, saisissez 5432.

  7. Comme Nom d'utilisateur, saisissez migration_admin.

  8. Dans le champ mot de passe, saisissez DMS_1s_cool! .

  9. Pour la Région, sélectionnez .

  10. Conservez toutes les autres valeurs par défaut.

  11. Cliquez sur Créer.

Un nouveau profil de connexion nommé postgres-vm apparaît dans la liste "Profils de connexion".

Cliquez sur Vérifier ma progression pour valider l'objectif. Créer un profil de connexion pour l'instance source PostgreSQL

Tâche 3 : Créer et démarrer un job de migration continu

Lorsque vous créez un job de migration, vous devez d'abord définir l'instance de base de données source à l'aide d'un profil de connexion précédemment créé. Ensuite, vous créez une instance de base de données de destination, puis vous configurez la connectivité entre l'instance source et celle de destination.

Dans cette tâche, vous allez créer une instance de base de données Cloud SQL pour PostgreSQL à l'aide de l'interface du job de migration, puis la définir en tant que destination du job de migration continu depuis l'instance source PostgreSQL.

Créer un job de migration continu

Dans cette étape, vous allez créer un job de migration continu.

  1. Dans la console Google Cloud, accédez au menu de navigation (Icône du menu de navigation), puis cliquez sur Migration de bases de donnéesJobs de migration.

  2. Cliquez sur + Créer un job de migration.

  3. Dans le champ Nom du job de migration, saisissez vm-to-cloudsql.

  4. Pour Moteur de base de données source, sélectionnez PostgreSQL.

  5. Pour Région de destination, sélectionnez .

  6. Pour Moteur de base de données de destination, sélectionnez Cloud SQL pour PostgreSQL.

  7. Pour Type de job de migration, sélectionnez Continu.

Conservez les valeurs par défaut des autres paramètres.

  1. Cliquez sur Enregistrer et continuer.

Définir l'instance source

Au cours de cette étape, vous allez définir l'instance source de la migration.

  1. Pour le Profil de connexion source, sélectionnez postgres-vm.

Conservez les valeurs par défaut des autres paramètres.

  1. Cliquez sur Enregistrer et continuer.

Une fois le profil de connexion source sélectionné, les détails de sa configuration s&#39;affichent (le nom d&#39;hôte ou l&#39;adresse IP de la source, le port, le nom d&#39;utilisateur et le type de chiffrement, entre autres).

Créer l'instance de destination

Dans cette étape, vous allez créer l'instance de destination de la migration.

  1. Dans le champ ID de l'instance de destination, saisissez postgresql-cloudsql.

  2. Dans le champ Mot de passe, saisissez supersecret!.

  3. Dans Choisir une édition Cloud SQL, sélectionnez l'édition Enterprise.

  4. Comme Version de la base de données, sélectionnez Cloud SQL pour PostgreSQL 13.

  5. Dans la section Choisir une région et une zone, sélectionnez Zone unique, puis sélectionnez comme Zone principale.

  6. Pour Connectivité de l'instance, sélectionnez Adresse IP privée et Adresse IP publique.

  7. Sélectionnez Utiliser une plage d'adresses IP automatiquement allouée.

Conservez les valeurs par défaut des autres paramètres.

  1. Cliquez sur Allouer et connecter.

Conservez l&#39;option par défaut &quot;Utiliser une plage d&#39;adresses IP automatiquement allouée&quot;.

Remarque : Cette étape peut prendre quelques minutes. Si vous êtes invité à relancer la requête, cliquez sur le bouton Réessayer pour actualiser l'API Service Networking.

Une fois l'étape terminée, un nouveau message vous informe que l'instance utilisera la connexion au service géré existante.

Vous devrez modifier le fichier "pg_hba.conf" sur l'instance de VM afin d'autoriser l'accès à la plage d'adresses IP qui est automatiquement générée au point 5 de l'étape précédente. Vous effectuerez cette modification lors d'une prochaine étape, avant de tester la configuration de la migration à la fin de cette tâche.

Un nouveau message vous informe que l&#39;instance utilisera la connexion au service géré existante.

Saisissez les informations complémentaires nécessaires à la création de l'instance de destination sur Cloud SQL.

  1. Pour Configurations de machines, cochez 1 vCPU, 3,75 Go.

  2. Comme Type de stockage, sélectionnez SSD.

  3. Pour la Capacité de stockage, sélectionnez 10 Go.

  4. Cliquez sur Créer et continuer.

Si une confirmation vous est demandée, cliquez sur Créer une destination et continuer. Un message vous informe alors que l'instance de base de données de destination est en cours de création. En attendant la fin de la création, passez à l'étape suivante.

Définir la méthode de connectivité

Au cours de cette étape, vous allez définir la méthode de connectivité employée pour la migration.

Le message indique que le bouton &quot;Configurer et continuer&quot; sera activé une fois que l&#39;instance Cloud SQL de destination aura été créée.

  1. Comme Méthode de connectivité, sélectionnez Appairage de VPC.

  2. Pour VPC, sélectionnez par défaut.

Database Migration Service configure l'appairage de VPC à l'aide des informations fournies pour le réseau VPC (le réseau par défaut dans cet exemple).

Lorsque vous voyez s'afficher le message vous informant que l'instance de destination a été créée, passez à l'étape suivante.

Le message mis à jour vous informe que l&#39;instance Cloud SQL de destination a été créée.

  1. Cliquez sur Configurer et continuer.

Autoriser l'accès à l'instance postgresql-vm depuis la plage d'adresses IP automatiquement allouée

Dans cette étape, vous allez modifier le fichier de configuration PostgreSQL pg_hba.conf afin d'autoriser Database Migration Service à accéder à la base de données PostgreSQL autonome.

  1. Récupérez la plage d'adresses IP allouée. Dans la console Google Cloud, accédez au menu de navigation (Icône du menu de navigation), puis effectuez un clic droit sur Réseau VPCAppairage de réseaux VPC et ouvrez cet élément dans un nouvel onglet.

  2. Cliquez sur l'entrée servicenetworking-googleapis-com.

  3. Dans l'onglet Routes importées, sélectionnez et copiez la Plage d'adresses IP de destination (par exemple, 10.107.176.0/24).

  4. Dans la session de terminal sur l'instance de VM, modifiez le fichier pg_hba.conf comme suit :

sudo nano /etc/postgresql/13/main/pg_hba.conf
  1. Dans la dernière ligne du fichier :
#GSP918 - allow access to all hosts host all all 0.0.0.0/0 md5

remplacez la plage "Toutes les adresses IP" (0.0.0.0/0) par la plage copiée au point 3 ci-dessus.

#GSP918 - allow access to all hosts host all all 10.107.176.0/24 md5 Remarque : L'étape ci-dessus n'est pas nécessaire au fonctionnement de la migration, mais il est recommandé de renforcer la sécurité de la base de données source lors du processus de migration, ainsi qu'après la migration car la base de données migrée devient alors la source de vérité.
  1. Enregistrez le fichier et quittez l'éditeur nano : Ctrl+O, Entrée, Ctrl+X.

  2. Redémarrez le service PostgreSQL afin d'appliquer les modifications. Dans la session de terminal de l'instance de VM :

sudo systemctl start postgresql@13-main

Tester et démarrer le job de migration continu

Dans cette étape, vous allez tester et démarrer le job de migration continu.

  1. Dans l'onglet Database Migration Service ouvert précédemment, vérifiez les détails du job de migration.

  2. Cliquez sur Tester le job.

  3. Si le test est concluant, cliquez sur Créer et démarrer un job.

Veillez à cliquer sur le bouton &quot;Créer et démarrer un job&quot; pour vous assurer que le job démarre bien.

Si vous êtes invité à confirmer l'action, cliquez sur Créer et démarrer.

Vérifier l'état du job de migration continu

Au cours de cette étape, vous allez vous assurer que le job de migration continu est bien en cours d'exécution.

  1. Dans la console Google Cloud, accédez au menu de navigation (Icône du menu de navigation), puis cliquez sur Migration de bases de donnéesJobs de migration.

  2. Cliquez sur le job de migration vm-to-cloudsql pour afficher la page des détails.

  3. Vérifiez l'état du job de migration.

    • Si vous ne l'avez pas lancé, le job sera à l'état Non démarré. Vous avez la possibilité de démarrer ou de supprimer le job.
    • Une fois le job démarré, son état passera à Démarrage…. L'état passera ensuite à Exécution du vidage complet en cours pour indiquer que le vidage initial de la base de données est en cours.
    • Quand le vidage initial de la base de données sera terminé, l'état passera à Exécution de la capture des données modifiées en cours pour indiquer que la migration continue est active.

Lorsque l'état du job passe à Exécution de la capture des données modifiées en cours, passez à la tâche suivante.

L&#39;état du job de migration nommé &quot;vm-to-cloudsql&quot; est défini sur &quot;Exécution de la capture des données modifiées en cours&quot;.

Cliquez sur Vérifier ma progression pour valider l'objectif. Créer, démarrer et vérifier un job de migration continu

Tâche 4 : Vérifier les données présentes dans Cloud SQL pour PostgreSQL

Vérifier les bases de données PostgreSQL dans Cloud SQL

  1. Dans le menu de navigation (Icône du menu de navigation) de la console Google Cloud, cliquez sur Bases de donnéesSQL.

  2. Développez l'ID d'instance postgresql-cloudsql-master.

  3. Cliquez sur l'instance postgresql-cloudsql (instance répliquée PostgreSQL avec accès en lecture).

  4. Dans le menu Instance répliquée, cliquez sur Bases de données.

Vous pouvez constater que les bases de données nommées postgres, orders et gmemegen_db ont été migrées vers Cloud SQL.

Les bases de données migrées dans Cloud SQL.

Se connecter à l'instance PostgreSQL

  1. Dans le menu Instance répliquée, cliquez sur Aperçu.

  2. Faites défiler la page jusqu'à la section Se connecter à cette instance et cliquez sur Ouvrir Cloud Shell.

La commande de connexion à PostgreSQL sera préremplie dans Cloud Shell :

gcloud sql connect postgresql-cloudsql --user=postgres --quiet
  1. Exécutez la commande préremplie.

Si vous y êtes invité, cliquez sur Autoriser pour l'API.

  1. Lorsque vous êtes invité à entrer un mot de passe, que vous avez défini précédemment, saisissez :
supersecret!

Vous avez maintenant activé la console interactive PostgreSQL pour l'instance de destination.

Vérifier les données dans l'instance Cloud SQL pour PostgreSQL

  1. Pour sélectionner la base de données dans la console interactive PostgreSQL, exécutez la commande suivante :
\c orders;
  1. Lorsque vous êtes invité à entrer un mot de passe, saisissez ceci :
supersecret!
  1. Interrogez la table distribution_centers :
select * from distribution_centers;

(Résultat)

longitude | latitude | name | id -----------+----------+---------------------------------------------+---- -89.9711 | 35.1174 | Memphis TN | 1 -87.6847 | 41.8369 | Chicago IL | 2 -95.3698 | 29.7604 | Houston TX | 3 -118.25 | 34.05 | Los Angeles CA | 4 -90.0667 | 29.95 | New Orleans LA | 5 -73.7834 | 40.634 | Port Authority of New York/New Jersey NY/NJ | 6 -75.1667 | 39.95 | Philadelphia PA | 7 -88.0431 | 30.6944 | Mobile AL | 8 -79.9333 | 32.7833 | Charleston SC | 9 -81.1167 | 32.0167 | Savannah GA | 10
  1. Pour quitter la console interactive PostgreSQL, saisissez :
\q

Mettre à jour les données de la source autonome pour tester la migration continue

  1. Dans Cloud Shell, saisissez les commandes suivantes pour établir la connexion avec l'instance PostgreSQL source :
export VM_NAME=postgresql-vm export PROJECT_ID=$(gcloud config list --format 'value(core.project)') export POSTGRESQL_IP=$(gcloud compute instances describe ${VM_NAME} \ --zone={{{ project_0.default_zone|(zone) }}} --format="value(networkInterfaces[0].accessConfigs[0].natIP)") echo $POSTGRESQL_IP psql -h $POSTGRESQL_IP -p 5432 -d orders -U migration_admin Remarque : La méthode ci-dessus est un autre moyen d'accéder à la base de données autonome sur l'instance de VM.
  1. Lorsque vous êtes invité à entrer un mot de passe, saisissez ceci :
DMS_1s_cool!
  1. Dans psql, saisissez les commandes suivantes :
\c orders; insert into distribution_centers values(-80.1918,25.7617,'Miami FL',11);
  1. Fermez la session psql interactive :
\q

Se connecter à la base de données Cloud SQL pour PostgreSQL pour vérifier que les données mises à jour ont bien été migrées

  1. Dans Cloud Shell, saisissez les commandes suivantes pour établir la connexion avec l'instance Cloud SQL pour PostgreSQL de destination :
gcloud sql connect postgresql-cloudsql --user=postgres --quiet
  1. Lorsque vous êtes invité à entrer un mot de passe, que vous avez défini précédemment, saisissez le mot de passe de l'instance Cloud SQL :
supersecret!

Vous avez maintenant activé la console interactive PostgreSQL pour l'instance de destination.

Vérifier les données dans la base de données Cloud SQL pour PostgreSQL

  1. Dans Cloud Shell, sélectionnez la base de données active dans la console interactive PostgreSQL :
\c orders;
  1. Lorsque vous êtes invité à entrer un mot de passe, que vous avez défini précédemment, saisissez :
supersecret!
  1. Interrogez la table distribution_centers :
select * from distribution_centers;

(Résultat)

longitude | latitude | name | id -----------+----------+---------------------------------------------+---- -89.9711 | 35.1174 | Memphis TN | 1 -87.6847 | 41.8369 | Chicago IL | 2 -95.3698 | 29.7604 | Houston TX | 3 -118.25 | 34.05 | Los Angeles CA | 4 -90.0667 | 29.95 | New Orleans LA | 5 -73.7834 | 40.634 | Port Authority of New York/New Jersey NY/NJ | 6 -75.1667 | 39.95 | Philadelphia PA | 7 -88.0431 | 30.6944 | Mobile AL | 8 -79.9333 | 32.7833 | Charleston SC | 9 -81.1167 | 32.0167 | Savannah GA | 10 -80.1918 | 25.7617 | Miami FL | 11

Vous pouvez constater que la nouvelle ligne ajoutée à la base de données autonome orders est désormais présente dans la base de données migrée.

  1. Quittez la console interactive PostgreSQL :
\q

Cliquez sur Vérifier ma progression pour valider l'objectif. Tester la migration continue des données de la source vers la destination

Tâche 5 : Promouvoir Cloud SQL pour en faire une instance autonome dédiée à la lecture et à l'écriture de données

  1. Dans la console Google Cloud, accédez au menu de navigation (Icône du menu de navigation), puis cliquez sur Migration de bases de donnéesJobs de migration.

  2. Cliquez sur le job de migration nommé vm-to-cloudsql pour afficher la page des détails.

  3. Cliquez sur Promouvoir.

Si vous êtes invité à confirmer cette action, cliquez sur Promouvoir.

Une fois la promotion terminée, l'état du job passera à Terminé.

Le job de migration nommé &quot;vm-to-cloudsql&quot; est à l&#39;état &quot;terminé&quot;.

  1. Dans le menu de navigation (Icône du menu de navigation) de la console Google Cloud, cliquez sur Bases de donnéesSQL.

Vous pouvez constater que postgresql-cloudsql est maintenant une instance autonome dédiée à la lecture et à l'écriture de données.

L&#39;instance nommée &quot;postgresql-cloudsql&quot; est désignée comme instance principale.

Cliquez sur Vérifier ma progression pour valider l'objectif. Promouvoir la base de données Cloud SQL pour PostgreSQL pour en faire une instance autonome dédiée à la lecture et à l'écriture de données

Félicitations !

Vous avez appris à configurer un job Database Migration Service continu pour faire migrer des bases de données d'une instance PostgreSQL vers Cloud SQL pour PostgreSQL.

Formations et certifications Google Cloud

Les formations et certifications Google Cloud vous aident à tirer pleinement parti des technologies Google Cloud. Nos cours portent sur les compétences techniques et les bonnes pratiques à suivre pour être rapidement opérationnel et poursuivre votre apprentissage. Nous proposons des formations pour tous les niveaux, à la demande, en salle et à distance, pour nous adapter aux emplois du temps de chacun. Les certifications vous permettent de valider et de démontrer vos compétences et votre expérience en matière de technologies Google Cloud.

Dernière mise à jour du manuel : 9 février 2024

Dernier test de l'atelier : 6 février 2024

Copyright 2024 Google LLC Tous droits réservés. Google et le logo Google sont des marques de Google LLC. Tous les autres noms d'entreprises et de produits peuvent être des marques des entreprises auxquelles ils sont associés.