Tutoriel : Migration de MySQL vers Cloud SQL à l'aide d'un workflow automatisé

Ce tutoriel explique comment migrer une base de données MySQL 5.7 vers Cloud SQL à l'aide du workflow de migration automatisé Cloud SQL. Il suit la stratégie de promotion d'instance dupliquée externe décrite dans le document d'accompagnement Migrer de MySQL vers Cloud SQL. Dans ce tutoriel, nous partons du principe que vous connaissez les concepts de MySQL, que vous comprenez bien les fonctionnalités de Cloud SQL, et que vous avez lu le document conceptuel.

Objectifs

  • Déployez une base de données MySQL sur Compute Engine pour qu'elle serve de base de données source.
  • Vérifiez que toutes les conditions préalables à la migration vers Cloud SQL sont remplies.
  • Créez une instance dupliquée Cloud SQL à l'aide du workflow de migration automatisé.
  • Vérifiez que la base de données dupliquée est en cours d'exécution dans Cloud SQL.
  • Changez la base de données dupliquée Cloud SQL en base de données Cloud SQL principale.
  • Mettez à jour l'application pour utiliser la base de données Cloud SQL.
  • Vérifiez que la base de données principale est en cours d'exécution dans Cloud SQL.

Coûts

Ce tutoriel utilise les composants facturables suivants de Google Cloud :

Obtenez une estimation des coûts en fonction de votre utilisation prévue à l'aide du simulateur de coût. Les nouveaux utilisateurs de Google Cloud peuvent bénéficier d'un essai gratuit.

Avant de commencer

  1. Connectez-vous à votre compte Google Cloud. Si vous débutez sur Google Cloud, créez un compte pour évaluer les performances de nos produits en conditions réelles. Les nouveaux clients bénéficient également de 300 $ de crédits gratuits pour exécuter, tester et déployer des charges de travail.
  2. Dans Google Cloud Console, sur la page de sélection du projet, sélectionnez ou créez un projet Google Cloud.

    Accéder au sélecteur de projet

  3. Assurez-vous que la facturation est activée pour votre projet Cloud. Découvrez comment vérifier que la facturation est activée pour votre projet.

  4. Activer les API Compute Engine and Cloud SQL.

    Activer les API

Architecture

L'architecture initiale que vous compilez comprend une application WordPress basée sur MySQL, déployée à l'aide de Cloud Deployment Manager et exécutée sur Compute Engine. Bien que ce tutoriel utilise Compute Engine pour exécuter la base de données source, vous pouvez utiliser les procédures qu'il contient pour migrer une base de données MySQL à partir de n'importe quel emplacement disposant d'un accès IPv4 public. Cela inclut les environnements sur site, les installations hébergées en colocation et les emplacements des fournisseurs de cloud.

Vous allez commencer par créer une application s'exécutant sur Compute Engine qui utilise MySQL comme base de données, comme illustré dans le diagramme suivant :

Démarrage de l'architecture de base de données.

Vous allez ensuite utiliser la commande mysqldump pour répliquer la base de données MySQL vers Cloud SQL, comme indiqué dans le diagramme suivant :

Architecture de réplication de base de données.

Vous pouvez ensuite promouvoir l'instance dupliquée Cloud SQL en tant qu'instance principale, puis mettre l'application à jour pour qu'elle utilise la nouvelle base de données principale. Après la migration, l'architecture utilise la base de données hébergée sur Cloud SQL. Le schéma suivant montre les applications utilisant la nouvelle base de données Cloud SQL :

Architecture de base de données migrée.

Déployer une base de données MySQL source sur Compute Engine

Pour commencer, vous mettez en place une base de données MySQL source que vous pouvez déplacer vers Cloud SQL. Toute base de données MySQL exécutant les versions 5.6 ou 5.7 vous permet de tirer parti du workflow de migration automatisé de Cloud SQL.

Déployer WordPressà l'aide de Deployment Manager

Pour simplifier le déploiement d'une base de données source, utilisez une installation WordPress issue des solutions de déploiement par clic de Google Cloud Marketplace. WordPress est un outil courant de création de sites Web et de gestion de contenu utilisant MySQL. La version de déploiement par clic proposée sur Google Cloud utilise MySQL 5.7 et répond donc aux conditions requises pour la migration vers Cloud SQL.

  1. Dans Cloud Console, accédez à la page Google Click-to-Deploy :

    Accéder à la page Google Click-to-Deploy

  2. Cliquez sur la solution WordPress.

  3. Cliquez sur Lancer.

  4. Renseignez les champs suivants :

    1. Deployment Name (Nom de déploiement) : my-wordpress-server
    2. Zone : us-east-1b
    3. Administrator e-mail address (Adresse e-mail de l'administrateur) : saisissez votre adresse e-mail.
    4. Firewall (Pare-feu) : assurez-vous que les options HTTP et HTTPS sont sélectionnées.
  5. Cliquez sur Deploy (Déployer).

    Le processus d'installation de la VM WordPress commence. Après quelques minutes, Deployment Manager affiche les détails de votre VM WordPress déployée. Enregistrez toutes ces informations pour les utiliser plus tard dans le tutoriel, en particulier les informations sur l'utilisateur root MySQL ainsi que le nom d'utilisateur et le mot de passe wordpress.

  6. Cliquez sur le lien Site address (Adresse du site) pour vérifier que votre site WordPress est en cours d'exécution.

    Si tout fonctionne, un écran semblable à celui-ci s'affiche :

    Exemple de page d'accueil WordPress de déploiement par clic.

Attribuer des champs d'application d'API au serveur WordPress

Pour terminer la configuration de l'installation de WordPress sur la VM Compute Engine, vous devez ajouter des autorisations de champs d'application d'API. Cela permet à la VM d'écrire ses exportations de base de données vers Cloud Storage. Les exportations dans Cloud Storage seront utilisées ultérieurement pour créer votre instance dupliquée Cloud SQL.

  1. Ouvrez Cloud Shell.

    Ouvrir Cloud Shell

  2. Arrêtez la VM WordPress :

    gcloud compute instances stop my-wordpress-server-vm \
        --zone us-east1-b
    

    La VM doit être arrêtée pour que vous puissiez appliquer de nouvelles autorisations via des champs d'application d'API.

    Avant de passer à l'étape suivante, attendez que le serveur soit complètement arrêté.

  3. Appliquez le nouveau champ d'application pour autoriser la VM à écrire sur Cloud Storage :

    gcloud beta compute instances set-scopes my-wordpress-server-vm \
        --scopes storage-rw \
        --zone us-east1-b
    
  4. Redémarrez la VM :

    gcloud compute instances start my-wordpress-server-vm \
        --zone us-east1-b
    

Votre VM peut maintenant lire et écrire sur Cloud Storage.

Se connecter en tant qu'administrateur WordPress et créer un article

L'étape suivante consiste à vous connecter à l'interface d'administration de WordPress pour créer un nouvel article et à vérifier que l'application et la base de données fonctionnent correctement. Votre adresse IP a peut-être changé après l'arrêt et le redémarrage du serveur. Vous devez donc vérifier l'adresse IP publique actuelle de votre VM WordPress.

  1. Vérifiez l'adresse IP publique de la VM qui exécute WordPress :

    1. Dans Cloud Console, accédez à la page Instances de VM :

      Accéder à la page Instances de VM

    2. Notez la valeur de l'Adresse IP externe pour my-wordpress-server-vm.

  2. Vérifiez que l'application WordPress est en cours d'exécution. À l'aide de l'adresse IP externe que vous venez de récupérer, utilisez votre navigateur pour accéder à l'adresse IP publique de votre VM WordPress :

    http://your-public-ip
    

    Si l'adresse IP est correcte, la page WordPress par défaut s'affiche à nouveau.

  3. Dans le navigateur, accédez à la page d'administration de WordPress :

    http://your-public-ip/wp-admin
    
  4. Utilisez le nom et le mot de passe d'administrateur WordPress pour vous connecter à l'interface d'administration.

  5. Cliquez sur Posts (Articles), puis sur Add New (Ajouter).

  6. Donnez à votre article le titre My First Post, puis ajoutez du texte.

  7. Lorsque vous avez terminé, cliquez sur Publish (Publier), puis à nouveau sur Publish (Publier) pour confirmer :

    Publier  votre premier article.

  8. Cliquez sur le lien Site address (Adresse du site) pour voir votre nouvel article.

Vous avez maintenant une VM WordPress exécutant une base de données MySQL version 5.7.

Vérifier les conditions préalables à la migration dans Cloud SQL

Avant de pouvoir migrer vers Cloud SQL à l'aide du workflow de migration automatisé, vous devez vous assurer que vous remplissez les conditions préalables pour la configuration de votre serveur de base de données source. Les sections suivantes vous guident tout au long de ce processus.

Se connecter à la VM à l'aide de SSH

Vous devez vérifier les conditions préalables sur la VM sur laquelle WordPress est exécuté. Vous devez donc commencer par vous connecter à l'instance de VM.

  1. Dans Cloud Console, accédez à la page Instances de VM :

    Accéder à la page Instances de VM

  2. Dans la liste des instances de machine virtuelle, cliquez sur SSH sur la ligne de l'instance à laquelle vous souhaitez vous connecter.

    Connexion à la VM WordPress à l'aide de SSH.

    Cloud Shell s'ouvre et vous donne un accès en ligne de commande à votre VM.

Confirmer toutes les conditions préalables

Maintenant que vous avez établi une connexion par ligne de commande à votre serveur WordPress, vous pouvez vérifier que MySQL est prêt à être migré.

Créer un utilisateur de réplication

Pour accepter la réplication de la base de données, vous devez créer un compte utilisateur de réplication dans MySQL. Ainsi, vous n'avez pas besoin d'utiliser l'utilisateur root lors des étapes ultérieures.

  1. Sur la machine virtuelle WordPress, connectez-vous à votre base de données MySQL en tant qu'utilisateur root :

    mysql -u root -p -h localhost wordpress
    

    Lorsque vous y êtes invité, saisissez le mot de passe root que vous avez noté précédemment dans Deployment Manager.

  2. Lorsque vous êtes connecté à la base de données MySQL, créez l'utilisateur de réplication :

    CREATE USER 'replication'@'%' IDENTIFIED BY 'mysupersecretpassword';
    GRANT REPLICATION SLAVE ON *.* TO 'replication'@'%';
    

    Un résultat semblable à celui-ci s'affiche :

    mysql> CREATE USER 'replication'@'%' IDENTIFIED BY 'mysupersecretpassword';
    Query OK, 0 rows affected (0.00 sec)
    mysql> GRANT REPLICATION SLAVE ON *.* TO 'replication'@'%';
    Query OK, 0 rows affected (0.00 sec)
    
  3. Saisissez quit pour quitter l'interface mysql.

Vous disposez maintenant d'un utilisateur de réplication qui peut être utilisé par le workflow de migration automatisé de Cloud SQL.

Mettre à jour le fichier de configuration MySQL

Vous devez définir quatre variables dans votre fichier de configuration MySQL. Le fichier de configuration se trouve à l'emplacement /etc/mysql/mysql.conf.d/mysqld.cnf. Voici les valeurs que vous devez ajouter :

  • server-id. Cette valeur doit être définie pour pouvoir activer la journalisation binaire. Elle doit être comprise entre 1 et (2^32)-1 (4 294 967 295) et doit être unique pour chaque serveur. Dans ce tutoriel, vous définissez la valeur sur 2.
  • log-bin. Ce paramètre active la journalisation binaire et indique le nom de fichier que la base de données utilisera pour stocker le journal. Dans ce tutoriel, vous définissez la valeur sur mysql-bin.
  • gtid_mode. Ce paramètre permet d'utiliser des identifiants de transaction globaux (GTID) pour identifier des transactions. Il nécessite également l'ajout de la commande suivante pour fonctionner. Dans ce tutoriel, vous définissez la valeur sur on.
  • enforce-gtid-consistency. Ce paramètre applique la cohérence GTID en n'autorisant que les instructions pouvant être enregistrées à l'aide de GTID. Dans ce tutoriel, vous définissez la valeur sur true.

Les étapes suivantes expliquent comment définir les valeurs des quatre variables MySQL.

  1. Dans la fenêtre du terminal de votre VM WordPress, définissez les configurations de mysqld.cnf décrites précédemment :

    sudo -s
    echo "server-id = 2" >> /etc/mysql/mysql.conf.d/mysqld.cnf
    echo "log-bin = mysql-bin" >> /etc/mysql/mysql.conf.d/mysqld.cnf
    echo "gtid_mode = ON" >> /etc/mysql/mysql.conf.d/mysqld.cnf
    echo "enforce-gtid-consistency = true" >> /etc/mysql/mysql.conf.d/mysqld.cnf
    exit
    
  2. Redémarrez votre serveur MySQL pour que les commandes prennent effet :

    sudo service mysql restart
    
  3. Connectez-vous à nouveau à votre interface mysql :

    mysql -u root -p -h localhost wordpress
    
  4. Vérifiez que toutes les variables ont été correctement définies après le redémarrage :

    SELECT @@gtid_mode, @@enforce_gtid_consistency, @@server_id;
    

    Le résultat suivant s'affiche :

    mysql> select @@gtid_mode, @@enforce_gtid_consistency, @@server_id;
    +-------------+----------------------------+-------------+
    | @@gtid_mode | @@enforce_gtid_consistency | @@server_id |
    +-------------+----------------------------+-------------+
    | ON          | ON                         |           2 |
    +-------------+----------------------------+-------------+
    1 row in set (0.00 sec)
    
  5. Saisissez quit pour fermer l'interface mysql.

Activer l'accès IPv4 à la base de données

Pour que vous puissiez utiliser le workflow de migration automatisé de Cloud SQL, votre base de données source doit être accessible à l'aide d'une adresse IPv4 publique. Étant donné que le serveur WordPress possède une adresse IP publique attribuée automatiquement, vous pouvez autoriser cette connectivité à l'aide d'une règle de pare-feu VPC.

  1. Dans Cloud Shell, ajoutez un nouveau tag réseau à votre VM WordPress :

    gcloud compute instances add-tags my-wordpress-server-vm \
        --tags allowmysql \
        --zone us-east1-b
    
  2. Autorisez le trafic réseau MySQL depuis le réseau Internet public sur votre VM :

    gcloud compute firewall-rules create "mysql-replication-access" \
        --allow tcp:3306 \
        --target-tags "allowmysql"
    

Vous disposez maintenant d'une règle de pare-feu qui autorisera le trafic MySQL sur le port 3306 depuis le réseau Internet public vers votre VM WordPress.

Les bases de données de production peuvent être administrées et protégées de différentes manières. Veillez à contacter vos administrateurs réseau et de sécurité pour coordonner l'accès nécessaire pour toute migration de base de données de production avec le workflow de migration automatisé.

Le serveur WordPress Click-to-Deploy est conçu pour permettre au serveur Web local d'accéder à la base de données locale. Comme vous souhaitez autoriser d'autres connexions à la base de données pour assurer votre migration, vous devez mettre à jour l'entrée MySQL bind_address dans le fichier mysqld.cnf pour écouter les ports autres que localhost.

  1. Dans la fenêtre du terminal de votre VM WordPress, remplacez la valeur MySQL bind_address par 0.0.0.0 :

    sudo sed -i 's|bind-address.*|bind-address = 0.0.0.0|' /etc/mysql/mysql.conf.d/mysqld.cnf
    

    Cela autorise les connexions MySQL sur toutes les interfaces réseau disponibles.

  2. Redémarrez votre base de données MySQL pour que les modifications prennent effet :

    sudo service mysql restart
    

Créer le fichier de sauvegarde de la base de données

Vous devez ensuite créer un fichier de sauvegarde de base de données pour créer l'instance dupliquée à partir de Cloud SQL. Pour ce faire, utilisez la commande MySQL mysqldump.

Vérification des données de base

Avant de créer votre sauvegarde, vous devez valider le nombre d'articles dans votre base de données WordPress. Cela vous permet de vérifier que le contenu a bien été sauvegardé.

  1. Connectez-vous à votre serveur WordPress à l'aide de SSH.
  2. Comptez le nombre de lignes dans la table wp_posts :

    mysql -u root -p -D wordpress -e "SELECT count(*) from wp_posts"
    

    Vous obtenez un résultat semblable à celui-ci :

    SELECT count(*) from wp_posts;
    +----------+
    | count(*) |
    +----------+
    |        6 |
    +----------+
    1 row in set (0.01 sec)
    

Vous connaissez maintenant le nombre initial de lignes dans votre table.

Créer une sauvegarde de base de données et l'importer dans Cloud Storage

La tâche suivante consiste à copier les résultats du processus de sauvegarde dans un bucket Cloud Storage.

  1. Dans Cloud Shell, créez un nouveau bucket Cloud Storage pour stocker la sauvegarde de la base de données :

    gsutil mb gs://${DEVSHELL_PROJECT_ID}-mysqldump/
    

    Cette opération crée un bucket avec un nom unique (basé sur votre ID de projet Google Cloud) pour que votre projet stocke le fichier mysqldump.

  2. Dans Cloud Console, accédez à la page Instances de VM :

    Accéder à la page Instances de VM

  3. Dans la liste des instances de machine virtuelle, cliquez sur SSH sur la ligne de votre serveur WordPress afin de vous connecter à la VM :

    Connexion à la VM WordPress à l'aide de SSH.

  4. Dans la fenêtre du terminal de votre VM WordPress, créez une sauvegarde nommée mybackup1.sql :

    sudo mysqldump \
        -h localhost -P 3306 -u root -p \
        --databases wordpress \
        --hex-blob --skip-triggers --master-data=1 \
        --order-by-primary --compact --no-autocommit \
        --default-character-set=utf8 \
        --single-transaction --set-gtid-purged=on > mybackup1.sql
    
  5. Saisissez le mot de passe root MySQL.

  6. Copiez le fichier mybackup1.sql dans votre bucket Cloud Storage :

    sudo gsutil cp ./mybackup1.sql gs://[your_project_name]-mysqldump
    

    Un résultat semblable à celui-ci s'affiche :

    Copying file://./mybackup1.sql [Content-Type=application/x-sql]...
    / [1 files][510.4 KiB/510.4 KiB]
    Operation completed over 1 objects/510.4 KiB.
    

    Vous avez maintenant importé votre fichier de sauvegarde dans Cloud Storage.

Créer une instance dupliquée externe Cloud SQL à l'aide du workflow de migration automatisé

Maintenant que vous connaissez le nombre de lignes dans votre base de données et que vous disposez d'une sauvegarde complète de cette dernière, vous pouvez créer une base de données dupliquée sur Cloud SQL à l'aide du workflow de migration automatisé.

  1. Dans Cloud Console, accédez à la page Cloud SQL :

    Accéder à la page Cloud SQL

  2. Cliquez sur Migrer les données.

  3. Cliquez sur Commencer la migration.

  4. Dans la section Détails de la source de données, spécifiez les valeurs suivantes :

    • Nom de la source de données : nom de la base de données source. Utilisez mywordpress.
    • Adresse IP publique de la source : adresse IP externe de votre VM WordPress. Vous avez obtenu cette valeur plus tôt lorsque Deployment Manager a créé le serveur.
    • Numéro de port de la source : 3306
    • Nom d'utilisateur de la réplication MySQL : replication
    • Mot de passe utilisateur de la réplication MySQL : mysupersecretpassword
    • Version de la base de données : 5.7
  5. Cliquez sur Suivant.

  6. Dans la section Création de l'instance Cloud SQL dupliquée avec accès en lecture, indiquez les valeurs suivantes :

    • ID de l'instance dupliquée avec accès en lecture : nom de votre instance de service Cloud SQL. Utilisez le nom mywordpress-cloudsql.
    • Emplacement : région et zone dans lesquelles votre VM WordPress a été créée. Pour ce tutoriel, utilisez us-east1-b.
    • Type de stockage : SSD
    • Capacité de stockage : 10 GB
    • Activer l'augmentation automatique de l'espace de stockage : assurez-vous que cette option est activée.
    • Fichier de vidage SQL : cliquez sur Parcourir et sélectionnez le bucket et le fichier mysqldump que vous avez créés précédemment.
  7. Cliquez sur Paramètres avancés.

  8. Cliquez sur + Ajouter un réseau, puis procédez comme suit :

    • Nommez le réseau external.
    • Sous Réseau, saisissez 0.0.0.0/0.
    • Cliquez sur OK.

    L'ajout de 0.0.0.0/0 autorise l'accès public à votre instance dupliquée externe.

  9. Sous Indicateurs de base de données, cliquez sur + Ajouter un élément.

  10. Dans la liste Sélectionner un indicateur, procédez comme suit :

    1. Sélectionnez sql_mode.
    2. Dans la liste déroulante qui s'affiche à droite, choisissez ALLOW_INVALID_DATES.

    L'option sql_mode est requise pour migrer une base de données WordPress vers Cloud SQL.

  11. Cliquez sur Créer.

    L'instance est créée en arrière-plan.

  12. Dans la section Synchronisation des données, notez la valeur du champ Adresse IP sortante.

    Ce camp peut mettre quelques minutes à se remplir. Néanmoins, dès lors que vous disposez d'une adresse IP, l'instance Cloud SQL a été créée.

  13. Cliquez sur Suivant.

  14. Cliquez sur Terminer.

Le workflow de migration automatisé commence à répliquer vos données de la base de données source sur la VM WordPress vers la base de données dupliquée Cloud SQL. Ce processus peut prendre un certain temps, en fonction de la taille de votre base de données, de la distance entre la source et la destination, et des IOPS disponibles pour les bases de données principale et dupliquée. Dans ce tutoriel, votre base de données est petite, et le processus est donc rapide.

Après quelques minutes, une coche verte en regard du nom de votre base de données indique que la réplication est activée. Cliquez sur votre nouvelle base de données. Le message Replication is enabled (La réplication est activée) s'affiche également.

La console indique que la réplication est activée.

Ce message confirme que l'opération de réplication Cloud SQL a réussi.

Créer des comptes utilisateur MySQL sur la base de données dupliquée

Lorsque vous migrez une base de données unique dans le cadre d'un serveur MySQL, le processus de migration ne migre pas les comptes utilisateur de la base de données elle-même. Afin de limiter les modifications apportées aux utilisateurs et aux applications, vous devez recréer des comptes critiques sur la base de données dupliquée Cloud SQL.

  1. Dans Cloud Shell, réinitialisez le compte utilisateur racine de la base de données Cloud SQL pour qu'il utilise le même mot de passe racine que votre base de données WordPress principale.

    gcloud sql users set-password root --host=% \
        --instance=mywordpress-cloudsql \
        --password=primary-root-password
    
  2. Créez un compte utilisateur wordpress avec un nom d'utilisateur et un mot de passe correspondant au nom et au mot de passe de la base de données WordPress principale.

    gcloud sql users create wordpress --host=% \
        --instance=mywordpress-cloudsql \
         --password=your-wordpress-db-password
    

Vérifier l'exécution de la base de données dupliquée dans Cloud SQL

Maintenant que la réplication Cloud SQL est activée, vous devez vérifier la réplication des données. Pour vérifier la réplication des données, vous devez vous connecter à votre nouvelle base de données Cloud SQL, puis mettre à jour la base de données WordPress principale avec le nouveau contenu. Si la réplication fonctionne, les données mises à jour s'affichent dans l'instance dupliquée Cloud SQL.

Vérifier les données de base dans Cloud SQL

Les étapes suivantes expliquent comment se connecter à la base de données dupliquée Cloud SQL.

  1. Dans Cloud Console, accédez à la page Cloud SQL.

    Accéder à la page Cloud SQL

  2. Cliquez sur la base de données dupliquée pour ouvrir la page Détails de l'instance.

  3. Sous Se connecter à cette instance, cliquez sur Se connecter via Cloud Shell.

    Cloud Shell s'ouvre alors et votre adresse IP de connexion est automatiquement ajoutée au pare-feu.

  4. Appuyez sur ENTER pour exécuter la commande.

  5. Lorsque vous y êtes invité, saisissez le mot de passe d'utilisateur racine de la base de données.

    La connexion est alors établie entre MySQL et l'instance dupliquée Cloud SQL.

  6. Sélectionnez la base de données :

    USE wordpress
    
  7. Exécutez une requête pour compter le nombre de lignes de la table wp_posts de la base de données :

    SELECT count(*) from wp_posts;
    

    La sortie correspond à la sortie précédente pour le nombre de lignes :

    mysql> SELECT count(*) from wp_posts;
    +----------+
    | count(*) |
    +----------+
    |        6 |
    +----------+
    1 row in set (0.01 sec)
    

    Cela confirme que la réplication s'est déroulée correctement lors de la création de la base de données.

Gardez cette session Cloud Shell ouverte pour les prochaines étapes.

Créer du nouveau contenu de base de données

Vous pouvez maintenant créer un nouvel article WordPress pour ajouter du contenu dans la base de données. Cela vous permet de vérifier que les nouvelles données sont bien dupliquées vers Cloud SQL.

  1. Dans votre navigateur, accédez à la page d'administration de votre instance WordPress :

    http://your-public-ip/wp-admin
    
  2. Utilisez le nom et le mot de passe administrateur WordPress pour vous connecter à l'interface d'administration.

  3. Cliquez sur Posts (Articles), puis sur Add New (Ajouter).

  4. Donnez à votre article le titre My Second Post, puis ajoutez du texte.

  5. Cliquez sur Publish (Publier), puis à nouveau sur Publish (Publier) pour confirmer :

    Publication de votre deuxième article.

  6. Cliquez sur le lien Site address (Adresse du site) pour voir votre nouvel article.

Vérifier que le nombre de lignes a augmenté dans les bases de données principale et dupliquée

Vous pouvez maintenant vérifier que les données ont été ajoutées dans les bases de données principale et dupliquée.

  1. Connectez-vous à la VM WordPress à l'aide de SSH.
  2. Exécutez une requête pour compter le nombre de lignes dans la table wp_posts :

    mysql -u root -p -D wordpress -e "SELECT count(*) from wp_posts"
    

    Vous obtenez un résultat semblable à celui-ci :

    SELECT count(*) from wp_posts;
    +----------+
    | count(*) |
    +----------+
    |        8 |
    +----------+
    1 row in set (0.01 sec)
    

    Notez que le nombre de lignes de données a augmenté sur la base de données principale.

  3. Ouvrez la session Cloud Shell connectée à la base de données dupliquée Cloud SQL.

  4. Exécutez une requête pour compter le nombre de lignes dans la table wp_posts dupliquée :

    SELECT count(*) from wp_posts;
    

    Un résultat semblable à celui-ci s'affiche :

    Mysql [wordpress]> SELECT count(*) from wp_posts;
    +----------+
    | count(*) |
    +----------+
    |        8 |
    +----------+
    1 row in set (0.01 sec)
    

    Si le nombre de lignes est le même dans la table de base de données d'origine et dans la table de base de données dupliquée, cela confirme que la réplication a abouti lorsque le nouveau contenu a été ajouté à la base de données.

Promouvoir la base de données dupliquée Cloud SQL en base de données principale

Maintenant que votre instance dupliquée s'exécute dans Cloud SQL et que vous avez vérifié la réplication, il est temps de promouvoir l'instance dupliquée en tant qu'instance principale et de terminer la migration de la base de données vers Cloud SQL.

Remarques concernant les temps d'arrêt

Chaque migration MySQL entraîne un certain temps d'arrêt de la base de données. Le temps d'arrêt associé au workflow de migration automatisé est minime, mais il dure néanmoins toujours quelques minutes au moins. Assurez-vous de bien comprendre les exigences de votre application, vos objectifs de niveau de service et vos contrats de niveau de service avant de commencer la migration.

Arrêter la base de données principale

La première étape consiste à arrêter le service MySQL s'exécutant sur la VM WordPress. Cela entraîne l'arrêt de toutes les écritures dans la base de données et marque le début de l'intervalle d'indisponibilité de la base de données et des applications qui y sont connectées.

  1. Dans la fenêtre du terminal de votre VM WordPress, arrêtez la base de données MySQL :

    sudo service mysql stop
    

    Votre base de données MySQL principale est maintenant hors ligne.

  2. Dans votre navigateur, accédez au site WordPress :

    Un message d'erreur indiquant que l'application est hors ligne s'affiche :

    Erreur de connexion à la base de données.

Mettre à jour les points de terminaison d'application

Une fois la base de données principale arrêtée, vous devez mettre à jour l'application pour utiliser le serveur Cloud SQL. Cela vous permet de confirmer une connectivité de base entre l'application et la base de données Cloud SQL avant de promouvoir l'instance dupliquée en instance principale.

WordPress contient un fichier de configuration simple que vous devez mettre à jour pour que l'application pointe vers l'instance dupliquée Cloud SQL.

  1. Dans Cloud Console, accédez à la page Cloud SQL.

    Accéder à la page Cloud SQL

  2. Cliquez sur la base de données dupliquée pour ouvrir la page Détails de l'instance.

  3. Copiez l'adresse IP publique.

  4. Connectez-vous à votre VM WordPress à l'aide de SSH.

  5. Dans le terminal de l'instance, mettez à jour les adresses de la base de données de destination dans le fichier de configuration. Remplacez your-cloud-sql-ip par l'adresse IP publique de votre instance dupliquée Cloud SQL.

    sudo sed -i -e 's/localhost/your-cloud-sql-ip/' /var/www/html/wp-config.php
    

Promouvoir l'instance dupliquée

Vous avez maintenant mis à jour le code de l'application afin de prendre en charge le nouvel emplacement de base de données Cloud SQL. Vous devez maintenant promouvoir l'instance dupliquée Cloud SQL en tant que base de données principale. La promotion de l'instance dupliquée Cloud SQL en tant que base de données principale termine la migration de la base de données MySQL vers Cloud SQL.

  1. Dans Cloud Console, accédez à la page Cloud SQL.

    Accéder à la page Cloud SQL

  2. Cliquez sur la base de données dupliquée pour ouvrir la page Détails de l'instance.

  3. Cliquez sur le bouton Promote Replica (Promouvoir l'instance dupliquée) :

    Promotion de l'instance dupliquée en tant qu'instance principale.

  4. Cliquez sur OK pour commencer la promotion de la base de données.

Après quelques minutes, la base de données s'affiche comme étant disponible sur la page des instances Cloud SQL. Vous pouvez alors accéder à votre site WordPress et voir qu'il est de nouveau en ligne.

Nettoyer

Pour éviter que les ressources utilisées dans ce tutoriel soient facturées sur votre compte Google Cloud, procédez comme suit :

Supprimer le projet

  1. Dans Cloud Console, accédez à la page Gérer les ressources.

    Accéder à la page Gérer les ressources

  2. Dans la liste des projets, sélectionnez le projet que vous souhaitez supprimer, puis cliquez sur Supprimer.
  3. Dans la boîte de dialogue, saisissez l'ID du projet, puis cliquez sur Arrêter pour supprimer le projet.

Étapes suivantes